Бесплатная CMS для вашего сайта Разумная альтернатива WordPress

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

23-09-2008Reading time ~ 2 min.Roadmap 23715

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

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

[cut Узнать как решить эту задачу...]

Алгоритм в целом очень простой. Первым делом нужно ввести еще одну опцию в 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 Такой вывод вообще делает блог похожим на обычный сайт. :)
Related Posts
Comments (9) RSS
1 GERAsimov 2008-09-23 22:35:39

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

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


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

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


3 Wave 2008-09-25 19:56:21

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

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


4 Miha 2009-04-12 19:24:43

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


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

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


6 Anonymous 2009-06-03 15:07:11

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


7 Wave 2009-06-03 16:38:53

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


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

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


9 Максим 2011-05-10 11:36:43 admin

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

Leave a comment!