Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   HTMLArea, RTE, tinymce_rte и другие визуальные редакторы (http://forum.typo3.ru/forumdisplay.php?f=24)
-   -   tinyRTE v1.8.1 typo3 4.2.6: при сохранении текста содержащеко пустой абзац <p> </p> (http://forum.typo3.ru/showthread.php?t=7792)

Smith 24.06.2009 16:00

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

На странице содержится 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.a ddAttributes.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-м символом, в моем случае это не сработало так как разделение производиться кодом

PHP код:

$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
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 .


Часовой пояс GMT +4, время: 14:33.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot