Визуальный редактор Joomla TinyMCE. Редактор Joomla с подсветкой синтаксиса кода CodeMirror. Визуальный редактор JoomlaTinyMCE - настройка

Визуальный редактор Joomla TinyMCE. Редактор Joomla с подсветкой синтаксиса кода CodeMirror. Визуальный редактор JoomlaTinyMCE - настройка

05.04.2019

Всем привет! Редактор Joomla понадобиться нам для написания статей сайта, вот три стандартных варианта:

  1. многофункциональный визуальный редактор TinyMCE Joomla;
  2. редактор с подсветкой синтаксиса кода CodeMirror;
  3. самый суровый способ работы с материалами — совсем без редактора.

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

Визуальный редактор TinyMCE

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

Его остоинства:

1. Главное достоинство — это, конечно, возможность работать с материалами Joomla даже не зная, что такое html. И правда, людям, у которых блог посвящен даче, кулинарии или вышиванию не очень хочется забивать голову каким-то html. Им он просто ни к чему. А тот же Word, интерфейс которого во многом копирует TinyMCE, знают практически все.

2. В версиях Joomla 2.5.х TinyMCE доступен сразу после . Зачастую люди сразу к нему привыкают и уже не ищут какой-либо альтернативы.

3. Функционал TinyMCE очень велик, поэтому пользователи совершенно не знакомые с html не будут чувствовать себя стесненными при форматировании текста материалов.

Недостатки

Они вытекают из достоинств TinyMCE. Он не дает полного контроля над кодом создаваемого материла, а автоматически создает его излишне «загрязненным» тегами с атрибутами стилей. Все-таки все стили следует выносить в отдельный файл и привязывать их к используемым html тегам за счет классов и идентификаторов.

Еще одним недостатком является невозможность вставки скриптов на php или javascript. При сохранении они просто удаляются.

Как работать с TinyMCE

Почему его называют визуальным? Все очень просто — материал в TinyMCE показывается точно так, как он будет отображаться на странице сайта. Нет никакого html кода, только функциональные кнопки над окном ввода текста, которые позволяют отформатировать его по вашему желанию. По интерфейсу и принципу работы TMCE напоминает текстовые редакторы, самые популярные из которых Microsoft Word и его бесплатный аналог OpenOffice Word.

Если не знаете назначение какой-либо кнопки, то просто наведи на нее курсор мыши, и появится справка на русском языке.

Хочу отметить некоторые моменты.

Редактирование html кода

Пусть вы не видите html код, но для форматирования текста именно он и используется. Чтобы его увидеть и в случае необходимости отредактировать, используйте кнопку HTML или просто выключите на время редактор.

Логично было бы предположить, что при выключенном редакторе скрипты все таки можно вставить, но, к сожалению, это не так. При сохранении они все равно удаляются. Поэтому советую для этих целей использовать второй редактор — CodeMirror, у него проблем таких нет.

Вставка картинок

Для загрузки картинки на сервер и последующей вставки ее в текст материала, воспользуйтесь кнопкой «Изображение».

В центральном поле появившегося окна, представлена структура каталогов папки /images, в которой хранятся все изображения Joomla. В нижнем углу можно увидеть кнопку «Обзор», используя которую выберете необходимую картинку со своего компьютера. Для загрузки ее на сервер нажмите на появившуюся кнопку «Загрузить».

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

Для дальнейшей настройки изображение выделите его и воспользуйтесь кнопкой «Добавить/изменить изображение».

Откроется окно, в котором помимо заголовка и выравнивания можно настроить размеры, границу и отступы (указывайте с величиной измерения, например, 2px, 5px).

Расширенный режим

Почему люди ищут альтернативу TinyMCE? Потому что считают, что он предоставляет недостаточное количество функциональных кнопок для форматирования материала. Они просто не знают, что по умолчанию используется стандартный режим, а ведь есть еще и расширенный!

Переходим в менеджер плагинов, находим в списке «Редактор — TinyMCE» и жмем на него. Попадаем в его настройки.

Основных параметром достаточно много, но, пожалуй, единственный из них, который заслуживает внимание — это . Выбираем расширенный.

Теперь TinyMCE выглядит следующим образом.

Впечатляет? Еще бы! Тут и добавление таблиц, и вставка текста из Word, смайликов, разделителей, клипов и еще вагон всевозможных полезных и не очень фишек. Обо всех кнопках рассказывать не буду, ибо к каждой есть подсказка на русском языке, по которой становится понятно ее назначение.

