Редактор PHP с поддержкой LS

Есть еще разработчки? Подскажите пожалуйста, а каким редактором PHP вы пользуетесь, чтобы нормально работало перемещение по коду?

те чтобы в функции

public function GetUsersByDateRegister($iLimit=20)
    {
        if (false === ($data = $this->Cache_Get("user_date_register_{$iLimit}")))
        {
            $data = $this->oMapper->GetUsersByDateRegister($iLimit);
            $this->Cache_Set($data, "user_date_register_{$iLimit}", array("user_new"), 60 * 60 * 24 * 3);
        }

        $data = $this->GetUsersAdditionalData($data);
        return $data;
    }


можно было кликнуть по Cache_Get и попасть в нужное место?

WYSIWYG в редакторе

Добрый вечер.

Есть ли возможность сделать так, чтобы в редакторе текста, где вот я сейчас набирают текст, было визуальное отображение, так сказать WYSIWYG.

Чтобы текст, который я печатаю, например, сразу же отображался курсивом, вместо того, чтобы в тексте появлялись теги.

<em>курсивный текст</em>


Я нашел только плагин «Редактирование и TinyMCE в комментариях», но он только для комментариев и до невозможности устарел.

ссылка на вставку видео tinyMCE

Доброго времени всем!

Долго шарился в просторах интернета, чтобы найти более менее удобный для ОБЫЧНЫХ пользователей редактор. Пытался интегрировать tinyMCE 4 и ckeditor старый. Первый полу рабочий оказался, а второй еще старее стандартного.
На ЛС сайте так и не нашел не одного решения на самые актуальные проблема с редактором. Как так?? 2017 год заканчивается как бы.
В общем интегрировать новый редактор желание пропало. Прошу помощи в следующем:
Как сменить тип ссылки с HTML на обычный URL(с адресной строки) при вставке видео в стандартном tinyMCE на LS 1.0.3?
Запустил тестом сайт, и 40% пользователей понятия не имеют что такое HTML ссылка с видео.

Заранее благодарю.

Код:

