Использование метода setValue при сохранении строки типа HTML-текст
Материал из Umicms
Версия от 13:25, 11 апреля 2014; Velross (обсуждение | вклад)
Актуально для 2.9.6.
Задача: через API сохранять форматированный текст в поля типа "html-текст".
Решение: Если в вашем кастомном макросе используется метод setValue для сохранения данных с различными html тегами, то необходимо использовать следующею конструкцию для корректной записи данных:
<?php
header("Content-type: text/html; charset=utf-8");
include "standalone.php";
$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;
Результат выключением фильтра:
Результат при обычной работе: