«Get Last Forum Posts» Плагин. Последние посты где угодно

плагин для Cotonti - Выводит последние сообщения форума в любом месте сайта одним вызовом функции в шаблоне. Гибкая настройка, фильтрация по категориям и свой шаблон для каждого блока.

Get Last Forum Posts — плагин для Cotonti

Выводит последние сообщения форума в любом месте сайта одним вызовом функции в шаблоне. Гибкая настройка, фильтрация по категориям и свой шаблон для каждого блока.

Оглавление

Возможности

  • Вывод любого количества последних сообщений форума (по умолчанию 5)
  • Фильтрация по одной, нескольким или всем категориям форума
  • Настраиваемый учёт прав доступа к категориям (можно отключить)
  • Гибкая система шаблонов: можно создать свой tpl-файл и указать его при вызове
  • Автоматическое скрытие перемещённых и приватных тем
  • Обрезка длинных сообщений до заданной длины с добавлением троеточия
  • Корректная обработка BBCode в зависимости от настроек категории

Требования

  • Cotonti (актуальная версия)
  • Модуль «Форумы» (forums) должен быть установлен и активирован

Установка

  1. Скачайте архив плагина и распакуйте его в папку plugins/getlastposts/ вашего сайта.
  2. Зайдите в админ-панель Cotonti → «Расширения».
  3. Найдите в списке «Get Last Forum Posts» и нажмите «Установить».
  4. Готово! Плагин сразу можно использовать в шаблонах.
    Если вы вручную обновляли файлы плагина, после замены выполните «Переустановить», чтобы обновить запись в базе данных.

Быстрый старт

Самый простой вызов в любом шаблоне:

{PHP|cot_forums_getLastPosts(5)}

Эта строка выведет 5 последних сообщений форума из всех категорий, доступных текущему пользователю, используя стандартный шаблон getlastposts.sidebar.tpl.

Параметры функции

Функция cot_forums_getLastPosts() принимает три аргумента:

cot_forums_getLastPosts(
    int $count = 5,                                  // Количество сообщений
    mixed $category = null,                          // Категории: null / false / '' = все доступные
    string $template = 'getlastposts.sidebar'        // Имя файла шаблона без расширения .tpl
)
  • $count – целое число, определяет, сколько последних сообщений будет загружено.
  • $category – может быть:
    • null, false или '' – вывести сообщения из всех категорий, доступных пользователю (с учётом прав, если проверка включена);
    • строкой, например 'news' – только из категории с кодом news;
    • массивом строк, например ['news', 'articles'] – из нескольких категорий одновременно.
  • $template – имя файла шаблона из папки plugins/getlastposts/tpl/. По умолчанию 'getlastposts.sidebar' соответствует файлу getlastposts.sidebar.tpl.

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

Рассмотрим несколько реальных сценариев.

Блок на главной: все категории, стандартный шаблон

Разместите в шаблоне главной страницы (home.tpl или index.tpl) код:

<h3>Обсуждения на форуме</h3>
{PHP|cot_forums_getLastPosts(7)}

Будет показано 7 последних сообщений из всех публичных категорий форума. Оформление идёт через стандартный шаблон getlastposts.sidebar.tpl.

Врезка в статье: только одна категория

Предположим, на сайте есть страница, посвящённая новостям компании, и вы хотите показать свежие обсуждения из форумной категории company-news. В шаблоне страницы (page.tpl) внутри нужного места вставьте:

<!-- IF {PHP|cot_plugin_active('getlastposts')} -->
<div class="card mt-4">
  <div class="card-header">Последние обсуждения</div>
  <div class="card-body">
    {PHP|cot_forums_getLastPosts(10, 'company-news')}
  </div>
</div>
<!-- ENDIF -->

Если категория company-news закрыта для гостей, включённая настройка «Учитывать права» скроет эти сообщения от неавторизованных пользователей.

Сайдбар с компактным дизайном

Иногда стандартный вид не подходит для узкой боковой колонки. Создайте новый шаблон getlastposts.compact.tpl (см. Как создать собственный шаблон) и вызывайте плагин так:

{PHP|cot_forums_getLastPosts(5, null, 'getlastposts.compact')}

Теперь блок будет использовать компактную вёрстку без лишних отступов.

Разные шаблоны для разных разделов

Можно комбинировать фильтрацию и шаблоны. Например, на странице с вакансиями показываем обсуждения из категории jobs с одним дизайном, а в блоге — из blog с другим:

В шаблоне вакансий:

{PHP|cot_forums_getLastPosts(6, 'jobs', 'getlastposts.jobs')}

В шаблоне блога:

{PHP|cot_forums_getLastPosts(8, 'blog', 'getlastposts.blog')}

Файлы шаблонов getlastposts.jobs.tpl и getlastposts.blog.tpl должны быть заранее созданы в папке плагина.

Проверка активности плагина

