Мультиязычный магазин с EvoBabel

Уроки и советы по работе с TSVshop
13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

Re: Мультиязычный магазин с EvoBabel

Сообщение 13th » 15 май 2016, 21:25

Спасибо, есть вопрос по чанку Shop_Cart.
В документации написано, что в чанк можно вставлять вызовы сниппетов, чанки и плейсхолдеры.
Сниппеты вызываются, но почему-то в них не работает $modx->setPlaceholder
Плейсхолдеры сниппета, вызванного выше в шаблоне, нормально рендерятся на странице,
но в чанке Shop_Cart они не выводятся.
Возможно плейсхолдеры должны выводиться с каким-то префиксом?

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: Мультиязычный магазин с EvoBabel

Сообщение admin » 16 май 2016, 21:31

Как я понял, вы вызываете внутри чанка сниппет, который устанавливает плейсхолдеры?

13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

Re: Мультиязычный магазин с EvoBabel

Сообщение 13th » 16 май 2016, 22:12

Нет, просто вставлял плейсхолдеры в виде [+мой.плейсхолдер+] сгенерированные своим сниппетом, вызванным выше на странице, вне чанка корзины.
Наверное я просто неправильно понял принцип работы setPlaceholder и плейсхолдеры одного сниппета просто недоступны внутри другого.
Чтобы вывести их, сделал простой сниппет:
if(isset($p)){
$pp = $modx->getPlaceholder($p);
echo $pp;
}
и вставляю его вместо [+мой.плейсхолдер+] в чанке корзины.
Такой подход работает.

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: Мультиязычный магазин с EvoBabel

Сообщение admin » 17 май 2016, 10:04

Да, все верно

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: Мультиязычный магазин с EvoBabel

Сообщение admin » 17 май 2016, 10:06

Можно также плагином попробовать, должно сработать

13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

Re: Мультиязычный магазин с EvoBabel

Сообщение 13th » 02 июн 2016, 22:53

Доброй ночи.
Возник вопрос по очистке корзины на мультиязычном сайте.
функция tsv_clear_cart использует $modx->sendRedirect для перенаправления,
Никак не пойму - как сделать перенаправление на адрес страницы с параметром ?lang=en, ?lang=ru и т.д.

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: Мультиязычный магазин с EvoBabel

Сообщение admin » 03 июн 2016, 08:10

А куда идет редирект в вашем случае?

13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

Re: Мультиязычный магазин с EvoBabel

Сообщение 13th » 03 июн 2016, 10:35

На ту-же страницу, только с сохранением GET параметра lang в адресной строке.
Проблема только в сбросе GET параметров при очистке корзины

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: Мультиязычный магазин с EvoBabel

Сообщение admin » 05 июн 2016, 10:36

Да, так и есть. Пока не могу ничего предложить, как просто слегка подправить код, чтобы был редирект на текущую страницу с сохранением параметров. Если получится сделать универсально, то пишите, я внесу правку в новую версию.

13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

Re: Мультиязычный магазин с EvoBabel

Сообщение 13th » 05 июн 2016, 12:11

Поправил функцию tsv_clear_cart - передаю в нее параметр из поля lang, которое добавил в инфоблоке корзины:

Код: Выделить всё

header("Location:".$tsvshop['selfurl'].$lang);


Проблема в том, что при добавлении товара в корзину, значение поля lang остается пустым - формы-то в пустом инфоблоке корзины еще нет
И значение в поле lang появляется только после обновления страницы.

Выбрал самый простой вариант решения: вывожу форму со скрытым полем на странице всегда, а чанки пустой или заполненной корзины вызываются сниппетом [!TSVshop? &act=`info` &basketid=`2` &tvs=`pagetitle_en,pagetitle_ua` !] в эту форму.


Вернуться в «Как сделать ... ?»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость