Calendar


Назначение

Отрисовывает календарный навигатор. Навигация привязана к указанному списку. В основном используется для навигации по событийным спискам, то есть в которых одним из полей справочника является дата.

Ключи

date Строка в произвольном формате, содержащая дату, которая отображается на календаре как текущая. При отсутствии ключа используется текущая дата.
format_in Строка, содержащая маску разбора ключа date. Если ключ не задан, его значение устанавливается в DD.MM.YYYY. Используется для случаев, когда значение текущей даты может быть задано в нестандартном формате, например взято из внешнего источника.
week_starts_from Число от 0 до 6, обозначающее первый день недели. 0 - воскресенье, 1 - понедельник и т.д. По умолчанию используется значение 1. Естественно, что смысл имеют только значения 0 и 1.
start_year Число, обозначающее стартовый год в выпадающем списке календаря. Указывается в четырёхзначном формате. По умолчанию установлено значение 1970.
end_year Число, обозначающее конечный год в выпадающем списке календаря. Указывается в четырёхзначном формате. По умолчанию установлено значение текущего года.
condition Составное условие выполнения макроса.
datasource Строка, содержащая имя таблицы откуда брать данные для отметки событий на календаре и имя поля, содержащего дату. Значения разделёны запятой.
datafilter Фильтр, по которому перед использованием данные из таблицы, указанной в datasource, будут отфильтрованы.
databind Строка, содержащая имя поля и имя параметра в URL, разделённые знаком равенства. Значение поля, указанного слева от знака равенства, будет передано в переменной с именем, указанным справа от знака равенства, на страницу при нажатии на ссылку в календаре.
alias Строка, псевдоним страницы, на которую будут вести ссылки из календаря. Нужен в случае, если календарь размещен на странице с одним псевдонимом (например, на первой странице сайта), а справочник с событиями на странице с другим псевдонимом.
design Строка, идентификатор дизайна (id секции calendardesign) сервиса, который будет использоваться при выводе. Разные дизайны применяются (в основном) для переключения между различными языками в рамках одного проекта или для того, чтобы не переводить каждый раз стандартные сообщения при переходе от проекта к проекту. По умолчанию ключ имеет значение "russian".

Подробно формат дизайна для данного макроса рассмотрен в описании файла calendar_design.xml (см. http://www.twl.ru/tsdn/macros_templates/calendar_design).

Комментарии

Логика работы макроподстановки: берется указанный в datasource справочник, фильтруется по datafilter (например, выбираются только опубликованные новости). Из всех оставшихся записей выбирается поле, указанное в datesource. Полученный набор дат отмечается на календаре, который отрисовывается с учетом ключей, задающих текущую дату, маску, начального и конечного годов. Каждая отмеченная на календаре дата подсвечивается ссылкой, ведущей на эту же страницу. В URL страницы при переходе по этой ссылке будет передан дополнительный параметр, имя которого настраивается через ключ databind. Таким образом, после нажатия на дату можно управлять содержимым страницы с учетом выбранной даты, например показать только новости за определенное число. В приведенном примере в URL будет попадать ключ nid со значением, которое содержится в поле id записи, которая соответствует выбранной в календаре дате.

Примеры

$Calendar[datasource:news, date; datafilter: state=on; databind: id=nid; start_year: 2004]$