Плагин Список Лучших Новостей на Cotonti чтоб формировать выборки из модуля Page для создания виджетов списков страниц, в блоки "популярные"

PageList Списки страниц

Плагин позволяет формировать выборки элементов модуля Page для создания виджетов, разделов страниц, пользовательских блоков и элементов навигации

1. Назначение плагина

Плагин Pagelist представляет собой универсальное решение для создания виджетов, виртуальных разделов и навигации. При помощи плагина Pagelist реализуются следующие возможности:

вывод новостной ленты без ограничения по родительскому разделу с настраиваемой паджинацией, сортировкой и условием выбора элементов
создание виджетов типа «Новые страницы», «Лучшие страницы», «Случайные страницы» и проч. с настраиваемой сортировкой и условием выбора элементов
создание элементов навигации и формирование любых пользовательских блоков на базе модуля Pages
опциональная генерация пользовательских тегов
опциональная генерация количества комментариев к странице через {PAGE_ROW_ID|cot_comments_count(‘page’, $this)|cot_declension($this, ‘Comments’)}
опциональная связь с плагином рейтингов (Star Ratings)

Плагин представляет собой функцию pagelist и используется через ее обратный вызов (callback):

function pagelist(
    $tpl = 'pagelist',
    $items = 20,
    $order = 'page_date DESC',
    $condition = '',
    $cat = '',
    $blacklist = '',
    $whitelist = '',
    $sub = true,
    $pagination = 'pld',
    $noself = false,
    $offset = 0
)

 

Парметры вызова следующие:

$tpl — код шаблона (без расширения, напр. pagelist.recentitems)
$items — количество выводимых элементов (опционально, например 5)
$order — порядок сортировки (опционально, например page_date DESC)
$condition — условие выборки (опционально, например page_some-extrafield = “1”)
$cat- родительская категория (опционально, например blog)
$blacklist — «черный список» категорий (опционально, через точку с запятой, например system;some-cat)
$whitelist — «белый список» категорий (опционально, через точку с запятой, например hot;podcasts)
$sub — включить подкатегории (опционально, например true)
$pagination — имя параметра паджинации (опционально, например pld – убедитесь в отсутствии конфликтов одинаковых имен!)
$noself — исключить текущую страницу из выборки (опционально, например true)
$offset — сдвиг в запросе для страниц (1 — все, кроме последней, 2 — все, кроме двух последних и т. д.)

2. Примеры использования:

Как уже упоминалось, плагин использует функцию pagelist для отрисовки собственного шаблона в указанном месте. Благодаря этому плагин позволяет формировать такие блоки, как лента блогов, виджеты «Recent Items», «Top Items» и проч.

Вывод ленты блогов – выводятся все разделы, исключая system и archives с сортировкой по убывания даты и с формированием паджинации по 8 позиций на страницу:

{PHP|pagelist('pagelist.blog','8','page_date DESC','','','system;archives','','TRUE')}

Вывод виджета Топ-3 – три страницы с ненулевыми просмотрами, с сортировкой по убыванию просмотров и исключая раздел system:

{PHP|pagelist('pagelist.top','3','page_count DESC','page_count != "0"','','system')}

Вывод блока «О сайте» – страница с алиасом about из раздела system:

{PHP|pagelist('pagelist.about','','','page_alias = "about"','system')}

3. Формат шаблона

Типовой TPL-шаблон имеет следующий формат:

<!-- BEGIN: MAIN -->
    <ul>
<!-- BEGIN: PAGE_ROW -->
        <li><a href="{PAGE_ROW_URL}">{PAGE_ROW_TITLE}</a></li>
<!-- END: PAGE_ROW -->
    </ul>
  
<!-- IF {PAGE_TOP_PAGINATION} -->
    <div class="pagination">
        {PAGE_TOP_PAGEPREV} {PAGE_TOP_PAGINATION} {PAGE_TOP_PAGENEXT}
    </div>
<!-- ENDIF -->
  
<!-- END: MAIN -->

Для вывода используется регулярный блок PAGE_ROW, в котором при помощи функции cot_generate_pagetags() формируются «страничные» теги с префиксом PAGE_ROW_.

Дополнительно доступны теги:

{PAGE_ROW_NUM} (порядковый номер элемента)
{PAGE_ROW_ODDEVEN} (чет / нечет)
{PAGE_ROW_RAW} (выводит сырые данные строки из базы в формате {PAGE_ROW_RAW.page_alias})

При включении в настройках плагина связи с плагином Comments, доступными становятся теги PAGE_ROW_COMMENTS и PAGE_ROW_COMMENTS_COUNT.

 

Для админки параметры.

10 новых:

{PHP|cot_pagelist('pagelist.admin', 10, 'page_date DESC')}

10 лучших:

{PHP|cot_pagelist('pagelist.admin', 10, 'page_count DESC', 'page_count > 0')}

10 лучших за последние 10 дней:

{PHP|cot_pagelist('pagelist.admin', $this, 'page_count DESC', 'page_date > (UNIX_TIMESTAMP() - 864000)')}

Если надо указать раздел:

{PHP|cot_pagelist('pagelist.admin', 10, 'page_date DESC', 'single', 'articles')}

Кроме single можно еще array, white и black

P.S. по материалам сайта cotonti.com

Обсудить на форумах: плагин Pagelist или форкнуть на Гитхабе

пример как это в админке

Плагин Список Лучших Новостей на Cotonti чтоб формировать выборки из модуля Page для создания виджетов списков страниц, в блоки "популярные"
Плагин Список Лучших Новостей на Cotonti чтоб формировать выборки из модуля Page для создания виджетов списков страниц, в блоки «популярные»

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

Прокрутить вверх