Cotonti сайт своими руками / Вебмастер / Веб-сайт

Выводим список статей на главной странице с пагинацией

04.03.2019 195

Здравствуйте, дорогие читатели сайта cmscot.net. Бывает так, что нужно вывести список статей на главной странице сайта, с пагинацией (разбивкой всего списка на группы по N количеству на одной странице). Помимо самого функционала, желательно чтобы была возможность как-то стилизовать содержимое под общий дизайн сайта, так как по умолчанию из коробки идёт только минимальное оформление кода шаблона. В Cotonti вывести список статей, добавленных через интерфейс модуля page можно с помощью специальной callback (коллбэк) функции.

Cписок статей на главной странице с пагинацией

Шаблон вывода списка статей page.enum

Функция для гибкого вывода различных блоков страниц модуля page называется cot_page_enum. Файл шаблона по умолчанию называется page.enum.tpl и находится в tpl папке модуля page. Но править системные файлы - не лучшая практика, так как обновления модуля всё затрут, поэтому нужно сделать копию этого файла, и уже в нём делать что угодно. Для этого нужно сделать следующее:

  • В папке шаблона ( /themes/ваша тема/ ) создать папку modules, если её еще нет.
  • Внутри созданной папки modules создать папку page, если её еще нет.
  • В созданную папку page скопировать файл page.enum.tpl, который находится в ( /modules/page/tpl/ ).
  • Переименовать скопированный файл в page.enum.index.tpl

Если всё сделали правильно, при вызове функции на главной странице, будет показываться содержимое файла page.enum.index.tpl, который лежит теперь в ( /themes/ваша тема/modules/page/ ). Таким образом можно сделать любое количество файлов, например разные шаблоны вывода, и вызывать их с помощью функции cot_page_enum, третий параметр вызова - это шаблон tpl, который будет показан. Преимущество отдаётся тому что находится в теме, если его там нет, выводится тот что по умолчанию в модуле (page.enum.tpl).

Главное привило переименования - не трогать название по умолчаниюpage.enum ), иначе не будет работать. Своё имя можно присваивать после точки, например page.enum.my.tpl, page.enum.custom.tpl, и т.д.

Функция callback (обратного вызова) для получения содержимого с определёнными параметрами выглядит так:

function cot_page_enum($categories = '', $count = 0, $template = '', $order = '', $condition = '', 
$active_only = true, $use_subcat = true, $exclude_current = false, $blacklist = '', $pagination = '', 
$cache_ttl=null)

Может принимать такие параметры:

  • $categories - родительские категории для вывода, или пустое для вывода со всех категорий.
  • $count - количество элементов для вывода, 0 - выводит все сразу.
  • $template - tpl шаблон вывода без расширения.
  • $order - порядок сортировки при выводе (SQL синтаксис).
  • $condition - выборка по условию (SQL).
  • $active_only - только опубликованные.
  • $use_subcat - выводить из подкатегорий.
  • $exclude_current - исключить текущую страницу из выборки.
  • $blacklist - черный список категорий через разделитель ; (точка с запятой).
  • $pagination - символ пагинации (произвольный набор букв).
  • $cache_ttl - кеширование в секундах, 0 для отключения
     

Вызов списка статей на главной с пагинацией через cot_page_enum

Чтобы вызвать список статей на главной, нужно добавить в файл index.tpl, который находится в ( /themes/ваша тема/ ) функцию с определёнными параметрами:

<!-- IF {PHP.cot_modules.page} -->
{PHP|cot_page_enum('', 0, 'index', 'page_date DESC', '', true, true, false, 'system', 'ind', 0)}
<!-- ENDIF -->

Выше описаны все параметры, которые может принимать функция. Для вывода пагинации обязательным является параметр $pagination, так как без него пагинация не появится. На рабочем сайте лучше включить кеш (параметр $cache_ttl ), а не заставлять делать запросы в базу данных при каждом обращении. Если параметр $count указан, и включена пагинация, будет выводиться указанное количество, если 0 - то количество в системных настройках модуля page.

Веб-сайт: «Выводим список статей на главной странице с пагинацией»

Если вам была полезна эта информация, будьте добры, поделитесь ею в социальных сетях. Это послужит дополнительным мотиватором, стимулом к дальнейшим публикациям на cmscot.net статей на интересующие вас темы.
Cmscot

Близкие по теме «Выводим список статей на главной странице с пагинацией»

Нет записей