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

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

Опубликовано в: Модули и Плагины для 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 в репозитории.

Рейтинг на основе отзывов:
Звезд получено: 5
Oтзывов всего: 1
Средняя оценка: 5
5 минут чтения
Владелец: Carbonate Sodium

Отзывы к товарам 1

Нормально!

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

07.06.2026 10:21

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

Насчет и по-поводу "котонти", - ну так как говорят "знатоки" - он же умер )))) или недоделанная система ))).
Котонти - это не готовый кувшин для вина, а глина для гончара, который знает что с ней делать!
Котонти прежде всего для разработчиков, - разработчик делает кувшин или чашку, а затем передает ее конечному пользователю как готовое изделие. не понимаю что тут непонятного.... я не вам, а в целом супер знатокам.
Ответил на отзыв: webitproff Дата размещения: 07.06.2026 11:00

Добавить в корзину

Товар без файла для загрузки

 

Категория расширения
Блоги, новости, статьи, Публикации и мероприятия, Социальная сеть и интеграции, Утилиты и инструменты
Доступность
Бесплатно

Обсуждение страницы в Telegram

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

webitproff

Оффлайн

webitproff

Последняя авторизация: 07.06.2026 17:52

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Записки CotoДела
      webitproff, 04.05.2026 02:38

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

    • Записки CotoДела
      webitproff, 02.05.2026 01:51

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

    • Платежная система
      seric, 01.05.2026 23:30

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

    • Платежная система
      seric, 01.05.2026 23:27

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

    • Платежная система
      webitproff, 30.04.2026 18:17

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

    Витрина Market PRO

    CMS, Скрипт и Движок - веб сайта онлайн-витрины, интернет магазина инфопродуктов и цифровых товаров. Разные цены в разных валютах на товар. Онлайн-оплата в криптовалюте за товары и услуги.