Визуальный Редактор на jQuery
1Введение
Редактор написан на языке JavaScript с использованием библиотеки jQuery.
Редактор протестирован на Mac OS и Windows, в браузерах:
- Firefox 3+
- Safari 4+
- Chrome 4+
- Opera 10+
- IE 7+
IE6 сознательно не поддерживается.
2Установка
Скачайте архив с Редактором и распакуйте в необходимую папку.
Убедитесь, что на странице подключена библиотека jQuery.
Теперь можно устанавливать Редактор. Для этого на странице разместите между тегами <head></head> такой код:
<script type="text/javascript" src="/js/redactor.js"></script> <link rel="stylesheet" href="/js/css/redactor.css" type="text/css" />
Не забудьте поменять путь к файлам.
Теперь вызываем Редактор, например так:
<script type="text/javascript"> $(document).ready( function() { $('#redactor_content').redactor(); } ); </script>
Этот код можно тоже разместить между тегами <head></head> или в любом другом месте страницы.
Теперь осталось поместить на страницу элемент <textarea> с ID "redactor_content" или любым другим ID, этот элемент и будет заменен редактором:
<textarea id="redactor_content" name="redactor_content" style="width: 100%; height: 320px;">
3Настройки
| Настройка | Значение | Описание |
| air | true или false | Включение режима AIR. По умолчанию false. |
| focus | true или false | Устанавливает фокус на конкретный Редактор, особенно полезно, когда на странице несколько Редакторов. По умолчанию false. |
| resize | true или false | Включение и отключение изменения высоты Редактора. По умолчанию false. |
| toolbar | по умолчанию "main" | Указание, какой именно тулбар должен отобразиться в этом Редакторе. Возможные значения: false, main, mini |
| image_upload | например: upload.php | Путь к файлу загрузки изображений. |
| imageUploadFunction | function | Функция вызываемая после загрузки изображений. |
| typo | по умолчанию false | Путь к типографу, например: "/tests/typo.php" |
| lang | по умолчанию "ru" | Язык интерфейса редактора, возможные значения: ru, en, fr, ua, pt_br, pl |
| autosave | по умолчанию false | Включение автосохранения. Для ключения необходимо указать путь к файлу, который будет принимать данные редактора. Например: http://site.name/save.php |
| interval | по умолчанию "60" | Интервал автосохранения в секундах. |
| autoclear | по умолчанию true | Включение автоматической очистки от мусорных тегов и стилей MS Word и прочих программ, при вставке в Редактор. |
| autoformat | по умолчанию true | Если включено Редактор автоматически разбивает текст на параграфы. |
| overlay | по умолчанию true | Отображения затемненного слоя при вызове модальных окон Редактора. |
| remove_classes | по умолчанию false | Удаление классов у тегов в тексте |
| remove_styles | по умолчанию true | Удаление стилей у тегов в тексте. |
| convert_links | по умолчанию true | Автоматическое преобразование ссылок в тексте редактора. |
| init_clear | по умолчанию false | Очистка HTML кода от мусора при инициализации редактора |
| file_upload | Путь к обработчику загружаемых файлов. Например: "/tests/file.php" | |
| file_download | Путь к обработчику скачиваемых файлов. Например: "/tests/file.php?file=". GET переменная "file=" - обязательно в конце запроса, т.к. в конец запроса автоматически подставится ID файла. | |
| file_delete | Путь к обработчику удаления файлов. Например: "/tests/file.php?delete=". GET переменная "delete=" - обязательно в конце запроса, т.к. в конец запроса автоматически подставится ID файла. | |
| fileUploadFunction | function | Функция вызываемая после загрузки файлов. |
Чтобы запустить Редактор с параметрами, необходимо их вызвать, например так:
<script type="text/javascript"> $(document).ready( function() { $('#redactor_content').redactor({ focus: true, toolbar: 'mini', image_upload: '/modules/image_upload.php' }); } ); </script>
4Подключение пользовательских стилей
Пример вызова:
$('#redactor_content').redactor({ pathCss: '/path/to/css/', css: ['style1.css','./style2.css','../other_css/style3.css','/path/to/another/css/style4.css'] });
- opts.path имеет значение по умолчанию = ''
- если opts.path == '', то идет определение по redactor.js
- opts.pathCss по умолчанию имеет значение = 'css/'
- если opts.pathCss начинается не с "/", то в начало добавляется opts.path
- opts.css по умолчанию - ['wym.css']
- если путь у стиля начинается не с "/", то в начало добавляется opts.pathCss
5Набор кнопок (Тулбар)
Редактор поставляется с тремя тулбарами: обычный, классический и минимальный. Все тулбары хранятся в виде отдельных файлов в папке редактора toolbars.
Можно создавать несколько наборов тулбаров на разные случаи жизни. Для этого необходимо по аналогии с уже имеющимися тулбарами отредактировать наборы кнопок.
После этого при вызове Редактора, необходимо указать какой именно тулбар будет отображен, например так:
<script type="text/javascript"> $(document).ready( function() { $('#redactor_content').redactor({ toolbar: 'custom' }); } ); </script>
Тулбар можно отключить, вот так:
<script type="text/javascript"> $(document).ready( function() { $('#redactor_content').redactor({ toolbar: false }); } ); </script>
6API
Чтобы получить внешний доступ к функциям Редактора, его необходимо при запуске поместить в объект, например так:
<script type="text/javascript"> var redactor; $(document).ready( function() { redactor = $('#redactor_content').redactor(); } ); </script>
Теперь можно вызывать функции объекта и производить необходимые манипуляции с редактором:
| Функция | Пример | Описание |
| execCommand | redactor.execCommand('inserthtml', 'произвольный html код'); | Функция передачи параметров в визуальный фрейм. Полный список команд. |
| setHtml | redactor.setHtml('code'); | Установить произвольный код в визуальный фрейм. |
| getCode | var code = redactor.getCode(); | Получить код (если Редактор в визуальном режиме, будет получен код из фрейма, если в режиме HTML то, будет получен код из textarea). |
| getHtml | var html = redactor.getHtml(); | Получить код из фрейма. |
| focus | redactor.focus(); | Установка фокуса в поле редактора. |
| destroy | redactor.destroy(); | Выключение редактора и превращение его обратно в textarea |
7Режим AIR
В редактор можно включить специальный режим, при котором тулбар будет появляться из воздуха: демонстрация.
Тулбар появляется при выделении участка текста. Тулбар для режима AIR, можно настроить также как и обычный набор кнопок.
А вот так можно запустить редактор в режиме AIR:
<script type="text/javascript"> $(function() { $('#redactor').redactor({ air: true }); }); </script>
8Загрузка изображений
Javascript не позволяет реализовать загрузку изображений, поэтому эта возможность реализуется с помощью серверных языков программирования, например, PHP.
Прежде всего необходимо убедиться, что в Редакторе настроен путь к файлу загрузки, это можно сделать изменив настройку image_upload Редактора в файле redactor.js или указав параметр при запуске, например так:
<script type="text/javascript"> $(document).ready( function() { $('#redactor_content').redactor({ image_upload: '/modules/upload.php' }); } ); </script>
Итак, предположим, что файл upload.php будет обрабатывать изображения, его код может выглядеть так:
<?php // директория хранения файлов $dir = '/home/web/sitecom/redactor/images/'; $_FILES['file']['type'] = strtolower($_FILES['file']['type']); if ($_FILES['file']['type'] == 'image/png' || $_FILES['file']['type'] == 'image/jpg' || $_FILES['file']['type'] == 'image/gif' || $_FILES['file']['type'] == 'image/jpeg' || $_FILES['file']['type'] == 'image/pjpeg') { // даем файлу загадочное имя и копируем copy($_FILES['file']['tmp_name'], $dir.md5(date('YmdHis')).'.jpg'); // отображаем файл echo '/tmp/images/'.md5(date('YmdHis')).'.jpg'; } ?>
Это упрощенный пример, не включающий обеспечение безопасности загружаемых файлов. Мы лишь показываем логику, потому как в каждом случае интеграции редактора с проектом, загрузка может существенно отличаться.
Отправляя загруженный файл на сервер, можно задать функцию callback:
<script type="text/javascript"> $(document).ready( function() { $('#redactor_content').redactor({ image_upload: '/modules/upload.php', imageUploadFunction: function() { alert(1); } }); } ); </script>
9Загрузка файлов
Смотрите пример в комплекте редактора.
10Автосохранение
<script type="text/javascript"> $(document).ready( function() { $('#redactor_content').redactor({ autosave: '/save.php', interval: 120 }); } ); </script>
В этом примере каждые две минуты, код редактора, в фоновом режиме, будет отсылаться по указанному адресу.
11Типограф
Текст редактора можно оттипографить. Для этого редактор нужно запустить с настройкой, указывающий на типограф:
<script type="text/javascript"> var redactor_obj; $(function() { redactor_obj = $('#redactor').redactor({ typo: '/typo.php' }); }); </script>
После чего по событию нажатой кнопки или иным путем, вызываем функцию:
redactor_obj.typo();
HTML код редактора отправиться в типограф и вернется красивым и оттипографированным.
Важно! В комплекте редактора поставляется типограф, но он сделан лишь для примера. Вы можете использовать любой другой.