Рекомендуется всегда оборачивать вызов плагина в проверку его активности, чтобы избежать ошибок, если плагин будет отключён:

<!-- IF {PHP|cot_plugin_active('getlastposts')} -->
    {PHP|cot_forums_getLastPosts(10, false, 'getlastposts.sidebar')}
<!-- ENDIF -->

Настройки плагина

Настройки находятся в админ-панели:
Администрирование → Расширения → Get Last Forum Posts → Настройки

Учитывать права доступа к категориям

  • Включено (1) – плагин проверяет, может ли текущий пользователь читать категорию. Если нет, сообщения из неё не выводятся. Это значение по умолчанию.
  • Выключено (0) – права не проверяются, выводятся все сообщения, кроме скрытых техническими средствами (приватные темы, перемещённые топики).

Как создать собственный шаблон

  1. Перейдите в папку plugins/getlastposts/tpl/.
  2. Скопируйте файл getlastposts.sidebar.tpl и переименуйте, например, в getlastposts.custom.tpl.
  3. Отредактируйте его под свой дизайн. Основная структура шаблона:
<!-- BEGIN: MAIN -->
  <h6>{PHP.L.getlastposts_title}</h6>
  <ul class="list-unstyled">
    <!-- BEGIN: POST_ROW -->
    <li class="bg-transparent">
      <a href="{POST_ROW_TOPIC_URL}">{POST_ROW_TITLE}</a>
      <br><small>{POST_ROW_POSTER}, {POST_ROW_DATE}</small>
      <p class="text-muted">{POST_ROW_TEXT}</p>
    </li>
    <!-- END: POST_ROW -->
    <!-- BEGIN: NO_POSTS -->
    <li>{PHP.L.getlastposts_none}</li>
    <!-- END: NO_POSTS -->
  </ul>
<!-- END: MAIN -->
  1. Используйте новый шаблон, указав его имя без .tpl в третьем параметре функции:
    {PHP|cot_forums_getLastPosts(5, null, 'getlastposts.custom')}

Доступные переменные в POST_ROW

  • {POST_ROW_ID} – идентификатор сообщения
  • {POST_ROW_TOPIC_ID} – идентификатор темы
  • {POST_ROW_URL} – прямая ссылка на сообщение
  • {POST_ROW_TOPIC_URL} – ссылка на тему
  • {POST_ROW_TITLE} – заголовок темы (экранирован)
  • {POST_ROW_CAT_PATH} – хлебные крошки категории
  • {POST_ROW_POSTER} – имя автора (с ссылкой на профиль, если возможно)
  • {POST_ROW_DATE} – отформатированная дата
  • {POST_ROW_DATE_STAMP} – Unix-метка времени
  • {POST_ROW_TEXT} – обрезанное превью текста без HTML-тегов
  • {POST_ROW_ODDEVEN} – CSS-класс чётности (even/odd)
  • {POST_ROW_NUM} – порядковый номер, начиная с 1
  • {POST_ROW} – полный массив данных сообщения (для продвинутых модификаций)

Структура файлов

plugins/getlastposts/
├── getlastposts.setup.php        # Установочный файл (регистрация в БД)
├── getlastposts.global.php       # Хук global, подключает зависимости
├── inc/
│   └── getlastposts.functions.php # Основная функция cot_forums_getLastPosts()
├── tpl/
│   └── getlastposts.sidebar.tpl  # Шаблон вывода по умолчанию
└── lang/
    └── getlastposts.ru.lang      # Языковые строки (русский)

Часто задаваемые вопросы

Плагин установлен, но ничего не выводится

  • Бывает, что в админке плагина, после использования кнопки "Обновить" прекращается вывод списка последних постов в нужном месте.
  • Проверьте, есть ли в форуме сообщения, подходящие под указанные категории и доступные пользователю.
  • Самое простое - это тупо просто переустановите плагин в админке, или уделите обертку (<!-- IF {PHP|cot_plugin_active('getlastposts')} --> и <!-- ENDIF -->) проверки в шаблоне и просто пропишите: {PHP|cot_forums_getLastPosts(10, false, 'getlastposts.sidebar')}
  • если ничего не помогло, - лучше писать на форуме

Как вывести сообщения из нескольких категорий?

Передайте массив кодов категорий во втором параметре:

{PHP|cot_forums_getLastPosts(10, 'plugs,lifehack,original', 'getlastposts.sidebar')}

Не отображаются сообщения из нужной категории

  • Включена ли настройка «Учитывать права доступа»? Возможно, текущий пользователь не имеет доступа на чтение этой категории.
  • Проверьте точное написание кода категории (он чувствителен к регистру и должен совпадать с кодом в структуре форума).
  • Сообщения из приватных и скрытых разделов исключаются автоматически.

Могу ли я использовать несколько блоков с разными настройками на одной странице?

Да, вы можете вызывать функцию сколько угодно раз с разными параметрами и шаблонами.

