Предисловие
Шаблон страницы
Ресурс
Страница
Модуль
Функционирование
Wysiwyg редактор
Системные переменные
Администрирование
Заключение
Полное описание в формате MSWord
|
WYSIWYG редактор для CMS Редактор контента для CMS, конечно, не самый важный элемент, но, тем не менее, большая часть комфорта при сопровождении сайта обеспечивается именно удобством работы с редактором контента. Простой текстовый редактор годится только для WEB-мастеров владеющих HTML, но тем не менее является атрибутом необходимым для управления тонкими нюансами, недоступными ни одному WYSIWYG редактору и применяется во всех CMS. Кроме того, текстовый редактор позволяет добавлять ресурсы сверстанные в сторонних WYSIWYG (или других) редакторах и позволяет создавать ресурсы-PHP скрипты (очень мощьное средство, реализованное в CMS Simba). Редактор BBCode, считаю, тут совершенно неприемлемым т.к. к нему надо еще делать предпросмотр, что неудобно, да и такой вариант мало чем отличается от простого текстового редактора. Поэтому, на данный момент, WYSIWYG редактор оказался единственным достойным кандидатом. При попытке подобрать подходящий WYSIWYG редактор из доступных в интернете возникли такие проблемы как: либо это платный редактор, поэтому его использование невозможно в бесплатной CMS, либо это простой редактор, который дает очень "грязный" HTML код, либо это не кроссплатформенный редактор, что не позволяет его использовать в модуле форума и для комментирования статей (будет в базовом наборе модулей), т.е. для пользовательского ввода. --- Опасности XSS при пользовательском html вводе известны и решены за счет специального html анализатора. --- Эти проблемы не позволили применить готовый WYSIWYG редактор. В пользу написания своего редактора были и другие соображения: WYSIWYG редактор для CMS - это, все таки, должен быть не MSWORD, не FrontPage или что-то подобное. Жизнь показала, что слишком большие возможности форматирования текстов для web страниц не только не нужны, но и вредны. Не очень здорово выглядят, например, статьи из одного раздела, оформленные в разных стилях. Избежать такой беды можно только разрешив непродвинутым пользователям использовать ограниченный набор оформлений(для продвинутых пользователей всегда остается возможность сделать свое оформление через текстовый режим). Набор оформлений определяется web-мастером сайта. Например, есть стили, определенные фирменными цветами для заголовка статьи, подзаголовков, текста, примечаний и т.д. Если, вдруг, возникла необходимость поменять фирменные цвета, то достаточно переопределить классы оформлений и оформление всех статей будут соответствовать... Этот подход уже проверен на практике и показал свою жизнеспособность. WYSIWYG редактор для CMS Simba построен исходя именно из таких соображений. Еще одна особенность разметки web-страниц - это иерархия объектов. Поэтому очень хотелось, чтобы пользователь мог видеть эту иерархию. Ни одного опубликованного WYSIWYG редактора, дающего такую возможность, найти так же не удалось. Таким образом в панели инструментов WYSIWYG редактора CMS Simba оставлено - несколько кнопок (для наиболее частых действий над текстом и управления, - поле выбора тэга, - поле выбора оформления. - строка иерархии, через которую можно легко раскрыть выбранный тэг(удалить обрамляющие текст или объект тэги. Дополнительно для каждого тэга в панели свойств можно выбрать предопределенный в таблице стилей класс и установить некоторые значения стилей. --- Пока есть фиксированый набор тэгов, но это не аксиома. Возможно, стоит этот список вынести в настройки, или расширить его другим способом. --- Набор классов определяется web мастером сайта. Список содержится в файле stylelist.js в корневой папке и в cms, а описание - в styles.css. Формат очень простой и понятный, поэтому пока не вижу необходимости его описывать. Еще одним удачным решением стал механизм добавления рисунков. Новизна - в возможности за один прием отправить на сервер неограниченное количество рисунков. --- Если кто-то подобное встречал, буду благодарен за информацию --- Кроме того, редактор отслеживает наличие изменений в тексте и, при попытке выйти из редактирования не сохранив изменения, предупреждает об этом. P.S. В данное время ведется активная доработка редактора по мотивам замечаний и предложений посетителей. Открылась проблема с возвратом фокуса в поле редактирования для ОПЕРы, проблема с разметкой иерархии для fierfox'а, проблема с установкаой каретки в созданый блок для всех браузеров... и еще кое-какие мелочи, связанные с юзабилити.
|