Современная, быстрая и удобная система управления сайтом

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

Архив записейКомментарии: 9Просмотров: 22570

Один клиент подкинул интересную задачку. Нужно вывести на главной заголовки записей из указанных рубрик. Данная возможность уже присутствует в 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 Такой вывод вообще делает блог похожим на обычный сайт. :)

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

1GERAsimov23-09-2008 22:35

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

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

2Максим24-09-2008 07:18

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

3WaveСайт25-09-2008 19:56

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

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

4Miha12-04-2009 19:24

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

5Максим12-04-2009 20:30

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

6Аноним03-06-2009 15:07

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

8Иван10-05-2011 09:03

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

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

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

Вы можете войти под своим логином или зарегистрироваться на сайте.

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