Устанавливаем WYSIWYG редактор. TinyMCE

Понедельник, 31 мая 2010 17:04

Устанавливаем WYSIWYG редактор. TinyMCE Так или иначе, но с HTML знакомы все пользователи сети Интернет. Благодаря своей простоте, этот язык разметки обрел большую популярность на просторах WWW; освоить же HTML-азы и создать веб-страничку под силу практически любому.

HTML-верстка – занятие отнюдь не занудное и неприятное, как может показаться на первый взгляд. Наоборот, оно начинает приносить некое эстетическое удовольствие – правда, при определенных навыках и средствах. Под средствами прежде всего подразумевается программное обеспечение.

ПО много и оно, конечно же, разнообразное. Когда заходит речь об используемом при HTML-верстке инструментарии, каждый придерживается определенной точки зрения. Кому-то удобно работать с такими профессиональными и полнофункциональными продуктами, как Macromedia Dreamweaver или Microsoft FrontPage. Другой останавливается на свободных, некоммерческих продуктах типа NVU, объясняя свой выбор бесплатностью и незагруженностью программы. Есть и такие виртуозы, которые для создания HTML-страниц предпочитают пользоваться … «Блокнотом». По большому счету, это не очень-то и удивительно, ведь многие HTML-редакторы оставляют после себя много «мусора» – пометок, комментариев, пустых контейнеров и т. п. Тем не менее, вполне очевидно, что вариант с Notepad’ом совсем нерационален по соотношению время/результат.

