ссылка на вставку видео 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);

Проблема с визуальным редактором (livestreet 2.0)

Проблема в том, что переключив на редактор новостей на TinyMCE появилась проблема.

Окно редактора растянулось на всю длинную статью и не удобно выделять гдето текст потом подниматься наверх, нажимать на кнопку «В» потом оять скролить текст вниз и т.д.


как задать размер высоты визуальному окошку?

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

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

tinymce в комментариях при изменении dom пропадает возможность ввода текста

Всем привет. Может быть кто-то сталкивался или знает в какую сторону копать, подскажите…
На сколько я понимаю, на сайте используется родной функционал комментариев от livestreet.
Есть два варианта работы комментариев:
1. (стабильный) Загружается страница вместе с кнопкой «оставить комментарий». На кнопке висит обработчик — ls.comments.toggleCommentForm(0); Который отправляет к нулевому комментарию по id (отдельно созданный статический блок). Кликаю на кнопку — появляется tinymce, в той конфигурации, что заявлена и все работает. Кликаю на кнопку «ответить» под любым комментарием(ls.comments.toggleCommentForm(id);) — все работает. Текстовое поле перепрыгивает под комментарий.
2. (то что пытаюсь реализовать) загружается страница. В конце своего js указываю вот так:
document.addEventListener("DOMContentLoaded", function(event) {
    ls.comments.toggleCommentForm(0);
});

Если указывать в $(document).ready(); то tinymce загружается в какой-то дефолтной конфигурации, не той, что мне нужно.
Дальше я могу оставить коммент, всё работает, но как только я прячу текстовое поле через
ls.comments.toggleCommentForm(0);

Или пытаюсь «ответить» с ls.comments.toggleCommentForm(id); текстовое поле прыгает и после этого пропадает возможность вводить текст. При клике на кнопки текстового редактора в js появляется ошибка, не может найти ноду. iframe есть, но body пустое и без классов. За счёт чего такое может происходить?

Буду благодарен за любую помощь.

Подключение Tinymce для описания к фото в фотосете

В /classes/actions/ActionPhotoset.class.php. Добавил обработку $oPhoto->setDescription через парсер:

            if ($oPhoto->getTopicId()) {
                // проверяем права на топик
                if ($oTopic=$this->Topic_GetTopicById($oPhoto->getTopicId()) and $this->ACL_IsAllowEditTopic($oTopic,$this->oUserCurrent)) {
                    $oPhoto->setDescription($this->Text_Parser(getRequestStr('text')));
                    $this->Topic_updateTopicPhoto($oPhoto);
                }
            } else {
                $oPhoto->setDescription($this->Text_Parser(getRequestStr('text')));
                $this->Topic_updateTopicPhoto($oPhoto);
            }



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

Публикация изображений с увеличением по клику

Пользователи жалуются, а потому вопрос. Был тут подобный плагин для версий 0.4 и 0.5, но для 1.0 ничего не вижу.

А вопрос прост. Сейчас если мы загружаем изображение, оно публикуется в топике в виде img src.
Вопрос — а можно ли сделать так, чтобы при публикации большого изображения оно превращалось в конструкцию с изображением нормального размера, а по клику на него во всплывающем окне открывалось большое?
Может быть это можно более-менее легко сделать через какой-то плагин к tinymce?

Редактор 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')
			),			
		),
	),
);


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

Не работает Ctrl+Enter в TinyMCE

Здравствуйте.
Интересный факт: поддержка Ctrl+Enter УЖЕ есть в TinyMCE:

\engine\lib\internal\template\js\settings.js:125
setup : function(ed) {
				// Display an alert onclick
				ed.onKeyPress.add(function(ed, e) {
					key = e.keyCode || e.which;
					if(e.ctrlKey && (key == 13)) {
						$('#comment-button-submit').click();
						return false;
					}
				});
			}


Но он не работает! При этом, кнопка добавления имеет правильный id, всё остальное сходится. Но при этом — нулевой результат. Что делать — ума не приложу.
LS 1.0.3, проверил баг на 2-х сайтах.

UPDATE:
Замена ctrlKey на shiftKey работает (с шифтом всё нормально). Почему беда с Ctrl — не понимаю.
На всякий случай уточню: клавиатуры тоже разные пробовал) И не только я эту проблему вижу.

Отправка комментов по Ctrl+Enter в tinymce

Друзья, добрый вечер. На одном из проектов изспользую tinymce, так вот возник вопрос — как реализовать отправку комментариев через ctrl+enter. В Инете нашел пару нерабочих вариантов. Возможно, кто-то уже сталкивался.