Спорить о том, какой визуальный html-редактор лучше, а какой – хуже, можно очень долго. Равно как и о том, нужно ли их использовать вообще. В моих проектах визуальный редактор необходим, так как редакторский состав напрочь отказывается от использования в своей работе BB-кодов или чистого HTML.
Довольно долго я внедрял в свои проекты FCKEditor, затем переключился на TinyMCE. Но однажды (примерно летом 2007 года
) произошло мое знакомство с наиболее, на мой взгляд, удобным редактором – SPAW Editor от компании Solmetra - http://www.spaweditor.com/. Этот редактор распространяется бесплатно, под GNU General Public License (GPL), но также можно приобрести и коммерческую лицензию.
Что мне больше всего в нем нравится? В отличие от тех же FCKEditor или TinyMCE – он не тормозит браузер. Это связано с тем, что редактор прорисовывается не из JavaScript, а непосредственно в HTML. Тут конечно дело вкуса, но мне и нашим редакторам нравится, что поле редактора не замирает при простой вставке текста из буфера.
Неоспоримое преимущество SPAW2 - встроенный файл-менеджер. Действительно мощный инструмент, и, опять-таки, бесплатный.
SPAW2 доступен для PHP и .NET, но так как с дотнетом я не дружу, все записи на этом блоге будут касаться именно PHP.
В этом посте я расскажу, как установить и начать использовать SPAW2.
Прежде всего, как бы банально не звучало, нужно скачать дистрибутив. Сделать это можно, пройдя вот по этой ссылке – http://www.spaweditor.com/en/disp.php/en_products/en_spaw/en_spaw_download
Установка
Тут все более чем просто. Достаточно лишь распаковать архив, скопировать или переименовать файл config.default.php в config.php, и отредактировать его по своему вкусу.
Настройка
В отличие от 1.х, все настройки хранятся внутри специального класса SpawConfig. Чтобы добавить параметр конфигурации, используется метод setStaticConfigItem(), который принимает 3 аргумента. Первые два – это имя параметра и его значение. Третий параметр определяет, как значение этого параметра будет передаваться между отдельными компонентами SPAW Editor и плагинами.
Основные параметры
Пути
Эти настройки определяют месторасположение файлов SPAW на сервере. Чаще всего, правильные значения вычисляются автоматически, но иногда требуется более специфичная настройка.
| Имя | Описание |
| DOCUMENT_ROOT | Определяет расположение корневой директории вашего сайта на сервере. |
| SPAW_ROOT | Определяет путь к папке SPAW на сервере. |
| SPAW_DIR | Определяет путь от корня сайта до директории SPAW. |
Установки редактора по-умолчанию
Эти параметры применяются, если они не будут переопределены в экземпляре SPAW.
| Имя | Описание |
| default_lang | Язык интерфейса. Значение по умолчанию – en (English). |
| default_output_charset | Кодировка, используемая для вывода. Если значение – пустая строка – будет использована кодировка, указанная в язфковом файле текущего языка. |
| default_theme | Имя темы интерфейса (skin). |
| default_toolbarset | Набор панелей инструментов (toolbar) по-умолчанию. |
| default_stylesheet | Путь к таблице стилей CSS, которая по умолчанию будет применена к области редактирования. |
| default_width | Ширина окна редактора по-умолчанию |
| default_height | Высота окна редактора по-умолчанию |
Настройки движка SPAW
Эти настройки определяют внутреннее поведение различных компонентов движка SPAW
| Имя | Описание |
| USE_ICONV | Определяет, должна ли языковая подсистема использовать функции iconv для преобразования строк к выбранной кодировке. Если в вашей сборке PHP iconv недоступен, установите этот параметр в false. В других ситуациях можете оставить этот параметр установленным в true, даже если вам не нужна функциональность конверсии символов. |
| rendering_mode | Определяет, какой метод рендеринга HTML должен быть использован. Доступные значения: xhtml и builtin. Режим xhtml предписывает SPAW использовать собственные механизмы рендеринга для генерации хорошо согласованного кода XHTML в различных браузерах, builtin – предписывает использовать механизмы текущего браузера. builtin работает быстрее, но генерирует разный код в разных браузерах. |
| beautify_xhtml_output | Если установлено в true, подсистема рендеринга XHTML «украсит» конечную структуру html отступами и пр. |
| base_href | Определяет строку, состоящую из протокола, хоста и порта (например, http://mydomain.com), которая будет добавлена к url, возвращаемым файл-менеджером. Используйте совместно с strip_absolute_urls для принудительного избавления от абсолютных путей. |
| strip_absolute_urls | Если установлено в true, SPAW обрежет части домена и пути из всех «локальных» (относящихся к данному веб-сайту и/или директории) url в ссылках и изображениях. Замечание: Microsoft Internet Explorer преобразовывает все url в абсолютные, поэтому данная настройка является обходным путем для избавления от абсолютной части, присоединяемой IE к введенным пользователями относительным url. |
| resizing_directions | Определяет в каких направлениях пользователь может менять размер окна редактора. Доступыне значение: none, horizontal, vertical, both |
| convert_html_entities | Указывает необходимость преобразования спецсимволов в соответствующие html-сущности (например © и др.) |
Значения выпадающих списков
Эти параметры содержат данные, используемые для заполнения выпадающих списков в панелях инструментов и диалогах. Их значения – массивы PHP, ключи которых трансформируются в значения элементов выпадающего меню, а значения наоборот – станут названиями этих элементов. (Логичнее было бы сделать так, чтобы ключи оставались ключами, а значения – значениями. Но разрабочики, видимо, посчитали, что это будет сильно просто – прим. переводчика).
| Имя | Описание |
| dropdown_data_core_style | Список классов CSS для выпадающего списка Стили. Пустая строка удалит аттрибут class HTML-элемента |
| table_styles | Список классов CCS, которые используются в диалоге Свойства таблицы |
| dropdown_data_core_fontname | Список имен шрифтов выпадающего списка Шрифт |
| dropdown_data_core_fontsize | Список размеров шрифта выпадающего списка Размер |
| dropdown_data_core_formatBlock | Список стилей параграфа выпадающего списка Параграф |
| a_targets | Список целей (targets) ссылок диалога Ссылка |
Наборы панелей инстументов
Набор панелей инструментов – это всего лишь составленный список панелей инструментов. Вы можете указать отображаемые панели инструментов в вашем экземпляре SPAW по одной или определить набор, содержащий все необходимые панели инструментов. Следующая таблица содержит список встроенных наборов панелей инструментов. Вы также можете создать свои собственные наборы панелей инструментов.
Стандартные панели инструментов называются так: edit, format, font, insert, table, tools и plugins. Разработчики тем определяют место для размещения панелей инструментов, но вы можете подменить стандартную панель инструментов своей. (Имеется в виду, что если ваша собственная панель не помещается в отведенное разработчиком темы место, вы можете подменить одну из стандартных панелей – прим. переводчика.) Чтобы подменить стандартную панель, установите ключом массива имя стандартной панели инструментов (например, format), а значением - имя своей панели инструментов (например, format_mini). Посмотрите для наглядного примера определение набора панели инструментов «mini» из конфигурационного файла по-умолчанию. Элементы конфигурации, определяющие наборы панелей инструментов начинаются со строки »toolbarset_» за которой следует имя панели инструментов. Для более точного понимания настройки панелей инструментов, прочитите соответствующий раздел. (Этот раздел будет переведен позже – прим. переводчика).
| Имя | Описание |
| toolbarset_standard | Включает все стандартные панели инструментов, кроме панели font |
| toolbarset_all | Включает все стандартные панели инструментов |
| toolbarset_mini | Включает панели edit и tools, а также урезанную версию панели format |
Предопределенные палитры цветов
Начиная с версии 2.0.3, появилась возможность изменять предустановленные цвета в палитре диалога выбора цветов. Чтобы сделать это, установите параметр colorpicker_predefined_colors. Значением этого параметра должен быть массив из не более чем 16 элементов. Каждый элемент массива должен быть значением цвета в CSS-совместимом формате.
Настройки плагина SPAW File Manager
Плагин File Manager позволяет управлять файлами на сервере и вставлять их в редактируемый текст (например, изображения, flash-ролики). Также он дает возможность контролировать доступ ваших пользователей к их файлам, и что им позволено с этими файлами делать.
Для настройки файл-менеджера SPAW под ваши потребности, вам нужно указать два главных параметра: глобальный массив настроек, который определяет, что может быть сделано с директориями, доступными через файл-менеджер SPAW, и собственно список директорий. Глобальные настройки могут быть переопределены для каждой конкретной директории, поэтому вы можете позволить обработку только изображений в директории «Изображения», только flash-ролики в директории «Flash» и так далее. Вот детальное описание для каждого из этих двух главных параметров:
| Имя | Описание |
| PG_SPAWFM_SETTINGS | Глобальные параметры для всех директорий, указанные в виде пар параметр => значение:
|
| PG_SPAWFM_DIRECTORIES | Определяет доступные через файл-менеджер SPAW директории. Указывается в виде массива, в котором каждой директории соответствует подмассив пар параметр => значение:
|
На этом пока все. Вторую часть перевода я планирую закончить после выходных.
15 коммент. к “Документация по визуальному редактору SPAW для платформы PHP”
-
1. пишет:
апреля 20, 2008 в 19:01
Дело в том, что при работе со SPAW нашел заметный для меня «-» по отношению к WISIWIG (точное название не помню). А дело в том, что при создании ссылки нет возможности указать ее значение class.
Внутри текста у меня все ссылки при наведении отображают контрастирующий background, но это ужастно выглядит, когда ссылкой является изображение.
Пример можно посмотреть на странице http://www.promenergozao.ru/kv-02-104_k-104
Возможно я просто упустил какие то настройки функционала, однако прошу у вас помощи в решении данного вопроса.
Спасибо, заранее.
-
2. пишет:
апреля 28, 2008 в 22:37
galo4kin, можно без проблем написать свой плагин для SPAW, чтобы реализовать эту функциональность. Или можно доработать стандартный диалог plugins/core/dialogs/hyperlink.*, который входит в поставку СПАВ
-
3. пишет:
мая 2, 2008 в 10:10
Огромное спасибо за статью, как раз искал чего-нибудь по-русски о SPAW…
-
4. пишет:
июня 18, 2008 в 14:57
Кирилл, тоже подумал о написании своего мода, да вот только знаний пока не хватает, да и времени.
Возник еще вопрос, по поиску опять зашел на вашу страницу – дело в том, что спав при выделении слова жирным стилем ставит около слова следующий тег
Можно ли настроить редактор так, чтобы взамен этого он просто тег или писал?!
Это куда приятнее и поисковики лучше кушают…
Спасибо заранее за ответ
-
5. пишет:
июня 18, 2008 в 15:00
В выше указанном топе были указаны теги
span style=font-weight: bold;
а так же
b или strong
-
6. пишет:
сентября 4, 2008 в 9:55
Можно ли как то ограничить количество вводимых символов с помощью настроек. Например в одном месте надо не более 255 – в другом – без ограничений.
-
7. пишет:
сентября 4, 2008 в 10:58
не могу включить закачку файлов. все делаю как в хелпе – кнопка аплоад не активна
-
8. пишет:
сентября 4, 2008 в 11:52
galo4kin, я думаю, подобный функционал можно реализовать через плагин. С другой стороны, вводимые данные можно (и нужно) обрабатывать на стороне PHP. С помощью регулярки ваша задача решается в одну строку.
Юрий, на счет символов – никогда не сталкивался. Но в настройках подобной инструкции нигде нет. Так что, вряд ли.
По поводу закачки – вариантов может быть множество. Для начала проверьте, чтобы у папки, в которую вы хотите закачивать файлы, были разрешения (chmod) на запись для сервера. Кстати, еще эта папка должна физически существовать. То есть, Spaw не создает папки «на лету». Они должны быть созданы вручную.
-
9. пишет:
октября 10, 2008 в 1:43
может ли редактор вставлять изображения в меньшем виде, а при нажатие на него на сайте, оно отображалась в полную величину?
-
10. пишет:
октября 12, 2008 в 2:26
Не может. Но эта проблема легко решается.
В редакторе можно указать требуемый размер изображения. А в ПХП с помощью регулярки можно найти все изображения в тексте, а затем заменить их на уменьшенные копии требуемого размера.
Кстати, спасибо, вы меня натолкнули на мысль о написании соответствующего поста. Завтра этим и займусь.
-
11. пишет:
ноября 7, 2008 в 10:20
вопрос – а можно завтравить редактор транслировать русские буквы в анг. при использовании файлового менеджера???
-
12. пишет:
ноября 13, 2008 в 15:14
Sergey, я не совсем понимаю ваш вопрос… Если вы имеете ввиду русские символы в именах файлов, тогда мой ответ: «Нет». Редактор этого не умеет. Но можно подправить код загрузчика файлов, и реализовать в нем нужный функционал.
-
13. пишет:
сентября 17, 2009 в 19:51
Чтобы транслитерировать имена файлов при загрузке (ох как в своё время бесила эта проблема), можно вот что сделать:
В файле spaw2/plugins/spawfm/class/spawfm.class.php найти метод uploadFile($uplfile) и добавить туда, скажем, свой метод (его можно прописать и как метод того же класса, думаю никто не обидится) после проверки на загруженность файла:
…
if (is_uploaded_file($uplfile['tmp_name'])) {
…
Например, я написал свою функцию, которая прогоняет строку на предмет наличия кириллических и ряда спец.символов и меняет на эквивалент. Назвал её translitirate.
Было:
…
if (is_uploaded_file($uplfile['tmp_name'])) {
$ext = SpawFm::getFileExtension($uplfile['name']);
…
Стало:
…
if (is_uploaded_file($uplfile['tmp_name'])) {
$uplfile_tmp_name = $this->translitirate($uplfile['name']);
$ext = SpawFm::getFileExtension($uplfile_tmp_name);
…
-
14. пишет:
апреля 28, 2011 в 12:57
SPAW режет javascript, вставленный в редакторе посредством закладки html? Gsnfkcz вставить Яндекс-карту с помощью их кода – обломался.
-
15. пишет:
января 24, 2012 в 15:25
Оставьте комментарий или два
апреля 20, 2008 в 19:01
Дело в том, что при работе со SPAW нашел заметный для меня «-» по отношению к WISIWIG (точное название не помню). А дело в том, что при создании ссылки нет возможности указать ее значение class.
Внутри текста у меня все ссылки при наведении отображают контрастирующий background, но это ужастно выглядит, когда ссылкой является изображение.
Пример можно посмотреть на странице http://www.promenergozao.ru/kv-02-104_k-104
Возможно я просто упустил какие то настройки функционала, однако прошу у вас помощи в решении данного вопроса.
Спасибо, заранее.
апреля 28, 2008 в 22:37
galo4kin, можно без проблем написать свой плагин для SPAW, чтобы реализовать эту функциональность. Или можно доработать стандартный диалог plugins/core/dialogs/hyperlink.*, который входит в поставку СПАВ
мая 2, 2008 в 10:10
Огромное спасибо за статью, как раз искал чего-нибудь по-русски о SPAW…
июня 18, 2008 в 14:57
Кирилл, тоже подумал о написании своего мода, да вот только знаний пока не хватает, да и времени.
Возник еще вопрос, по поиску опять зашел на вашу страницу – дело в том, что спав при выделении слова жирным стилем ставит около слова следующий тег
Можно ли настроить редактор так, чтобы взамен этого он просто тег или писал?!
Это куда приятнее и поисковики лучше кушают…
Спасибо заранее за ответ
июня 18, 2008 в 15:00
В выше указанном топе были указаны теги
span style=font-weight: bold;
а так же
b или strong
сентября 4, 2008 в 9:55
Можно ли как то ограничить количество вводимых символов с помощью настроек. Например в одном месте надо не более 255 – в другом – без ограничений.
сентября 4, 2008 в 10:58
не могу включить закачку файлов. все делаю как в хелпе – кнопка аплоад не активна
сентября 4, 2008 в 11:52
galo4kin, я думаю, подобный функционал можно реализовать через плагин. С другой стороны, вводимые данные можно (и нужно) обрабатывать на стороне PHP. С помощью регулярки ваша задача решается в одну строку.
Юрий, на счет символов – никогда не сталкивался. Но в настройках подобной инструкции нигде нет. Так что, вряд ли.
По поводу закачки – вариантов может быть множество. Для начала проверьте, чтобы у папки, в которую вы хотите закачивать файлы, были разрешения (chmod) на запись для сервера. Кстати, еще эта папка должна физически существовать. То есть, Spaw не создает папки «на лету». Они должны быть созданы вручную.
октября 10, 2008 в 1:43
может ли редактор вставлять изображения в меньшем виде, а при нажатие на него на сайте, оно отображалась в полную величину?
октября 12, 2008 в 2:26
Не может. Но эта проблема легко решается.
В редакторе можно указать требуемый размер изображения. А в ПХП с помощью регулярки можно найти все изображения в тексте, а затем заменить их на уменьшенные копии требуемого размера.
Кстати, спасибо, вы меня натолкнули на мысль о написании соответствующего поста. Завтра этим и займусь.
ноября 7, 2008 в 10:20
вопрос – а можно завтравить редактор транслировать русские буквы в анг. при использовании файлового менеджера???
ноября 13, 2008 в 15:14
Sergey, я не совсем понимаю ваш вопрос… Если вы имеете ввиду русские символы в именах файлов, тогда мой ответ: «Нет». Редактор этого не умеет. Но можно подправить код загрузчика файлов, и реализовать в нем нужный функционал.
сентября 17, 2009 в 19:51
Чтобы транслитерировать имена файлов при загрузке (ох как в своё время бесила эта проблема), можно вот что сделать:
В файле spaw2/plugins/spawfm/class/spawfm.class.php найти метод uploadFile($uplfile) и добавить туда, скажем, свой метод (его можно прописать и как метод того же класса, думаю никто не обидится) после проверки на загруженность файла:
…
if (is_uploaded_file($uplfile['tmp_name'])) {
…
Например, я написал свою функцию, которая прогоняет строку на предмет наличия кириллических и ряда спец.символов и меняет на эквивалент. Назвал её translitirate.
Было:
…
if (is_uploaded_file($uplfile['tmp_name'])) {
$ext = SpawFm::getFileExtension($uplfile['name']);
…
Стало:
…
if (is_uploaded_file($uplfile['tmp_name'])) {
$uplfile_tmp_name = $this->translitirate($uplfile['name']);
$ext = SpawFm::getFileExtension($uplfile_tmp_name);
…
апреля 28, 2011 в 12:57
SPAW режет javascript, вставленный в редакторе посредством закладки html? Gsnfkcz вставить Яндекс-карту с помощью их кода – обломался.
января 24, 2012 в 15:25

17 марта 2008 в 19:48
[...] проект, использующий Zend Framework и Smarty. Как я уже недавно писал, мой любимый визуальній редактор – Spaw Editor от компании [...]