Правильное отображение профиля пользователя
Что сделать с третьим оставшимся полем? Тут уж думайте сами — не хочу
навязывать свою мысль.
Глава 20
Разработка и интеграция панели
администрирования CMS
20.1. Возможности панели управления
В данной главе мы поговорим о создании панели администрирования для
нашей CMS и о ее интеграции с форумом phpBB. Но сначала нам нужно
определить возможности нашей панели администрирования.
Напомню, что у нас есть три основных таблицы: таблица статических
страниц, таблица категорий (разделов) и таблица страниц. Наша CMS должна
уметь редактировать все эти таблицы, т. е. создавать новые записи, удалять и.
редактировать существующие. С созданием и удалением все просто. А вот с
редактированием — не совсем. Ведь наши записи могут содержать HTML-
код страницы, а не просто текст. Следовательно, мы должны обеспечить
возможности удобного редактирования. То есть мы должны создать HTML-
редактор, добавляющий HTML-теги.
Итак, определим возможности CMS:
? создание, редактирование и удаление записей таблицы static;
? создание, редактирование и удаление разделов (категорий) сайта;
? создание, редактирование и удаление страниц сайта;
? HTML-редактор для редактирования HTML-кода страниц.
20.2. Создание HTML-редактора
Мы будем редактировать HTML-код, поэтому форма для его редактирования
должна обеспечить легкое добавление тегов в текст редактируемой страни-
Глава 20, Разработка и интеграция панели администрирования CMS 241
цы. Согласитесь, гораздо проще ввести описание ссылки и URL, а затем
нажать кнопку Вставить, чем писать вручную следующий тег:
oni*caHMe
HTML-редактор — не обязательная функция CMS, но весьма желательная,
поскольку она существенно облегчает редактирование HTML-кода. HTML-
редакторы встроены во многие CMS и форумы — PHP-Nuke, phpBB, Slaed
и др. Чем наша CMS хуже? Поэтому и у нас будет полноценный HTML-
редактор.
Принцип работы HTML-редактора очень прост. Есть поле для ввода текста,
есть кнопки, нажав которые вы запускаете Java-скрипт, добавляющий
определенный текст в наше поле. Добавляемый текст может быть произвольным.
Мы будем добавлять HTML-теги.
Код Jav^-скрипта, используемого для вставки текста, приведен в
листинге 20.1.
function Insert(Text) {
element = document.getElementById("desc");
element.focus();
if (document.selection) {
SelectedText = element.document.selection.createRange();
SelectedText.text = Text;
}
}
Весь скрипт состоит всего из одной функции insert, вставляющий
переданный ей в качестве параметра текст в текстовое поле с именем desc. Скрипт
очень прост, зато работает в любом браузере — IE, Opera, Firefox и др.
Вот пример кнопки, при нажатии которой в поле с именем desc будет
вставлен тег , делающий следующий за ним текст жирным:
«) f>
Мы создадим кнопки для вставки ссылок, картинок, тегов форматирования,
списков, абзацев. Остальные HTML-теги (если вам они нужны) можете
добавить сами — по образу и подобию.
242
Часть V. Интеграция CMS с форумом phpBB
Код HTML-редактора представлен в листинге 20.2, а внешний вид формы —
на рис. 20.1.
function Insert(Text) {
element = document.getElementById("desc");
element.focus();
if (document.selection) {
SelectedText = element.document.selection.createRange();
SelectedText.text = Text;
}
}
Как видно из рис. 20.1, у нас для большинства тегов есть кнопки,
открывающие тег (например, Жирный), и кнопки, закрывающие тег (/Жирный). Если
тег не закрыть, то его действие будет распространяться на весь последующий
текст до закрытия тега.
244
Часть V.
5th Фев 2011
|
Теги:
|