Вышеперечисленные продукты (кроме «Блокнота» 🙂 принято относить к категории WYSIWYG-редакторов. (Английская аббревиатура WYSIWYG – «What You See Is What You Get» – переводится как «что видишь, то и получаешь».) Работа в таких программах очень наглядна, о чем свидетельствует даже само название. Вы всегда видите результаты и в любой момент можете внести любые коррективы, причем и исходный код, и дизайн доступны для правки. В режиме реального времени ваши действия внутри редактора (манипуляции мышью, нажатия на кнопки и т. д.) особым образом трансформируются в HTML. Верстка внутри WYSIWYG относительно проста и удобна. А ведь эти и многие другие факторы в обязательном порядке отразятся на качестве и скорости работы, не так ли?

Но HTML-редакторы далеко не всегда под рукой. Это незадача, если вы хотите опубликовать достаточно объемный материал в аккуратном, читабельном виде на своем сайте, находясь, так сказать, «вне лаборатории». Пускай даже это будете не вы, а другие содержатели, посетители ресурса. В таком случае, для решения проблемы можно воспользоваться одним из браузерных WYSIWYG-редакторов. Сегодня и в дальнейшем, читатель, мы будем говорить преимущественно о них. Знакомьтесь, первый участник –
TinyMCE

Разработчик: Moxiecode Systems AB
Лицензия: LGPL
Сайт поддержки: _www.tinymce.moxiecode.com
Совместимость с браузерами: MSIE 5 – 6, Mozilla 1.7.x, Firefox 1.0.x – 1.5b2, Opera 9 Preview (данные приведены согласно документации разработчиков и относятся к ОС Windows XP. Со значительной степенью вероятности можно судить, что TinyMCE стабильно работает в браузерах более поздних и некоторых ранних версий, а также в других ОС семейства Windows)
Размер дистрибутива: 0,5 MB / 2,5 MB

Обзор начнем с самого известного WYSIWYG-редактора. Конечно, вы можете и не загружать полумегабайтный архив с сайта разработчиков, ведь TinyMCE легко найти в составе многих CMS; но не исключено, что это будет устаревшая и весьма облегченная версия пакета. Поэтому мой совет – лучше скачайте оригинальный комплект: в нем присутствует подробная документация и полный набор plugin’ов.
Рассматриваемая мной версия редактора – 2.0.6.1 – видимо, по ошибке, датирована 4 маем 2005 года (в changelog’е имеются и более ранние релизы, вышедшие, однако, в 2006 году). А, впрочем, это и не столь важно.

Архив TinyMCE содержит три каталога:

docs – англоязычная документация
examples – примеры работы WYSIWYG
jscripts – исполняемые файлы редактора: скрипты, плагины, темы и утилиты

Из справочной информации наибольший интерес представляет инструкция по установке (/docs/installing.htm).
Установка

Исходя из содержания руководства, инсталляция TinyMCE осуществляется примерно следующим образом. Директория /jscript со всеми вложенными документами переносится, например, в папку edit, там же создается файл edit.html. Он будет отвечать за инициализацию и вывод WYSIWYG-редактора в окне браузера.

— edit.htm –

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
TinyMCE
<script src="”./tiny_mce/tiny_mce.js”" type="“text/javascript”"></script> <script type="“text/javascript”">// <![CDATA[
//инициализируем скрипт tiny_mce.js
tinyMCE.init({

});
// ]]></script>

<form method="“post”"> //команда на создание формы (области) ввода текста, где, фактически, cols – длина, rows – ширина
<textarea cols="“93”" rows="“25”" name="“content”"> </textarea>



- edit.htm –

К edit.html мы скоро вернемся, а пока опять обратимся к документации. В конце страницы docs/installing.html вы могли заметить четыре ссылки на примеры интеграции. Так, Example 00 отображает редактор с простым интерфейсом (Example 00), Example 01 (Advanced Theme) – со сложным, «продвинутым», Example 02 приводит к еще более усложненной теме и т. д. Это значит, что, в зависмости от способа инициализации, TinyMCE по-определенному «перестраивается» и меняет свой вид. А теперь посмотрите исходный код одного из примеров, и вы поймете, каким образом наш WYSIWYG конфигурируется.

(Для показательности как пример приведу Example 02).
//Вначале инициализируется скрипт:
tinyMCE.init({
//далее определяются метод (mode) и тема:
<code>
mode : “textareas”,
theme: “advanced”,
, подгружаются плагины и, согласно названию темы, изображения кнопок, сепараторы и пр. Затем скрипт завершает загрузку:
});
&lt;/script&gt;

Троеточие в edit.html поставлено неспроста. Сейчас вы можете сами сконфигурировать загрузку TinyMCE, вставив вместо трех точек фрагмент из примера и удалив, скажем, ненужные плагины и кнопки. Правда пока, для начала, лучше оставить заготовленный шаблон инициализации.
Откройте созданный файл в баузере. Не беда, если кроме текстового поля ничего не отобразится. Просто еще раз проверьте содержание edit.html, точнее, правильность пути к tiny_mce/tiny_mce.js.
src=”./tiny_mce/tiny_mce.js”

Точка перед слэшем ставится потому, что скрипт tiny_mce.js по уровню располагается ниже html-файла. Будь наоборот – поставили бы две точки (как в примерах Example 00 – 03).
Наводим порядок

Перед началом работы не помешает довести TinyMCE до лада, подправив некоторые настройки, касающиеся преимущественно интерфейса редактора.

Его оформление напоминает внешний вид Microsoft Office: красиво и удобно. Но в то же время скрипты, на которых и базируется WYSIWYG, потребляют трафик и периодически загружают ресурсы. Есть одно средство, которое позволяет сократить время за- и нагрузки TinyMCE в несколько раз – это скрипт TinyMCE Compressor PHP (4 KB, доступен на сайте разработчика). Благодаря gzip-архивации, компрессор сжимает все java-скрипты в один файл и разделяет запросы TinyMCE на несколько потоков, чем и достигается прирост быстродействия. Для подключения скрипта необходимо скопировать его в каталог расположения tiny_mce.js, а в edit.html изменить название файла с «tiny_mce.js» на «tiny_mce_gzip.php». Учтите, что с этого момента WYSIWYG-редактор не будет работать вне среды виртуального сервера. PHP, как-никак!

TinyMCE не помешала бы русификация. Вообще, языковые модули редактора разбросаны по разным местам: в папке langs, в плагинах – plugins и в темах – themes/advanced, themes/simple. Следственно, для нормальной русификации необходимо наличие файлов предпочитаемого языка во всех перечисленных местах.

Стандартный комплект WYSIWYG содержит лишь английский языковые файлы, остальные language-packs есть на . Однако скачать файлы и разместить их в указанных местах недостаточно. В коде инициализации (edit.html) добавьте строчку «language : “ru“» (ковычки опускаются), не забыв в предыдущей строке поставить запятую (!). Для корректного отображения русских символов в браузере вам, возможно, придется сменить кодировку на win-1251, KOI8-R или UTF-8.

Из области косметических изменений. Во все том же edit.html удалите строчку
theme_advanced_path_location : “bottom”

Мы, к сведению, убрали совершенно лишнюю «строку состояния», отображающую путь к теме оформления. Поле редактирования (textarea) возможно увеличить еще больше – за это отвечают параметры cols и rows.

И последнее. В TinyMCE имеется кнопка «Помощь», которая вызывает окно со справочным содержанием. Жаль, что вторая вкладка этого диалога приводит на страницу «Not Found». Исправляется данный недостаток командой
docs_language : “en”
Обзор плагинов

Любой доскональный WISYWIG-редактор обладает такой «фишкой», как модульность, то есть расширяемость. TinyMCE в этом плане не стал исключением, в его составе – более 20 плагинов, разнящихся по степени важности и функционалу. Каждый модуль поддается тонкой настройке – благо, js-html-css-код к этому располагает :). Дополнительный интерес вызывают исходные закомментированные файлы java-скриптов (editor_plugin_src.js).

