Перенос строки в Tiny MCE

В LS есть замечательная фукнция — использовать редактор Tiny MCE, но, к сожелению, не все тонкости учтены.

При включении редактора и написании текста абзацами (тег «p») автоматически добавляется перенос строки после каждого абзаца. На выходе имеем вот такую конструкцию

<p>текст</p> br>
<p>текст</p> br>
<p>текст</p> br>
<p>текст</p> br>

Как быть? Казалось бы все просто…
Находим в файле engine/modules/text/text.class.php строку
// Отключение авто-добавления 
		$this->oJevix->cfgSetAutoBrMode(true);

и меняем ее на
// Отключение авто-добавления 
		$this->oJevix->cfgSetAutoBrMode(false);

Тег
больше не ставится, НО он не ставится теперь и в комментариях, в которых нет редактора Tiny MCE…
Пишем коммента вида
Каждое
слово
с
новой
строки

а на странице с комментираем видим
Каждоесловосновойстроки


Как сделать, чтобы для комментов работала настройка $this->oJevix->cfgSetAutoBrMode(true);, а для всего остального $this->oJevix->cfgSetAutoBrMode(false);

В версии 0.3 пользовался вот этим способом livestreet.ru/blog/3268.html
В версии 0.4 файл \include\ajax\commentAdd.php отсутствует, а найти его аналог я не смог

Прошу помощи в решении этой проблеМММы

p.s.: тег
умышленно не закрыт в начале статьи т.к. при закрытии он пропадает… глюк? :)

11 комментариев

avatar
engine/modules/text/Text.class.php
добавить переменную
/**
	 * Тип текста типографа
	 *
	 * @var JevixType
	 */
	public $sJevixType = null;

дописать в настройку переносов
// Отключение авто-добавления 
		if($this->sJevixType == 'comment') {
			$this->oJevix->cfgSetAutoBrMode(true);
		}
		else {
			$this->oJevix->cfgSetAutoBrMode(false);
		}

дописать в начало функции
/**
	 * Парсит текст
	 *
	 * @param string $sText
	 */
	public function Parser($sText, $sType = false) {
		$this->sJevixType = $sType;
		$this->JevixConfig();

classes/actions/ActionBlog.class.php
дописать второй параметр в функцию
/**
		* Проверяем текст комментария
		*/
		$sText=$this->Text_Parser(getRequest('comment_text'), 'comment');


как побороть предпросмотр комментариев не знаю, юзается одна функция для всех предпросмотров
include/ajax/textPreview.php
avatar
более простой способ…
engine/modules/text/Text.class.php
public function Parser($sText) {
		if (Config::Get('view.tinymce')) {
			$this->oJevix->cfgSetAutoBrMode(!preg_match('/^<p>(.+)<\/p>$/isu', $sText));
		}

если включен tiny и текст начинается и заканчивается абзацем, которые ставит tiny, значит вырубаем растоновку переносов :D но правильность работы нада тестить
avatar
Спасибо большое :)
Этот вариант работает
avatar
if (Config::Get('view.tinymce')) {
	$this->oJevix->cfgSetAutoBrMode(!preg_match('/^<p([^>]*)>(.+)<\/p>$/isu', $sText));
}

хуже не будет :D
avatar
Последний вариант не пробовал, а от предыдущего все-же отказался в пользу самого первого, где превьюшка коммента не работает.
В предыдущем варианте в общем списке статей добавляется тег
, а в статье и комментах работает так, как хотелось бы
avatar
Блин, в предыдущем сообщении вырезался тег. В общем списке топиков (листинге) все еще добавляется тег BR
avatar
$this->oJevix->cfgSetAutoBrMode(!preg_match('/<p([^>]*)>|<\/p>/isu', $sText));
avatar
Спасибо, теперь работает корректно везде
avatar
спасибо, полезная доработка. почему бы не включить ее в установку?
комментарий был удален
avatar
Спасибо за решение проблемы тут, выложил общий список изменений для корректной настройки Tiny MCE тут livestreet.ru/blog/addons/4829.html
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.