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

Рейтинг на основе отзывов:
Звезд получено: 0
Oтзывов всего: 0
Средняя оценка: 0
Опубликовано в: Блог пользователей
Плагин позволяет формировать выборки элементов модуля 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 – имя шаблона
  • $items – количество выводимых элементов (при непустом $pagination – на страницу)
  • $order – сортировка в формате SQL (по умолчанию com_id DESC)
  • $extra – дополнительный SQL-запрос
  • $mode – режим (single, array_white, array_black, white, black)
  • $cats – разделы (строка, массив или строка с разделителями в виде ; (точка с запятой))
  • $subs – включать подразделы
  • $noself – исключить текущую страницу (если функция вызывается из шаблона страницы)
  • $offset -- сдвиг записей от начала (минус $offset первых страниц)
  • $pagination – код паджинации
  • $ajax_block – id блока при использовании аякса (включение аякса в конфиге плагина)
  • $cache_name – имя записи кэша
  • $cache_ttl – срок действия кэша
2. Примеры использования:
// Вывести 5 последних страниц
{PHP|cot_pagelist(‘comlist’, 5}
 
// Вывести 5 последних страниц
{PHP|cot_pagelist(‘comlist’, 5, ‘page_date DESC’}
 
// Вывести 5 последних страниц суперадмина
{PHP|cot_pagelist(‘comlist’, 5, ‘page_date DESC’, ‘page_ownerid = 1’}
 
// Вывести 5 последних страниц раздела docs и его подразделов
{PHP|cot_pagelist(‘comlist’, 5, ‘page_date DESC’, ‘’, ‘single’, ‘docs’, ‘1’}
 
// Вывести 5 последних страниц, исключая разделы blog и system и их подразделы
{PHP|cot_pagelist(‘comlist’, 5, ‘page_date DESC’, ‘’, ‘black’, ‘blog;system’, ‘1’}
 
// Вывести 5 последних страниц из массива $some_array[] и их подразделов
{PHP.some_array|cot_pagelist(‘comlist’, 5, ‘page_date DESC’, ‘’, ‘array_white’, ‘$this’, ‘1’}
 
// Вывести страницы из массива $some_array[] и их подразделов с сортировкой по убыванию даты и разбивкой по 5 записей на страницу
{PHP.some_array|cot_pagelist(‘comlist’, 5, ‘page_date DESC’, ‘’, ‘array_white’, ‘$this’, ‘1’, 0, 0, ‘page’}
 
// Вывести страницы из массива $some_array[] и их подразделов с сортировкой по убыванию даты и разбивкой по 5 записей на страницу и ajax-паджинацией
{PHP.some_array|cot_pagelist(‘comlist’, 5, ‘page_date DESC’, ‘’, ‘array_white’, ‘$this’, ‘1’, 0, 0, ‘page’, ‘page2list’}
 
// Вывести 5 последних страниц, исключая разделы blog и system и их подразделы и закэшировать результат на 24 часа
{PHP|cot_pagelist(‘comlist’, 5, ‘page_date DESC’, ‘’, ‘black’, ‘blog;system’, ‘1’, 0, 0, ‘’, ‘’, ‘pagelist_blacklist’, 86400}
10 постов с подкатегориями
{PHP|cot_pagelist('pagelist.user-guide', '10', 'page_date DESC', '', 'single', 'user-guide', 'TRUE')}
  Как уже упоминалось, плагин использует функцию 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 или форкнуть на Гитхабе пример как это в админке [caption id="attachment_1394" align="aligncenter" width="640"] Плагин Список Лучших Новостей на Cotonti чтоб формировать выборки из модуля Page для создания виджетов списков страниц, в блоки "популярные"[/caption]  

Как информацию со одной страницы вывести на некоторой другой?

В самом простом варианте это можно сделать, например, через плагин Pagelist:

  1. Создаем страничное экстраполе для указания ID страницы, с которой будем брать информацию (например, page_getpagedata).В шаблон page.tpl добавляем следующую конструкцию:

    1

    2

    3

    <!-- IF {PAGE_GETPAGEDATA} -->

       {PAGE_GETPAGEDATA|sedby_pagelist('pagelist.getpagedata', 1, '', 'page_id = $this')}

    <!-- ENDIF -->

  2. В папке plugins/pagelist темы создаем файл pagelist.getpagedata.tpl:

    1

    2

    3

    4

    5

    6

    7

    <!-- BEGIN: MAIN -->

    <!-- BEGIN: PAGE_ROW -->

       <div>

          {PAGE_ROW_TEXT}

       </div>

    <!-- END: PAGE_ROW -->

    <!-- END: MAIN -->

  3. В файл page.edit.tpl добавляем TPL-теги для правки нашего экстраполя:

    1

    2

    3

    4

    5

    6

    7

    8

    <tr>

      <td>

        {PAGEEDIT_FORM_GETPAGEDATA_TITLE}

      </td>

      <td>

        {PAGEEDIT_FORM_GETPAGEDATA}

      </td>

    </tr>

Теперь, если при правке страницы указать id страницы-донора, то конструкция из п. 1 выведет в соответствующем месте текст страницы-донора.

Естественно, в шаблоне pagelist.getpagedata.tpl можно использовать любое поле или экстраполе.

Если хочется в header.tpl / footer.tpl, то логика будет такая:

1

2

3

<!-- IF {PHP.pag.page_getpagedata} -->

  {PHP.pag.page_getpagedata|sedby_pagelist('pagelist.getpagedata', 1, '', 'page_id = $this')}

<!-- ENDIF -->

Если надо вообще отвязаться от текущей страницы и глобально вставлять страничное поле/экстраполе, тогда так:

1

{PHP|sedby_pagelist('pagelist.getpagedata', 1, '', 'page_id = 11')}

Пункты 1 и 3 в этом случае не нужны, вместо 11 указать id страницы-донора, а условие (если необходимо) придумать свое.



Отзывы

Отзывов пока нет


Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Похожие страницы

Как исправить медленную загрузку страниц?
1 Как исправить медленную загрузку страниц: 5 практических советов по повышению скорости работы сайта Как Google
Модуль «Pages» - Управление контентом: страницы и категории страниц
2 Модуль «PAGES» - Управление контентом на CMS Cotonti: страницы и категории страниц [Документация по модулю «PAGES» и
Промежуточный блок HTML в списках страниц
3 задача, добавить html код циклически после вывода 4х новостей &nbsp; &lt;!-- BEGIN: LIST_ROW --&gt;

Автор контента

webitproff

Оффлайн

Carbonate Sodium

Последняя авторизация: 19.07.2026 01:57

  • Чем могу помочь?

    Оказываю весь спектр услуг по CMF Cotonti. Разработка открытых и закрытых корпоративных интернет порталов, небольших социальных сетей, торговые площадки, маркетплейсы, биржи фриланса, каталоги товаров оптовых поставщиков, интернет-магазин под заказ, чтобы делать совместные покупки и групповые совместные продажи от имени нескольких продавцов.

  • Разработки на GitHub бесплатно
    • Страница размещена: 17.07.2020 05:15
    • Последнее обновление: 27.02.2026 10:11