Как и обещал, сегодня работаем с новостями
Как и обещал, сегодня работаем с новостями.
Если я еще помню вчерашний выпуск, мы придумали формат для хранения новости.
Исходя из этого формата нам надо бы получить краткий вариант новостей для "морды" и полный вариант для раздела "новости" с разбиением всего списка новостей на страницы.
Начнем с новостей на титульную страницу (морду).
У нас для анонсов предусмотрено специально поле строке записи новости. Кроме нее возьмем дату новости, если новости у нас выходят не часто (раз в день или реже) или время новости, если новости у нас идут как из пулемета.
Еще нам понадобится "ограничитель" количества коротких новостей — еще одна переменная в vars — NEWS_MAIN_MAX — мы ее назовем.
А имя файла для титульных новостей мы определили в прошлом выпуске: /news/main.inc.
Этого будет достаточно, мне кажется.
Теперь большой и философский вопрос о том, в какой класс нам запихнуть функции работы с новостями.
Для добавления новостей и их редакции вполне подойдет class_in, а вот для вывода... надо рассудить здраво. Давайте рассуждать вместе... Новости у нас могу вызываться в нескольких местах:
1. На главной странице
2. На странице "новости"
3. На любой другой странице может вызываться анонс в виде текстового рекламного блока.
Напрашивается класс out... Согласны? Вижу, что согласны.
Ох, люблю я вас поводить за нос!
Ну какой может быть вывод новостей через класс? Вы что, собираетесь выдергивать новости из архива для каждого пользователя?
Конечно же нет. Тут разговора быть не может — новостные файлы должны формироваться на диск в момент какого-либо изменения в главном новостном файле и подключаться на сайт простым includ-ом.
А это значит, что все (почти все) функции работы с новостями у нас пойдут в класс in. Вернее, я предлагаю породить от класса in класс class_in_news и в нем хранить все функции обработки новостей.
Итак.