Joomla портал
seo seo Subscribe
0
seo

Пользователь

может тоже отправлять информацию в базу данных, например комментарии

к страницам сайта. Однако общается он не напрямую с базой данных, а с

движком сайта, который проверяет корректность данных (от проверки

корректности e-mail пользователя до проверки текста на цензуру) и

помещает введенную пользователем информацию в базу данных.

У большинства уже готовых CMS модульная структура, т. е. можно

использовать модули для добавления в CMS новых возможностей. У нашей CMS

модулей не будет по следующим причинам:

? поскольку CMS разрабатывается для себя, не думаю, что ею

заинтересуются тысячи пользователей. Следовательно, даже если сделать

возможность использования модулей, она останется невостребованной;

Гпава 13. Функции и возможности будущей CMS. Разработка шаблонизатора 157

? модульная структура необходима для быстрого и простого добавления

нового кода в CMS, т. е. для пользователей, которые ничего не понимают

в PHP-программировании. Поскольку мы сами напишем нашу CMS, для

нас не составит труда добавить в нее новую возможность, слегка

отредактировав ее код.

Не подумайте, что данная глава — сугубо теоретическая. В следующем

разделе мы поговорим о создании шаблонизатора, поскольку в остальных главах

мы будем заняты более важными задачами, а именно разработкой движка и

панели управления.

13.4. Разработка шаблонизатора для CMS

В самых простых случаях для разделения РНР- и HTML-кода можно

обойтись без шаблонизатора. Вы будете хранить HTML-код отдельно от сценария

в HTML-файле, а в нужном месте с помощью инструкции file () можно

прочитать содержимое HTML-файла и оператором echo вывести его в браузер.

Но иногда встраивать HTML-код в сценарий все же приходится.

Предположим, в нашем сценарии есть следующие операторы:

echo «<�р>Добро пожаловать $user«;

echo «<�р>Дата вашего последнего визита: $last«;

echo «<�р>Дата регистрации: $reg_date«;

echo «<�р>Вами оставлено сообщений: $messages«;

echo «<�р>Новых личных сообщений: $personal«;

Другими словами, в нашем PHP-сценарии есть HTML-код, который нельзя

поместить в обычный HTML-файл, поскольку его нужно модифицировать и

передавать в браузер.

Если вы сами планируете поддерживать ваш сценарий, то вроде бы ничего

страшного. Но вы только представьте лицо дизайнера, не имеющего

никакого отношения к РНР и к программированию вообще, когда он откроет РНР-

файл, чтобы изменить какой-то HTML-код. Ведь наш сценарий — это не эти

простые пять строк, а сотни строк PHP-кода, в котором иногда «мелькает»

HTML-код. Разбираться во всем этом сложно, к тому же велика вероятность

°шибки.

Поэтому следует вообще исключить HTML-код из PHP-файла. Для этого «нам

придется использовать шаблоны. В этом случае наш HTML-код будет

вынесен в файл welcome.tpl, приведенный в листинге 13.1.

158

Часть IV. Разработка собственной CMS

<�р>Добро пожаловать {USER}

<�р>Дата вашего последнего визита: {LAST}

<�р>Дата регистрации: {REG_DATE}

<�р>Вами оставлено сообщений: {MESSAGES}

<�р>Новых личных сообщений: {PERSONAL}

Наверняка вы уже сталкивались с такими файлами (например, при

редактировании шаблонов той или иной CMS). Дизайнерам сайтов данный формат

тоже знаком, поэтому особого труда с редактированием файла шаблона у них

не будет.

В данной главе мы напишем очень простой шаблонизатор, т. е. сценарий,

позволяющий обрабатывать TPL-шаблоны. Однако возможностей нашего шаб-

лонизатора вполне хватит для создания на его основе довольно серьезных

проектов.

Итак, шаблон у нас уже есть. Напишем файл index.php, который будет

работать с шаблоном, используя наш еще не созданный шаблонизатор

(листинг 13.2).