Explay и TinyMCE
При практическом применении Explay CMS возникла крайняя потребность сменить стандартный редактор (simpleEditor.js)
После не долгих раздумий выбор пал на TinyMCE. Также я решил сразу же подключить редактор картинок для загрузки, ресайзинга изображений на сервер. В качестве image manager я выбрал – Tinybrowser – бесплатный, ничего лишнего, имеет русскую локализацию. Так как в Explay CMS используется Jquery более правильно будет использовать jQuery package
Для того чтобы начать использовать TinyMCE в Вашей Explay CMS надо:
- Скачать TinyMCE с сайта производителя, на момент написания статьи это tinymce_3_2_7_jquery.zip. Там же Вы можете скачать нужный Вам ленг пак;
- Распаковать содержимое папки tinymce/jscripts/ в корень сайта, чтобы получилось вот такая иерархия – http://sitename.com/tiny_mce/tiny_mce.js
- Скачиваем редактор картинок Tinybrowser с сайта автора .
- Распаковываем и заливаем папку tinybrowser в папку plugins TinyMCE
- Скачиваем плагин к TinyMCE написанный мной, который добавляет кнопку «Читать далее» в панель инструментов. Принцип работы схож с тем что в WordPress (собственно оттуда я его и содрал). Единственное что наша кнопка добавяляет тег <cut/> и позволяет его редактировать по надобности.
Теперь нужно вносить изменения в темплейты Explay CMS
Находим и открываем файл /explay/templates/xsl/blogs/forms/posts.xsl
Заменяем
[xml]
<script type="text/javascript" src="{$baseURI}/js/simpleEditor.js" />
[/xml]
на
[xml]
<script type="text/javascript" src="{$baseURI}/tiny_mce/tiny_mce.js"></script>
<script src="{$baseURI}/tiny_mce/plugins/tinybrowser/tb_tinymce.js.php" type="text/javascript"></script>
<script type="text/javascript" src="{$baseURI}/tiny_mce/jquery.tinymce.js"></script>
[/xml]
Потом открываем /explay/templates/xsl/common/form.xsl
заменяем
[jscript]
<script type="text/javascript">
var <xsl:value-of select="$editorName" /> = new SimpleEditor;
</script>
[/jscript]
на
[jscript]
<script type="text/javascript">
$().ready(function() {
$(‘textarea#field_<xsl:value-of select="@id"/>’).tinymce({
script_url : ‘{$baseURI}/tiny_mce/tiny_mce.js’,
theme : "advanced",
plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,explay",
theme_advanced_buttons3 :"",
theme_advanced_buttons2 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,fontsizeselect,hr,removeformat|,sub,sup,|,media,fullscreen,|,explay_more",
theme_advanced_buttons1 : "bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
file_browser_callback : "tinyBrowser"
});
});
</script>
[/jscript]
Код
[xml]
<div class="simple_editor">
<a title="Выделить жирным" onclick="{$editorName}.insertTag (‘b’,null); this.blur();" href="javascript:void(0);"><img src="{$baseURI}/images/editor/b.png" alt="" /></a>
<a title="Выделить курсивом" onclick="{$editorName}.insertTag (‘i’,null); this.blur();" href="javascript:void(0);"><img src="{$baseURI}/images/editor/i.png" alt="" /></a>
<a title="Подчеркнуть" onclick="{$editorName}.insertTag (‘u’,null); this.blur();" href="javascript:void(0);"><img src="{$baseURI}/images/editor/u.png" alt="" /></a>
<a title="Зачеркнуть" onclick="{$editorName}.insertTag (‘s’,null); this.blur();" href="javascript:void(0);"><img src="{$baseURI}/images/editor/s.png" alt="" /></a>
<a title="Параграф" onclick="{$editorName}.insertTag (‘p’,null); this.blur();" href="javascript:void(0);"><img src="{$baseURI}/images/editor/p.png" alt="" /></a>
<a title="Цитата" onclick="{$editorName}.insertTag (‘blockquote’,null); this.blur();" href="javascript:void(0);"><img src="{$baseURI}/images/editor/blockquote.png" alt="" /></a>
<a title="Вставить ссылку" onclick="{$editorName}.insertLink (); this.blur();" href="javascript:void(0);"><img src="{$baseURI}/images/editor/link.png" alt="" /></a>
<a title="Вставить изображение" onclick="{$editorName}.insertImage (); this.blur();" href="javascript:void(0);"><img src="{$baseURI}/images/editor/image.png" alt="" /></a>
<!–a title="Вставить ссылку на пользователя" href="javascript:void(0);" onclick="{$editorName}.insertUserLink (); this.blur();"><img src="{$baseURI}/images/editor/user.png" mce_src="{$baseURI}/images/editor/user.png" alt="" /></a–>
<a title="Вставить видео" onclick="{$editorName}.insertVideo (); this.blur();" href="javascript:void(0);"><img src="{$baseURI}/images/editor/video.png" alt="" /></a>
</div>
[/xml]
Удаляем вовсе.
На этом все.
Также возможно понадобится настроить tinyBrowser.
Спасибо за внимание. Жду комментариев.
></script>
25 comments to “Explay и TinyMCE”
Ноябрь 17th, 2009 at 20:51
Ne rabotaet
Vse sdelal po vashej instrukcii – i ni4ego ne pojavolosj!
Ноябрь 17th, 2009 at 23:09
Я сделал так у себя – у меня работает.
Конечно я мог что то тривиальное забыть написать.
В общем при всех моих телепатических способностях я не могу представить что у вас не появилось.
Проверьте все пути. Проверьте что на той странице где вы ожидаете появления редактора в исходном коде присутствует мой код.
Посмотрите нет ли ошибок или предупреждений.
Используйте FireFox.
Ноябрь 18th, 2009 at 08:10
Получилось, но почему то на английском всё… и кнопка CUT не видна
Ноябрь 18th, 2009 at 10:04
кнопку кстати нашёл:)
Ноябрь 18th, 2009 at 23:42
Ну я признаться в коде не силен, но все перенес в точности как написано (проверял несколько раз)
На странице, где я ожидаю появления редактора, Ваш код присутствует. Ошибок и предупреждений нет.
Пробовал на Firefox, IE, Safari (на Мас) – результат один и тот-же!
Ноябрь 19th, 2009 at 00:01
Хотел посмотреть лично у вас на сайте но не нашел. Можете выложить адрес где я могу посмотреть форму. Других способов помочь вам не вижу.
Ноябрь 19th, 2009 at 10:16
Для русификации добавляем после строки
theme : "advanced",строкуlanguage:"ru"Ноябрь 19th, 2009 at 10:20
в файле /explay/templates/xsl/common/form.xsl
Ноябрь 19th, 2009 at 10:37
И ещё в плагине TinyBrowser в файле
tiny_mce\plugins\tinybrowser\config_tinybrowser.phpпоменять 37 строке язык на ru. Вроде всёНоябрь 19th, 2009 at 11:07
Мы это сделали
Ноябрь 21st, 2009 at 18:40
Все заработало … но не загружаются изображения. Подскажите, в чем может быть проблема? Заранее спасибо, вы очень помогли ))
Ноябрь 21st, 2009 at 18:51
Проверьте есть ли права записи на папку useruploads (поставьте 777). Если есть какие то сопутствующие ошибки то опубликуйте их здесь, так будет проще помочь.
Ноябрь 23rd, 2009 at 10:31
Попробуй выставить атрибуты папки useruploads и других в ней находящихся, которая лежит в корне сайта на 0777
Ноябрь 23rd, 2009 at 11:37
Для изображений TinyMCE генерит неверную ссылку, а сами изображения грузятся нормально в соответствующие папки. Где рыть пока не знаю…
Ноябрь 26th, 2009 at 20:42
У меня после вставки всего кода выскакивают эти ошибки:
oEditor_1 is not defined
http://localhost2/blogs/add/article
Line 162
jQuery(«textarea#field_47″).tinymce is not a function
http://localhost2/blogs/add/article
Line 156
Редактор не работает. Помогите пожалуйста.
Декабрь 7th, 2009 at 07:43
Если хотите чтобы при вставке картинок путь были абсолютными — измените эти настройки в config_tinybrowser.php:
$tinybrowser['link']['image'] = $tinybrowser['path']['image']; // Image links$tinybrowser['link']['media'] = $tinybrowser['path']['media']; // Media links
$tinybrowser['link']['file'] = $tinybrowser['path']['file']; // Other file links
на абсолютные пути
$tinybrowser['link']['image'] = 'http://www.yoursite.ru/useruploads/images/'; // Image links$tinybrowser['link']['media'] = 'http://www.yoursite.ru/useruploads/media/'; // Media links
$tinybrowser['link']['file'] = 'http://www.yoursite.ru/useruploads/files/';//Other file links
Декабрь 7th, 2009 at 10:14
Также можно добавить в параметры инициализации Tinymce параметр
convert_urls : false
Декабрь 8th, 2009 at 20:48
В какой файл вставлять
convert_urls : false?Декабрь 16th, 2009 at 22:09
...
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
file_browser_callback : "tinyBrowser",
convert_urls : false
это кусок параметров
Январь 5th, 2010 at 10:19
Спасибо, все заработало, вот только проблемма с форматированием. Нет обтекания текстом и т.д. В окне редактора все работает, но после сабмита – нет.
Не подскажите где проблемма может быть?
СПасибо
Январь 7th, 2010 at 13:02
tinymce наверно добавляет классы на объект который вы выравниваете.
посмотри код публикации который получается в результате.
Там должны привязываться Css классы вроде .alignright и .alignleft (нужно проверить какие именно)
Эти классы нужно добавить в CSS который подгружает в Explay (main.css или base.css)
Например
.alignleft {float:right}
.alignright {float:left}
Какие в точности классы там используются отпишусь позже.
Январь 9th, 2010 at 04:07
Доброго времени суток.
Сделал всё по инструкции, но получаю в результате то же, что и Yevgeny: ваш код на странице отображается, но редактора как такового нет. Проверил на Firefox 3.5.7 и IE 8.0.
Посмотреть можно здесь
Январь 9th, 2010 at 04:10
Ссылка не добавилась… Вот сайт, где я пробую Explay CMS: http://orda.tvorcov.net
Январь 11th, 2010 at 16:22
здравствуйте! Хочу (просто уже мечтаю) отключить преобразование текста типа http://www.blabla в ссылку при вставлении в этот редактор.
Сделала convert_urls : false,
уже везде где но есть – он у меня фалс, и все равно пишу ссылку, ставлю после нее ентер или пробел и она становиться активной.
Январь 11th, 2010 at 16:26
Я поняла! convert_urls : false не работает у меня только в IE 7, в мозиле и опере работает. Что же теперь для ИЕ сделать? А есть возможность вообще снести эту функцию? Мало ли где она сработает еще!