UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: atach от 06 Мая 2016, 18:20:02

Название: Как избежать срабатывания htmlspecialchars, при сохранении
Отправлено: atach от 06 Мая 2016, 18:20:02
Подскажите такой вопрос, при вставки значения содержащий спец символы (%<> и т.д.) в текстовые поля, вставляются не они, а их HTML код, видать срабатывает htmlspecialchars.
Как можно это избежать ?
$reviewsPageElement->setValue("content", "%Просто проверка>");
$reviewsPageElement->commit();
В итоге вставляется: &#37;Просто проверка&gt;
Название: Re: Как избежать срабатывания htmlspecialchars, при сохранении
Отправлено: aghigay от 06 Мая 2016, 18:23:36
А зачем?
Название: Re: Как избежать срабатывания htmlspecialchars, при сохранении
Отправлено: atach от 06 Мая 2016, 18:25:21
На этом проекте стоит TPLS шаблонизатор, и в некоторые части контента вставляются макросы виде %custom blablabla()%. И система их не воспринимает
Название: Re: Как избежать срабатывания htmlspecialchars, при сохранении
Отправлено: aghigay от 06 Мая 2016, 18:56:53
Насколько я понимаю и не будет. Попробуйте просто в базу вбить ручками через phpmyadmin то, что хотите - уверены что заработает?
Название: Re: Как избежать срабатывания htmlspecialchars, при сохранении
Отправлено: e.ioffe от 07 Мая 2016, 17:20:14
Попробуйте

$old_mode = umiObjectProperty::$IGNORE_FILTER_INPUT_STRING;
umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = true;
$element->setValue('content', '%content%');
$element->commit();
umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = $old_mode;

Взял из wiki - http://wiki.umisoft.ru/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0_setValue_%D0%BF%D1%80%D0%B8_%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8_%D1%82%D0%B8%D0%BF%D0%B0_HTML-%D1%82%D0%B5%D0%BA%D1%81%D1%82