Подключение и конфигурирование плагинов не составит собой равно никакой сложности, если вы обратитесь к разделу «Plugins Reference» (/docs/reference_plugins.html) документации. Самое важное (установка, опции, примеры инициализации) – там. (Обратите внимание: в Initialization Example плагина Advimage строку «plugins : “preview“» следует читать как «“plugins : “ advimage “». Это одна из подобных ошибок документации.)

Advhr – добавление горизонтального разделителя. В Mozilla FF плагин не действует, а IE и Opera отказываются показывать диалог параметров вставки (ширина, размер, с тенью или без тени)

Advimage – вставка изображения с расширенными (пускай даже «стандартно расширенными») возможностями. Полезную роль здесь исполняет окно предварительного просмотра: есть уверенность, что указанный к картинке путь правильный. Размер изображения, если вы оставили соответствующие поля пустыми, определяется автоматически.

Advlink – плагин для создания ссылок.

Contextmenu – вызывает контексное меню редактора. Кому не нужно –смело отключайте. Хотя наверняка будут проблемы с вставкой таблиц

Emotions – плагин, упрощающий вставку смайлов. Коллекция по умолчанию заимствована у Mozilla Thunderbird. И, кстати, никто не запрещает вам использовать другие смайлы, например, из Opera (рекомендую :). Сама же таблица с изображениями легко модифицируется путем редактирования файла emotions.htm

Flash – на панели инструментов TinyMC появляется кнопка вставки flash-ролика. Опции добавления незамысловатые: указываются путь к файлу (абсолютный автоматически преобразуется в относительный) и размер объекта

Style – плагин, предназначенный для настройки стиля страницы. Открыв диалог «Edit css style», вы можете сделать то самое, что, в принципе, легче и наглядней написать самостоятельно – в отдельном css-файле, а затем добавить в загрузку редактора как стиль по умолчанию:
content_css : “

Layer – менеджер работы со слоями в WYSIWYG

Iespell – спеллчекер, у которого, к сожалению, преимуществ меньше, чем недостатков. Во-первых, плагин неработоспособен без утилиты IeSpell, которую, в свою очередь, нужно скачать с www.iespell.com/download.php (2 MB). Во-вторых, Iespell проверяет только английскую орфографию. И хотя русские *.doc-словари возможно подключить как дополнительные, никакой функции они исполнять не будут. Наконец, третье: каков смысл использовать спеллчекер, работающий в IE и тормозящий его 🙂 ?..

Insertdatetime – две кнопки на панели инструментов: «Вставить дату» и «Вставить время». Опции следующие:

plugin_insertdate_dateFormat : “%Y-%m-%d”,
plugin_insertdate_timeFormat : “%H:%M:%S”

Остальные переменные описаны в документации

Paste – вставка текста из Word’а без потери форматирования. Однако не совсем понятно, почему данная функция срабатывает через комбинацию клавиш Ctrl+V, а через диалоговое окно («Вставить из Word») форматирование теряется. Также мною замечено, что плагин Paste ведет себя неправильно, если в инициализации имеется строка content_css : «…». Закомментируйте ее – «//»

Preview – плагин предварительного просмотра. В TinyMCE превью появляется как popup – всплывающее окно, размеры которого определяются параметрами в инициализации:

plugin_preview_width : “600”,
plugin_preview_height : “400”

Еще одна опция –

plugin_preview_pageurl : “../../plugins/preview/example.html”

С ее помощью можно изменить стиль окна просмотра, указав адрес HTML-странички с определенным вами оформлением

Print – стандартная для HTML-редактора возможность – печать содержимого страницы

