Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > HTMLArea, RTE, tinymce_rte и другие визуальные редакторы

Ответ
 
Опции темы Опции просмотра
Старый 24.06.2009, 16:00   #1
Smith
Новенький
 
Регистрация: 10.05.2007
Сообщений: 26
По умолчанию 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.

Надеюсь на вашу помощь.
Smith вне форума   Ответить с цитированием
Старый 24.06.2009, 20:13   #2
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

В настройках менеджера расширений переключите с "reviewed" на "all" и обновите Templavoila (и другие расширения)
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 26.06.2009, 16:29   #3
Smith
Новенький
 
Регистрация: 10.05.2007
Сообщений: 26
По умолчанию

Разобрался
Оказывается структура 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   #4
Smith
Новенький
 
Регистрация: 10.05.2007
Сообщений: 26
По умолчанию

В предыдущем посте было описано решение не той проблемы.

Ошибка, из-за которой создавалась тема, была решена явным указанием кодировки 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 .
Smith вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория