Автоматический перенос строк только при написании комментария

Параметр cfgSetAutoBrMode отвечает за автоматическую растановку переноса строк в тексте, но если в случае с добавлением топика с использованием TinyMCE от переносов лучше отказатся, то в случае с добавлением комментариев без них не обойтись.
Если cfgSetAutoBrMode принимает значение true, то Jevix автоматически расставляет Br/ в конце каждой строки (заменяет символ окончания строки \n). Это приводит к несколько неожиданным результатам при верстке топиков — лишние переносы возникают повсюду (после заголовков, списков, строк таблицы и т.д.)

После изменения параметра cfgSetAutoBrMode (classes\modules\sys_text\Text.class.php) на false, и некоторой доработки настроек TinyMCE (\templates\skin\Имя шаблона\actions\ActionTopic\add.tpl) удалось добиться красивой верстки топика, без лишних Br, и с параграфами вместо простого переноса строки, но возникли проблемы с добавлением комментариев.

Дело в том, что при cfgSetAutoBrMode(false), парсер отказывается заменять символ конца строки (\n) на BR в комментариях. В итоге текст комментария не возможно разбить на абзацы.

Я был уверен, что существует простой способ победить эту проблему, и поэтому потратил на его поиск половину сегодняшнего дня. Так и не найдя красивого решения, пришлось грубо вторгаться в код:
Нашел в \include\ajax\commentAdd.php, место где вызывается парсер комментария
$sText=$oEngine->Text_Parser($aParams['comment_text']);


Парсеру нужно было сообщить, что он обрабатывает именно комментарий, не нашел ничего лучше чем добавить флаг
Заменил на:
$sText=$oEngine->Text_Parser($aParams['comment_text'],"comment");


Далее в classes\modules\sys_text\Text.class.php, нашел функцию парсера
public function Parser($sText) {

и добавил в ее определение переменную $type хранящую флаг
public function Parser($sText,$type) {

и в самое начало функции проверку:

if($type=="comment") 
$this->oJevix->cfgSetAutoBrMode(true);
else
$this->oJevix->cfgSetAutoBrMode(false);

Таким образом при парсинге комментария расстановка переноса строки разрешена, а во всех остальных случаях запрещена

Очень не хотелось выходить к людям с пустыми вопросами, сам не люблю на такие отвечать. Но теперь надеюсь кто-нибудь объяснит, как это должно делатся правильно.

1 комментарий

avatar
Для 0.4 версии не подскажите как сделать аналогичное? (сам не смог)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.