infoblock AJAX html

Здесь вам помогут решить проблемы, возникающие в процессе использования модуля TSVshop
13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

infoblock AJAX html

Сообщение 13th » 28 июн 2016, 18:11

Добрый день. Подскажите, как отобразить список доп. параметров в корзине с HTML разметкой?
AJAX запрос формирую и отправляю с разметкой, но в корзине выводится чистый текст.
Спасибо!

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

Re: infoblock AJAX html

Сообщение admin » 30 июн 2016, 09:27

Здравствуйте.
Я не совсем понял, как вы делаете запрос и что отсылаете в нем?

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

Re: infoblock AJAX html

Сообщение 13th » 30 июн 2016, 12:44

Данные запроса:
mode:additem
idnum:17
name: <span>(<span data-lang="t.36">объем</span>: <span data-lang="tv.36_1">110 мл</span>)</span>
qty:1
opt: 20
icon:assets/images/combs2.jpg
typeitem:

отличие только в том, что в name добавлена HTML разметка
в инфоблоке эта разметка теряется, выводится только: (объем: 110 мл)

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

Re: infoblock AJAX html

Сообщение admin » 30 июн 2016, 18:43

Теряется только в инфоблоке или везде? По идее такого быть не должно, в сниппете нигде вроде теги не вырезаются. А можно проследить, на каком этапе теги исчезают?

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

Re: infoblock AJAX html

Сообщение 13th » 01 июл 2016, 10:40

Теряются и в корзине и в инфоблоке
Я тоже не нашел чем теги могут вырезаться.
Посмотреть можно здесь http://855173.frags.web.hosting-test.ne ... ganic.html
Спасибо!

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

Re: infoblock AJAX html

Сообщение admin » 01 июл 2016, 17:43

Причина в том, что все входящие данные проходят через фильтр и чистятся от тегов и всякой нечисти с помощью функции _filter
Она находится в файле /assets/snippets/tsvshop/admin/includes/core.inc.php. Можно либо закомментировать строку 222 (приблизительно)

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

$var = shop_striptags($var);


либо в файле /assets/snippets/tsvshop/include/tsvshop.inc.php в строке 94 (приблизительно) убрать эту функцию вот здесь:

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

$name = _filter($_REQUEST['name']);

заменив на

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

$name = $modx->db->escape($_REQUEST['name']);


Тогда теги не будут вырезаться.

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

Re: infoblock AJAX html

Сообщение 13th » 01 июл 2016, 19:07

Да, не очень безопасно получается, конечно)
Попробуем, спасибо!

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

Re: infoblock AJAX html

Сообщение admin » 01 июл 2016, 21:03

Да, это менее безопасно, но можно попробовать добавить внутри функции _filter в функцию strip_tags разрешенные теги. У strip_tags есть второй необязательный параметр со списком таких тегов. А в файле tsvshop.inc.php оставить как было вначале.


Вернуться в «Решение проблем»

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

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