51

(9 ответов, оставленных в Вопросы по созданию тем оформления)

Спасибо за помощь )

52

(9 ответов, оставленных в Вопросы по созданию тем оформления)

Хм ) в итоге заработало только вот так ))

$("body").on("new-content", function(){

А как можно совместить

$("body").on("new-content", function() + $(document).ready(function()

))

53

(9 ответов, оставленных в Вопросы по созданию тем оформления)

jquery подгрузил в секции head

Но все равно ни как не работает )

Вот если просто на странице фору открыть http://superwings-shop.ru/feedback-1/ то маска есть. А во всплывающем окне (синий ярлычок "обратный звонок" справа страницы" - ну никак не хочет работать ((

54

(9 ответов, оставленных в Вопросы по созданию тем оформления)

Да, по имени получилось обратиться вот так  input[name="phone"]

А вот такая инициализация для всплывающих окон почему то не работает ((

$("body").on("new-content", function(){
    //Мой код инициализации  
});

А разместить инициализацию прямо в шаблон обратной связи не вариант, потому что js  у меня подгружаются внизу шаблона и инициализировать просто будет нечего.

Здравствуйте!

Хочу сделать для поля ввода телефона маску ввода вида +7 (___) ___-__-__ скриптов для этого хватает, но есть 2 проблемы:

1. Все эти скрипты обращаются к полю по id или class у этого поля в форме обратной связи и в форме оформления заказа нет ни класса ни id, есть имя, но по имени что то обратиться не получается.

2. Непонятно как это реализовать во всплывающей форме

56

(7 ответов, оставленных в Вопросы по созданию тем оформления)

Закусило Александр пишет:

Дело в том, что это закладка на будущее. Когда у Нас будет в будущем скидка общая на всю корзину товара. Поэтому она пока не актуальна.

Понятно, а то я хотел вывести общую сумму скидки рядом с общей суммой заказа.

57

(7 ответов, оставленных в Вопросы по созданию тем оформления)

Закусило Александр пишет:

В разделе Магазин->Скидочные купоны. Там создаёте купон и если в корзине будет активирована эта скидка. То эта строка понадобится.

У меня не появляется эта надпись, при применении купона. Появляются надписи только возле цен, но это не то https://yadi.sk/i/rJJyFF0ZtPKio

При этом $cart_data.total_discount = 0
https://yadi.sk/i/6f3jgJ4EtPL6p

58

(7 ответов, оставленных в Вопросы по созданию тем оформления)

Здравствуйте!

В шаблоне cartpage.tpl есть такой код:

    {if $cart_data.total_discount>0}
            <div class="line">
                <div class="text">Скидка на заказ</div>
                <div class="digits">{$cart_data.total_discount}</div>
            </div>                        
        {/if}

Что это за скидка на заказ? И где она назначается?

59

(12 ответов, оставленных в Вопросы по созданию тем оформления)

Закусило Александр пишет:

И ещё момент с оформлением заказа. Там будет переменная $cart_data, которая тоже будет с уже отформатированными данными. Она либо назначается в шаблон сразу, либо при помощи метода в объекте заказа getCartData.
Для того, чтобы получить не форматированные данные, можно либо переназначить переменную:

{$cart_data=$order->getCart()->getCartData(false, false)} {* false означает сделать неформатированными данные *}

Либо указать у этого метода false, false, если он в шаблоне присутствует.

А в шаблоне cartpage.tpl как переопределить переменную $cart_data?

60

(5 ответов, оставленных в Вопросы по работе с системой)

Да, действительно настраивается через .htaccess, добавил туда вот такой код у себя:

<IfModule mod_headers.c>
<FilesMatch "\.(flv|woff|woff2|eot|svg|otf|ttf|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
  Header set Cache-Control "max-age=864000"
</FilesMatch>
</IfModule>

В общем еще надо было закомментировать вот это

           if ($.detectMedia && ($.detectMedia('mobile') || $.detectMedia('portrait'))) {
                var params = {
                    amount:amountValue,                
                    offer:offerValue,                    
                };
                
                //Добавим многомерные комплектации к запросу
                if (multioffersValues) {
                    $.extend(params, multioffersValues);
                }
                //Добавим сопутствующие товары к запросу
                if (concomitantValues) {
                    $.extend(params, concomitantValues);
                }
                
                location.href = url + (url.indexOf('?') == -1 ? '?' : '&') + $.param(params);
                return false;
            }

62

(5 ответов, оставленных в Вопросы по работе с системой)

Закусило Александр пишет:

Это должен делать сам хостинг. Т.е. это решается настройками самого сервера, который будет отдавать соответствующие заголовки.

Хм (( в других цмс можно такое настроить, не в админке конечно, но в файлах.

Здравствуйте!

При проверке сайтов на RS с помощью PageSpeed Insights, тест выдает следующее сообщение:

Если указывать в заголовках HTTP дату или срок действия статических ресурсов, браузер будет загружать уже полученные ранее ресурсы с локального диска, а не из Интернета.

Со ссылкой на эту страницу: https://developers.google.com/speed/doc … serCaching

Где можно подправить значение Cache-Control ?

Закусило Александр пишет:

Чуть ниже у Вас в common.js есть

if (!noShowCartDialog) {
                    $.openDialog({
                        url: url,
                        data: params,
                        callback: initCart,
                        colorboxOptions: {
                            width: 940,
                            className: 'noBorder cartDialog'
                        },
                        bindSubmit: false
                    });
                } else {
                    $.post(url, params, function(response) {
                        try {
                            //Обновляем сведения в основном окне, если действие происходит во всплыв
ающем
                            window.opener.jQuery.cart('updateCartBlock', response);
                        } catch (e) {
                            $.cart('updateCartBlock', response);
                        }
                    }, 'json');
                }

Замените просто на:

                    $.post(url, params, function(response) {
                        try {
                            //Обновляем сведения в основном окне, если действие происходит во всплыв
ающем
                            window.opener.jQuery.cart('updateCartBlock', response);
                        } catch (e) {
                            $.cart('updateCartBlock', response);
                        }
                    }, 'json');

Чтобы только post запрос шёл


Не знаю может что неправильно сделал, но все равно не помогло. Открывается страница корзины, но теперь просто пустая.

Закусило Александр пишет:

Попробуйте на всякий случай Ctrl+F5.
И куда нажимаете конкретно, на какую кнопку и какой она имеет вид в html?

Нажимал и очищал кешь через настройки барузера.

http://superwings-shop.ru/catalog/transformery/ кнопка "в корзину"

Закусило Александр пишет:

Что у Вас получилось в результате?

Так же все и осталось, то есть на мобильном разрешении все равно перекидывает в корзину.

Закусило Александр пишет:
Дмитрий пишет:
Закусило Александр пишет:

Тогда всё ещё проще. У ссылок на добавление в корзину, или у самой корзины нужно поставить класс noShowCart.

Да, это все стоит. Но на мобильном разрешении все равно перекидывает в корзину.

Тогда комментируем ещё

if ($.detectMedia && ($.detectMedia('mobile') || $.detectMedia('portrait')) ) return true;

Сделал, но по какой то причине не помогло )) Кешь очистил.

Закусило Александр пишет:

Тогда всё ещё проще. У ссылок на добавление в корзину, или у самой корзины нужно поставить класс noShowCart.

Да, это все стоит. Но на мобильном разрешении все равно перекидывает в корзину.

Закусило Александр пишет:

Т.е. Вам всегда нужен физический переход в корзину?
Если да, то просто нужно сделать за место этой строки return true;, тогда всегда будет переход в корзину.

Нет, наоборот не нужен.

Закусило Александр пишет:

Дело всё в том, что открывающееся окно может не поместиться в экран на мобильной версии, поэтому существует код функции $.detectMedia

if ($.detectMedia && ($.detectMedia('mobile') || $.detectMedia('portrait')) ) return true; //Не открываем окна в мобильной версии

Эта функция, которая физически находится в theme.js проверяет ширину экрана и переходит по ссылке если ширина меньше заданной.

Я не использую всплывающее окно. Мне просто убрать эту функцию?

71

(10 ответов, оставленных в Вопросы по работе с системой)

Антон пишет:

весь код шаблона между if содержится.

Ну я ж написал что с if мне все ясно )) я про другое спрашивал. Ну да ладно, подключил уже через инклюид

Илья пишет:

А если её просто скрыть в мобильной версии?

Что скрыть, зачем?

73

(10 ответов, оставленных в Вопросы по работе с системой)

Антон пишет:

у меня сделано так:
в list_products.tpl
{if $category.name == 'Название' OR
    $category.name == 'Название 1' OR
    $category.name == 'Название 2'}
шаблон для указанных категорий.
{else}
шаблон для всех остальных категорий
{/if}

такая же конструкция в product.tpl и one_product.tpl

Ну с конструкцией if мне все понятно. А шаблоны как подключаете через инклюид просто ?

74

(10 ответов, оставленных в Вопросы по работе с системой)

admin пишет:

Да, конечно. В шаблоне list_products.tpl из модуля каталог, вы можете проверять, например, alias категории и либо подключать вообще другой шаблон, либо дописывать какие-нибудь классы, чтобы с помощью CSS потом изменять оформление.

Проверка Псевдонима категории проводится так:

{if $category.alias == 'ПСЕВДОНИМ-1'}
//здесь любое действие
{/if}

А как собственно переопределить шаблон в этом случае? Например если по умолчанию подключается у нас list_products.tpl, а я хочу list_products_new.tpl ?

Андрей пишет:
Дмитрий пишет:

Можно, но хотелось бы более ровный способ.

Тогда так:

{$dir.title}

Соответственно выведет название категории

О, спасибо! То что надо )