Лицензия

BSD License. Свободное распространение и модификация при условии сохранения копирайта.

Автор и поддержка

Если вы нашли ошибку или у вас есть предложения, создайте issue в репозитории.

Rating based on reviews:
Stars received: 5
Total reviews: 1
Average rating: 5
5 minutes read

Reviews to products 1

Нормально!

Бедный Котонти, никто его так не "рвет" как вы. На картинке выглядит симпотно. как я понимаю это виджет какой-то?

2026-06-07 10:21

Review answers
1
День добрый.
По сути это верно, - это виджет, но который сами конструируем простейшим образом и выводим где угодно и как угодно.
На каждый виджет может быть свой шаблон со своей манерой и стилистикой, с разными категориями и без них, с разным количеством сообщений.
Каждая точка вывода сообщений полностью гибка в настройках, а можно однотипно и везде.

Насчет и по-поводу "котонти", - ну так как говорят "знатоки" - он же умер )))) или недоделанная система ))).
Котонти - это не готовый кувшин для вина, а глина для гончара, который знает что с ней делать!
Котонти прежде всего для разработчиков, - разработчик делает кувшин или чашку, а затем передает ее конечному пользователю как готовое изделие. не понимаю что тут непонятного.... я не вам, а в целом супер знатокам.
Answered the review: webitproff Date posted: 2026-06-07 11:00

Add to Cart

Product has no downloadable file

 

Category Extentions
Blogs, news, articles, Posts and events, Social networks and integrations, Utilities and tools
Availability
Free

Page Discussion in Telegram

Content author

webitproff

Offline

webitproff

Last logged: 2026-06-07 20:11

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

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

  • Разработки на GitHub бесплатно
    • 2026-06-07 00:12
    • 2026-06-07 00:24

    Последние сообщения

    • Механизм хуков в Cotonti. Как это работает? Примеры.
      webitproff, 2026-05-14 13:23

       В Cotonti механизм хуков работает так:В нужном месте, где нужно "вклинить" или "повесить" свой код, - нужно прописать "крючок", то есть хук, на который будем вешать свой пользовательский код, а сдела...

    • Введение и документация. Плагин «Autocomplete».
      webitproff, 2026-05-09 13:54

      От себя скажу, что я уже 13 лет с “котом” и я реально сам понятия не имею 😀

    • Введение и документация. Плагин «Autocomplete».
      losdriver, 2026-05-09 13:29

      Вобще не понятно для чего этот плагин и как им пользоваться. где можно посмотреть инструкцию или почитать про плагин? Чтать я умею, - “автодополнение имен”, но как это работает и для чего не понятно. ...

    • PHP 8.5 и Cotonti. Рефакторим и обновляем код движка.
      webitproff, 2026-05-09 13:23

      #553 losdriver: … новостей нет и обновлений плагинов нет. куда лучше писать и стучаться?Что там с форумом да и с сайтом, - это во первых отдельная тема, а во-вторых, - мне дела нет. Меня там забанили,...

    • PHP 8.5 и Cotonti. Рефакторим и обновляем код движка.
      losdriver, 2026-05-09 13:11

      #500 webitproff:  Cotonti Compatibility with PHP 8.5Сегодня, Алексей поправил, будем ждать уже релиза 👍️ Релиз вышел, - теперь называется “Verona”, и уже вроде как точно работает на php 8.5, но я еще ...

    • Записки CotoДела
      webitproff, 2026-05-04 02:38

      Заметка: кнопка «Копировать ссылку на товар»Кнопка Копировать позволяет скопировать в буфер обмена готовую HTML-ссылку на товар (со всеми атрибутами) для последующей вставки в форум, блог или другую ф...

    • Записки CotoДела
      webitproff, 2026-05-02 01:51

      Разделение заголовков и по шаблонам Проект +/- факт #_1. Мета-заголовок в браузер на страницу карточки товара ( themes/index36/header.market.cat-alias.pagehasid.tpl ); #_2. Мета-описание в браузер на ...

    • Платежная система
      seric, 2026-05-01 23:30

      Если будет время напишите как  в личном кабинет выводить полный список, у меня категорий 10 показывает хотя я добавил больше, заранее спасибо! 

    • Платежная система
      seric, 2026-05-01 23:27

      Хорошо я пока сам попробую не много разобраться, если что я думая по цене договоримся, я знаю что ничего бесплатного в этом мире нет )))

    • Платежная система
      webitproff, 2026-04-30 18:17

      Если вам правки файла из этого поста не помогли, - в конце мая напомните о себе. попробуем на этом сайте плагин установить и отладить его работу, ну и подготовьте карту банка для тестирования пополнен...

    Market PRO Showcase

    CMS, Script and Engine for an online storefront, infoproduct shop and digital goods store. Different prices in different currencies. Online cryptocurrency payments for goods and services.