public function VideoParser($sText) {
		/**
		 * youtube.com
		 */
		$sText = preg_replace('/<video>http:\/\/(?:www\.|)youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)(&.+)?<\/video>/Ui', '<iframe width="560" height="315" src="http://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>', $sText);

Проблема с редактором - толкает сторонний код

Суть проста — в топик и в комментарии толкает инородный код (скрин ниже). Проблема в инъекции в браузер (конкретно у меня — Opera). Однако подобное может быть у кого угодно. Посему вопрос — как это ликвидировать? Наверняка решение уже есть, но я его не нашел через поиск. Код видно только если открываешь HTML-код в редакторе, что, само собой, ни один блогер не делает, а то и не знает зачем оно.

Как запретить некоторые теги в jevix для определенных экшенов?

Здраствуйте. Скорее всего, это вопрос уже был, но по тегу «jevix» я ответа не нашел. Точнее, я узнал как добавлять теги, но не как запрещать.

Я заметил, что livestreet обрабатывает текст во всех полях, включая поле «о себе» в профиле. Я, конечно, не против, но хотел бы оставить только стандартные теги strong, i, u и т.д… запретив пользователям вставлять туда видео и изображения (смотрите мой профиль Quidmy ), а в случае с второй версией туда вообще можно вставить галереи, которые потом превращаются в обработанный код


Подскажите пожалуйста, как запретить часть тегов для некоторых полей?

Редактор tinymce и LS 1.0.3

Приветствую всех. Очень нужна помощь опытных пользователей. Подключен редактор из коробки, шаблон renews, версия LS 1.0.3.
Суть проблемы:
Когда формируешь пост через tinymce и ставишь картинку в первом абзаце по левой стороне картинка, то пост публикуется пустым… Заходишь в редактировать, так есть картинка и кусок текста, если нажать опубликовать, то это опубликуется.
Как вариант перед публикацией можно уже в редакторе сформированный пост, через кнопку HTML открыть и там перед картинкой поставить
<p>неразрывный пробел</p>
и оно публикует нормально, но это не пояснить простым пользователям…

Вот код моего jevix.php

<?php

return array(
	'default' => array(
		// Разрешённые теги
		'cfgAllowTags' => array(
			// вызов метода с параметрами
			array(
				array('ls','cut','a', 'img', 'i', 'b', 'u', 's', 'video', 'em',  'strong', 'nobr', 'li', 'ol', 'ul', 'sup', 'abbr', 'sub', 'acronym', 'h4', 'h5', 'h6', 'br', 'hr', 'pre', 'code', 'object', 'param', 'embed', 'blockquote', 'iframe','table','th','tr','td', 'p'),
			),			
		),
		// Коротие теги типа
		'cfgSetTagShort' => array(
			array(
				array('br','img', 'hr', 'cut','ls')
			),
		),
		// Преформатированные теги
		'cfgSetTagPreformatted' => array(
			array(
				array('pre','code','video')
			),
		),
		// Разрешённые параметры тегов
		'cfgAllowTagParams' => array(
			// вызов метода
			array(
				'img',
				array('src', 'style'=> '#text', 'alt' => '#text', 'title', 'align' => array('right', 'left', 'center', 'middle'), 'width' => '#int', 'height' => '#int', 'hspace' => '#int', 'vspace' => '#int', 'class'=> array('image-center','image-left','image-right'))
			),
			// следующий вызов метода
			array(
				'a',
				array('title', 'href', 'rel' => '#text', 'name' => '#text', 'target' => array('_blank'))
			),
			// и т.д.
			array(
				'cut',
				array('name')
			),
			array(
				'object',
				array('width' => '#int', 'height' => '#int', 'data' => array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')), 'type' => '#text')
			),
			array(
				'param',
				array('name' => '#text', 'value' => '#text')
			),
			array(
				'embed',
				array('src' => array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')), 'type' => '#text','allowscriptaccess' => '#text', 'allowfullscreen' => '#text','width' => '#int', 'height' => '#int', 'flashvars'=> '#text', 'wmode'=> '#text')
			),
			array(
				'acronym',
				array('title')
			),
			array(
				'abbr',
				array('title')
			),
			array(
				'iframe',
				array('width' => '#int', 'height' => '#int', 'src' => array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')))
			),
			array(
				'ls',
				array('user'=>'#text')
			),
			array(
				'td',
				array('colspan'=>'#int','rowspan'=>'#int','align'=>array('right', 'left', 'center', 'justify'),'height'=>'#int','width'=>'#int')
			),
			array(
				'table',
				array('border'=>'#int','cellpadding'=>'#int','cellspacing'=>'#int','align'=>array('right', 'left', 'center'),'height'=>'#int','width'=>'#int')
			),
			array(
                 'p',
                 array('class'=>'#text', 'style'=>'#text', 'align'=> array('left','center','right','justify'))
            ),
		),
		// допустимые комбинации значений у параметров
		'cfgSetTagParamCombination' => array(
			array(
				'param',
				'name',
				array(
					'allowScriptAccess' => array(
						'value'=>array('sameDomain'),
					),
					'movie' => array(
						'value'=>array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')),
					),
					'align' => array(
						'value'=>array('bottom','middle','top','left','right'),
					),
					'base' => array(
						'value'=>true,
					),
					'bgcolor' => array(
						'value'=>true,
					),
					'border' => array(
						'value'=>true,
					),
					'devicefont' => array(
						'value'=>true,
					),
					'flashVars' => array(
						'value'=>true,
					),
					'hspace' => array(
						'value'=>true,
					),
					'quality' => array(
						'value'=>array('low','medium','high','autolow','autohigh','best'),
					),
					'salign' => array(
						'value'=>array('L','T','R','B','TL','TR','BL','BR'),
					),
					'scale' => array(
						'value'=>array('scale','showall','noborder','exactfit'),
					),
					'tabindex' => array(
						'value'=>true,
					),
					'title' => array(
						'value'=>true,
					),
					'type' => array(
						'value'=>true,
					),
					'vspace' => array(
						'value'=>true,
					),
					'wmode' => array(
						'value'=>array('window','opaque','transparent'),
					),
				),
				true, // Удалять тег, если нет основного значения параметра в списке комбинаций
			),
		),
		// Параметры тегов являющиеся обязательными
		'cfgSetTagParamsRequired' => array(
			array(
				'img',
				'src'
			),			
		),
		// Теги которые необходимо вырезать из текста вместе с контентом
		'cfgSetTagCutWithContent' => array(
			array(
				array('script')
			),
		),
		// Вложенные теги
		'cfgSetTagChilds' => array(
			array(
				'ul',
				array('li'),
				false,
				true
			),
			array(
				'ol',
				array('li'),
				false,
				true
			),
			array(
				'object',
				'param',
				false,
				true
			),
			array(
				'object',
				'embed',
				false,
				false
			),
			array(
				'table',
				array('tr'),
				false,
				true
			),
			array(
				'tr',
				array('td','th'),
				false,
				true
			),
		),
		// Если нужно оставлять пустые не короткие теги
		'cfgSetTagIsEmpty' => array(
			array(
				array('param','embed','a','iframe')
			),
		),
		// Не нужна авто-расстановка 
		'cfgSetTagNoAutoBr' => array(
			array(
				array('ul','ol','object','table','tr')
			)
		),
		// Теги с обязательными параметрами
		'cfgSetTagParamDefault' => array(
			array(
				'embed',
				'wmode',
				'opaque',
				true
			),
		),
		// Отключение авто-добавления 
		'cfgSetAutoBrMode' => array(
			array(
				false
			)
		),
		// Автозамена
		'cfgSetAutoReplace' => array(
			array(
				array('±', '©', '©', '®', '©', '©', '®'),
				array('±', '©', '©', '®', '©', '©', '®')
			)
		),
		// Список допустимых протоколов для ссылок
		'cfgSetLinkProtocolAllow' => array(
			array(
				array('http','https','ftp')
			)
		),
		'cfgSetTagNoTypography' => array(			
			array(
				array('code','video','object')
			),
		),
		// Теги, после которых необходимо пропускать одну пробельную строку
		'cfgSetTagBlockType' => array(
			array(
				array('h4','h5','h6','ol','ul','blockquote','pre','table','iframe')
			)
		),
		'cfgSetTagCallbackFull' => array(
			array(
				'ls',
				array('_this_','CallbackTagLs'),
			),
		),
	),
	
	// настройки для обработки текста в результатах поиска
	'search' => array(
		// Разрешённые теги
		'cfgAllowTags' => array(
			// вызов метода с параметрами
			array(
				array('span'),
			),			
		),
		// Разрешённые параметры тегов
		'cfgAllowTagParams' => array(
			array(
				'span',
				array('class' => '#text')
			),			
		),
	),
);


Подскажите куда копать…

Тире перед перед концом строки неправильно сохраняется. (РЕШЕНО)

Уже давно на сайте наблюдается такая проблема: если в тексте в конце строки стоит знак тире ("—"), то после сохранения текста редактор или jevix кушают конец строки и две строки слипаются. Мелочь, а не приятно, учитывая, что основной контент — стихотворный. Сейчас приходится после тире ставить пробел, а уже затем перевод строки. Кто-то может подсказать, как это вылечить?
Редактор — tyni МСЕ, пример с сайта:
Дантово озеро, Рейлевы острова — Не останавливай память, предвиденью не завидуй.
Решение найдено PSNet 'ом, под катом

Читать дальше →

Как можно решить проблему при редакции текста с картинками?

При редакции текста в редакторе TinyMce возникает проблема.
В редакторе текст с картинками редактируется отлично, а в предпросмотре и когда его выкладываешь, все «разлетается по разным сторонам». Скажите, на что обратить внимание при решении данной проблемы? Необходимо сделать, чтобы в редакторе, в предпросмотре и при публикации, было одинаково.

Буду благодарен за помощь и дельный совет.

Вот скриншоты:
В редакторе: clip2net.com/s/iHNqQe
В предпросмотре: clip2net.com/s/iHNrwl

Как грамотно убрать кнопки в редакторе.

Для моего проекта при создании топика и в комментариях не нужна панель редактора. Но при удалении так такового верстка становится «кривой».
Пожалуйста, подскажите как и где грамотно убрать кнопки в редакторе MarkiUP.