Всем, привет.
Здесь мне бы хотелось говорить о трудностях, с которыми я сталкиваюсь по сабжу. Может быть в дальнейшем кому-то эта инфа пригодится.
Опыта работы с OpetCart у меня нет, тем более 3-й версии, но поступил заказ. Что ж, придётся ковыряться.
Имеется макет в фотошопе, вообще ни разу не напоминающий диз CMS-ки из коробки.
Начал стилизовать блоки в twig-файлах по-своему, дошёл до корзины и сразу сталкнулся со следующей проблемой.
Мне НЕ нужна к корзине надпись вида `Товаров: 0 (0.00р.)`, а нужно получить лишь количество товаров.
Ок, - подумал я - В бэкенд не полезу, вдруг такая строчка целиком ещё пригодится или сломаю что-нибудь не дай Бог.
1. Полез в файл `domains/mysite/catalog/view/javascript/common.js`
Нашёл там объект `cart` со своими методами типа `add`, `update` etc. с ajax-ом и колбэками.
2. В колбэках нахожу строку:
$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
Вывожу в консоль json['total'], ОНО!
3. В этом же файле создаю глобально метод:
var getAmount = function (total) {
var regex = /\s+/,
amount = total.split(regex)[1];
return amount;
}
..а в строке колбэка функций объекта `cart` (см. выше) вызываю его: getAmount(json['total']).
4. Аллилуйя! Всё работает.
Едем дальше.
1. Заходим на сайте в карточку товара, добавляем товар в корзину и упс - возвращается необработанная строка json['total'].
2. Инспектируем getAmount(), добавляя в него `console.log('getAmount method called')` - хренушки (( Метод не вызывается.
3. Ок, инспектируем кнопу `Купить` в карточке товара и находим событие на кнопке:
$('#button-cart').on('click', function() {...}
В файле common.js его, нет, но девтулс нам указывает на то, что он типа в index.php есть.
Значит, событие возможно прописано в шаблоне twig. Ищем шаблон `product.twig` - Упс! Вот оно наше событие ))
5. В шаблоне `product.twig` снова вызываем наш новый метод `getAmount` и передаём в него json['total'].
6. Аллилуйя! Всё работает ))
зы: прошу прощения, коллеги, если не в тот раздел запостил тему. Но сабж полезный имхо. Перенесите, если что.
Принимаются замечания. Если что-то не будет получаться по сабжу, буду задавать здесь вопросы )