Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #73, ДЕКАБРЬ 2006 г.

горячая выпечка CMS

БОРИС ВОЛЬФСОН

Спецвыпуск: Хакер, номер #073, стр. 073-068-4


$template = new Template($title, $body);

$template->print_page();

Результат должен быть примерно как на картинке:

[общая схема работы]

Чтобы лучше понять, как будет происходить работа нашей мини-CMS, попробуем разобрать ее по шагам. Пользователь заходит на определенный адрес, например на www.example.com/page/4. Веб-сервер Apache при помощи модуля rewrite разбивает адрес и передает в программу строку запроса “page/4”. Наш скрипт на PHP сначала смотрит, что ему надо произвести действие “page” – показать страницу с номером четыре - для чего делается запрос в базу данных, из которой возвращается содержимое и название страницы. Эти данные передаются в шаблонизатор, который подставляет их в текущий шаблон темы. В итоге получается полностью готовый HTML-файл, который передается пользователю.

[редактируем страницы]

Теперь настало время показать, как можно создавать страницы и редактировать их. Во-первых, разберемся, какие запросы нужно делать для работы с базой данных. Нам понадобится два запроса - один для редактирования страницы при помощи оператора UPDATE и второй для создания новой страницы при помощи оператора INSERT.

Запрос для создания новой страницы

INSERT INTO `pages` (`title`, `body`) VALUES('$title', '$body');

апрос для изменения страницы

UPDATE `pages`

SET `title` = '$title', `body` = '$body'

WHERE `page_id` = $page_id;

Роли переменных в этих запросах полностью соответствуют названиям, поэтому перейдем к следующему вопросу – вводу содержимого страницы. Это можно сделать при помощи обычной формы, но хотелось бы вводить информацию для страниц не в формате HTML, а в визуальном режиме, прямо как в Word’е. Для этого существуют специальные визуальные онлайн-редакторы, которые при помощи JavaScript реализуют такую функциональность. На данный момент большинство из них имеет схожий функционал, поэтому для наших целей подойдет любой. Я выбрал TinyMCE. Для того чтобы его включить, надо просто добавить пару строчек в наш шаблон, предварительно скачав сам редактор:

Подключение визуального редактора TinyMCE

<script type="text/javascript" src="/tiny_mce/tiny_mce.js"></script>

<script type="text/javascript">

tinyMCE.init({

mode : "textareas",

language : "ru",

content_css : "/themes/standart/style.css"

});

</script>

Первый тег script загружает файл с самим редактором, а второй - инициализирует и настраивает его. У настройки три опции: первая выбирает такой режим работы, при котором все поля ввода будут использовать визуальный редактор, вторая опция, как ни странно, выбирает язык, третья – файл с каскадной таблицей стилей. Подробнее об этих настройках можно прочитать в документации, которая идет с редактором. После подключения визуального редактора все поля ввода заменятся им:

[пользователи]

Для пользователей желательно завести таблицу, где будут храниться логины и пароли. Когда пользователь заходит на сайт, ему необходимо открыть сессию. В PHP это легко сделать при помощи встроенного механизма. Замечу лишь, что еще было бы неплохо в базе данных хранить роли: «пользователь», «администратор», «модератор» и другие. Это позволит не давать обычным пользователям изменять страницы в случае обычного сайта или наоборот дать эти права, если ты делаешь wiki-сайт.

Назад на стр. 073-068-3  Содержание  Вперед на стр. 073-068-5