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

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

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

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


BORISVOLFSON@GMAIL.COM HTTP://SPLENDOT.COM

ВЗГЛЯД НА СИСТЕМЫ УПРАВЛЕНИЯ КОНТЕНТОМ ИЗНУТРИ

СУЩЕСТВУЕТ СОТНЯ-ДРУГАЯ СИСТЕМ УПРАВЛЕНИЯ КОНТЕНТОМ САЙТА (CMS). НЕКОТОРЫЕ ИЗ НИХ ПОПРОЩЕ, ДРУГИЕ ПОСЛОЖНЕЕ. ЧТОБЫ УСТАНОВИТЬ И НАЧАТЬ ПОЛЬЗОВАТЬСЯ ТАКОЙ СИСТЕМОЙ, НУЖНО ПОРАБОТАТЬ БУКВАЛЬНО ПАРУ ЧАСОВ. К ТОМУ ЖЕ ДЛЯ БОЛЬШИНСТВА CMS’ОВ ИМЕЕТСЯ ОГРОМНОЕ КОЛИЧЕСТВО МОДУЛЕЙ НА ВСЕ СЛУЧАИ ЖИЗНИ. НО ВОТ ЕСЛИ ПОДХОДЯЩЕГО МОДУЛЯ НЕТ, ТО НАЧИНАЮТСЯ ТРУДНОСТИ

[зачем писать свою CMS]

В одной из прошлых статей для этого славного журнала я писал, что разрабатывать свою систему управления контентом это все равно что изобретать велосипед. Но представь, что тебе нужно поставить на велосипед, который ты купил в магазине, новые педали, сменить цепь и настроить положения руля. Надо уметь хотя бы держать в руках отвертку и ключ, а в нашем случае - иметь представление о том, из чего состоит CMS и как она выглядит изнутри.

Писать простейшую CMS мы будем на самой доступной связке PHP+MySQL. Для самых маленьких читателей поясню: PHP – это скриптовый язык программирования, а MySQL – это база данных, где будут храниться вся информация. Такой выбор обусловлен, прежде всего, популярностью, доступностью и бесплатностью этих продуктов.

[безопасность]

Скрипты, которые приведены в этой статье, сознательно содержат дыры (например, различного рода инъекции), так как в данном случае я предпочитаю ясность безопасности.

[функционал]

Давай сразу определимся, какой функционал будет поддерживать наша минисистема управления сайтом. Самая главная функция это отображение веб-страниц, для этого у нас будет работать специальная подсистема. Она будет поддерживать создание, редактирование и удаление страниц, содержание которых будет храниться в базе данных. Очень хотелось бы, чтобы рендеринг (вывод в виде HTML) осуществлялся при помощи простого шаблонизатора на PHP, с которым удобно работать. Пару слов о редактировании страниц – оно будет происходить в визуальном режиме, когда можно осуществлять форматирование текста в режиме WYSIWYG и без использования HTML. Осталось упомянуть одну маленькую фишку – Clean URLs. Я бы хотел, чтобы адреса страниц не содержали знака вопроса: www.example.сom/index.php?page=1 или чего-либо подобного. Есть две причины: во-первых, это оптимизация под поисковые системы (не все поисковики любят и нормально понимают адреса со знаком вопроса), во-вторых, человеку трудно запомнить такой адрес. Давай потихоньку реализовывать описанный выше функционал.

[сlean URLs]

Пользователь заходит на сайт и ему отображается страница по умолчанию, если происходит переход по какой-либо ссылке, то движок выдает нужную страницу. Чтобы правильно реализовать это, необходимо использовать механизм перезаписи адресов. В веб-сервере Apache он реализуется при помощи специального модуля rewrite. Например, пользователь переходит по ссылке www.example.com/page/2, и нам необходимо, чтобы ссылка была преобразована в www.example.com/index.php?q=page/2. Файл index.php будет обрабатывать все запросы пользователя, а в переменной q будет передана строка запроса, которую надо будет разобрать. Чтобы описанный выше алгоритм начал работать, надо в файле .htaccess прописать следующее:

Содержание  Вперед на стр. 073-068-2