Это расширение (плагин) для системы управления сайтом Cotonti. Цель этого расширения заменить стандартные элементы интерфейса для выбора даты/времени на более удобные и современные, использующие jQueryUI.
Авторы: Andrey Matsovkin (https://github.com/macik), Alexey Kalnov (https://github.com/Alex300)
GitHub: https://github.com/Alex300/ui_datetime
Стандартные для Cotonti элементы выбора даты/времени представляют из себя набор выпадающих меню, через которые пользователь может выбрать дату последовательно установив год, месяц, день, часы, минуты. Данный плагин призван заменить отдельные выпадающие меню на единые поля выбора даты и времени, позволяя при этом либо ввести дату/время в привычном формате (дд.мм.гггг чч:мм), либо быстро «в один клик» выбрать их, используя простые и понятные всплывающие элементы управления.
Актуальная версия использует:
Плагин не требует специальных настроек и работает сразу после установки. Протестирован на следующих темах оформления Nemesis
, HTML Kickstart
, SymiSun-03
и должен работать на всех шаблонах или расширениях, которые используют стандартные для Cotonti механизмы формирования элементов выбора даты/времени (функцию cot_selectbox_date
и массив ресурсов $R['input_date*']
.
Если вы все же не используете стандартные средства формирования полей для выбора даты/времени, то прочтите следующий подраздел, для понимания как настроить свой код для правильной работы этого расширения.
В двух словах плагин работает следубщим образом - стандартные (старые) элементы скрываются от пользователя через внедренные (inline) стили, но продолжают оставаться на странице для полноценной передачи параметров на сервер при отправке страницы (сохранении данных). А новые элементы, использующие jQueryUI динамически создаются на месте «старых».
Реализовано это достаточно просто, путем замены стандартных строк ресурсов $R['input_date']
и $R['input_date_short']
, которые являются шаблонами для формирования элементов интерфейса.
Плагин ui_date/time использует следующий ('short') шаблон для даты:
<div class="uidt_date">{$day} {$month} {$year}</div>
<div class="uidt_datetarget"></div>
(Для подробностей см. ui_datetime.rc.php
.)
Основные преобразования интерфейса происходят после загрузки страницы. JS скрипт ищет на загруженной странице все элементы с классами uidt_date
и uidt_time
, анализирует их и связывает с новыми элементами, которые создаются в контейнерах с классами uidt_datetarget
и uidt_timetarget
соответственно.
По умолчанию (для снижения нагрузки на сервер) расширение загружается и работает только на страницах добавления/редактирования статей и при редактировании профиля пользователей. Вы можете включить режим global mode
в настройках, тогда расширение будет загружаться на всех страницах и отслеживать все поля ввода дат/времени, вне зависимости от установленных или используемых расширений.
Такая реализация была актуальна в старых версиях Cotonti. В современной версии функция cot_import_date()
умеет парсить строковые даты и переводить их в целочисленный timestamp. Описание поддерживаемых форматов https://www.php.net/manual/ru/datetime.formats.php
Управление сайтом → Расширения
)После установки вы можете увидеть работу и протестировать расширение на странице инструментов администрирования (Управление сайтом → Расширения → UI date/time picker → Администрирование
). В настройках плагина Вы можете отдельно включить/отключить элементы для выбора даты и времени.
Поблагодарили: 74 раза
Very nice plugin, macik.
Thanks.
Поблагодарили: 7 раз
coll! tnanks!
Поблагодарили: 87 раз
Идеально встало, только долго под свой диз сам css допиливал) Спасибо тезка!