Все данные, полученные с клиентской части, преобразуются к безопасному виду - в html-сущности. Это полезное действие, но иногда бывает нужно сохранить html-код как есть. Это можно сделать управляя параметром IGNORE_FILTER_INPUT_STRING
:
$hierarchy = umiHierarchy::getInstance();
$elementId = 47;
$element = $hierarchy->getElement($elementId);
$value = "<p><b>umitest text</b></p>";
$old_mode = umiObjectProperty::$IGNORE_FILTER_INPUT_STRING;
umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = true;
$element->setValue('content', $value);
$element->commit();
umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = $old_mode;
Для примера берем страницу с ID=47
. В переменную $value
помещаем нашу HTML-строку.
Далее нужно отключить преобразование к безопасному виду. Для этого запоминаем исходное состояние параметра IGNORE_FILTER_INPUT_STRING. Затем устанавливаем его в true, что отключит преобразование. Сохраняем страницу и восстанавливаем исходное состояние IGNORE_FILTER_INPUT_STRING. Как показала практика, возвращать сначение IGNORE_FILTER_INPUT_STRING следует именно после commit()
.
Источник - //wiki.umisoft.ru/Использование_метода_setValue_при_сохранении_строки_типа_HTML-текст