PDA

Просмотр полной версии : tinyRTE v1.8.1 typo3 4.2.6: при сохранении текста содержащеко пустой абзац <p> </p>


Smith
24.06.2009, 16:00
Добрый день.
К меня следующая проблема.

На странице содержится TV content элемент, одним из полей которого является форматированный текст. При попытке сохранить текст содержащий пустой абзац <p> </p> возникает ошибка:

Catchable fatal error: Argument 2 passed to t3lib_div::array_merge_recursive_overrule() must be an array, string given, called in /home/velocity/public_html/t3lib/class.t3lib_tcemain.php on line 1766 and defined in /home/velocity/public_html/t3lib/class.t3lib_div.php on line 1833

Версия typo3 4.2.6, tinyRTE - 1.8.1

В ядре разбираюсь плохо.
Предполагаю что поможет замена пустого абзаца на <br> перед записью в базу. Подскажите как это сделать? Хотя скорее всего ошибка выдается во время разбора документа из tinyRTE.

Надеюсь на вашу помощь.

void
24.06.2009, 20:13
В настройках менеджера расширений переключите с "reviewed" на "all" и обновите Templavoila (и другие расширения)

Smith
26.06.2009, 16:29
Разобрался
Оказывается структура TS "lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.ad dAttributes.P.class = bodytext" обрабатывает правильно обрамлённые параграфами части, если они располагаются через #10. То есть строка
<p> qwerty </p>
<p> popy </p>
Будет обратана правильно:
<p class = bodytext> qwerty </p>
<p class = bodytext> popy </p>

Если без #10 <p> qwerty </p><p> popy </p>, тогда обработается только первый <p> :
<p class = bodytext> qwerty </p>
<p> popy </p>

Хотя по умолчанию в css_style_content указано разделить параграфы 10-м символом, в моем случае это не сработало так как разделение производиться кодом

$colParts[$kkk]=str_replace('</p><p>','</p>'.chr(10).'<p>',$colParts[$kkk]);

tinyRTE по не понятным причинам сохраним параграфы с пробелом <p>йцукен</p> <p>курбанбайрам</p>.

Smith
26.06.2009, 16:39
В предыдущем посте было описано решение не той проблемы.

Ошибка, из-за которой создавалась тема, была решена явным указанием кодировки XML парсеру.

файл class.t3lib_div.php

public static function xml2array($string,$NSprefix='',$reportDocTag=FALSE ) {
global $TYPO3_CONF_VARS;

// Create parser:
$parser = xml_parser_create('ISO-8859-1');


Сама ошибка появляется только в случае использование в качестве парсера expat 1.8 вместо libxml2 2.6 .