Next Generation CMS - Управляйте контентом без границ!
Создавай
Развивай
Управляй
Актуальная v.0.9.8
Плагин calendar

Плагин calendar

ID: calendar
Name: Show news calendar
Version: 0.13
Acts: index, twig, rpc
File: calendar.php
Config: config.php
Type: widget
Description: Показать календарь
Author: Vitaly A. Ponomarev
Title: Календарь новостей
Information: Отображение данных о новостях по выбранному месяцу, при этом дни, когда были новости, выделяются.
Плагин "календарь" реализует стандартный для многих CMS функционал -
отображение календаря с отметкой за какие даты и какое кол-во новостей было
опубликовано на сайте.

Плагин может работать в двух режимах:
Автоматический запуск [старый вариант] - код плагина и генерация календаря происходит каждый раз при генерации страницы сайта
TWIG запуск - генерация календаря происходит через вызов TWIG функции из шаблона сайта. В данном режиме вы можете на одной странице отобразить несколько независимых календарей со своей собственной информацией и включать его только при необходимости. Это позволит немного уменьшить нагрузку.

Для работы плагина используется единый TWIG шаблон (по умолчанию calendar.tpl).
При генерации шаблона доступны следующие переменные:
* currentMonth - массив с данными о текущем выбранном месяце
* name - название месяца
* link - ссылка на страницу сайта с отображением новостей за данный месяц
* currentEntry - данные о текущем запуске плагина
* month - номер месяца
* year - год
* template - используемый шаблон
* categories - список категорий, по которым генерируется календарь
* prevMonth - массив с данными о "предыдущем" месяце
* link - ссылка на страницу сайта с отображением новостей за предыдущий месяц
* nextMonth - массив с данными о "следующем" месяце
* link - ссылка на страницу сайта с отображением новостей за следующий месяц

* flags - массив с флагами
* havePrevMonth - признак возможности просмотра "предыдущего" месяца
* haveNextMonth - признак возможности просмотра "следующего" месяца
* ajax - признак того, что шаблон генерируется через AJAX вызов

* weekdays - массив с короткими именами дней недели [от 0 (воскресенье) до 6 (Пятница)]
* weeks - основной массив с понедельным календарём.
* 1 - первая неделя
* 1 - первый день недели
* dayNo - календарный номер дня [[ если не заполнен, то по данному дню недели нет календарного дня ]]
к примеру, если месяц начинается со среды, то за понедельник-вторник данных не будет
* countNews - кол-во новостей за данный день
* className - имя CSS класса, возможные варианты: "calendar_class_weekday", "calendar_class_weekend",
"calendar_class_today_weekday", "calendar_class_today_weekend"
* link - ссылка на страницу сайта с отображением новостей за заданный день
* isToday - ФЛАГ: true, если это _сегодняшний_ день
* isWeekDay - ФЛАГ: true, если это рабочий день (ПН-ПТ)
* isWeekEnd - ФЛАГ: true, если это выходной (СБ-ВС)

Также доступны глобальные переменные:
* tpl_url - URL шаблонов сайта
* lang - массив с языковыми переменными

Варианты использования плагина в шаблонах
1. Автоматический запуск.
В шаблоне main.tpl будет доступна переменная {plugin_calendar} с выводом блока календаря
2. TWIG
В любом шаблоне можно запустить генерацию календаря при помощи TWIG функции callPlugin()

Пример (для TWIG шаблона):
Код:
{{ callPlugin('calendar.show', {'cache': 60 }) }}

Пример (для любого не-TWIG шаблона, к примеру, для main.tpl):
Код:
[TWIG]{{ callPlugin('calendar.show', {'cache': 60 }) }}[/TWIG]

Доступные переменные (передаются в качестве мессива параметров после имени 'calendar.show':
* year - год
* month - месяц
* offset - "смещение" относительно указанного года и месяца.
может принимать значения "prev" (показать предыдущий) и "next"
(показать следующий) месяц
* template - имя шаблона
* category - список категорий по которым генерируется календарь (если не указывать, то из всех)
* cache - срок жизни кеша (по умолчанию = 0)

Переключение страниц календаря без обновления страницы сайта.

Данная возможность доступна благодаря наличию AJAX/RPC функции plugin.calendar.show
Функция принимает на вход следующие параметры:
year - год
month - месяц
offset - "смещение" относительно указанного года и месяца.
может принимать значения "prev" (показать предыдущий) и "next"
(показать следующий) месяц

Пример JScript'а для переключения между месяцами:
Код:
function ng_calendar_walk(month, year, offset) {
// Вызов AJAX/RPC метода 'plugin.calendar.show'
$.post('/engine/rpc.php', { json : 1, methodName : 'plugin.calendar.show', rndval: new Date().getTime(), params : json_encode({ 'year' : year, 'offset' : offset, 'month' : month }) }, function(data) {
// В качестве результата нам передаётся JSON массив данных.
// Ключевые поля:
// * status - 1 (успешное выполнение), 0 - ошибка
// * data - блок данных с сгенерированным календарём
try {
resTX = eval('('+data+')');
} catch (err) { alert('Error parsing JSON output. Result: '+linkTX.response); }
if (!resTX['status']) {
ngNotifyWindow('Error ['+resTX['errorCode']+']: '+resTX['errorText'], 'ERROR');
} else {
// Заменяем содержимое DIV с ID = "ngCalendarDIV" новыми данными
$('#ngCalendarDiv').html(resTX['data']);
}
}, "text").error(function() { ngHideLoading(); ngNotifyWindow('HTTP error during request', 'ERROR'); });

}

Скачать :calendar.zip
14 августа 2025 / Плагины, Система, Новости

Добавить комментарий

  • captcha

Русский English Deutsch Français Español Українська Қазақша
up