Вопрос русификации Tiny я уже затрагивал при рассмотрении в целом. Дабы не отправлять вас перечитывать ту статью, я решил несколько повториться и рассказать об этом здесь.

Для русификации TinyMCE нам потребуется русский языковой пакет. Где его можно взять? С сайта joomlaportal.ru . Скачайте «Пакет русской локализации Joomla 2.5.х».

Распаковав полученный архив, вы обнаружите в нем еще три архива. tinymce_ru-RU.zip — это и есть русский языковой пакет для TinyMCE. Распаковывать его не надо. Заходим в и с помощью менеджера расширений устанавливаем данный языковой пакет. Теперь его следует активировать (если это не произошло автоматически).

Переходим в в раздел «Управление». В списке всех доступных расширений находим TinyMCE ru-RU и включаем его. На этом русификация TinyMCE закончена.

Редактор Joomla с подсветкой синтаксиса кода CodeMirror

Вторым стандартным редактором для Joomla является CodeMirror. Назвать его визуальным язык не поварачивается — он только подсвечивает синтаксис кода, который вы вводите вручную. Будет полезен для людей, которые хорошо знакомы с кодом и привыкли с ним общаться напрямую.

Достоинства

Подсвечивает синтаксис кода и добавляет нумерацию строчек — и на том спасибо. Здраво воспринимает скрипты, а не зачищает от них код.

Приведу простой пример, когда может понадобиться использовать скрипты: вывод на страницы сайта через модуль HTML-код. Код социальных кнопок состоит из двух частей: скрипта, отвечающего за функционал, и html кода, отвечающего за вывод кнопок на сайт. TinyMCE обрезает скриптовую часть кода, поэтому социальные кнопки работать не будут. Просто используйте CodeMirror. После вставки скрипта в модуль и его сохранения, можете вновь переключится на Tiny, если он является для вас основным.

Недостатки

Для себя заметил только один существенный недостаток — отсутствует возможность добавлять, так называемые, «быстрые теги», которые позволяют не печатать каждый тег отдельно, а забить их на горячие кнопки, что значительно экономит время.

Конечно, для людей не знающих хотя бы основы html и css, CodeMirror покажется абсолютно бесполезным.

Работа с CodeMirror

Тут все делается в ручную: набиваем текст и вставляем html теги с атрибутами. CodeMirror только подсвечивает синтаксис кода, подобно тому же Notepad++.

Как видите, обязательно нужно знать HTML и CSS.

Режим «без редактора»

Ни разу не пользовался им. Просто даже не могу придумать задачу, которую нельзя было бы решиться с помощью одного из редакторов Joomla, описанных выше.

Функциональные кнопки, общие для всех редакторов

Если вы заметили, то под полем для текста располагаются функциональные кнопки.

— позволяет представить текст материала постранично. На страницу добавляется содержание и постраничная навигация.

При вставке разрыва страницы, необходимо указать заголовок последующей страницы и ее название в содержании.

Достаточно часто приходится отказываться от подходящих удобных шаблонов исключительно по той лишь причине, что не подходит размер шрифта или цвет, стиль в заголовках, а также в основном тексте.

Шрифт в Joomla

Как правило, макет содержит шрифт, стоящий первым в списке. Соответственно, проставить свой шрифт (к примеру, Ubuntu) можно, только поставив его название первым. Кроме того, указывая свой шрифт перед Arial, вы добьетесь вызова по умолчанию желаемого Ubuntu, а затем уже будет отображаться Arial, Verdana либо sans-serif.

Лучше, если проставлено несколько вариантов, чтобы не потерять пользователя изза такой досадной чепухи. Заходите в Расширения / Менеджер шаблонов / Свой шаблон / Редактировать CSS, вписывая нужный шрифт в строчку font-family: 1шрифт, 2шрифт и т.д.

Размер

Чтобы изменить размер шрифта заголовков, подзаголовков и самого текста, внутри административной панели Jooma вашего сайта потребуется изменить некоторые настройки. Подобная проблема может возникать, если по умолчанию используется визуальный редактор TinyMCE (в «Общих настройках» в разделе «Сайт»). По умолчанию в этом редакторе установлен размер шрифта 10 пикселей, однако решить проблему можно созданием пользовательских настроек размера шрифта с помощью CSS, после чего произвести настройку размеров шрифтов для использования в вашем редакторе.

