Интересные возможности плагина lastnews (последние новости сайта)
Материал из Документация NGCMS
Почти все из вас знакомы с плагином lastnews, который отображает на сайте в отдельном боковом меню список последних новостей сайта. Но мало кто знает, что основные возможности плагина можно раскрыть только если настройку проводить в самом коде.
Эта небольшая статья предназначена для тех, кто хочет выводить несколько блоков последних новостей, хочет выводить их из заданных категорий или использовать другой порядок следования.
Детальное описание есть в документации по плагину, но самое важное я продублирую тут.
За вывод всех информационных блоков в файле lastnews.php отвечает следующая функция:
function plugin_lastnews();
При этом фактической подготовкой занимается функция ( plugin_lastnews() просто вызывает её):
$template['vars']['plugin_lastnews'] = plugin_lastnewsGenerator('', array(), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','maxlength')));
Вкратце остановимся на не очень знакомом куске кода: $template['vars']['plugin_lastnews'] - он говорит, что в основном шаблоне (main.tpl) будет создана переменная plugin_lastnews (при этом данная переменная будет отображаться в шаблоне только в том случае, если плагин lastnews включен). Для создания дополнительных блоков вам необходимо использовать переменные вида plugin_lastnew_ДОПОЛНЕНИЕ, в качестве ДОПОЛНЕНИЕ лучше всего использовать цифры. Т.е. plugin_lastnews_1, plugin_lastnews_2,...
Данная функция принимает следующие параметры:
$orderBy - порядок сортировки новостей в БД (напрямую передаётся в SQL запросе).
Используйте с осторожностью, т.е. неправильное указание вызовет ошибку исполнения.
$categories - массив со списком ID категорий, из которых выводить новости. Если не заполнен,
то выводится информация по всем категориям.
Правила заполнения:
- каждый элемент может содержать как цифру так и массив.
- отображаются новости, которые находятся в любом из указанных в массиве элементов
- если элемент является массивом, то он должен содержать список категорий в которых новость должна быть одновременно.
Пример: array (1, 3, array(7,8), array(15,23,33), 48) означает: Выводить все новости, которые находятся в:
- категории 1 ИЛИ
- категории 3 ИЛИ
- одновременно в категориях 7 и 8 ИЛИ
- одновременно в категориях 15, 23 и 33 ИЛИ
- категории 48
Создаём дополнительный блок lastnews, выводимый в переменную plugin_lastnews_2 (которая будет доступна в шаблоне в виде {plugin_lastnews_2} по указанным выше параметрам и задавая максимальное кол-во новостей для отображения равное 7:
$template['vars']['plugin_lastnews_2'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (1, 3, array(7,8), array(15,23,33), 48), $overrideParams = array('number' => 7));
$overrideParams - конфигурационный ассоциативный массив со следующими параметрами:
- number - кол-во новостей для отображения
- offset - номер (по порядку) с которого начинать показ
- dateformat - формат даты, описание см. в конфигураторе
- maxlength - обрезание макс. длины названия новости
- overrideTemplatePath - путь, в котором хранятся шаблоны lastnews.tpl/entries.tpl для данного блока.
При задании этой переменной вы можете использовать встроенную константы:
> tpl_path - указывает путь к текущему шаблону сайта (с '/' в конце)
пример: tpl_path . 'plugins/lastnews/skin1'
> root - указывает путь к каталогу /engine (без '/' в конце)
пример: root . '/plugins/lastnews/tpl/skins/skin1'
Все параметры конфигурационного массива не являются обязательными и имеют свои значения по умолчанию.

