Вывод записей на главной блоками по рубрикам

Вторник, 23 сентября 2008 г.
Рубрика: MaxSite CMS -> Основы
Метки:
Просмотров: 6164
Подписаться на комментарии по RSS

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

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

Алгоритм в целом очень простой. Первым делом нужно ввести еще одну опцию в options.ini:

[Блоки рубрик на главной]
options_type = templates
options_key = home_cat_block
type = checkbox
description = "Отметьте, если нужно выводить записи блоками по отдельной указанной (в «Номера рубрик для главной») рубрике на главной."
default = 0

То есть это будет простой чекбокс. Мы просто смотрим эту отметку, и если она будет включена, значит подключим файл для вывода.

Я не стал усложнять home.php, а просто создал еще один файл home-cat-block.php, в котором выполняется вывод. В home.php в самом верху добавим такие строчки:

if (mso_get_option('home_cat_block', 'templates', '0'))
{
    require('home-cat-block.php'); 
    return;
}

Думаю, тут все понятно: если опция включена, переключаемся на home-cat-block.php.

Сам файл home-cat-block.php я полностью приводить не буду, просто расскажу что в нем делается.

По сути это тот же самый home.php. Различие в том, что мы сначала получаем список указанных рубрик (из настроек шаблона - home_cat_id) и потом подставляем каждый id рубрики в параметры к mso_get_pages().

Данные рубрик - в нашем случае достаточно только заголовка, мы получаем из массива всех рубрик, который возвращает функция mso_cat_array_single().

Больше разницы с home.php нет.

В общем кому интересно разобрать этот пример, посмотрите указанные файлы. Я думаю, что хороший пример использования mso_get_pages() с разными параметрами. Таким образом, если вам нужно на сайте организовать вывод записей поблочно, то воспользуйтесь этим алгоритмом.

ps Такой вывод вообще делает блог похожим на обычный сайт. smile

twitter.com facebook.com mail.ru friendfeed.com livejournal.ru memori.ru google.com yandex.ru

Комментариев: 9

  1. Отлично! как раз к стати. На WP постоянно именно такой вывод и использую. Но там приходиться воротить гору запросов. Вот еще б подсказали как можно у первого поста вывести привью имеющейся в посте фотографии и указанное количество символов теста самого поста а у остальных только заголовок.

    Заранее БЛАГОдарен!

  2. Тут как обычно: вводите в цикл переменную, которая увеличивается на единицу за каждую итерацию. Если она равна 1 (то есть первый проход), формируете отличный от обычного вывод данных. Обрезать текст на указанное количество слова можно с помощью mso_str_word().

  3. http://groups.google.com/group/maxsite/files

    Но лучше посмотрите любую другую, например wordpress.

  4. А можно посмотреть как это выглядит на практике, Макс. Если не секрет - было бы интересно посмотреть результат smile

  5. Уже в комплекте с MaxSite CMS. На этом сайте главная так и выводится.

  6. Все вышеописанное верно только для записей типа blog, а хотелось бы выводить на первую и static записи...

  7. В шаблоне одной строчкой параметров решается.

  8. Более корректно ставлю вопрос - эта функция в новой версии уже реализована и ничего не нужно вписывать в скрипты самостоятельно?

  9. Да, всё давно уже в комплекте MaxSite CMS.

Оставьте свой комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Комментарий будет опубликован после проверки

(войти без комментирования)

Имя и сайт используются только при регистрации

Авторизация: Loginza.

(обязательно)