Первинна настройка tinymce

Разоб'ем настройку 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-файл.

Багато хто намагається вирішити цю проблему шляхом прописування в настроювальний масив tinyMCE.init наступної настройки:

Цього робити нетреба! По-перше, 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 з вмістом:

mceItemTable. mceItemTable td. mceItemTable th. mceItemTable caption. mceItemVisualAid

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

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

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

.

Чому такий підхід незручний? Та тому, що тепер потрібно постійно пам'ятати, що якщо щось перенастроїли в файлі /css/tinymce.css, те ж саме потрібно зробити і в файлі /css/site_tinymce.css.

1. У файлі не можна використовувати складні селектори. Селектори повинні бути написані для тегів в явному вигляді, або простими правилами. Внаслідок цього, не працює ідея прописування рядки ".tinymce" перед кожним селектором, і обрамлення