update v 3.32
This commit is contained in:
32
README.md
32
README.md
@@ -1,13 +1,39 @@
|
||||
### Unicalendar
|
||||
|
||||
## Модуль Unicalendar - календарь событий
|
||||
## Модуль Unicalendar - календарь событий v3.32
|
||||
|
||||
#### адаптирован для AVE.CMS v3.26
|
||||
### для AVE.CMS ALT ≥ v3.31
|
||||
|
||||
### Модуль позволяет создавать календари, событиями которых являются все документы из заданной рубрики либо определенные документы из заданной рубрики.
|
||||
|
||||
* Пример работы с модулем Календарь:
|
||||
* Создайте рубрику "Календарь" которая будет содержать в себе следующие поля:
|
||||
* Название события
|
||||
* Место проведения события
|
||||
* Описание события
|
||||
* Изображение (тип поля Изображение (Одиночное))
|
||||
* Дата начала события (тип поля Дата (Unix Timestamp))
|
||||
* Дата завершения события (тип поля Дата (Unix Timestamp))
|
||||
* Создайте документ в рубрике "Календарь" и заполните в нем эти поля.
|
||||
* Скачайте архив с модулем unicalendar-main.zip и положите его в папку modules, разархивируйте, после чего у вас появится папка unicalendar, ее оставляем архив unicalendar-main.zip удаляем.
|
||||
* Перейдите в раздел управления модулями вкладка Неустановленные модули, установите модуль Универсальный календарь событий.
|
||||
* Перейдите к управлению модулем вкладка Создать календарь, выберите тип событий календаря, далее выберите рубрику и вам станет доступным выбор полей для создания тизера события.
|
||||
* Выбор полей для создания тизера события:
|
||||
* Название события - по умолчанию используется содержимое тега ```<titel></title>``` но вы можете использовать поле из документа.
|
||||
* Изображение - выберите поле Изображение (Одиночное). Если оставить это поле пустым - календарь просто проигнорирует его.
|
||||
* Описание события - используйте нужное вам поле из документа. Важно - все HTML теги, если они имеются, будут очищены, выведется только текст.
|
||||
* Место события - используйте нужное вам поле из документа. Если оставить это поле пустым - календарь просто проигнорирует его.
|
||||
* Дата начала - по умолчанию используется дата и время создания документа. Однако, если вам понадобится указать более позднюю дату, например документ создан 20 апреля , а вы хотите в календаре установить дату события 1 мая - используйте для этого в документе поле Дата (Unix Timestamp), это позволит выбрать дату и время в правильном формате. Если использовать текстовое поле, запишите дату и время в таком формате: 01-05-2026 19:00
|
||||
* Дата завершения - полностью аналогична Дате начала.
|
||||
* Кликните кнопку "Создать". Ваш календарь будет готов к использованию после размещения системного тега [mod_unicalendar:XXX] в документе или Основном шаблоне или в шаблоне Рубрики.
|
||||
* Календарь в публичной части сайта не делает запросов к базе данных. Создавая календарь вы создаете js файл с данными с которыми он работает. Поэтому, если вы, создав и сохранив календарь решили сделать в документе какие либо изменения - правки в полях, датах документа или меняете название документа - ```<titel></title>```, обязательно после сохранения документа или удаления документа, пересохраните для актуальности календарь использующий данные из этого документа. Таким образом вы обновите js файл с данными и календарь будет актуальным.
|
||||
* Используйте файл eventCalendar.css, подключается программно при использовании модуля и расположен в каталоге ```modules/unicalendar/css/```, для редактирования некоторых стилей календаря. Непосредственно разметка вывода находится в файле jquery.eventCalendar.js
|
||||
|
||||
### Модуль позволяет создавать календари, событиями которых являются документы из заданной рубрики либо определенные документы из заданной рубрики.
|
||||
|
||||
##### Changelog:
|
||||
|
||||
##### 27.03.2026 - обновление модуля - версия 3.32 - рефакторинг кода для работы в ave.cms ALT v3.31. Добавлен выбор полей для Названия событий и даты начала и завершения события, обновлен дизайн календаря.
|
||||
|
||||
##### 05.09.2019 - обновление модуля - версия 1.26.8 - адаптация для версии ave.cms 3.26, замена устаревшего size() на length
|
||||
|
||||
##### 08.09.2017 - обновление модуля - версия 1.2.8 - Fix регулярного выражения для сохранения в файл (dataX.js) в кодировке UTF-8
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,99 +1,343 @@
|
||||
/*= CORE CSS */
|
||||
/* CORE CSS */
|
||||
|
||||
.eventCalendar-hidden {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.eventCalendar-wrap {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
border: 1px solid #ddd !important;
|
||||
box-shadow: none !important;
|
||||
border-radius: 4px !important;
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
.eventCalendar-arrow {
|
||||
position: absolute;
|
||||
z-index: 5;
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
.eventCalendar-prev {
|
||||
left: 3px;
|
||||
}
|
||||
|
||||
.eventCalendar-next {
|
||||
right: 3px;
|
||||
}
|
||||
|
||||
.eventCalendar-monthTitle {
|
||||
display: block;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
z-index: 5;
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
.eventCalendar-monthWrap {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 2;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.eventCalendar-currentMonth {
|
||||
z-index: 1;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.eventCalendar-daysList {
|
||||
display: table;
|
||||
width: 100%;
|
||||
display: table;
|
||||
width: 100%;
|
||||
background: #fff !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.eventCalendar-showAsWeek {
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.eventCalendar-daysList li {
|
||||
display: table-cell;
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
.eventCalendar-dayWithEvents {
|
||||
background: rgba(0, 0, 0, 0.15);
|
||||
background: rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.eventCalendar-current {
|
||||
background: rgba(0, 0, 0, 0.35);
|
||||
background: rgba(0, 0, 0, 0.35);
|
||||
}
|
||||
|
||||
.eventCalendar-showAsWeek li {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 14.28%;
|
||||
height: 20px;
|
||||
display: block;
|
||||
float: left;
|
||||
width: 14.28%;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.eventCalendar-daysList a {
|
||||
padding: 0;
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 8px;
|
||||
min-width: 7px;
|
||||
padding: 0;
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 8px;
|
||||
min-width: 7px;
|
||||
}
|
||||
|
||||
.eventCalendar-loading {
|
||||
display: block;
|
||||
min-width: 100px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
display: block;
|
||||
min-width: 100px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
.eventCalendar-list {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.eventCalendar-oldEventList {
|
||||
z-index: 2;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.eventCalendar-subtitle {
|
||||
padding-left: 5px;
|
||||
font-weight: bold;
|
||||
font-size: 120%;
|
||||
padding-left: 5px;
|
||||
font-weight: bold;
|
||||
font-size: 120%;
|
||||
}
|
||||
/* end of core CSS */
|
||||
|
||||
/* заголовок */
|
||||
.eventCalendar-currentTitle {
|
||||
background-color: #138DA5 !important;
|
||||
border: none !important;
|
||||
padding: 10px 0 !important;
|
||||
margin: 0 6px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.eventCalendar-monthTitle {
|
||||
display: block;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
font-size: 1.1rem !important;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.eventCalendar-day-header {
|
||||
background: #f4f4f4 !important;
|
||||
border-bottom: 1px solid #eee !important;
|
||||
color: #666 !important;
|
||||
text-transform: uppercase !important;
|
||||
font-size: 10px;
|
||||
padding: 10px 0 !important;
|
||||
}
|
||||
|
||||
/* Список событий */
|
||||
.eventCalendar-list li {
|
||||
border-bottom: 1px solid #f0f0f0 !important;
|
||||
padding: 15px !important;
|
||||
}
|
||||
|
||||
.eventCalendar-eventTitle {
|
||||
color: #007bff !important;
|
||||
font-size: 16px !important;
|
||||
font-weight: 500 !important;
|
||||
}
|
||||
|
||||
/* Скрытый блок описания */
|
||||
.eventCalendar-eventDesc {
|
||||
padding: 15px !important;
|
||||
background-color: #f9f9f9 !important;
|
||||
border-left: 4px solid #138DA5 !important;
|
||||
margin-top: 10px !important;
|
||||
}
|
||||
|
||||
/* Кнопка */
|
||||
.bt {
|
||||
background: #138DA5 !important;
|
||||
border: none !important;
|
||||
border-radius: 2px !important;
|
||||
box-shadow: none !important;
|
||||
padding: 8px 20px !important;
|
||||
text-transform: uppercase;
|
||||
font-size: 12px !important;
|
||||
}
|
||||
|
||||
/* Стрелки навигации */
|
||||
.eventCalendar-prev {
|
||||
left: 20px !important;
|
||||
margin-top: 10px !important;
|
||||
}
|
||||
|
||||
.eventCalendar-next {
|
||||
right: 20px !important;
|
||||
margin-top: 10px !important;
|
||||
}
|
||||
|
||||
/* Сообщение об отсутствии событий */
|
||||
.eventCalendar-list .eventCalendar-noEvents {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 80px;
|
||||
padding: 20px !important;
|
||||
text-align: center;
|
||||
background-color: #ccc !important;
|
||||
color: #fff !important;
|
||||
border-radius: 4px;
|
||||
margin: 10px !important;
|
||||
}
|
||||
|
||||
.eventCalendar-noEvents p {
|
||||
margin: 0 !important;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
/* Выравнивание иконок и текста */
|
||||
.uca-date-icon {
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
gap: 10px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.bg-blue_calendar, .bg-blue_clock, .bg-blue_map {
|
||||
float: none !important;
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
.uca-date-icon::before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.uca-date-txt {
|
||||
line-height: 1 !important;
|
||||
display: inline-block !important;
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
|
||||
/* Логика для текущего числа */
|
||||
.eventCalendar-wrap .eventCalendar-daysList li.today {
|
||||
background: #1a94a6 !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
.eventCalendar-wrap .eventCalendar-daysList li.today a {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.eventCalendar-wrap .eventCalendar-daysList li.eventCalendar-day-header.today-header {
|
||||
color: #1a94a6 !important;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.eventCalendar-wrap .eventCalendar-daysList li.eventCalendar-day.today {
|
||||
background: #1a94a6 !important;
|
||||
background-color: #1a94a6 !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
.eventCalendar-wrap .eventCalendar-daysList li.eventCalendar-day.today a {
|
||||
background: #1a94a6 !important;
|
||||
background-color: #1a94a6 !important;
|
||||
color: #ffffff !important;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.eventCalendar-wrap .eventCalendar-daysList li.today:before,
|
||||
.eventCalendar-wrap .eventCalendar-daysList li.today:after {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Прошедшие события */
|
||||
html body .eventCalendar-wrap .eventCalendar-daysList li.eventCalendar-day.eventCalendar-dayWithEvents.past-event {
|
||||
background: #d1d1d1 !important;
|
||||
background-color: #d1d1d1 !important;
|
||||
background-image: none !important;
|
||||
border-color: #bcbcbc !important;
|
||||
}
|
||||
|
||||
html body .eventCalendar-wrap .eventCalendar-daysList li.eventCalendar-day.eventCalendar-dayWithEvents.past-event a {
|
||||
background: #d1d1d1 !important;
|
||||
background-color: #d1d1d1 !important;
|
||||
color: #777 !important;
|
||||
}
|
||||
|
||||
.eventCalendar-wrap .eventCalendar-daysList li.past-event:before,
|
||||
.eventCalendar-wrap .eventCalendar-daysList li.past-event:after {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Будущие события */
|
||||
div.eventCalendar-wrap ul.eventCalendar-daysList li.eventCalendar-day.eventCalendar-dayWithEvents.future-event,
|
||||
div.eventCalendar-wrap ul.eventCalendar-daysList li.eventCalendar-day.eventCalendar-dayWithEvents.future-event a {
|
||||
background: #48c9b0 !important;
|
||||
background-color: #48c9b0 !important;
|
||||
background-image: none !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
/* Cегодняшние события */
|
||||
div.eventCalendar-wrap ul.eventCalendar-daysList li.eventCalendar-day.eventCalendar-dayWithEvents.today-event,
|
||||
div.eventCalendar-wrap ul.eventCalendar-daysList li.eventCalendar-day.eventCalendar-dayWithEvents.today-event a {
|
||||
background: #138DA5 !important;
|
||||
background-color: #138DA5 !important;
|
||||
background-image: none !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
/* Дополнительные отступы и навигация */
|
||||
.eventCalendar-wrap .eventCalendar-arrow {
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
/* Оформление иконок в описании */
|
||||
.eventCalendar-eventDesc .uca-date-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 8px;
|
||||
font-size: 14px;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.eventCalendar-eventDesc .uca-date-row i {
|
||||
color: #1a94a6 !important;
|
||||
margin-right: 10px;
|
||||
font-size: 16px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.eventCalendar-eventDesc .uca-date-row span {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
/* Дата и бейдж */
|
||||
.eventCalendar-wrap time {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 8px;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.eventCalendar-wrap time em {
|
||||
font-size: 0.95rem !important;
|
||||
color: #666 !important;
|
||||
font-style: normal;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.eventCalendar-wrap time small {
|
||||
background-color: #48c9b0 !important;
|
||||
color: #fff !important;
|
||||
font-size: 0.85rem !important;
|
||||
padding: 3px 10px !important;
|
||||
border-radius: 4px !important;
|
||||
font-weight: 500;
|
||||
line-height: 1;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
/* Заголовок в списке */
|
||||
.eventCalendar-wrap .eventCalendar-eventTitle {
|
||||
font-size: 1.25rem !important;
|
||||
color: #191919 !important;
|
||||
font-weight: 600;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.eventCalendar-wrap .eventCalendar-eventTitle:hover {
|
||||
color: #1a94a6 !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
4
info.php
4
info.php
@@ -4,9 +4,9 @@
|
||||
|
||||
$module = array(
|
||||
'ModuleSysName' => 'unicalendar',
|
||||
'ModuleVersion' => '1.26.8',
|
||||
'ModuleVersion' => '3.32',
|
||||
'ModuleAutor' => 'Repellent',
|
||||
'ModuleCopyright' => '© 2007-' . date('Y') . ' AVE.cms',
|
||||
'ModuleCopyright' => '© 2007-' . date('Y') . ' Ave4cms.ru',
|
||||
'ModuleStatus' => 1,
|
||||
'ModuleIsFunction' => 1,
|
||||
'ModuleTemplate' => 0,
|
||||
|
||||
@@ -1,15 +1,22 @@
|
||||
/* =
|
||||
jquery.eventCalendar.js
|
||||
version: 0.7
|
||||
date: 13-08-2015
|
||||
author:
|
||||
Jaime Fernandez (@vissit)
|
||||
company:
|
||||
Paradigma Tecnologico (@paradigmate)
|
||||
url:
|
||||
http://www.vissit.com/projects/eventCalendar/
|
||||
version: 0.7.1 (Customized)
|
||||
original date: 13-08-2015
|
||||
last update: 19-03-2026
|
||||
|
||||
original author: Jaime Fernandez (@vissit)
|
||||
company: Paradigma Tecnologico (@paradigmate)
|
||||
url: http://www.vissit.com/projects/eventCalendar/
|
||||
|
||||
Changes (2026) by Alexander Salnikov (aka Repellent):
|
||||
- Added past/today/future event status logic
|
||||
- Integrated Bootstrap Icons (bi-calendar3, bi-clock, bi-geo-alt)
|
||||
- Improved layout and CSS specificity for modern browsers (PHP 8.4 compatibility)
|
||||
- Fixed image placement within event descriptions
|
||||
*/
|
||||
;(function( $ ) {
|
||||
var initEventCalendarPlugin = function( $ ) {
|
||||
|
||||
$.fn.eventCalendar = function(options){
|
||||
var calendar = this;
|
||||
|
||||
@@ -226,26 +233,33 @@
|
||||
if (eventsOpts.showDayAsWeeks) {
|
||||
$eventsCalendarDaysList.addClass('eventCalendar-showAsWeek');
|
||||
|
||||
// show day name in top of calendar
|
||||
if (eventsOpts.showDayNameInCalendar) {
|
||||
$eventsCalendarDaysList.addClass('eventCalendar-showDayNames');
|
||||
// show day name in top of calendar
|
||||
if (eventsOpts.showDayNameInCalendar) {
|
||||
$eventsCalendarDaysList.addClass('eventCalendar-showDayNames');
|
||||
|
||||
i = 0;
|
||||
// if week start on monday
|
||||
if (eventsOpts.startWeekOnMonday) {
|
||||
i = 1;
|
||||
}
|
||||
// --- НОВЫЙ КОД ТУТ ---
|
||||
var todayDate = new Date();
|
||||
var currentDayNum = todayDate.getDay(); // 0 (вс) - 6 (сб)
|
||||
// --- КОНЕЦ НОВОГО КОДА ---
|
||||
|
||||
for (; i < 7; i++) {
|
||||
daysList.push('<li class="eventCalendar-day-header">'+moment()._locale._weekdaysShort[i]+'</li>');
|
||||
i = 0;
|
||||
if (eventsOpts.startWeekOnMonday) {
|
||||
i = 1;
|
||||
}
|
||||
|
||||
if (i === 6 && eventsOpts.startWeekOnMonday) {
|
||||
// print sunday header
|
||||
daysList.push('<li class="eventCalendar-day-header">'+moment()._locale._weekdaysShort[0]+'</li>');
|
||||
}
|
||||
for (; i < 7; i++) {
|
||||
// Проверяем, совпадает ли индекс цикла с текущим днем недели
|
||||
var activeHeaderClass = (i === currentDayNum) ? 'today-header' : '';
|
||||
|
||||
daysList.push('<li class="eventCalendar-day-header ' + activeHeaderClass + '">'+moment()._locale._weekdaysShort[i]+'</li>');
|
||||
|
||||
}
|
||||
}
|
||||
if (i === 6 && eventsOpts.startWeekOnMonday) {
|
||||
// Для воскресенья отдельная проверка, так как оно в конце
|
||||
var sunActive = (currentDayNum === 0) ? 'today-header' : '';
|
||||
daysList.push('<li class="eventCalendar-day-header ' + sunActive + '">'+moment()._locale._weekdaysShort[0]+'</li>');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dt=new Date(year, month, 01);
|
||||
var weekDay = dt.getDay(); // day of the week where month starts
|
||||
@@ -399,6 +413,23 @@
|
||||
|
||||
}
|
||||
|
||||
// --- НАЧАЛО ВСТАВКИ: ЛОГИКА ПРОШЕДШИХ СОБЫТИЙ ---
|
||||
var today = new Date();
|
||||
today.setHours(0,0,0,0);
|
||||
|
||||
var checkDate = new Date(eventYear, eventMonth, eventDay);
|
||||
checkDate.setHours(0,0,0,0);
|
||||
|
||||
var statusClass = '';
|
||||
if (checkDate < today) {
|
||||
statusClass = 'past-event'; // Прошедшее
|
||||
} else if (checkDate.getTime() === today.getTime()) {
|
||||
statusClass = 'today-event'; // Сегодня
|
||||
} else {
|
||||
statusClass = 'future-event'; // Будущее
|
||||
}
|
||||
// --- КОНЕЦ ВСТАВКИ ---
|
||||
|
||||
if (parseInt(eventMinute) <= 9) {
|
||||
eventMinute = "0" + parseInt(eventMinute);
|
||||
}
|
||||
@@ -431,9 +462,8 @@
|
||||
if ((month === false || month == eventMonth) && (day === '' || day == eventDay) && (year === '' || year == eventYear) ) {
|
||||
// if initial load then load only future events
|
||||
if (month === false && eventDate < new Date()) {
|
||||
} else {
|
||||
} else {
|
||||
moment.locale(eventsOpts.locales.locale);
|
||||
//eventStringDate = eventDay + "/" + eventMonthToShow + "/" + eventYear;
|
||||
eventStringDate = moment(eventDate).format(eventsOpts.dateFormat);
|
||||
var eventTitle;
|
||||
|
||||
@@ -442,7 +472,33 @@
|
||||
} else {
|
||||
eventTitle = '<span class="eventCalendar-eventTitle">'+event.title+'</span>';
|
||||
}
|
||||
events.push('<li id="' + key + '" class="'+event.type+'"><time datetime="'+eventDate+'"><em>' + eventStringDate + '</em><small>'+eventHour+":"+eventMinute+'</small></time>'+ eventImage + eventTitle +'<div class="eventCalendar-eventDesc ' + eventDescClass + '">' + '<div class="bg-blue_calendar uca-date-icon"><span class="uca-date-txt">' + eventStringDate + '</span></div><div class="bg-blue_clock uca-date-icon"><span class="uca-date-txt">'+eventHour+':'+eventMinute+'</span></div>'+eventLocation + eventDescription + '</div></li>');
|
||||
|
||||
// Формируем новые блоки с Bootstrap иконками
|
||||
var dateRow = '<div class="uca-date-row"><i class="bi bi-calendar3"></i> <span>' + eventStringDate + '</span></div>';
|
||||
var timeRow = '<div class="uca-date-row"><i class="bi bi-clock"></i> <span>' + eventHour + ':' + eventMinute + '</span></div>';
|
||||
|
||||
// Локация (если она есть)
|
||||
var locRow = (event.location != '') ? '<div class="uca-date-row"><i class="bi bi-geo-alt"></i> <span>' + event.location + '</span></div>' : '';
|
||||
|
||||
// Собираем всё в итоговый список (здесь можно править дизайн вывода собтий)
|
||||
var eventLink = '';
|
||||
if (event.url) {
|
||||
eventLink = '<a href="' + event.url + '" target="' + eventLinkTarget + '" class="bt">' + eventsOpts.locales.txt_GoToEventUrl + '</a>';
|
||||
}
|
||||
|
||||
events.push('<li id="' + key + '" class="'+event.type+'">' +
|
||||
'<time datetime="'+eventDate+'"><em>' + eventStringDate + '</em><small>'+eventHour+":"+eventMinute+'</small></time>' +
|
||||
eventTitle +
|
||||
'<div class="eventCalendar-eventDesc ' + eventDescClass + '">' +
|
||||
eventImage +
|
||||
dateRow +
|
||||
timeRow +
|
||||
locRow +
|
||||
eventDescription +
|
||||
eventLink + // кнопка с классом "bt" "ПОДРОБНЕЕ"
|
||||
'</div>' +
|
||||
'</li>');
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
@@ -450,7 +506,7 @@
|
||||
|
||||
// add mark in the dayList to the days with events
|
||||
if (eventYear == flags.wrap.attr('data-current-year') && eventMonth == flags.wrap.attr('data-current-month')) {
|
||||
flags.wrap.find('.eventCalendar-currentMonth .eventCalendar-daysList #dayList_' + parseInt(eventDay)).addClass('eventCalendar-dayWithEvents');
|
||||
flags.wrap.find('.eventCalendar-currentMonth .eventCalendar-daysList #dayList_' + parseInt(eventDay)).addClass('eventCalendar-dayWithEvents ' + statusClass);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -510,7 +566,17 @@
|
||||
flags.wrap.find('.eventCalendar-list-wrap').width(flags.wrap.width() + 'px');
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
})( jQuery );
|
||||
function checkAndInit() {
|
||||
if (window.jQuery) {
|
||||
initEventCalendarPlugin(window.jQuery);
|
||||
} else {
|
||||
setTimeout(checkAndInit, 50); // Ждем 50мс, если jQuery еще нет
|
||||
}
|
||||
}
|
||||
checkAndInit();
|
||||
|
||||
})();
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ UCA_ALERT_RELEV_BAD_SE = "<strong style=\'color:orange\'>,</strong><br> доку
|
||||
UCA_ALERT_RELEV_BAD_SF = "<strong style=\'color:orange\'> не найден(ы) !</strong>"
|
||||
UCA_SEL_FIELD_BTN = "Выбрать"
|
||||
UCA_SEL_FIELD_DATA_INF = "Выбор полей для создания тизера события"
|
||||
UCA_SEL_FIELD_DATA_TTL = "Название события"
|
||||
UCA_SEL_FIELD_DATA_TTL = "<span style=\'float: left; margin-right: 5px;\'>Название события</span><span style=\'cursor: help; float: left;\' class=\'toprightDir icon_sprite ico_info\' title=\'Используйте или содержимое titel <br> или выберите текстовое поле\'> </span>"
|
||||
UCA_SEL_FIELD_TTL = "Аналогично названию документа (тег < title >)"
|
||||
UCA_SEL_FIELD_H_IMG = "<span style=\'float: left; margin-right: 5px;\'>Изображение</span><span style=\'cursor: help; float: left;\' class=\'toprightDir icon_sprite ico_info\' title=\'Разрешенный тип поля - <br> Изображение (Одиночное)\'> </span>"
|
||||
UCA_SEL_FIELD_IMG = "Выбрать поле"
|
||||
@@ -77,6 +77,9 @@ UCA_SEL_FIELD_DATA_DSC = "<span style=\'float: left; margin-right: 5px;\'>Опи
|
||||
UCA_SEL_FIELD_DSC = "Выбрать поле"
|
||||
UCA_SEL_FIELD_DATA_PLW = "<span style=\'float: left; margin-right: 5px;\'>Место события</span><span style=\'cursor: help; float: left;\' class=\'toprightDir icon_sprite ico_info\' title=\'Используйте текстовое поле, например, при событиях для афиш: Место проведения - Стадион Лужники.<br> Все HTML теги (если они присутствуют в поле) будут вырезаны (естественно только в календаре). <br>Eсли вы не планируете указывать место, оставьте это значение пустым (не выбирайте никакого поля).\'> </span>"
|
||||
UCA_SEL_FIELD_PLC = "Выбрать поле"
|
||||
UCA_SEL_FIELD_DATA_STR = "Начало события"
|
||||
UCA_SEL_FIELD_DATA_END = "Завершение события"
|
||||
|
||||
UCA_SEL_FIELD_DATA_STR = "<span style=\'float: left; margin-right: 5px;\'>Начало события</span><span style=\'cursor: help; float: left;\' class=\'toprightDir icon_sprite ico_info\' title=\'Используйте в документе поле <br> Дата (Unix Timestamp)\'> </span>"
|
||||
|
||||
UCA_SEL_FIELD_DATA_END = "<span style=\'float: left; margin-right: 5px;\'>Завершение события</span><span style=\'cursor: help; float: left;\' class=\'toprightDir icon_sprite ico_info\' title=\'Используйте в документе поле <br> Дата (Unix Timestamp)\'> </span>"
|
||||
UCA_SEL_FIELD_SDOC = "Задано документом"
|
||||
UCA_SEL_FIELD_TTL_DEFAULT = "Аналогично названию документа (тег < title >)"
|
||||
109
sql.php
109
sql.php
@@ -1,90 +1,67 @@
|
||||
<?php
|
||||
/**
|
||||
* AVE.cms - Универсальный календарь событий.
|
||||
*
|
||||
* @autor Repellent
|
||||
* @package AVE.cms
|
||||
* @subpackage module_unicalendar
|
||||
* @filesource
|
||||
*/
|
||||
if (!defined('BASE_DIR')) exit;
|
||||
|
||||
/**
|
||||
* mySQL-запросы для установки, обновления и удаления модуля
|
||||
* AVE.cms - Универсальный календарь событий v3.31
|
||||
* Исправленная структура: Заголовок, Картинка, Описание, Место + Даты (Старт/Конец)
|
||||
*/
|
||||
|
||||
$module_sql_install = array();
|
||||
$module_sql_deinstall = array();
|
||||
$module_sql_update = array();
|
||||
|
||||
//Удаление модуля
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_unicalendar`";
|
||||
// УДАЛЕНИЕ (Удаляем только то, что реально используем)
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_unicalendar`;";
|
||||
// Таблицу _data здесь НЕ упоминаем, раз мы о ней "забыли" и не хотим ее плодить
|
||||
|
||||
//Установка модуля
|
||||
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_unicalendar` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
// УСТАНОВКА (Полная актуальная структура основной таблицы)
|
||||
$module_sql_install[] = "
|
||||
CREATE TABLE IF NOT EXISTS `%%PRFX%%_module_unicalendar` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`uca_title` varchar(255) NOT NULL,
|
||||
`uca_date_format` varchar(255) NOT NULL,
|
||||
`uca_events` varchar(10) NOT NULL,
|
||||
`uca_rubric_id` varchar(10) NOT NULL,
|
||||
`uca_rubric_title` varchar(255) NOT NULL,
|
||||
`uca_rubric_title` varchar(500) NOT NULL,
|
||||
`uca_doc_id` varchar(1024) NOT NULL,
|
||||
`uca_link` varchar(10) NOT NULL,
|
||||
`uca_day` varchar(10) NOT NULL,
|
||||
`uca_scroll` varchar(10) NOT NULL,
|
||||
`uca_descript` varchar(10) NOT NULL,
|
||||
`uca_events_limit` int(10) unsigned NOT NULL,
|
||||
`uca_img_field` int(10) unsigned NOT NULL,
|
||||
`uca_dsc_field` int(10) unsigned NOT NULL,
|
||||
`uca_place_field` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;";
|
||||
|
||||
$module_sql_update[] = "
|
||||
UPDATE `%%PRFX%%_module`
|
||||
SET
|
||||
ModuleAveTag = '" . $modul['ModuleAveTag'] . "',
|
||||
ModulePHPTag = '" . $modul['ModulePHPTag'] . "',
|
||||
ModuleVersion = '" . $modul['ModuleVersion'] . "'
|
||||
WHERE
|
||||
ModuleSysName = '" . $modul['ModuleSysName'] . "'
|
||||
LIMIT 1;
|
||||
`uca_ttl_field` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`uca_img_field` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`uca_dsc_field` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`uca_place_field` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`uca_str_field` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`uca_end_field` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
";
|
||||
// Обновление таблицы в версии модуля v1.1.3
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `%%PRFX%%_module_unicalendar`
|
||||
ADD IF NOT EXISTS `uca_rubric_title` varchar(500) NOT NULL
|
||||
AFTER `uca_rubric_id`";
|
||||
|
||||
// ОБНОВЛЕНИЕ СИСТЕМНОЙ ИНФОРМАЦИИ
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `%%PRFX%%_module_unicalendar`
|
||||
DROP IF EXISTS `uca_user_title`,
|
||||
DROP IF EXISTS `uca_user_descript`,
|
||||
DROP IF EXISTS `uca_user_link`,
|
||||
DROP IF EXISTS `uca_user_time`
|
||||
";
|
||||
// Обновление таблицы в версии модуля v1.2.3
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `%%PRFX%%_module_unicalendar`
|
||||
DROP IF EXISTS `uca_rub_doc_count`
|
||||
";
|
||||
// Обновление таблицы в версии модуля v1.2.5
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `%%PRFX%%_module_unicalendar`
|
||||
ADD IF NOT EXISTS `uca_date_format` varchar(255) NOT NULL
|
||||
AFTER `uca_title`";
|
||||
// Обновление таблицы в версии модуля v1.2.6
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `%%PRFX%%_module_unicalendar`
|
||||
ADD IF NOT EXISTS `uca_events_limit` int(10) unsigned NOT NULL
|
||||
AFTER `uca_descript`";
|
||||
// Обновление таблицы в версии модуля v1.2.7
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `%%PRFX%%_module_unicalendar`
|
||||
ADD IF NOT EXISTS `uca_img_field` int(10) unsigned NOT NULL
|
||||
AFTER `uca_events_limit`,
|
||||
ADD IF NOT EXISTS `uca_dsc_field` int(10) unsigned NOT NULL,
|
||||
AFTER `uca_img_field`,
|
||||
ADD IF NOT EXISTS `uca_place_field` int(10) unsigned NOT NULL,
|
||||
AFTER `uca_dsc_field`
|
||||
";
|
||||
UPDATE `%%PRFX%%_module`
|
||||
SET
|
||||
ModuleAveTag = '" . $module['ModuleAveTag'] . "',
|
||||
ModulePHPTag = '" . $module['ModulePHPTag'] . "',
|
||||
ModuleVersion = '" . $module['ModuleVersion'] . "'
|
||||
WHERE
|
||||
ModuleSysName = '" . $module['ModuleSysName'] . "'
|
||||
LIMIT 1;
|
||||
";
|
||||
|
||||
// ОБНОВЛЕНИЕ СТРУКТУРЫ (Добавляем поля, если их нет)
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_unicalendar` ADD IF NOT EXISTS `uca_rubric_title` varchar(500) NOT NULL AFTER `uca_rubric_id`";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_unicalendar` ADD IF NOT EXISTS `uca_date_format` varchar(255) NOT NULL AFTER `uca_title`";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_unicalendar` ADD IF NOT EXISTS `uca_events_limit` int(10) unsigned NOT NULL AFTER `uca_descript`";
|
||||
|
||||
// Набор полей для кастомных данных
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_unicalendar` ADD IF NOT EXISTS `uca_ttl_field` int(10) unsigned NOT NULL DEFAULT '0' AFTER `uca_events_limit`";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_unicalendar` ADD IF NOT EXISTS `uca_img_field` int(10) unsigned NOT NULL DEFAULT '0' AFTER `uca_ttl_field`";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_unicalendar` ADD IF NOT EXISTS `uca_dsc_field` int(10) unsigned NOT NULL DEFAULT '0' AFTER `uca_img_field`";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_unicalendar` ADD IF NOT EXISTS `uca_place_field` int(10) unsigned NOT NULL DEFAULT '0' AFTER `uca_dsc_field`";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_unicalendar` ADD IF NOT EXISTS `uca_str_field` int(10) unsigned NOT NULL DEFAULT '0' AFTER `uca_place_field`";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_unicalendar` ADD IF NOT EXISTS `uca_end_field` int(10) unsigned NOT NULL DEFAULT '0' AFTER `uca_str_field`";
|
||||
|
||||
?>
|
||||
@@ -2,45 +2,45 @@
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
<ul>
|
||||
<li>{#UCA_EDIT_INFO#}</li>
|
||||
</ul>
|
||||
<li>{#UCA_EDIT_INFO#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="breadCrumbHolder module">
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
|
||||
<li><a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=1&cp={$sess}">{#ModName#}</a></li>
|
||||
<li><strong class="code">{#UCA_EDIT_CALEND#}</strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
|
||||
<li><a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=1&cp={$sess}">{#ModName#}</a></li>
|
||||
<li><strong class="code">{#UCA_EDIT_CALEND#}</strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{foreach from=$unicalendars item=unicalendars}
|
||||
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#UCA_EDIT_CALEND#} - <span id="ed_title">{$unicalendars.uca_title|escape}</span></h5>
|
||||
</div>
|
||||
<div class="body">
|
||||
<ul>
|
||||
<li><h5 class="iFrames">{#UCA_SET_CALENDAR#}</h5></li>
|
||||
<li style="margin-top: 5px; margin-bottom: 5px;"><span class="doclink">{#UCA_ID#}</span> <span class="cmsStats">{$unicalendars.id}</span> <span class="doclink">{#UCA_EVENTS#} = </span> <span class="cmsStats">{if $unicalendars.uca_events == 1}{#UCA_LIST_ALLDOC_RUB#} <i id="title_rub"> {$unicalendars.uca_rubric_title|escape}</i>{elseif $unicalendars.uca_events == 2}{#UCA_LIST_SELDOC_RUB#} <i> {$unicalendars.uca_rubric_title|escape}</i>{/if}</span></li>
|
||||
</ul>
|
||||
<li><h5 class="iFrames">{#UCA_SET_CALENDAR#}</h5></li>
|
||||
<li style="margin-top: 5px; margin-bottom: 5px;"><span class="doclink">{#UCA_ID#}</span> <span class="cmsStats">{$unicalendars.id}</span> <span class="doclink">{#UCA_EVENTS#} = </span> <span class="cmsStats">{if $unicalendars.uca_events == 1}{#UCA_LIST_ALLDOC_RUB#} <i id="title_rub"> {$unicalendars.uca_rubric_title|escape}</i>{elseif $unicalendars.uca_events == 2}{#UCA_LIST_SELDOC_RUB#} <i> {$unicalendars.uca_rubric_title|escape}</i>{/if}</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{if $unicalendars.uca_events == 1}
|
||||
|
||||
<table id="tr_uca" cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm">
|
||||
<tr class="noborder" style="background:#D5E0EC; height: 20px;">
|
||||
<td></td>
|
||||
<td><input name="uca_events" type="hidden" id="uca_events" value="{$unicalendars.uca_events|escape}"/></td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_TITLE#}</td>
|
||||
<td>
|
||||
<input name="uca_title" type="text" id="uca_title" value="{$unicalendars.uca_title|escape}" style="width:300px" />
|
||||
</td>
|
||||
</tr>
|
||||
<table id="tr_uca" cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm">
|
||||
<tr class="noborder" style="background:#D5E0EC; height: 20px;">
|
||||
<td></td>
|
||||
<td><input name="uca_events" type="hidden" id="uca_events" value="{$unicalendars.uca_events|escape}"/></td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_TITLE#}</td>
|
||||
<td>
|
||||
<input name="uca_title" type="text" id="uca_title" value="{$unicalendars.uca_title|escape}" style="width:300px" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_PUBLIC_DATE#}</td>
|
||||
<td>
|
||||
@@ -59,74 +59,74 @@
|
||||
<label class="code" style="background: #fff; margin-right: 5px; margin-left: 5px;" for="">{$smarty.now|date_format:'%Y-%m-%d'|pretty_date}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_OPEN_LIKS#}</td>
|
||||
<td>
|
||||
<input name="uca_link" type="hidden" id="uca_link" value="{$unicalendars.uca_link|escape}"/>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_OPEN_LIKS#}</td>
|
||||
<td>
|
||||
<input name="uca_link" type="hidden" id="uca_link" value="{$unicalendars.uca_link|escape}"/>
|
||||
<input type="radio" name="u_link" class="u_link" value="true" {if $unicalendars.uca_link == 'true'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_YES#}</label>
|
||||
<label for="">{#UCA_YES#}</label>
|
||||
<input type="radio" name="u_link" class="u_link" value="false" {if $unicalendars.uca_link == 'false'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_NO#}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_WEEK_START#}</td>
|
||||
<td>
|
||||
<input name="uca_day" type="hidden" id="uca_day" value="{$unicalendars.uca_day|escape}"/>
|
||||
<input type="radio" name="u_day" class="u_day" value="true" {if $unicalendars.uca_day == 'true'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_WEEK_START_MONDAY#}</label>
|
||||
<input type="radio" name="u_day" class="u_day" value="false" {if $unicalendars.uca_day == 'false'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_WEEK_START_SUNDAY#}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_SCROLL_BAR#}</td>
|
||||
<td>
|
||||
<input name="uca_scroll" type="hidden" id="uca_scroll" value="{$unicalendars.uca_scroll|escape}"/>
|
||||
<input type="radio" name="u_scroll" class="u_scroll" value="true" {if $unicalendars.uca_scroll == 'true'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_YES#}</label>
|
||||
<input type="radio" name="u_scroll" class="u_scroll" value="false" {if $unicalendars.uca_scroll == 'false'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_NO#}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_DESCRIPTION#}</td>
|
||||
<td>
|
||||
<input name="uca_descript" type="hidden" id="uca_descript" value="{$unicalendars.uca_descript|escape}"/>
|
||||
<input type="radio" name="u_descript" class="u_descript" value="true" {if $unicalendars.uca_descript == 'true'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_YES#}</label>
|
||||
<input type="radio" name="u_descript" class="u_descript" value="false" {if $unicalendars.uca_descript == 'false'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_NO#}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<label for="">{#UCA_NO#}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_WEEK_START#}</td>
|
||||
<td>
|
||||
<input name="uca_day" type="hidden" id="uca_day" value="{$unicalendars.uca_day|escape}"/>
|
||||
<input type="radio" name="u_day" class="u_day" value="true" {if $unicalendars.uca_day == 'true'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_WEEK_START_MONDAY#}</label>
|
||||
<input type="radio" name="u_day" class="u_day" value="false" {if $unicalendars.uca_day == 'false'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_WEEK_START_SUNDAY#}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_SCROLL_BAR#}</td>
|
||||
<td>
|
||||
<input name="uca_scroll" type="hidden" id="uca_scroll" value="{$unicalendars.uca_scroll|escape}"/>
|
||||
<input type="radio" name="u_scroll" class="u_scroll" value="true" {if $unicalendars.uca_scroll == 'true'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_YES#}</label>
|
||||
<input type="radio" name="u_scroll" class="u_scroll" value="false" {if $unicalendars.uca_scroll == 'false'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_NO#}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_DESCRIPTION#}</td>
|
||||
<td>
|
||||
<input name="uca_descript" type="hidden" id="uca_descript" value="{$unicalendars.uca_descript|escape}"/>
|
||||
<input type="radio" name="u_descript" class="u_descript" value="true" {if $unicalendars.uca_descript == 'true'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_YES#}</label>
|
||||
<input type="radio" name="u_descript" class="u_descript" value="false" {if $unicalendars.uca_descript == 'false'} checked="checked" {/if}>
|
||||
<label for="">{#UCA_NO#}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180">{#UCA_EVENTS_LIMIT#}</td>
|
||||
<td>
|
||||
<input name="uca_events_limit" type="text" id="uca_events_limit" value="{$unicalendars.uca_events_limit|escape}" style="width:32px"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td width="180"><div style="padding-bottom: 8px; padding-top: 8px;">{#UCA_EVENTS#}</div></td>
|
||||
<td id="uca_result">
|
||||
<input type='hidden' name='uca_rubric_title' id='uca_rubric_title' value='{$unicalendars.uca_rubric_title|escape}'>
|
||||
<input type='hidden' name='uca_rubric_id' id='uca_rubric_id' value='{$unicalendars.uca_rubric_id|escape}'>
|
||||
<tr class="noborder">
|
||||
<td width="180"><div style="padding-bottom: 8px; padding-top: 8px;">{#UCA_EVENTS#}</div></td>
|
||||
<td id="uca_result">
|
||||
<input type='hidden' name='uca_rubric_title' id='uca_rubric_title' value='{$unicalendars.uca_rubric_title|escape}'>
|
||||
<input type='hidden' name='uca_rubric_id' id='uca_rubric_id' value='{$unicalendars.uca_rubric_id|escape}'>
|
||||
<span>{#UCA_LIST_ALLDOC_RUB#} <span class="cmsStats">{$unicalendars.uca_rubric_title|escape}</span>
|
||||
<a class="btn redBtn" href="javascript:void(0);" onclick="ucaCangeRub();">{#UCA_CHANGE_RUBRIC#}</a></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div id="uca_rub_after_fields"></div>
|
||||
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm">
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="pr12" style="display: table; padding: 5px 0px 5px 0px;">
|
||||
<a id="btn_save_edit" class="btn blueBtn" href="javascript:void(0);">{#UCA_SAVE_EDIT#}</a>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="pr12" style="display: table; padding: 5px 0px 5px 0px;">
|
||||
<a id="btn_save_edit" class="btn blueBtn" href="javascript:void(0);">{#UCA_SAVE_EDIT#}</a>
|
||||
<a class="btn greenBtn" href="index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=1&cp={$sess}">{#UCA_RETURN_LIST#}</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/if}
|
||||
|
||||
@@ -272,10 +272,10 @@
|
||||
</table>
|
||||
{/if}
|
||||
|
||||
{/foreach}
|
||||
|
||||
|
||||
<script>
|
||||
{if $unicalendars.uca_events == 1 || $unicalendars.uca_events == 2}// START Если событиями календаря являются все доки из рубрики или выбранные доки из рубрики
|
||||
{if $unicalendars.uca_events|default:0 == 1 || $unicalendars.uca_events|default:0 == 2}// START Если событиями календаря являются все доки из рубрики или выбранные доки из рубрики
|
||||
|
||||
var uca_frub_id = '';
|
||||
$('#i_uca_img_field').val('');
|
||||
@@ -288,11 +288,69 @@
|
||||
var uca_place_field = ''; // создаем переменную
|
||||
var i_uca_place_field = ''; // создаем переменную
|
||||
|
||||
$("#uca_rub_after_fields").html('<table id="tr_uca_data" cellpadding="0" cellspacing="0" width="100%" class="tableStatic settings"><colgroup><col width="201"><col width="*"><col width="*"><col width="*"><col width="*"><col width="*"></colgroup><thead><tr class="noborder"><td colspan="2" ><h5 class="iFrames" style="text-align: left; padding-left: 10px;">{#UCA_SEL_FIELD_DATA_INF#}</h5></td></tr></thead><tbody><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_TTL#}</td><td align="left"><select disabled="disabled" name="uca_ttl_field" id="uca_ttl_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_TTL#}</option></select></td></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_H_IMG#}</td><td align="left"><select name="uca_img_field" id="uca_img_field" style="width: 300px;"></select></td><input name="i_uca_img_field" type="hidden" id="i_uca_img_field" value="{$unicalendars.uca_img_field|escape}"/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_DSC#}</td><td align="left"><select name="uca_dsc_field" id="uca_dsc_field" style="width: 300px;"></select></td><input name="i_uca_dsc_field" type="hidden" id="i_uca_dsc_field" value="{$unicalendars.uca_dsc_field|escape}"/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_PLW#}</td><td align="left"><select name="uca_place_field" id="uca_place_field" style="width: 300px;"></select></td><input name="i_uca_place_field" type="hidden" id="i_uca_place_field" value="{$unicalendars.uca_place_field|escape}"/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_STR#}</td><td align="left"><select disabled="disabled" name="uca_str_field" id="uca_str_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select></td></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_END#}</td><td align="left"><select disabled="disabled" name="uca_end_field" id="uca_end_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select></td></tr></tbody></table>');
|
||||
$("#uca_rub_after_fields").html(`
|
||||
<table id="tr_uca_data" cellpadding="0" cellspacing="0" width="100%" class="tableStatic settings">
|
||||
<colgroup><col width="201"><col width="*"><col width="*"><col width="*"><col width="*"><col width="*"></colgroup>
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td colspan="2" ><h5 class="iFrames" style="text-align: left; padding-left: 10px;">{#UCA_SEL_FIELD_DATA_INF#}</h5></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_TTL#}</td>
|
||||
<td align="left"><select name="uca_ttl_field" id="uca_ttl_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_TTL#}</option></select></td>
|
||||
<input name="i_uca_ttl_field" type="hidden" id="i_uca_ttl_field" value="{$unicalendars.uca_ttl_field|escape}"/>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_H_IMG#}</td>
|
||||
<td align="left"><select name="uca_img_field" id="uca_img_field" style="width: 300px;"></select></td>
|
||||
<input name="i_uca_img_field" type="hidden" id="i_uca_img_field" value="{$unicalendars.uca_img_field|escape}"/>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_DSC#}</td>
|
||||
<td align="left"><select name="uca_dsc_field" id="uca_dsc_field" style="width: 300px;"></select></td>
|
||||
<input name="i_uca_dsc_field" type="hidden" id="i_uca_dsc_field" value="{$unicalendars.uca_dsc_field|escape}"/>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_PLW#}</td>
|
||||
<td align="left"><select name="uca_place_field" id="uca_place_field" style="width: 300px;"></select></td>
|
||||
<input name="i_uca_place_field" type="hidden" id="i_uca_place_field" value="{$unicalendars.uca_place_field|escape}"/>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_STR#}</td>
|
||||
<td align="left">
|
||||
<select name="uca_str_field" id="uca_str_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select>
|
||||
<input type="hidden" id="i_uca_str_field" value="{$unicalendars.uca_str_field|default:0}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_END#}</td>
|
||||
<td align="left">
|
||||
<select name="uca_end_field" id="uca_end_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select>
|
||||
<input type="hidden" id="i_uca_end_field" value="{$unicalendars.uca_end_field|default:0}">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
`);
|
||||
|
||||
uca_frub_id = $('#uca_rubric_id').val();
|
||||
ucaRubFieldsEditAll();
|
||||
|
||||
$('#uca_ttl_field').change(function(){ldelim}
|
||||
var uca_ttl_val = $('#uca_ttl_field').val();
|
||||
$('#i_uca_ttl_field').val(uca_ttl_val);
|
||||
{rdelim});
|
||||
|
||||
$('#uca_str_field').change(function(){ldelim}
|
||||
$('#i_uca_str_field').val($(this).val());
|
||||
{rdelim});
|
||||
|
||||
$('#uca_end_field').change(function(){ldelim}
|
||||
$('#i_uca_end_field').val($(this).val());
|
||||
{rdelim});
|
||||
|
||||
$('#uca_img_field').change(function(){ldelim} // START если есть действия с селектом "Изображение - выбор поля" пишем ID выбранного в скрытый input id="i_uca_img_field"
|
||||
uca_img_field = $('#uca_img_field').val();
|
||||
i_uca_img_field = $('#i_uca_img_field').val(uca_img_field);
|
||||
@@ -310,7 +368,7 @@
|
||||
|
||||
{/if}// END Если событиями календаря являются все доки из рубрики
|
||||
|
||||
{if $unicalendars.uca_events == 2}// START Если событиями календаря являются выбранные доки из рубрики
|
||||
{if $unicalendars.uca_events|default:0 == 2}// START Если событиями календаря являются выбранные доки из рубрики
|
||||
// START получаем данные активных чекбоксов-документов
|
||||
{foreach from=$check_docs item=check_docs}
|
||||
$("#inp_doc_{$check_docs.Id}").attr('checked', 'checked' );// активируем чекбоксы в списке документов
|
||||
@@ -372,10 +430,10 @@
|
||||
|
||||
|
||||
|
||||
// START обнуляем значение value у input Название календаря при событии focus
|
||||
$('#uca_title').focus(function(){ldelim}
|
||||
$('#uca_title').val('');
|
||||
{rdelim});// END обнуляем значение value у input Название календаря при событии focus
|
||||
// START обнуляем значение value у input Название календаря при событии focus
|
||||
$('#uca_title').focus(function(){ldelim}
|
||||
$('#uca_title').val('');
|
||||
{rdelim});// END обнуляем значение value у input Название календаря при событии focus
|
||||
|
||||
// START обнуляем значение value у input Лимит вывода событий при событии focus
|
||||
$('#uca_events_limit').focus(function(){ldelim}
|
||||
@@ -391,64 +449,71 @@
|
||||
|
||||
// START получаем значение радиокнопки открыть ссылку и пишем в input значение
|
||||
$(".u_link").on('change', function() {ldelim}
|
||||
$('#uca_link').val('');
|
||||
$('#uca_link').val('');
|
||||
var u_link = $('input[name="u_link"]:checked').val();
|
||||
$('#uca_link').val(u_link);
|
||||
{rdelim});// END получаем значение радиокнопки открыть ссылку и пишем в input значение
|
||||
|
||||
// START получаем значение радиокнопки Отображать начало недели в календаре
|
||||
$(".u_day").on('change', function() {ldelim}
|
||||
$('#uca_day').val('');
|
||||
$('#uca_day').val('');
|
||||
var u_day = $('input[name="u_day"]:checked').val();
|
||||
$('#uca_day').val(u_day);
|
||||
{rdelim});// END получаем значение радиокнопки Отображать начало недели в календаре
|
||||
|
||||
// START получаем значение радиокнопки Включить полосу прокрутки в событиях
|
||||
$(".u_scroll").on('change', function() {ldelim}
|
||||
$('#uca_scroll').val('');
|
||||
$('#uca_scroll').val('');
|
||||
var u_scroll = $('input[name="u_scroll"]:checked').val();
|
||||
$('#uca_scroll').val(u_scroll);
|
||||
{rdelim});// END получаем значение радиокнопки Включить полосу прокрутки в событиях
|
||||
|
||||
// START получаем значение радиокнопки Раскрывать содержимое всех событий сразу после загрузки
|
||||
$(".u_descript").on('change', function() {ldelim}
|
||||
$('#uca_descript').val('');
|
||||
$('#uca_descript').val('');
|
||||
var u_descript = $('input[name="u_descript"]:checked').val();
|
||||
$('#uca_descript').val(u_descript);
|
||||
{rdelim});// END получаем значение радиокнопки Раскрывать содержимое всех событий сразу после загрузки
|
||||
|
||||
function ucaRubFieldsEditAll() {ldelim} //START AJAX запросов - вывести поля рубрики + активные пункты в select
|
||||
$.when( $.ajax({ldelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=events_new&cp={$sess}',
|
||||
async: true,
|
||||
data: {ldelim}uca_edit_rub_field_img:'uca_edit_rub_field_img',uca_frub_id:uca_frub_id,id:{$unicalendars.id}{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
$("#uca_img_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_IMG#}</option>"+data);
|
||||
{rdelim}
|
||||
{rdelim}), $.ajax({ldelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=events_new&cp={$sess}',
|
||||
async: true,
|
||||
data: {ldelim}uca_edit_rub_field_dsc:'uca_edit_rub_field_dsc',uca_frub_id:uca_frub_id,id:{$unicalendars.id}{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
$("#uca_dsc_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_DSC#}</option>"+data);
|
||||
{rdelim}
|
||||
{rdelim}), $.ajax({ldelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=events_new&cp={$sess}',
|
||||
async: true,
|
||||
data: {ldelim}uca_edit_rub_field_plc:'uca_edit_rub_field_plc',uca_frub_id:uca_frub_id,id:{$unicalendars.id}{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
$("#uca_place_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_PLC#}</option>"+data);
|
||||
{rdelim}
|
||||
{rdelim}) ).then( function (resp1, resp2, resp3) {ldelim}
|
||||
/* Этот callback запустится один раз, когда все AJAX запросы будут завершены
|
||||
и будут получены все ответы сервера в параметрах resp1, resp2, resp3 и только
|
||||
тогда разукрашиваем гребанный select */
|
||||
$('select').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});
|
||||
{rdelim});
|
||||
{rdelim}; //END AJAX запросов - вывести поля рубрики + активные пункты в select
|
||||
//START AJAX запросов - вывести поля рубрики + активные пункты в select
|
||||
function ucaRubFieldsEditAll() {ldelim}
|
||||
$.ajax({ldelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=events_new&cp={$sess}',
|
||||
data: {ldelim}
|
||||
uca_rub_field: 'uca_rub_field',
|
||||
uca_frub_id: uca_frub_id,
|
||||
id: {$unicalendars.id|default:0}
|
||||
{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
// 1. Заполняем все селекты данными + добавляем дефолтный пункт
|
||||
$("#uca_ttl_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_TTL#}</option>" + data);
|
||||
$("#uca_img_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_IMG#}</option>" + data);
|
||||
$("#uca_dsc_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_DSC#}</option>" + data);
|
||||
$("#uca_place_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_PLC#}</option>" + data);
|
||||
$("#uca_str_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_SDOC#}</option>" + data);
|
||||
$("#uca_end_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_SDOC#}</option>" + data);
|
||||
|
||||
// 2. Проставляем сохраненные значения. Если в инпуте 0 или пусто - ставим '', чтобы отобразилась подсказка
|
||||
$('#uca_ttl_field').val(($('#i_uca_ttl_field').val() != 0) ? $('#i_uca_ttl_field').val() : '');
|
||||
$('#uca_img_field').val(($('#i_uca_img_field').val() != 0) ? $('#i_uca_img_field').val() : '');
|
||||
$('#uca_dsc_field').val(($('#i_uca_dsc_field').val() != 0) ? $('#i_uca_dsc_field').val() : '');
|
||||
$('#uca_place_field').val(($('#i_uca_place_field').val() != 0) ? $('#i_uca_place_field').val() : '');
|
||||
$('#uca_str_field').val(($('#i_uca_str_field').val() != 0) ? $('#i_uca_str_field').val() : '');
|
||||
$('#uca_end_field').val(($('#i_uca_end_field').val() != 0) ? $('#i_uca_end_field').val() : '');
|
||||
|
||||
// 3. Оживляем стилизацию с микро-задержкой
|
||||
setTimeout(function() {ldelim}
|
||||
$('.settings select').styler('destroy');
|
||||
$('.settings select').styler({ldelim}
|
||||
selectSearch: false,
|
||||
selectVisibleOptions: 5
|
||||
{rdelim});
|
||||
{rdelim}, 50);
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim};
|
||||
//END AJAX запросов
|
||||
|
||||
// START AJAX запрос при клике по кнопке Сменить рубрику
|
||||
function ucaCangeRub() {ldelim}
|
||||
@@ -464,9 +529,9 @@ $.when( $.ajax({ldelim}
|
||||
{rdelim},
|
||||
error: function(xhr, str){ldelim}
|
||||
$.jGrowl("{#SaveError#}", {ldelim}
|
||||
header: '{#SentData#}',
|
||||
theme: 'error'
|
||||
{rdelim});
|
||||
header: '{#SentData#}',
|
||||
theme: 'error'
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}; // END AJAX запрос при клике по кнопке Сменить рубрику
|
||||
@@ -483,14 +548,73 @@ $.when( $.ajax({ldelim}
|
||||
var uca_inptxt_res = $("#uca_result option:selected").text();
|
||||
$('#uca_rubric_id').val(uca_inp_res);
|
||||
$('#uca_rubric_title').val(uca_inptxt_res);
|
||||
{if $unicalendars.uca_events == 1}
|
||||
{if $unicalendars.uca_events|default:0 == 1}
|
||||
var uca_res_new_rub = $('#uca_rubric_id').val();
|
||||
|
||||
if(uca_res_new_rub !='')
|
||||
{ldelim}
|
||||
$('#uca_rub_after_fields').html('<table id="tr_uca_data" cellpadding="0" cellspacing="0" width="100%" class="tableStatic settings"><colgroup><col width="201"><col width="*"><col width="*"><col width="*"><col width="*"><col width="*"></colgroup><thead><tr class="noborder"><td colspan="2" ><h5 class="iFrames" style="text-align: left; padding-left: 10px;">{#UCA_SEL_FIELD_DATA_INF#}</h5></td></tr></thead><tbody><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_TTL#}</td><td align="left"><select disabled="disabled" name="uca_ttl_field" id="uca_ttl_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_TTL#}</option></select></td></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_H_IMG#}</td><td align="left"><select name="uca_img_field" id="uca_img_field" style="width: 300px;"></select></td><input name="i_uca_img_field" type="hidden" id="i_uca_img_field" value=""/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_DSC#}</td><td align="left"><select name="uca_dsc_field" id="uca_dsc_field" style="width: 300px;"></select></td><input name="i_uca_dsc_field" type="hidden" id="i_uca_dsc_field" value=""/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_PLW#}</td><td align="left"><select name="uca_place_field" id="uca_place_field" style="width: 300px;"></select></td><input name="i_uca_place_field" type="hidden" id="i_uca_place_field" value=""/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_STR#}</td><td align="left"><select disabled="disabled" name="uca_str_field" id="uca_str_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select></td></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_END#}</td><td align="left"><select disabled="disabled" name="uca_end_field" id="uca_end_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select></td></tr></tbody></table>');
|
||||
$("#uca_rub_after_fields").html(`
|
||||
<table id="tr_uca_data" cellpadding="0" cellspacing="0" width="100%" class="tableStatic settings">
|
||||
<colgroup><col width="201"><col width="*"><col width="*"><col width="*"><col width="*"><col width="*"></colgroup>
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td colspan="2" ><h5 class="iFrames" style="text-align: left; padding-left: 10px;">{#UCA_SEL_FIELD_DATA_INF#}</h5></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_TTL#}</td>
|
||||
<td align="left"><select name="uca_ttl_field" id="uca_ttl_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_TTL#}</option></select></td>
|
||||
<input name="i_uca_ttl_field" type="hidden" id="i_uca_ttl_field" value="{$unicalendars.uca_ttl_field|escape}"/>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_H_IMG#}</td>
|
||||
<td align="left"><select name="uca_img_field" id="uca_img_field" style="width: 300px;"></select></td>
|
||||
<input name="i_uca_img_field" type="hidden" id="i_uca_img_field" value="{$unicalendars.uca_img_field|escape}"/>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_DSC#}</td>
|
||||
<td align="left"><select name="uca_dsc_field" id="uca_dsc_field" style="width: 300px;"></select></td>
|
||||
<input name="i_uca_dsc_field" type="hidden" id="i_uca_dsc_field" value="{$unicalendars.uca_dsc_field|escape}"/>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_PLW#}</td>
|
||||
<td align="left"><select name="uca_place_field" id="uca_place_field" style="width: 300px;"></select></td>
|
||||
<input name="i_uca_place_field" type="hidden" id="i_uca_place_field" value="{$unicalendars.uca_place_field|escape}"/>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_STR#}</td>
|
||||
<td align="left">
|
||||
<select name="uca_str_field" id="uca_str_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select>
|
||||
<input type="hidden" id="i_uca_str_field" value="{$unicalendars.uca_str_field|default:0}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_END#}</td>
|
||||
<td align="left">
|
||||
<select name="uca_end_field" id="uca_end_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select>
|
||||
<input type="hidden" id="i_uca_end_field" value="{$unicalendars.uca_end_field|default:0}">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
`);
|
||||
uca_frub_id = $('#uca_rubric_id').val();
|
||||
ucaRubFields();
|
||||
|
||||
$('#uca_ttl_field').change(function(){ldelim}
|
||||
var uca_ttl_val = $('#uca_ttl_field').val();
|
||||
$('#i_uca_ttl_field').val(uca_ttl_val);
|
||||
{rdelim});
|
||||
|
||||
$('#uca_str_field').change(function(){ldelim}
|
||||
$('#i_uca_str_field').val($(this).val());
|
||||
{rdelim});
|
||||
|
||||
$('#uca_end_field').change(function(){ldelim}
|
||||
$('#i_uca_end_field').val($(this).val());
|
||||
{rdelim});
|
||||
|
||||
$('#uca_img_field').change(function(){ldelim} // START если есть действия с селектом "Изображение - выбор поля" пишем ID выбранного в скрытый input id="i_uca_img_field"
|
||||
uca_img_field = $('#uca_img_field').val();
|
||||
i_uca_img_field = $('#i_uca_img_field').val(uca_img_field);
|
||||
@@ -514,25 +638,32 @@ $.when( $.ajax({ldelim}
|
||||
|
||||
|
||||
// START AJAX запрос вывести все поля рубрики
|
||||
function ucaRubFields() {ldelim}
|
||||
function ucaRubFields() {ldelim}
|
||||
$.ajax({ldelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=events_new&cp={$sess}',
|
||||
async: true,
|
||||
data: {ldelim}uca_rub_field:'uca_rub_field',uca_frub_id:uca_frub_id{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
$("#uca_img_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_IMG#}</option>"+data);
|
||||
$("#uca_dsc_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_DSC#}</option>"+data);
|
||||
$("#uca_place_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_PLC#}</option>"+data);
|
||||
$('select').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});
|
||||
{rdelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=events_new&cp={$sess}',
|
||||
async: true,
|
||||
data: {ldelim}uca_rub_field:'uca_rub_field',uca_frub_id:uca_frub_id{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
$("#uca_ttl_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_TTL#}</option>"+data);
|
||||
$("#uca_img_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_IMG#}</option>"+data);
|
||||
$("#uca_dsc_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_DSC#}</option>"+data);
|
||||
$("#uca_place_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_PLC#}</option>"+data);
|
||||
$("#uca_str_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_SDOC#}</option>"+data);
|
||||
$("#uca_end_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_SDOC#}</option>"+data);
|
||||
|
||||
$('select').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}; // END AJAX запрос вывести все поля рубрики
|
||||
{rdelim};
|
||||
|
||||
// END AJAX запрос вывести все поля рубрики
|
||||
|
||||
// START Если произошло событие клик на кнопке Сохранить изменения - отправляем AJAX запрос и пишем в БД данные
|
||||
$("#btn_save_edit").on('click', function() {ldelim}
|
||||
var uca_events = $('#uca_events').val();
|
||||
var uca_title = $('#uca_title').val();
|
||||
var send_uca_ttl_field = $('#i_uca_ttl_field').val();
|
||||
var uca_date_format = $('#uca_date_format').val();
|
||||
var uca_link = $('#uca_link').val();
|
||||
var uca_day = $('#uca_day').val();
|
||||
@@ -545,6 +676,8 @@ $.when( $.ajax({ldelim}
|
||||
var send_uca_img_field = $('#i_uca_img_field').val();
|
||||
var send_uca_dsc_field = $('#i_uca_dsc_field').val();
|
||||
var send_uca_place_field = $('#i_uca_place_field').val();
|
||||
var send_uca_str_field = $('#i_uca_str_field').val();
|
||||
var send_uca_end_field = $('#i_uca_end_field').val();
|
||||
|
||||
var check_fields = $('#uca_title').val();
|
||||
var check_fields_rubric_id = $('#uca_rubric_id').val();
|
||||
@@ -554,9 +687,8 @@ $.when( $.ajax({ldelim}
|
||||
|
||||
$.ajax({ldelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=edit_save&id={$unicalendars.id}&cp={$sess}',
|
||||
data: {ldelim}uca_events:uca_events,uca_title:uca_title,uca_date_format:uca_date_format,uca_link:uca_link,uca_day:uca_day,uca_scroll:uca_scroll,uca_descript:uca_descript,uca_events_limit:uca_events_limit,uca_rubric_id:uca_rubric_id,uca_rubric_title:uca_rubric_title,uca_doc_id:uca_doc_id,send_uca_img_field:send_uca_img_field,send_uca_dsc_field:send_uca_dsc_field,send_uca_place_field:send_uca_place_field{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=edit_save&id={$unicalendars.id|default:0}&cp={$sess}',
|
||||
data: {ldelim}uca_events:uca_events,uca_title:uca_title,uca_date_format:uca_date_format,uca_link:uca_link,uca_day:uca_day,uca_scroll:uca_scroll,uca_descript:uca_descript,uca_events_limit:uca_events_limit,uca_rubric_id:uca_rubric_id,uca_rubric_title:uca_rubric_title,uca_doc_id:uca_doc_id,send_uca_ttl_field: send_uca_ttl_field,send_uca_img_field:send_uca_img_field,send_uca_dsc_field:send_uca_dsc_field,send_uca_place_field:send_uca_place_field,send_uca_str_field: send_uca_str_field,send_uca_end_field: send_uca_end_field{rdelim},success: function(data) {ldelim}
|
||||
$('#ed_title').html(uca_title);
|
||||
$('#title_rub').html(' '+uca_rubric_title);
|
||||
$.jGrowl("{#UCA_ALERT_SAVE_EDIT_S#}", {ldelim}
|
||||
@@ -566,9 +698,9 @@ $.when( $.ajax({ldelim}
|
||||
{rdelim},
|
||||
error: function(xhr, str){ldelim}
|
||||
$.jGrowl("{#UCA_ALERT_SAVE_EDIT_E#}", {ldelim}
|
||||
header: '{#UCA_ALERT_SAVE_EDIT#}{$unicalendars.id}',
|
||||
theme: 'error'
|
||||
{rdelim});
|
||||
header: '{#UCA_ALERT_SAVE_EDIT#}{$unicalendars.id|default:0}',
|
||||
theme: 'error'
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
|
||||
|
||||
@@ -58,12 +58,12 @@
|
||||
<strong class="code">{$unicalendar.id}</strong>
|
||||
</td>
|
||||
<td align="left">
|
||||
<a class="btn greyishBtn" title="{#UCA_EDIT#}" href="index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=edit&id={$unicalendar.id}&cp={$sess}">{$unicalendar.uca_title|escape}</a>
|
||||
<a class="{if $unicalendar.uca_events == 1}doclink status-green-row {elseif $unicalendar.uca_events == 2}doclink status-blue-row{/if}" title="{#UCA_EDIT#}" href="index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=edit&id={$unicalendar.id}&cp={$sess}">{$unicalendar.uca_title|escape}</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<div align="left">
|
||||
{if $unicalendar.uca_events == 1}<a style="cursor: default;" class="btn greenBtn" href="javascript:void(0);">{#UCA_LIST_ALLDOC_RUB#} <i>{$unicalendar.uca_rubric_title|escape}</i></a>
|
||||
{elseif $unicalendar.uca_events == 2}<a style="cursor: default;" class="btn blueBtn" href="javascript:void(0);">{#UCA_LIST_SELDOC_RUB#} <i>{$unicalendar.uca_rubric_title|escape}</i></a>
|
||||
{if $unicalendar.uca_events == 1}<a style="cursor: default;" class="event-label-indicator event-label-green" href="javascript:void(0);">{#UCA_LIST_ALLDOC_RUB#} <i>{$unicalendar.uca_rubric_title|escape}</i></a>
|
||||
{elseif $unicalendar.uca_events == 2}<a style="cursor: default;" class="event-label-indicator event-label-blue" href="javascript:void(0);">{#UCA_LIST_SELDOC_RUB#} <i>{$unicalendar.uca_rubric_title|escape}</i></a>
|
||||
{else}<strong>{#UCA_EVENTS_WARNING#}</strong>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -118,16 +118,16 @@
|
||||
else if (count_old_array == count_new_array && diff != '' || count_old_array != count_new_array && diff != '')
|
||||
{ldelim}
|
||||
$('#count_wrap_{$unicalendar.id}').prop('style', 'width:18px;height:18px;background:red;-moz-border-radius:50px;-webkit-border-radius:50px;border-radius:50px;');
|
||||
{if $unicalendar.uca_events == 1}
|
||||
$('#count_wrap_{$unicalendar.id}').prop('title', '{#UCA_ALERT_RELEV_BAD#}<strong style=\'color:orange\'>{$unicalendar.uca_rubric_title}</strong>{#UCA_ALERT_RELEV_BAD_SE#}<strong style=\'color:orange\'>'+diff+'</strong>{#UCA_ALERT_RELEV_BAD_SF#}');// Внимание - события в календаре неактуальны! На момент создания календаря был(и) выбран(ы) документ(ы), которые(ых) на текущий момент не существует в рубрике. Это приводит к тому, что календарь содержит события, ведущие на страницу с ошибкой 404! Для устранения - пересохраните календарь!
|
||||
{elseif $unicalendar.uca_events == 2}
|
||||
$('#count_wrap_{$unicalendar.id}').prop('title', '{#UCA_ALERT_RELEV_BAD_SD#}<strong style=\'color:orange\'>{$unicalendar.uca_rubric_title}</strong>{#UCA_ALERT_RELEV_BAD_SE#}<strong style=\'color:orange\'>'+diff+'</strong>{#UCA_ALERT_RELEV_BAD_SF#}');// Внимание - события в календаре неактуальны! На момент создания календаря был(и) выбран(ы) документ(ы), которые(ых) на текущий момент не существует в рубрике. Это приводит к тому, что календарь содержит события, ведущие на страницу с ошибкой 404! Для устранения - пересохраните календарь!
|
||||
{/if}
|
||||
{if $unicalendar.uca_events == 1}
|
||||
$('#count_wrap_{$unicalendar.id}').prop('title', '{#UCA_ALERT_RELEV_BAD#|escape:"javascript"}<strong style="color:orange">{$unicalendar.uca_rubric_title|escape:"javascript"}</strong>{#UCA_ALERT_RELEV_BAD_SE#|escape:"javascript"}<strong style="color:orange">' + diff + '</strong>{#UCA_ALERT_RELEV_BAD_SF#|escape:"javascript"}');
|
||||
{elseif $unicalendar.uca_events == 2}
|
||||
$('#count_wrap_{$unicalendar.id}').prop('title', '{#UCA_ALERT_RELEV_BAD_SD#|escape:"javascript"}<strong style="color:orange">{$unicalendar.uca_rubric_title|escape:"javascript"}</strong>{#UCA_ALERT_RELEV_BAD_SE#|escape:"javascript"}<strong style="color:orange">' + diff + '</strong>{#UCA_ALERT_RELEV_BAD_SF#|escape:"javascript"}');
|
||||
{/if}
|
||||
{rdelim}{if $unicalendar.uca_events == 2}; {elseif $unicalendar.uca_events == 1}
|
||||
else if (count_old_array < count_new_array && diff == '')
|
||||
{ldelim}
|
||||
$('#count_wrap_{$unicalendar.id}').prop('style', 'width:18px;height:18px;background:orange;-moz-border-radius:50px;-webkit-border-radius:50px;border-radius:50px;');
|
||||
$('#count_wrap_{$unicalendar.id}').prop('title', '{#UCA_ALERT_RELEV_WAR#}');// выводим подсказку - Внимание - события в календаре неактуальны! На момент создания календаря документов в рубрике было больше, чем на текущий момент...
|
||||
$('#count_wrap_{$unicalendar.id}').prop('title', '{#UCA_ALERT_RELEV_WAR#}');
|
||||
{rdelim};
|
||||
{/if}// завершение условий проверки
|
||||
{rdelim},
|
||||
@@ -264,7 +264,7 @@
|
||||
</div>
|
||||
{/if}
|
||||
<script>
|
||||
$('uca_events_sel').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});// стилизуем селект выбора событий календаря
|
||||
$('#uca_events_sel').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});// стилизуем селект выбора событий календаря
|
||||
// START обнуляем значение value у input Лимит вывода событий при событии focus
|
||||
$('#uca_events_limit').focus(function(){ldelim}
|
||||
$('#uca_events_limit').val('');
|
||||
@@ -316,7 +316,69 @@
|
||||
uca_title_sel_rub = $('#uca_rubric_title').val();// пишем в переменную title выбранной рубрики
|
||||
if (uca_id_sel_rub !=''){ldelim}// если выбрана рубрика
|
||||
//alert("Id рубрики = "+uca_id_sel_rub+" Название рубрики = "+uca_title_sel_rub);
|
||||
$('#uca_after_fields').after('<table id="tr_uca_data" cellpadding="0" cellspacing="0" width="100%" class="tableStatic settings"><colgroup><col width="201"><col width="*"><col width="*"><col width="*"><col width="*"><col width="*"></colgroup><thead><tr class="noborder"><td colspan="2" ><h5 class="iFrames" style="text-align: left; padding-left: 10px;">{#UCA_SEL_FIELD_DATA_INF#}</h5></td></tr></thead><tbody><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_TTL#}</td><td align="left"><select disabled="disabled" name="uca_ttl_field" id="uca_ttl_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_TTL#}</option></select></td></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_H_IMG#}</td><td align="left"><select name="uca_img_field" id="uca_img_field" style="width: 300px;"></select></td><input name="i_uca_img_field" type="hidden" id="i_uca_img_field" value=""/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_DSC#}</td><td align="left"><select name="uca_dsc_field" id="uca_dsc_field" style="width: 300px;"></select></td><input name="i_uca_dsc_field" type="hidden" id="i_uca_dsc_field" value=""/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_PLW#}</td><td align="left"><select name="uca_place_field" id="uca_place_field" style="width: 300px;"></select></td><input name="i_uca_place_field" type="hidden" id="i_uca_place_field" value=""/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_STR#}</td><td align="left"><select disabled="disabled" name="uca_str_field" id="uca_str_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select></td></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_END#}</td><td align="left"><select disabled="disabled" name="uca_end_field" id="uca_end_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select></td></tr></tbody></table>');
|
||||
$('#uca_after_fields').after(`
|
||||
<table id="tr_uca_data" cellpadding="0" cellspacing="0" width="100%" class="tableStatic settings">
|
||||
<colgroup>
|
||||
<col width="201"><col width="*"><col width="*"><col width="*"><col width="*"><col width="*">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td colspan="2">
|
||||
<h5 class="iFrames" style="text-align: left; padding-left: 10px;">{#UCA_SEL_FIELD_DATA_INF#}</h5>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_TTL#}</td>
|
||||
<td align="left">
|
||||
<select name="uca_ttl_field" id="uca_ttl_field" style="width: 300px;"></select>
|
||||
<input name="i_uca_ttl_field" type="hidden" id="i_uca_ttl_field" value="0"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">
|
||||
<span style="float: left; margin-right: 5px;">{#UCA_SEL_FIELD_H_IMG#}</span>
|
||||
</td>
|
||||
<td align="left">
|
||||
<select name="uca_img_field" id="uca_img_field" style="width: 300px;"></select>
|
||||
<input name="i_uca_img_field" type="hidden" id="i_uca_img_field" value=""/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">
|
||||
<span style="float: left; margin-right: 5px;">{#UCA_SEL_FIELD_DATA_DSC#}</span>
|
||||
</td>
|
||||
<td align="left">
|
||||
<select name="uca_dsc_field" id="uca_dsc_field" style="width: 300px;"></select>
|
||||
<input name="i_uca_dsc_field" type="hidden" id="i_uca_dsc_field" value=""/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">
|
||||
<span style="float: left; margin-right: 5px;">{#UCA_SEL_FIELD_DATA_PLW#}</span>
|
||||
</td>
|
||||
<td align="left">
|
||||
<select name="uca_place_field" id="uca_place_field" style="width: 300px;"></select>
|
||||
<input name="i_uca_place_field" type="hidden" id="i_uca_place_field" value=""/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_STR#}</td>
|
||||
<td align="left">
|
||||
<select name="uca_str_field" id="uca_str_field" style="width: 300px;"></select>
|
||||
<input name="i_uca_str_field" type="hidden" id="i_uca_str_field" value="0"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_END#}</td>
|
||||
<td align="left">
|
||||
<select name="uca_end_field" id="uca_end_field" style="width: 300px;"></select>
|
||||
<input name="i_uca_end_field" type="hidden" id="i_uca_end_field" value="0"/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>`);
|
||||
uca_frub_id = $('#uca_rubric_id').val();
|
||||
ucaRubFields();
|
||||
$('#uca_img_field').change(function(){ldelim} // START если есть действия с селектом "Изображение - выбор поля" пишем ID выбранного в скрытый input id="i_uca_img_field"
|
||||
@@ -372,7 +434,64 @@
|
||||
var uca_inp_res = $("#uca_result option:selected").val();
|
||||
var uca_inptxt_res = $("#uca_result option:selected").text();
|
||||
if (val_rub !=''){ldelim}
|
||||
$('#tr_uca_res').after('<table id="tr_uca_data" cellpadding="0" cellspacing="0" width="100%" class="tableStatic settings"><colgroup><col width="201"><col width="*"><col width="*"><col width="*"><col width="*"><col width="*"></colgroup><thead><tr class="noborder"><td colspan="2" ><h5 class="iFrames" style="text-align: left; padding-left: 10px;">{#UCA_SEL_FIELD_DATA_INF#}</h5></td></tr></thead><tbody><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_TTL#}</td><td align="left"><select disabled="disabled" name="uca_ttl_field" id="uca_ttl_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_TTL#}</option></select></td></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_H_IMG#}</td><td align="left"><select name="uca_img_field" id="uca_img_field" style="width: 300px;"></select></td><input name="i_uca_img_field" type="hidden" id="i_uca_img_field" value=""/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_DSC#}</td><td align="left"><select name="uca_dsc_field" id="uca_dsc_field" style="width: 300px;"></select></td><input name="i_uca_dsc_field" type="hidden" id="i_uca_dsc_field" value=""/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_PLW#}</td><td align="left"><select name="uca_place_field" id="uca_place_field" style="width: 300px;"></select></td><input name="i_uca_place_field" type="hidden" id="i_uca_place_field" value=""/></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_STR#}</td><td align="left"><select disabled="disabled" name="uca_str_field" id="uca_str_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select></td></tr><tr class="noborder"><td align="left">{#UCA_SEL_FIELD_DATA_END#}</td><td align="left"><select disabled="disabled" name="uca_end_field" id="uca_end_field" style="width: 300px;"><option style="color: #ABABAB;" value="">{#UCA_SEL_FIELD_SDOC#}</option></select></td></tr></tbody></table><table id="tr_uca_res_doc" cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm"><colgroup><col width="201" /><col width="*" /></colgroup><col width="*" /></colgroup><col width="*" /><thead><tr class="noborder"><td align="center"><label>{#UCA_SELECT_ALL_INF#} <input style="position:relative; top:3px;" type="checkbox" id="check_all"> {#UCA_SELECT_ALL_INF_CH#}</label></td><td align="center">{#UCA_ID_INF#}</td><td align="center">{#UCA_TITLE_INF#}</td><td align="center">{#UCA_DATE_INF#}</td><td align="center">{#UCA_DATE_EXPIRE#}</td></tr></thead><tbody><tr id="result_doc"></tr></tbody></table>');
|
||||
$('#tr_uca_res').after(`
|
||||
<table id="tr_uca_data" cellpadding="0" cellspacing="0" width="100%" class="tableStatic settings">
|
||||
<colgroup><col width="201"><col width="*"><col width="*"><col width="*"><col width="*"><col width="*"></colgroup>
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td colspan="2"><h5 class="iFrames" style="text-align: left; padding-left: 10px;">{#UCA_SEL_FIELD_DATA_INF#}</h5></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_TTL#}</td>
|
||||
<td align="left">
|
||||
<select name="uca_ttl_field" id="uca_ttl_field" style="width: 300px;"></select>
|
||||
<input name="i_uca_ttl_field" type="hidden" id="i_uca_ttl_field" value="0"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left"><span style="float: left; margin-right: 5px;">{#UCA_SEL_FIELD_H_IMG#}</span></td>
|
||||
<td align="left"><select name="uca_img_field" id="uca_img_field" style="width: 300px;"></select><input name="i_uca_img_field" type="hidden" id="i_uca_img_field" value=""/></td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left"><span style="float: left; margin-right: 5px;">{#UCA_SEL_FIELD_DATA_DSC#}</span></td>
|
||||
<td align="left"><select name="uca_dsc_field" id="uca_dsc_field" style="width: 300px;"></select><input name="i_uca_dsc_field" type="hidden" id="i_uca_dsc_field" value=""/></td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left"><span style="float: left; margin-right: 5px;">{#UCA_SEL_FIELD_DATA_PLW#}</span></td>
|
||||
<td align="left"><select name="uca_place_field" id="uca_place_field" style="width: 300px;"></select><input name="i_uca_place_field" type="hidden" id="i_uca_place_field" value=""/></td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_STR#}</td>
|
||||
<td align="left">
|
||||
<select name="uca_str_field" id="uca_str_field" style="width: 300px;"></select>
|
||||
<input name="i_uca_str_field" type="hidden" id="i_uca_str_field" value="0"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="noborder">
|
||||
<td align="left">{#UCA_SEL_FIELD_DATA_END#}</td>
|
||||
<td align="left">
|
||||
<select name="uca_end_field" id="uca_end_field" style="width: 300px;"></select>
|
||||
<input name="i_uca_end_field" type="hidden" id="i_uca_end_field" value="0"/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table id="tr_uca_res_doc" cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm">
|
||||
<colgroup><col width="201"><col width="*"><col width="*"><col width="*"><col width="*"></colgroup>
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td align="center"><label><span style="margin-right:14px;">{#UCA_SELECT_ALL_INF#}</span> <input style="position:relative; top:3px;" type="checkbox" id="check_all"> <span class="code">{#UCA_SELECT_ALL_INF_CH#}</span></label></td>
|
||||
<td align="center">{#UCA_ID_INF#}</td>
|
||||
<td align="center">{#UCA_TITLE_INF#}</td>
|
||||
<td align="center">{#UCA_DATE_INF#}</td>
|
||||
<td align="center">{#UCA_DATE_EXPIRE#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr id="result_doc"></tr></tbody>
|
||||
</table>
|
||||
`);
|
||||
$('#uca_rubric_id').val(uca_inp_res);
|
||||
$('#uca_rubric_title').val(uca_inptxt_res);
|
||||
uca_doc_request = uca_inp_res;
|
||||
@@ -399,42 +518,62 @@
|
||||
{rdelim});
|
||||
{rdelim}// END Если значение value не пустое и выбран тип события "Выбранные документы из заданной рубрики"...
|
||||
|
||||
// START AJAX запрос вывести все поля рубрики
|
||||
// START AJAX запрос вывести все поля рубрики
|
||||
function ucaRubFields() {ldelim}
|
||||
$.ajax({ldelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=events_new&cp={$sess}',
|
||||
async: true,
|
||||
data: {ldelim}uca_rub_field:'uca_rub_field',uca_frub_id:uca_frub_id{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
$("#uca_img_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_IMG#}</option>"+data);
|
||||
$("#uca_dsc_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_DSC#}</option>"+data);
|
||||
$("#uca_place_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_PLC#}</option>"+data);
|
||||
$('select').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}; // END AJAX запрос вывести все поля рубрики
|
||||
if (!uca_frub_id) return; // Если ID рубрики нет, ничего не делаем
|
||||
|
||||
// START AJAX запрос по типу выбранного события - "Все документы из заданной рубрики"
|
||||
$.ajax({ldelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=events_new&cp={$sess}',
|
||||
async: true,
|
||||
data: {ldelim}uca_rub_field:'uca_rub_field', uca_frub_id:uca_frub_id{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
// Наполняем Заголовок
|
||||
$("#uca_ttl_field").html("<option style='color: #000;' value='0'>{#UCA_SEL_FIELD_TTL_DEFAULT#}</option>"+data);
|
||||
|
||||
// Наполняем Изображение, Описание, Место
|
||||
$("#uca_img_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_IMG#}</option>"+data);
|
||||
$("#uca_dsc_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_DSC#}</option>"+data);
|
||||
$("#uca_place_field").html("<option style='color: #ABABAB;' value=''>{#UCA_SEL_FIELD_PLC#}</option>"+data);
|
||||
|
||||
// START Наполняем Даты (Начало и Конец)
|
||||
$("#uca_str_field").html("<option style='color: #ABABAB;' value='0'>{#UCA_SEL_FIELD_SDOC#}</option>"+data);
|
||||
$("#uca_end_field").html("<option style='color: #ABABAB;' value='0'>{#UCA_SEL_FIELD_SDOC#}</option>"+data);
|
||||
// END Даты
|
||||
|
||||
// Обновляем стили всех селекторов, чтобы они видели новые option
|
||||
$('select').styler('destroy'); // Сначала сбросим старый стайлер
|
||||
$('select').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}; // END AJAX запрос
|
||||
|
||||
// START AJAX запрос по типу выбранного события - "Все документы из заданной рубрики"
|
||||
function ucaCall() {ldelim}
|
||||
$.ajax({ldelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=events_new&cp={$sess}',
|
||||
async: true,
|
||||
data: {ldelim}c:uca_request{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
$("#uca_result").html(data);
|
||||
$('select').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});
|
||||
uca_request = '';
|
||||
{rdelim},
|
||||
error: function(xhr, str){ldelim}
|
||||
$.jGrowl("{#SaveError#}", {ldelim}
|
||||
header: '{#SentData#}',
|
||||
theme: 'error'
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}; // END AJAX запрос по типу выбранного события - "Все документы из заданной рубрики"
|
||||
$.ajax({ldelim}
|
||||
type: 'POST',
|
||||
url: 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=events_new&cp={$sess}',
|
||||
async: true,
|
||||
data: {ldelim}c:uca_request{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
$("#uca_result").html(data);
|
||||
|
||||
// когда выбрали рубрику из списка, нужно сразу дернуть поля этой рубрики
|
||||
$('#uca_result').change(function(){ldelim}
|
||||
uca_frub_id = $(this).val();
|
||||
if (uca_frub_id != '') {ldelim}
|
||||
ucaRubFields(); // Вызываем загрузку полей (Title, Start, End и т.д.)
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
|
||||
$('select').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});
|
||||
uca_request = '';
|
||||
{rdelim},
|
||||
error: function(xhr, str){ldelim}
|
||||
$.jGrowl("{#SaveError#}", {ldelim}header: '{#SentData#}', theme: 'error'{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}; // END AJAX запрос
|
||||
|
||||
// START AJAX запрос получаем список документов из выбранной рубрики
|
||||
function ucaDoc() {ldelim}
|
||||
@@ -481,6 +620,30 @@
|
||||
{rdelim});
|
||||
{rdelim});// END CHECK - отмечаем - снимаем чекбоксы документов по одному и пишем в input значение
|
||||
|
||||
// START выбор поля для заголовка события (Title)
|
||||
$(document).on('change', '#uca_ttl_field', function() {ldelim}
|
||||
var uca_ttl_val = $(this).val();
|
||||
// Если ничего не выбрано или выбрано "0", пишем 0
|
||||
$('#i_uca_ttl_field').val(uca_ttl_val || '0');
|
||||
{rdelim});
|
||||
// END выбор поля для заголовка события
|
||||
|
||||
// START выбор поля для даты начала события (Start Date)
|
||||
$(document).on('change', '#uca_str_field', function() {ldelim}
|
||||
var uca_str_val = $(this).val();
|
||||
// Если ничего не выбрано или выбрано "0", пишем 0 (системная дата документа)
|
||||
$('#i_uca_str_field').val(uca_str_val || '0');
|
||||
{rdelim});
|
||||
// END выбор поля для даты начала события
|
||||
|
||||
// START выбор поля для даты окончания события (End Date)
|
||||
$(document).on('change', '#uca_end_field', function() {ldelim}
|
||||
var uca_end_val = $(this).val();
|
||||
// Если ничего не выбрано или выбрано "0", пишем 0 (системная дата документа)
|
||||
$('#i_uca_end_field').val(uca_end_val || '0');
|
||||
{rdelim});
|
||||
// END выбор поля для даты окончания события
|
||||
|
||||
// START получаем значение радиокнопки формат даты и пишем в input значение
|
||||
$(".u_date_format").on('change', function() {ldelim}
|
||||
$('#uca_date_format').val('');
|
||||
|
||||
Reference in New Issue
Block a user