Save и Autosave – функция (авто)сохранения, работает исключительно в TinyMCE, интегрированном с CMS: там HTML-код передается напрямую в базу данных

Searchreplace – плагин с возможностью поиска и замены текста

Table – мененеджер таблиц в TinyMCE. Возможностей плагина вполне достаточно (см. /docs/plugin_table.html), однако, на мой взгляд, редактировать таблицы через веб-интерфейс неудобно. Советую вам предопределить table-, table_cell- и table_row- стили в инициализации

Zoom (MSIE5.5+) – добавляет на панель инструментов выпадающее меню увеличения содержимого редактируемой области (вплоть до +250 %)

Directionality – облегчает верстку текста справа налево (актуально для некоторых иностранных языков)

Fullscreen – достаточно полезная функция, которая позволяет работать с TinyMCE в полноэкранном режиме. В отличие от аналогичной опции браузера, вместе с окном изменяется размер области редактирования. Одна проблема: всплывающее окно просмотра отображает текст в кодировке iso-8859-1, искажая русифицированный интерфейс редактора до неузнаваемости. Выход из такого положения – в файле fullscreen.htm плагина найти и заменить charset=iso-8859-1 кодировкой используемого WYSIWYG языка. И не поленитесь обновить содержимое окна браузера.

Fullpage – отличный в плане опциональности плагин, работающий, к сожалению, только в MSIE. Заголовок, описание, автор документа, настройки шрифтов, цветов, путь к файлу стилевого оформления и другое – настроек действительно много. Немаловажно, что настройки по умолчанию вы можете прописать в скрипте загрузке TinyMCE:

//Кодировка документа по умолчанию
fullpage_default_encoding : ‘utf-8’,
//Языковой код документа
fullpage_default_langcode : ‘ru’,
//Заголовок документа
fullpage_default_title : “Document title”

Inlinepopups – сомнительного предназначения plugin для поклонников «ретро». Заменяет верхнюю рамку окна на другую, упрощенную (окна с такими рамками браузер не посчитает за всплывающие). Носит пометку «experimental» и в Firefox работает нестабильно.
Заключение

Как видите, TinyMCE – это функциональный, гибкий в настройке WYSIWYG-редактор с возможностью русификации и и смены оформления. Настраиваемы и плагины, которых только официальных – немалое количество. Что не удивительно, на «Тини» давно обратили внимание разработчики большинства популярных CMS: Mambo, Drupal, WordPress, … TinyMCE либо входит в их состав по умолчанию, либо доступен как модуль. Вопросов с интеграцией не будет – это точно.

Тем не менее, есть не один WYSIWYG редактор, который может составить TinyMCE альтернативу. Например, тот же FCKeditor (www.fckeditor.net). О нем и пойдет разговор в продолжении.



Вы можете оставить отзыв или трекбек со своего сайта.

5 комментариев на «Устанавливаем WYSIWYG редактор. TinyMCE»

  1. Falcon пишет:

    04 Фев 2011 в 10:57

    Спасибо за просвещение, про нагрузку и решение проблемы очень познавательно было! 
    Теперь практика!

  2. Дима пишет:

    04 Фев 2011 в 12:40

    Проблема с редактором в плане ввода информации: в редакторе всё прописывается на русском языке, а вывод в браузере(F5) на совершенно не понятном, языке какие-то каракули.

    Помогите решить вопрос, пожалуйста!

  3. iZerO пишет:

    04 Фев 2011 в 23:45

    Дмитрий. Смотри кодировку сайта, что у вас написано в

    meta http-equiv=»Content-Type» content=»text/html; charset=windows-1251

    никаких проблем не было. также смотри в настройках браузера, возможно у вас для сайт стоит не та кодировка.

    Так же проверьте

    ullpage_default_encoding : ‘windows-1251’,

  4. Максим пишет:

    19 Мар 2012 в 17:29

    Здравствуйте. У меня возникла проблема с редактором. У Хроме все работает нормально, а вот у ФФ не могу писать в некоторых редакторах, если их много на странице. И еще фишка в том, что то что я пишу, его не видно, но когда нажать Ctrl+A и скопировать, а потом куда-то вставить, то текст вставляется. Что говорит о том, что текст почему-то скрывается. Почему так?

  5. Иван пишет:

    19 Сен 2013 в 18:38

    И еще фишка в том, что то что я пишу, его не видно — не видит файл стилей.

Ваш отзыв