Использование метода setValue при сохранении строки типа HTML-текст — различия между версиями
Материал из Umicms
VITL' (обсуждение | вклад) (Новая страница: « category:Написание кастомных макросов Если в вашем кастомном макросе используется метод set…») |
Velross (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | Актуально для 2.9.6. | |
− | Если в вашем кастомном макросе используется метод setValue для сохранения данных с различными html | + | |
+ | ---- | ||
+ | '''Задача:''' используя API сохранять форматированный текст в поля типа "html-текст". | ||
+ | |||
+ | '''Решение:''' | ||
+ | Если в вашем кастомном макросе используется метод setValue для сохранения данных с различными html тегами, то необходимо использовать следующею конструкцию для корректной записи данных: | ||
<source lang="php"> | <source lang="php"> | ||
− | $hierarchy = umiHierarchy::getInstance(); | + | <?php |
− | $elementId = 47; | + | header("Content-type: text/html; charset=utf-8"); |
− | $element = $hierarchy->getElement($elementId); | + | include "standalone.php"; |
− | $value = "<p><b>umitest text</b></p>"; | + | $hierarchy = umiHierarchy::getInstance(); |
− | $old_mode = umiObjectProperty::$IGNORE_FILTER_INPUT_STRING; | + | $elementId = 47; |
− | umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = true; | + | $element = $hierarchy->getElement($elementId); |
− | $element->setValue('content', $value); | + | $value = "<p><b>umitest text</b></p>"; |
− | $element->commit(); | + | $old_mode = umiObjectProperty::$IGNORE_FILTER_INPUT_STRING; |
− | umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = $old_mode; | + | umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = true; |
+ | $element->setValue('content', $value); | ||
+ | $element->commit(); | ||
+ | umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = $old_mode; | ||
</source> | </source> | ||
+ | '''Результат c выключением фильтра:'''<br/> | ||
+ | [[Файл:Screenshot-by-nimbus (2).png]]<br/> | ||
+ | '''Результат при обычной работе:'''<br/> | ||
+ | [[Файл:Screenshot-by-nimbus.png]] | ||
+ | |||
+ | [[category:Написание кастомных макросов]] |
Текущая версия на 13:26, 11 апреля 2014
Актуально для 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;
Результат c выключением фильтра:
Результат при обычной работе: