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

Rating based on reviews:
Total stars received: 0
Total reviews: 0
Average rating: 0
Filed under: User Blog
Плагин позволяет формировать выборки элементов модуля 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 страницы-донора, а условие (если необходимо) придумать свое.



Reviews

No reviews yet


Comments (0)

No comments yet
Only registered users can post new comments

Similar pages

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

Content author

webitproff

Offline

Sodium Carbonate

Last logged: 2026-09-18 20:01

About me briefly
Support and development of web projects on the CMF Cotonti: private messengers via the website, open and closed small social networks, trading platforms and marketplaces, freelance and services exchange portal, catalogs of goods from wholesale suppliers, dropshipping platforms, online stores, and much more.
View developments and download
Public portfolio of my works and developments
Telegram for messages
@webitproff
Telegram channel
@s/aBuyFILE
  • Page published: 2020-07-17 05:15
  • Last update: 2026-02-27 10:11