В пункте Расширения выбираем подпункт Менеджер шаблонов и в нужном шаблоне выполняем редактирование стиля, отвечающего за изменение размера шрифтов.

Для создания файла CSS нужно воспользоваться текстовым блокнотом, чтобы получить следующую запись:

body, td, pre { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 1.6em; }

В этом файле CSS я отобразил шрифт на 160% больше от первоначального показателя. Желаемый размер выбирается с использованием пикселей (13px), пойнтов (13pt), но для удобства лучше применять форму записи в процентах (em), т.к. они подходят для всех браузеров. В дальнейшем, это поможет избежать проблем с отображением административной панели в предпросмотре разными браузерами.

Цвет шрифта

Цвет шрифта меняется аналогично размеру и типу шрифта. Единственно, в чем состоит разница, так это в выбранных параметрах. Цвет шрифта, равно как и фон сайта меняется внутри меню административной панели, в шаблоне JA_Purity. Находим в Расширениях/ Менеджее шаблонов / Своем шаблоне / Редактировать CSS и вписываем нужный цвет (например, blue) в параметр color (цвет фона – в параметре background #ffffff):

Требуемый цвет шрифта готов!

Стили CSS

Нередко новички Joomla! желают поменять спецоформление всех пунктов меню, чтобы улучшить конфигурацию дизайна сайта, в целом. Для этого понадобится корректировка CSS стилей меню внутри шаблона.

Отображение классов CSS, ответственных за оформление пунктов меню имеет следующий вид:

Разобъем настройку TinyMCE на несколько шагов. Обычно нужно сделать следующее:

  • Добиться, чтобы текст внутри редактора TinyMCE отбражался согласно заданному набору CSS-правил
  • Добиться, чтобы курсор при нажатии Enter перепрыгивал вниз на высоту строки
  • Добиться, чтобы текст, написанный в TinyMCE, выглядел на сайте так же, как и в редакторе
  • Разобраться, как использовать в TinyMCE CSS-классы оформления, используемые на сайте

Итак, по-порядку.

В первую очередь надо добиться, чтобы текст внутри редактора TinyMCE выглядел так, как нам надо. То есть, нужно настроить CSS-файл, в котором прописаны CSS-правила отображения текста в TinyMCE.

Существует мнение, что настройка форматирования текста, для самой популярной темы advanced, происходит в файле /themes/advanced/skins/default/content.css. Это не так. На деле, обращения к этому файлу, без дополнительной настройки, TinyMCE не делает.

Чтобы настроить внешний вид текста в области редактирования TinyMCE, надо сделать следующее:

1. Скопировать файл /themes/advanced/skins/default/content.css в каталог, где лежат css-файлы сайта или CMS. Я обычно использую каталог /css (относительно корня сайта).

2. Переименовать скопированный файл с /css/content.css на /css/tinymce.css, ибо через некоторое время можно забыть, откуда появился и для чего нужен файл с названием "content.css".

3. В настройках TinyMCE (т.е. в настроечном массиве tinyMCE.init) надо добавить опцию:

4. Надо убедиться, что данный файл влияет на TinyMCE. Для этого надо в первой строчке заменить размер шрифта font-size с 10px на 12px. Вот так:

Данную настройку имеет смысл так и оставить, ибо размер 10px все считают слишком мелким.

5. Обновляем страницу. Для того, чтобы увидеть изменения оформления, в некоторых браузерах, особенно это касается Opera, надо обязательно очистить кеш, чтобы перегрузился css-файл.

Далее нам необходимо сделать так, чтобы курсор при нажатии Enter перепрыгивал на следущую строчку, а не делал большой отступ, показывая создание нового параграфа. Как показывает практика, появление большого отступа при нажатии Enter в TinyMCE вызывает ступор у многих пользователей. Связано это с тем, что в "обычных" редакторах типа MS Word, межстрочный интервал и интервал между параграфами по-умолчанию равны. А в TinyMCE, по умолчанию, интервал между параграфами больше, чем межстрочный.

Многие пытаются решить эту проблему путем прописывания в настроечный массив tinyMCE.init следующей настройки:

force_br_newlines: true

Этого делать ненадо! Во-первых, TinyMCE глючит при работе со строками, разделенными тегом
. Об этом знают разработчики TinyMCE, но напрямую не говорят, а настоятельно не рекомендуют пользоваться такой настройкой. А во-вторых, наша задача совсем в другом - надо сделать одинаковым межстрочный интервал и интервал между параграфами. Тогда пользователю будет удобно работать.

Поэтому, в созданный нами файл /css/tinymce.css нужно добавляем строку:

С помощью этой строки новый параграф не будет отделяться большим отступом, а будет внешне выглядеть как новая строка.

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

Если мы просто подключим файл /css/tinymce.css к коду страницы сайта, то ничего хорошего из этого не выйдет. А не выйдет потому, что правила, прописанные в /css/tinymce.css, написаны в "явном виде" для всех основных тегов. Таким образом, простое подключение /css/tinymce.css к HTML-коду страницы сайта, может нарушить верстку страницы.

Я долго разбирался, каким же образом можно подключить CSS-правила, используемые в TinyMCE так, чтобы они влияли только на определенную область HTML-кода (то есть на ту облась, в которой находится текст, созданный с помощью TinyMCE). В результате подошел только один метод. Немного неудобный, но зато работающий железобетонно.

Нам нужно сделать следующее:

1. Скопировать файл /css/tinymce.css, дав ему имя /css/site_tinymce.css. В этом новом файле надо перед каждым CSS-правилом прописать строку ".tinymce " . Например, имеем файл /css/tinymce.css с содержимым:

body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:8px;}

