Форумы / National / Russian / Модули и плагины / Ckeditor and Ajax

Дополнения к плагину CKeditor

Dr2005alex
#1 25.07.2014 19:17

Привет всем.

Давненько меня мучает вопрос.. почему сделали к примеру переход в модуле PM через ajax но не сделали коррекцию для CKeditor. А ведь он не запускается при переходе через ajax на страницу добавления сообщения. Все это потому, что у нас подключение всех скриптов идет в footer. Соответственно файлы редактора просто тупо не подгружаются.

Как вариант предлагаю создать файл в плагине к примеру ckeditor.ajax.php с примерно таким собержимым:

<?php
/* ====================
[BEGIN_COT_EXT]
Hooks=pm.send.tags,pm.tags
[END_COT_EXT]
==================== */

defined('COT_CODE') or die('Wrong URL');

	if ($cot_textarea_count > 0)
	{
		if (is_array($cot_plugins['editor']))
		{
			$parser = !empty($sys['parser']) ? $sys['parser'] : $cfg['parser'];
			$editor = $cfg['plugin'][$parser]['editor'];
			foreach ($cot_plugins['editor'] as $k)
			{
				if ($k['pl_code'] == $editor && cot_auth('plug', $k['pl_code'], 'R'))
				{
					include $cfg['plugins_dir'] . '/' . $k['pl_file'];
                                        echo $out['footer_rc'];
					break;
				}
			}
		}
	}

Ну а в поле hook перечислить все теги в которых необходимо подключать редактор. (если там есть поддержка работы через ajax)

Я для теста пока взял модуль PM.

Что думаете по этому поводу?

WebKaa.ru - Cotonti Relax
Izhver
#2 04.08.2014 07:42

Наблюдаю проблему после перезда на новых хост.

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

Dr2005alex
#3 07.08.2014 15:50

А в чем проблема? Вот у меня на моем сайте была похожая ситуация.... редактор отказывался работать под linux, а из под windows работал, оказалось - косяк при заливке по ftp. Попробуй перезалить.

WebKaa.ru - Cotonti Relax
Macik
#4 11.08.2014 00:28
#39639 Dr2005alex:

Давненько меня мучает вопрос.. почему сделали к примеру переход в модуле PM через ajax но не сделали коррекцию для CKeditor. А ведь он не запускается при переходе через ajax на страницу добавления сообщения.

Не смог повторить. Вроде везде аякс включен, в том числе и в PM модуле... Но все равно перегружает всю страницу (если речь идет о /pm, /pm?m=send).

Все это потому, что у нас подключение всех скриптов идет в footer. Соответственно файлы редактора просто тупо не подгружаются.

Как вариант предлагаю создать файл в плагине к примеру ckeditor.ajax.php с примерно таким собержимым:

Что думаете по этому поводу?

Как вариант всегда грузить файлы редактора на главной странице PM модуля.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Dr2005alex
#5 11.08.2014 07:36

Вариант для голого кота подгружать код вроде норма, но если использовать загрузку страниц черзез ajax то появляются ошибки в консоле от самого редактора (Типа редактор уже создан и многое другое) + если подгружать инфу через ajax на страницу где редактора по смысло кота нет, то и кода js редактора тоже нет. отсюда и проблема. я сейчас тестирую обновленный вариант инициализации кода редактора у себя на сайте "мой котонти" + подгрузка кода как описано выше. Пока полет нормальный и проблем при ajax подгрузке не обнаруживаю. В данный момент тестирую на модуле pm и комментах. Думаю в скором времени предложу на рассмотрение и модернизацию.

WebKaa.ru - Cotonti Relax
Macik
#6 18.09.2014 09:12

Алекс я залил на ГитХаб 2 фикса для модуля PM. Они в частности, решают эту проблему — в трекере она была под номером #1027. Посмотри. Использовал как раз предложенный тобой механизм, только не в отдельном файле, а прямо в текущем коде для удобства проверок переменных.

Работает с CKEditor и Markitup. Но не идеально, т.к. механизм запуска CKEditor (файл `ckeditor.default.set.js`), прописывает себя в ф-ю `ajaxSuccessHandlers`, тем самым после каждой AJAX подгрузки пятыется по второму разу себя запустить (о чем в консоле кидает Exception). На общем процессе вроде не отражается.

С `Markitup` таких проблем не замечено.

Попутно поправил механизм цитированияя открытого сообщения (по кнопке «Quote»). Ранее он был заточен только под markitup. Еще обнаружились баги в `RC` файлах основных редакторов, при которых они перезаписывали ресурсные строки друг друга даже если не использовались в текущий момент.

Для малопопулярных редакторов, таких как `cleditor` и `epiceditor` ковыряться не стал (сходу по аналогичной схеме они не заработали). Выход был найден простой — если используются эти редакторы отключаем AJAX в PM модуле.

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F