|
|
|
| Вот привожу текст из статьи найденой неизвестно где и хранившуюся по сей день у меня в архиве.
Шаблон - наше спасение. Поясню на примере: у нас есть некий раздел с десятком-другим статей, дизайн этого раздела не меняется от статьи к статье, так зачем нам держать для каждой статьи отдельную страницу, занимая место на сервере и создавая себе вышеописаные проблемы? Правильно, незачем. Поэтому для этого раздела мы создаем шаблон, в нем в то место, где будет выводиться сам текст статьи вставляем самопальный тег типа <ARTICLE> и сохраняем полученное творение под именем article_template в директорию на нашем сервере. Затем пишем небольшой скрипт viewarticle.cgi, который, в зависимости от передаваемых ему данных, будет брать этот файл article_template, искать в нем тег <ARTICLE> и подставлять вместо него статью, ID которой этому скрипту был соответственно передан в запросе вида http://www.yourserver.ru/cgi-bin/viewarticle.cgi?id=XX, где XX - номер запрашиваемого материала. А сам материал тем временем в виде обычного тексотового блока (может быть даже приправленного html-тегами) лежит себе в базе данных. И все, если статья была успешно извлечена из своего хранилища и не менее успешно подставлена вместо тега <ARTICLE>, можно совершенно спокойно выдать пользователю получившийся документ. Просто? Очень! Таким-же образом можно обрабатывать например теги <COUNTERS> для подставления кода счетчиков, <MENU> для навигационного меню, <VOTE> для вывода голосования и любые другие уникальные теги для других целей. Аналогичным образом можно написать шаблоны для абсолютно всех страниц сайта. Надеюсь не нужно обьяснять, что каждый материал должен иметь свой уникальный ID. А сейчас посмотрим что еще полезного можно сделать на основе нашего механизма. Ну, во-первых, можно максимально оперативно добавлять, редактировать и удалять любые материалы (если соберетесь удалять, поставьте вместо тела удаленной статьи небольшое обьяснение пользователю, что и почему удалили и где можно найти этот материал сейчас, или просто расскажите анекдот:)). Во-вторых, можно не беспокоиться за вызов этого материала из любой точки сайта или вообще сети, так как адрес у нее теперь один на века. В-третьих, графическое оформление всех материалов всегда будет соответствовать общему дизайну сайта, так как поменять дизайн одного шаблона в тысячу раз проще чем дизайн тысячи страниц. В-четвертых, если вы дополните свой механизм несложной системой статистики, вы будете знать про свой сайт все: кто, куда, откуда и зачем пришел. В-пятых, вы навсегда избавитесь от ошибки 404 на своем сайте, так как в любой момент сможете контролировать своиства всех внутренних ссылок на вашем сайте. Можно привести еще аргументы, и шесть, и семь, и еще много, но разве уже приведенных недостаточно?
|
Хочу поставить на сайт статьи, но точно не знаю как ими лучше управлять.
Когда их мало, можно слепить несколько отдельных страниц, либо вставлять текст при помощи include() в готовый дизайн.
Но когда их набирается довольно много, то действительно-ли лучший вариант, это хранение текста в БД? А если текст очень большой? Если он определенно отформатирован? Что тогда, вставлять теги HTML?
И здесь ещё говорится о скрипте cgi. Но что-то я не совсем понял...
Возможно-ли воспроизвести подобное с PHP?
Спасибо. | |
|
|
|
|
|
|
|
для: codexomega
(06.09.2005 в 03:12)
| | >Возможно-ли воспроизвести подобное с PHP?
Смысл статьи не изменится, если вместо cgi viewarticle.cgi использовать скрипт viewarticle.php
>Но когда их набирается довольно много, то действительно-ли лучший вариант, это хранение текста в БД?
Здесь нужно определить "лучший" по какому параметру.
По управлению удобнее БД. По производительности – генерация статичных html-файлов, что впрочем, не мешает исходную информацию также хранить в БД, а статичные файлы использовать только для отображения посетителям сайта.
> А если текст очень большой? Если он определенно отформатирован? Что тогда, вставлять теги HTML?
Можно и так, но конечно, совсем не наглядно.
Например, в своей CMS мы используем разбиение текста на параграфы. Т.е. статья состоит из набора параграфов, которые могут иметь различные типы, например: заголовок, текстовый блок, изображение, ссылка, таблица, внешний файл и т.п. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(06.09.2005 в 05:05)
| | Спасибо, разберемся. | |
|
|
|
|
|
|
|
для: codexomega
(06.09.2005 в 05:36)
| | Вероятно, вам будет интересно почитать статью http://providerz.ru/articles/php/templates.html | |
|
|
|
|