body {background:#FFF;}

p, span { margin: 0; padding: 0; }

body.mceForceColors {background:#FFF; color:#000;}

h1 {font-size: 2em}

MceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}

a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(img/items.gif) no-repeat 0 0;}

td.mceSelected, th.mceSelected {background-color:#3399ff !important}

table {cursor:default}

table td, table th {cursor:text}

img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px}

font {font-family:inherit !important}

Тогда содержимое файла /css/site_tinymce.css должно быть:

Tinymce body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:8px;}

Tinymce body {background:#FFF;}

Tinymce p, span { margin: 0; padding: 0; }

Tinymce body.mceForceColors {background:#FFF; color:#000;}

Tinymce h1 {font-size: 2em}

Tinymce .mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}

Tinymce a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(img/items.gif) no-repeat 0 0;}

Tinymce td.mceSelected, th.mceSelected {background-color:#3399ff !important}

Tinymce img {border:0;}

Tinymce table {cursor:default}

Tinymce table td, table th {cursor:text}

Tinymce * html body {

scrollbar-3dlight-color:#F0F0EE;

scrollbar-arrow-color:#676662;

Tinymce img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px}

Tinymce font {font-family:inherit !important}

2. Подключаем файл /css/site_tinymce.css к HTML-коду страницы сайта:

3. Ту область, где должен выводиться текст, созданный в TinyMCE, заключаем в тег div, с указанием класса tinymce:

Таким образом, мы создали CSS-файл правил, которые применяются только к элементам, расположенным внутри тега с классом "tinymce". Посему, эти правила не будут нарушать верстку сайта. А чтобы эти правила применялись к тексту, созданному в TinyMCE, мы заключаем этот текст в тег

.

Почему такой подход неудобен? Да потому, что теперь нужно постоянно помнить, что если что-то перенастроили в файле /css/tinymce.css, тоже самое нужно сделать и в файле /css/site_tinymce.css.

А почему бы не обойтись одним файлом? Например, можно было бы иметь один CSS-файл (с содержимым /css/site_tinymce.css), а вставку редактора TinyMCE заключить бы в тег

. Тогда б и текст внутри редактора, и текст на страницах сайта управлялось бы одним CSS-файлом. Почему бы так не сделать?

Отвечаю. На самом деле, CSS-файл, подключаемый через опцию content_css - не настоящий css-файл. Он нигде в TinyMCE не подключается в том виде, в котором считан. Вместо этого он парсится ява-скриптом, и свойства отображения текста применяются динамически. Эксперименты и изучение кода TinyMCE (v. 3.3.6 от 20.05.2010) показали ограничения, которые накладываются на css-файл, подключаемый через опцию content_css . Вот эти ограничения:

1. В файле нельзя использовать сложные селекторы. Селекторы должны быть написаны для тегов в явном виде, либо простыми правилами. Вследствие этого, не работает идея прописывания строки ".tinymce " перед каждым селектором, и обрамление