Browse Source

Обновление модуля - версия 1.2.7

master
root 7 years ago
parent
commit
4a008fa830
  1. 4
      README.md
  2. 109
      unicalendar/class.unicalendar.php
  3. 374
      unicalendar/css/eventCalendar_theme_responsive.css
  4. 1
      unicalendar/css/eventCalendar_theme_responsive_min.css
  5. BIN
      unicalendar/images/css_sprites.png
  6. 27
      unicalendar/js/jquery.eventCalendar.js
  7. 2
      unicalendar/lang/ru.php
  8. 18
      unicalendar/lang/ru.txt
  9. 2
      unicalendar/module.php
  10. 16
      unicalendar/sql.php
  11. 153
      unicalendar/templates/admin_unicalendar_edit.tpl
  12. 105
      unicalendar/templates/admin_unicalendar_list.tpl

4
README.md

@ -4,8 +4,6 @@
### адаптирован для AVE.CMS v3.2
![Module Unicalendar](https://gitget.ru/img/unicalendar.png "Модуль Unicalendar")
### Модуль позволяет создавать календари, событиями которых являются документы из заданной рубрики либо определенные документы из заданной рубрики.
### Перед копированием модуля в папку modules, удалите файл README.md, копируйте только корневую папку unicalendar со всем ее содержимым внутри!
@ -14,6 +12,8 @@
##### Changelog:
##### 04.09.2017 - обновление модуля - версия 1.2.7 - Добавлено создание тизера событий из существующих полей в документе (изображение, описание, место)
##### 01.07.2017 - обновление модуля - версия 1.2.6 - Добавлен лимит вывода событий при перелистывании месяцев в календаре (лимит не распространяется на клик по дате с событиями)
##### 25.06.2017 - обновление модуля - версия 1.2.5 - Добавлен выбор формата даты для публичной части календаря, проверка условий при создании календаря

109
unicalendar/class.unicalendar.php

@ -136,7 +136,10 @@ class Unicalendar
uca_day = '" . $_POST['uca_day'] . "',
uca_scroll = '" . $_POST['uca_scroll'] . "',
uca_descript = '" . $_POST['uca_descript'] . "',
uca_events_limit = '" . $_POST['uca_events_limit'] . "'
uca_events_limit = '" . $_POST['uca_events_limit'] . "',
uca_img_field = '" . $_POST['i_uca_img_field'] . "',
uca_dsc_field = '" . $_POST['i_uca_dsc_field'] . "',
uca_place_field = '" . $_POST['i_uca_place_field'] . "'
");
// Получаем обновленные данные календаря
@ -163,7 +166,11 @@ class Unicalendar
$uca_link = $v['uca_link'];
$uca_descript = $v['uca_descript'];
$uca_events_limit = $v['uca_events_limit'];
$uca_img_field = $v['uca_img_field'];
$uca_dsc_field = $v['uca_dsc_field'];
$uca_place_field = $v['uca_place_field'];
}
if ($uca_dsc_field != 0) {$ellipsis = '… ';} else {$ellipsis = '';};// если описания нет не добавляем многоточие при выводе description
// Если выбрали вывести все документы из заданной рубрики - документы с Id=1 (Главная) и 404 страница - выводиться не будут!
if ($uevents !='' && $uevents == '1'){
$sql = $AVE_DB->Query("
@ -177,9 +184,9 @@ class Unicalendar
array_push($results, $row);
}
//получаем данные всех документов из заданной рубрики циклом, формируем строку JSON
foreach ( $results as $k=>$v )
foreach ( $results as $k=>$v )
{
$uni_data .= "{ \"date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_published']))."\", \"expire_date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_expire']))."\", \"title\": \"".$v['document_title']."\", \"description\": \"".$v['document_meta_description']."\", \"url\": \"".$v['document_alias']."\" },";
$uni_data .= "{ \"date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_published']))."\", \"expire_date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_expire']))."\", \"title\": \"".$v['document_title']."\", \"image\": \"".strstr(get_document_field($v['Id'], $uca_img_field), '|', true)."\", \"description\": \"".rtrim(mb_substr(preg_replace('|[\s]+|s', ' ', strip_tags(get_document_field($v['Id'], $uca_dsc_field))), 0, 255, 'UTF-8'), "!,.-").$ellipsis."\", \"location\": \"".mb_substr(preg_replace('|[\s]+|s', ' ', strip_tags(get_document_field($v['Id'], $uca_place_field))), 0, 300, 'UTF-8')."\", \"url\": \"".$v['document_alias']."\" },";
$rubric_count .= $v['Id']." OR Id=";
}
$js_data_files = "$(function(){"."var data".$uca_id." = [".$uni_data."]; $(\"#eventCalendar".$uca_id."\").eventCalendar({jsonData: data".$uca_id.", jsonDateFormat: \"human\", startWeekOnMonday: ".$uca_day.", eventsScrollable: ".$uca_scroll.", openEventInNewWindow: ".$uca_link.", dateFormat: \"".$uca_dfrm."\", showDescription: ".$uca_descript.", eventsLimit: ".$uca_events_limit.", locales: {locale: \"".$uca_locale."\", txt_noEvents: \"".$uca_no_events."\", txt_SpecificEvents_prev: \"\", txt_SpecificEvents_after: \"".$uca_real_events."\", txt_NextEvents: \"".$uca_next_events."\", txt_GoToEventUrl: \"".$uca_look_events."\", moment: {\"months\" : ".$uca_months_events.", \"monthsShort\" : ".$uca_monshort_events.", \"weekdays\" : ".$uca_weekdays_events.", \"weekdaysShort\" : ".$uca_wdayshort_events.", \"weekdaysMin\" : ".$uca_wdaymin_events."}}});});";
@ -223,7 +230,7 @@ class Unicalendar
//получаем данные выбранных документов из заданной рубрики циклом, формируем строку JSON
foreach ( $results as $k=>$v )
{
$uni_data .= "{ \"date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_published']))."\", \"expire_date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_expire']))."\", \"title\": \"".$v['document_title']."\", \"description\": \"".$v['document_meta_description']."\", \"url\": \"".$v['document_alias']."\" },";
$uni_data .= "{ \"date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_published']))."\", \"expire_date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_expire']))."\", \"title\": \"".$v['document_title']."\", \"image\": \"".strstr(get_document_field($v['Id'], $uca_img_field), '|', true)."\", \"description\": \"".rtrim(mb_substr(preg_replace('|[\s]+|s', ' ', strip_tags(get_document_field($v['Id'], $uca_dsc_field))), 0, 255, 'UTF-8'), "!,.-").$ellipsis."\", \"location\": \"".mb_substr(preg_replace('|[\s]+|s', ' ', strip_tags(get_document_field($v['Id'], $uca_place_field))), 0, 300, 'UTF-8')."\", \"url\": \"".$v['document_alias']."\" },";
$rubric_count .= $v['Id'].",";
}
$js_data_files = "$(function(){"."var data".$uca_id." = [".$uni_data."]; $(\"#eventCalendar".$uca_id."\").eventCalendar({jsonData: data".$uca_id.", jsonDateFormat: \"human\", startWeekOnMonday: ".$uca_day.", eventsScrollable: ".$uca_scroll.", openEventInNewWindow: ".$uca_link.", dateFormat: \"".$uca_dfrm."\", showDescription: ".$uca_descript.", eventsLimit: ".$uca_events_limit.", locales: {locale: \"".$uca_locale."\", txt_noEvents: \"".$uca_no_events."\", txt_SpecificEvents_prev: \"\", txt_SpecificEvents_after: \"".$uca_real_events."\", txt_NextEvents: \"".$uca_next_events."\", txt_GoToEventUrl: \"".$uca_look_events."\", moment: {\"months\" : ".$uca_months_events.", \"monthsShort\" : ".$uca_monshort_events.", \"weekdays\" : ".$uca_weekdays_events.", \"weekdaysShort\" : ".$uca_wdayshort_events.", \"weekdaysMin\" : ".$uca_wdaymin_events."}}});});";
@ -296,6 +303,7 @@ class Unicalendar
$AVE_Template->assign('check_docs', $check_docs);
}
//$AVE_Template->assign('uca_rub_fields', $uca_rub_fields);
$AVE_Template->assign('unicalendars', $unicalendars);
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'admin_unicalendar_edit.tpl'));
@ -322,7 +330,10 @@ class Unicalendar
uca_day = '" . $_POST['uca_day'] . "',
uca_scroll = '" . $_POST['uca_scroll'] . "',
uca_descript = '" . $_POST['uca_descript'] . "',
uca_events_limit = '" . $_POST['uca_events_limit'] . "'
uca_events_limit = '" . $_POST['uca_events_limit'] . "',
uca_img_field = '" . $_POST['send_uca_img_field'] . "',
uca_dsc_field = '" . $_POST['send_uca_dsc_field'] . "',
uca_place_field = '" . $_POST['send_uca_place_field'] . "'
WHERE id = '" . $unicalendar_id . "'
");
$as = array();
@ -352,7 +363,11 @@ class Unicalendar
$uca_link = $v['uca_link'];
$uca_descript = $v['uca_descript'];
$uca_events_limit = $v['uca_events_limit'];
$uca_img_field = $v['uca_img_field'];
$uca_dsc_field = $v['uca_dsc_field'];
$uca_place_field = $v['uca_place_field'];
}
if ($uca_dsc_field != 0) {$ellipsis = '… ';} else {$ellipsis = '';};// если описания нет не добавляем многоточие при выводе description
// Если выбрали вывести все документы из заданной рубрики - документы с Id=1 (Главная) и 404 страница - выводиться не будут!
if ($uevents !='' && $uevents == '1'){
$sql = $AVE_DB->Query("
@ -368,7 +383,7 @@ class Unicalendar
//получаем данные всех документов из заданной рубрики циклом, формируем строку JSON
foreach ( $results as $k=>$v )
{
$uni_data .= "{ \"date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_published']))."\", \"expire_date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_expire']))."\", \"title\": \"".$v['document_title']."\", \"description\": \"".$v['document_meta_description']."\", \"url\": \"".$v['document_alias']."\" },";
$uni_data .= "{ \"date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_published']))."\", \"expire_date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_expire']))."\", \"title\": \"".$v['document_title']."\", \"image\": \"".strstr(get_document_field($v['Id'], $uca_img_field), '|', true)."\", \"description\": \"".rtrim(mb_substr(preg_replace('|[\s]+|s', ' ', strip_tags(get_document_field($v['Id'], $uca_dsc_field))), 0, 255, 'UTF-8'), "!,.-").$ellipsis."\", \"location\": \"".mb_substr(preg_replace('|[\s]+|s', ' ', strip_tags(get_document_field($v['Id'], $uca_place_field))), 0, 300, 'UTF-8')."\", \"url\": \"".$v['document_alias']."\" },";
$rubric_count .= $v['Id']." OR Id=";
}
$js_data_files = "$(function(){"."var data".$unicalendar_id." = [".$uni_data."]; $(\"#eventCalendar".$unicalendar_id."\").eventCalendar({jsonData: data".$unicalendar_id.", jsonDateFormat: \"human\", startWeekOnMonday: ".$uca_day.", eventsScrollable: ".$uca_scroll.", openEventInNewWindow: ".$uca_link.", dateFormat: \"".$uca_dfrm."\", showDescription: ".$uca_descript.", eventsLimit: ".$uca_events_limit.", locales: {locale: \"".$uca_locale."\", txt_noEvents: \"".$uca_no_events."\", txt_SpecificEvents_prev: \"\", txt_SpecificEvents_after: \"".$uca_real_events."\", txt_NextEvents: \"".$uca_next_events."\", txt_GoToEventUrl: \"".$uca_look_events."\", moment: {\"months\" : ".$uca_months_events.", \"monthsShort\" : ".$uca_monshort_events.", \"weekdays\" : ".$uca_weekdays_events.", \"weekdaysShort\" : ".$uca_wdayshort_events.", \"weekdaysMin\" : ".$uca_wdaymin_events."}}});});";
@ -412,7 +427,7 @@ class Unicalendar
//получаем данные выбранных документов из заданной рубрики циклом, формируем строку JSON
foreach ( $results as $k=>$v )
{
$uni_data .= "{ \"date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_published']))."\", \"expire_date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_expire']))."\", \"title\": \"".$v['document_title']."\", \"description\": \"".$v['document_meta_description']."\", \"url\": \"".$v['document_alias']."\" },";
$uni_data .= "{ \"date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_published']))."\", \"expire_date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_expire']))."\", \"title\": \"".$v['document_title']."\", \"image\": \"".strstr(get_document_field($v['Id'], $uca_img_field), '|', true)."\", \"description\": \"".rtrim(mb_substr(preg_replace('|[\s]+|s', ' ', strip_tags(get_document_field($v['Id'], $uca_dsc_field))), 0, 255, 'UTF-8'), "!,.-").$ellipsis."\", \"location\": \"".mb_substr(preg_replace('|[\s]+|s', ' ', strip_tags(get_document_field($v['Id'], $uca_place_field))), 0, 300, 'UTF-8')."\", \"url\": \"".$v['document_alias']."\" },";
$rubric_count .= $v['Id'].",";
}
$js_data_files = "$(function(){"."var data".$unicalendar_id." = [".$uni_data."]; $(\"#eventCalendar".$unicalendar_id."\").eventCalendar({jsonData: data".$unicalendar_id.", jsonDateFormat: \"human\", startWeekOnMonday: ".$uca_day.", eventsScrollable: ".$uca_scroll.", openEventInNewWindow: ".$uca_link.", dateFormat: \"".$uca_dfrm."\", showDescription: ".$uca_descript.", eventsLimit: ".$uca_events_limit.", locales: {locale: \"".$uca_locale."\", txt_noEvents: \"".$uca_no_events."\", txt_SpecificEvents_prev: \"\", txt_SpecificEvents_after: \"".$uca_real_events."\", txt_NextEvents: \"".$uca_next_events."\", txt_GoToEventUrl: \"".$uca_look_events."\", moment: {\"months\" : ".$uca_months_events.", \"monthsShort\" : ".$uca_monshort_events.", \"weekdays\" : ".$uca_weekdays_events.", \"weekdaysShort\" : ".$uca_wdayshort_events.", \"weekdaysMin\" : ".$uca_wdaymin_events."}}});});";
@ -473,6 +488,86 @@ class Unicalendar
echo "<tr class='noborder'><td align='center'><input type='checkbox' class='my-checkbox' name='u_chek".$v['Id']."' value='".$v['Id']."'></td>"."<td align='center'>".$v['Id']."</td>"."<td>".$v['document_title']."</td>"."<td align='center'>".$v['document_published'] = pretty_date(strftime(TIME_FORMAT, $v['document_published']))."</td>"."<td align='center'>".$v['document_expire'] = pretty_date(strftime(TIME_FORMAT, $v['document_expire']))."</td></tr>";
}
}
if (isset($_POST['uca_rub_field'])) // если пришел запрос вывести поля категории, получаем данные и отдаем их в шаблон (выпадающий список)
{
global $AVE_DB;
$sql = $AVE_DB->Query("
SELECT Id, rubric_field_title
FROM " . PREFIX . "_rubric_fields
WHERE rubric_id = '" . $_POST['uca_frub_id'] . "'
");
while($result = $sql->FetchRow())
{
echo "<option value=".$result->Id.">".$result->rubric_field_title."</option>";
};
}
global $AVE_DB;
$sql = $AVE_DB->Query("
SELECT *
FROM " . PREFIX . "_module_unicalendar
WHERE id = '".intval($_REQUEST['id'])."'
");
$unica = array();
while ($row = $sql->FetchAssocArray())
{
array_push($unica, $row);
}
foreach ( $unica as $k=>$v )
{
$uca_img_field = $v['uca_img_field'];
$uca_dsc_field = $v['uca_dsc_field'];
$uca_place_field = $v['uca_place_field'];
}
if (isset($_POST['uca_edit_rub_field_img'])) // если пришел запрос вывести поля изображение при редактировании, получаем данные и отдаем их в шаблон (выпадающий список)
{
global $AVE_DB;
$sql = $AVE_DB->Query("
SELECT Id, rubric_field_title
FROM " . PREFIX . "_rubric_fields
WHERE rubric_id = '" . $_POST['uca_frub_id'] . "'
");
while($result = $sql->FetchRow())
{
if($result->Id == $uca_img_field) {$sel = 'selected=\'selected\'';} else {$sel = '';};
echo "<option ".$sel." value=".$result->Id.">".$result->rubric_field_title."</option>";
};
}
if (isset($_POST['uca_edit_rub_field_dsc'])) // если пришел запрос вывести поля описание при редактировании, получаем данные и отдаем их в шаблон (выпадающий список)
{
global $AVE_DB;
$sql = $AVE_DB->Query("
SELECT Id, rubric_field_title
FROM " . PREFIX . "_rubric_fields
WHERE rubric_id = '" . $_POST['uca_frub_id'] . "'
");
while($result = $sql->FetchRow())
{
if($result->Id == $uca_dsc_field) {$sel = 'selected=\'selected\'';} else {$sel = '';};
echo "<option ".$sel." value=".$result->Id.">".$result->rubric_field_title."</option>";
};
}
if (isset($_POST['uca_edit_rub_field_plc'])) // если пришел запрос вывести поля место при редактировании, получаем данные и отдаем их в шаблон (выпадающий список)
{
global $AVE_DB;
$sql = $AVE_DB->Query("
SELECT Id, rubric_field_title
FROM " . PREFIX . "_rubric_fields
WHERE rubric_id = '" . $_POST['uca_frub_id'] . "'
");
while($result = $sql->FetchRow())
{
if($result->Id == $uca_place_field) {$sel = 'selected=\'selected\'';} else {$sel = '';};
echo "<option ".$sel." value=".$result->Id.">".$result->rubric_field_title."</option>";
};
}
if (isset($_POST['check_rel'])) // если пришел запрос-проверка актуальности календаря (не будет выведен документ с Id=1 это Главная страница и документ Ошибка 404)
{
global $AVE_DB;

374
unicalendar/css/eventCalendar_theme_responsive.css

@ -237,6 +237,7 @@
}
.eventCalendar-list li a.eventCalendar-eventTitle {
color:#0E8EAB;
outline: none;
}
.eventCalendar-list li a.eventCalendar-eventTitle:hover { text-decoration:underline;}
.eventCalendar-list li .eventDesc {
@ -261,7 +262,7 @@
}
.bt {
font-size:12px;
font-size:14px;
display:block;
clear:both;
text-align: center;
@ -270,28 +271,30 @@
text-decoration: none;
font-weight: bold;
line-height: 1;
outline: none;
color: #ffffff;
background-color: #698B10;
background-color: #138DA5;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom, from(#89B814), to(#698B10));
background-image: -moz-linear-gradient(top, #89B814, #698B10);
background-image: -ms-linear-gradient(top, #89B814, #698B10);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #89B814), color-stop(100%, #698B10));
background-image: -webkit-linear-gradient(top, #89B814, #698B10);
background-image: -o-linear-gradient(top, #89B814, #698B10);
background-image: linear-gradient(top, #89B814, #698B10);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#89B814', endColorstr='#698B10', GradientType=0);
background-image: -khtml-gradient(linear, left top, left bottom, from(#138DA5), to(#138DA5));
background-image: -moz-linear-gradient(top, #138DA5, #138DA5);
background-image: -ms-linear-gradient(top, #138DA5, #138DA5);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #138DA5), color-stop(100%, #138DA5));
background-image: -webkit-linear-gradient(top, #138DA5, #138DA5);
background-image: -o-linear-gradient(top, #138DA5, #138DA5);
background-image: linear-gradient(top, #138DA5, #138DA5);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#138DA5', endColorstr='#138DA5', GradientType=0);
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
border: 1px solid #698B10;
border-color: #698B10 #698B10 #465F05;
border: 0px solid #138DA5;
border-color: #138DA5 #138DA5 #138DA5;
border-radius: 4px;
border-radius: 0px;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-webkit-transition: 0.1s linear all;
-moz-transition: 0.1s linear all;
@ -302,73 +305,298 @@
.bt:hover {
background-position: 0 -15px;
text-decoration: none;
color: #E4E4E4;
color: #ffffff;
}
.bt:visited {
color: #E4E4E4;
}
/* end of theme css */
/*= ONLY FOR DEMO PAGE */
body {
/*
width:978px;
box-shadow:0 0 10px #777;
padding: 20px 40px;
margin:0 auto;
*/
}
a { color: #0E8EAB}
/*
.eventCalendar-wrap {
width:265px;
color: #ffffff;
text-decoration: none !important;
}
/* Правила, использующиеся в JS файле jquery.eventCalendar.js */
/*Изображение*/
.uca_img {
width:100%;
margin-top: 10px;
margin-bottom: 10px;
/*box-shadow:0 0 15px #999;*/
}
*/
.features li { margin-bottom:3px;}
#thanksPanel li { margin-bottom:0;}
#introPanel { padding-top:20px;}
.poweredBy img {
float:left;
margin-right:3px;
/*Заголовок*/
.eventCalendar-eventTitle {
font-size: 18px;
font-weight: normal !important;
text-decoration: none !important;
}
.poweredBy .data {
float:left;
}
.poweredBy .name {
font-weight:bold;
color:#555;
text-decoration:none;
display:block;
margin-top:28px;
}
.poweredBy .twitter {
text-decoration:none;
display:block;
float:left;
}
.features {
padding-left:20px;
float:left;
/*Позиционирование divОв - оберток с иконками дата и время*/
.uca-date-icon {
margin-top: 8px;
margin-bottom: 8px;
}
#appLogo {
margin-right:30px;
/*Дата и время после иконки*/
.uca-date-txt {
margin-left:20px;
white-space: nowrap;
font: 10pt sans-serif;
color: #2A3C63;
font-weight: 400;
}
pre {
clear:both;
background-color:#FFFFCC;
padding:5px;
border:solid 1px #FED17E;
overflow:auto;
/*Иконки (спрайт)*/
.bg-blue_calendar {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -46px -10px;
}
.bg-blue_caret_right {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -190px -10px;
}
.bg-blue_check {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -10px -46px;
}
.bg-blue_clock {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -46px -46px;
}
.bg-blue_globe {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -82px -10px;
}
#license {
width:300px;
float:right;
font-size:10px;
line-height:12px;
text-align:center;
.bg-blue_map {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -82px -46px;
}
.bg-blue_menu {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -10px -82px;
}
.bg-blue_phone {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -46px -82px;
}
.bg-blue_podcast {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -82px -82px;
}
.bg-dlue_bullhom {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -118px -10px;
}
.bg-gray_bullhom {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -118px -46px;
}
.bg-gray_calendar {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -118px -82px;
}
.bg-gray_caret_right {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -10px -118px;
}
.bg-gray_check {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -46px -118px;
}
.bg-gray_clock {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -82px -118px;
}
.bg-gray_globe {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -118px -118px;
}
x
.bg-gray_map {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -154px -10px;
}
.bg-gray_menu {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -154px -46px;
}
.bg-gray_phone {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -154px -82px;
}
.bg-gray_podcast {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -154px -118px;
}
.bg-green_bullhom {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -10px -154px;
}
.bg-green_calendar {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -46px -154px;
}
.bg-green_caret_right {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -82px -154px;
}
.bg-green_check {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -118px -154px;
}
.bg-green_clock {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -154px -154px;
}
.bg-green_globe {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -10px -10px;
}
.bg-green_map {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -190px -46px;
}
.bg-green_menu {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -190px -82px;
}
.bg-green_phone {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -190px -118px;
}
.bg-green_podcast {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -190px -154px;
}
.bg-orange_bullhom {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -10px -190px;
}
.bg-orange_calendar {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -46px -190px;
}
.bg-orange_caret_right {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -82px -190px;
}
.bg-orange_check {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -118px -190px;
}
.bg-orange_clock {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -154px -190px;
}
.bg-orange_globe {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -190px -190px;
}
.bg-orange_map {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -226px -10px;
}
.bg-orange_menu {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -226px -46px;
}
.bg-orange_phone {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -226px -82px;
}
.bg-orange_podcast {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -226px -118px;
}
.bg-red_bullhom {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -226px -154px;
}
.bg-red_calendar {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -226px -190px;
}
.bg-red_caret_right {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -10px -226px;
}
.bg-red_check {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -46px -226px;
}
.bg-red_clock {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -82px -226px;
}
.bg-red_globe {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -118px -226px;
}
.bg-red_map {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -154px -226px;
}
.bg-red_menu {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -190px -226px;
}
.bg-red_phone {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -226px -226px;
}
.bg-red_podcast {
width: 16px; height: 16px;
background: url('../images/css_sprites.png') -262px -10px;
}
/* end of demo page */
/* end of theme css */

1
unicalendar/css/eventCalendar_theme_responsive_min.css

File diff suppressed because one or more lines are too long

BIN
unicalendar/images/css_sprites.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

27
unicalendar/js/jquery.eventCalendar.js

@ -402,7 +402,28 @@
if (parseInt(eventMinute) <= 9) {
eventMinute = "0" + parseInt(eventMinute);
}
// Проверка на пустоту значений Тизера события (изображение, описание, место)
if(event.image != '')// Start проверяем на пустоту значение переменной Изображение
{
var eventImage = '<img class="uca_img" src='+event.image+'>';
} else {
var eventImage = '';
}// End проверяем на пустоту значение переменной Изображение
if(event.description != '')// Start проверяем на пустоту значение переменной Описание
{
var eventDescription = event.description;
} else {
var eventDescription = '';
}// End проверяем на пустоту значение переменной Описание
if(event.location != '')// Start проверяем на пустоту значение переменной Место
{
var eventLocation = '<div class="bg-blue_map uca-date-icon"><span class="uca-date-txt">' + event.location + '</span></div>';
} else {
var eventLocation = '';
}// End проверяем на пустоту значение переменной Место
if (limit === 0 || limit > i) {
// if month or day exist then only show matched events
@ -415,13 +436,13 @@
//eventStringDate = eventDay + "/" + eventMonthToShow + "/" + eventYear;
eventStringDate = moment(eventDate).format(eventsOpts.dateFormat);
var eventTitle;
if (event.url) {
eventTitle = '<a href="'+event.url+'" target="' + eventLinkTarget + '" class="eventCalendar-eventTitle">' + event.title + '</a>';
} 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>'+eventTitle+'<p class="eventCalendar-eventDesc ' + eventDescClass + '">' + event.description + '</p></li>');
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>');
i++;
}
}

2
unicalendar/lang/ru.php

@ -5,7 +5,7 @@ $uca_locale = 'ru';
$uca_no_events = "Нет запланированных событий";
$uca_real_events = "события:";
$uca_next_events = "Следующие события:";
$uca_look_events = "Смотреть";
$uca_look_events = "Подробнее";
$uca_months_events = "[ \"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\" ]";
$uca_monshort_events = "[ \"января\", \"февраля\", \"марта\", \"апреля\", \"мая\", \"июня\", \"июля\", \"августа\", \"сентября\", \"октября\", \"ноября\", \"декабря\" ]";
$uca_weekdays_events = "[ \"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\" ]";

18
unicalendar/lang/ru.txt

@ -54,11 +54,25 @@ UCA_ID_INF = "Id"
UCA_TITLE_INF = "Название документа"
UCA_DATE_INF = "Дата создания"
UCA_DATE_EXPIRE = "Дата истечения"
UCA_SELECT_ALL_INF = "Выбрать/Снять все чекбоксы"
UCA_SELECT_ALL_INF = "<span style=\'margin-right:14px;\'>Выбрать все</span>"
UCA_SELECT_ALL_INF_CH = "<span class=\'code\'>&plusmn; чекбоксы</span>"
UCA_RELEV = "Актуальность"
UCA_ALERT_RELEV_YES = "Ок - данные календаря актуальны"
UCA_ALERT_RELEV_BAD = "Внимание - события в календаре неактуальны! На момент создания календаря документов в рубрике было больше, чем на текущий момент, это приводит к тому, что календарь содержит события, ведущие на страницу с ошибкой 404! Для устранения - пересохраните/отредактируйте календарь!<br> <strong style=\'color:orange\'>ОТЧЕТ:</strong><br>В рубрике :<br> "
UCA_ALERT_RELEV_WAR = "Предупреждение - события в календаре неактуальны! На момент создания календаря документов в рубрике было меньше, чем на текущий момент. Для устранения - пересохраните календарь."
UCA_ALERT_RELEV_BAD_SD = "Внимание - события в календаре неактуальны! На момент создания календаря был(и) выбран(ы) документ(ы), которые(ых) на текущий момент не существует в рубрике. Это приводит к тому, что календарь содержит события, ведущие на страницу с ошибкой 404! Для устранения - пересохраните/отредактируйте календарь!<br> <strong style=\'color:orange\'>ОТЧЕТ:</strong><br>В рубрике :<br> "
UCA_ALERT_RELEV_BAD_SE = "<strong style=\'color:orange\'>,</strong><br> документ(ы) с <br><strong style=\'color:orange\'>Id = </strong>"
UCA_ALERT_RELEV_BAD_SF = "<strong style=\'color:orange\'>&nbsp;&nbsp;не найден(ы) !</strong>"
UCA_ALERT_RELEV_BAD_SF = "<strong style=\'color:orange\'>&nbsp;&nbsp;не найден(ы) !</strong>"
UCA_SEL_FIELD_BTN = "Выбрать"
UCA_SEL_FIELD_DATA_INF = "Выбор полей для создания тизера события"
UCA_SEL_FIELD_DATA_TTL = "Название события"
UCA_SEL_FIELD_TTL = "Аналогично названию документа (тег &lt; title &gt;)"
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> Изображение (Одиночное)\'>&nbsp;</span>"
UCA_SEL_FIELD_IMG = "Выбрать поле"
UCA_SEL_FIELD_DATA_DSC = "<span style=\'float: left; margin-right: 5px;\'>Описание события</span><span style=\'cursor: help; float: left;\' class=\'toprightDir icon_sprite ico_info\' title=\'Используйте текстовые поля.<br> Предупреждение:<br>Все HTML теги (если они присутствуют в поле) будут вырезаны (естественно только в календаре), в тизере будет выведено не более 255 символов.\'>&nbsp;</span>"
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сли вы не планируете указывать место, оставьте это значение пустым (не выбирайте никакого поля).\'>&nbsp;</span>"
UCA_SEL_FIELD_PLC = "Выбрать поле"
UCA_SEL_FIELD_DATA_STR = "Начало события"
UCA_SEL_FIELD_DATA_END = "Завершение события"
UCA_SEL_FIELD_SDOC = "Задано документом"

2
unicalendar/module.php

@ -14,7 +14,7 @@ if (defined('ACP'))
{
$modul['ModuleName'] = 'Универсальный календарь событий';
$modul['ModuleSysName'] = 'unicalendar';
$modul['ModuleVersion'] = '1.2.6';
$modul['ModuleVersion'] = '1.2.7';
$modul['ModuleDescription'] = '<br>Модуль позволяет создавать различные календари событий. <br> Для вывода календаря используйте системный тег <strong>[mod_unicalendar:XXX]</strong>';
$modul['ModuleAutor'] = 'Repellent';
$modul['ModuleCopyright'] = '&copy; AVE.cms Team 2017';

16
unicalendar/sql.php

@ -32,6 +32,9 @@ $module_sql_install[] = "CREATE TABLE `CPPREFIX_module_unicalendar` (
`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;";
@ -72,5 +75,16 @@ $module_sql_update[] = "
$module_sql_update[] = "
ALTER TABLE `CPPREFIX_module_unicalendar`
ADD IF NOT EXISTS `uca_events_limit` int(10) unsigned NOT NULL
AFTER `uca_descript`";
AFTER `uca_descript`";
// Обновление таблицы в версии модуля v1.2.7
$module_sql_update[] = "
ALTER TABLE `CPPREFIX_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`
";
?>

153
unicalendar/templates/admin_unicalendar_edit.tpl

@ -116,6 +116,8 @@
</tr>
</table>
<div id="uca_rub_after_fields"></div>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm">
<tr>
<td colspan="2">
@ -218,6 +220,10 @@
</td>
</tr>
</table>
<div id="uca_rub_after_fields"></div>
<table id="tr_uca_res_doc" cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm">
<colgroup>
<col width="201" />
@ -269,6 +275,40 @@
{/foreach}
<script>
{if $unicalendars.uca_events == 1 || $unicalendars.uca_events == 2}// START Если событиями календаря являются все доки из рубрики или выбранные доки из рубрики
var uca_frub_id = '';
$('#i_uca_img_field').val('');
$('#i_uca_dsc_field').val('');
$('#i_uca_place_field').val('');
var uca_img_field = ''; // создаем переменную
var i_uca_img_field = ''; // создаем переменную
var uca_dsc_field = ''; // создаем переменную
var i_uca_dsc_field = ''; // создаем переменную
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_frub_id = $('#uca_rubric_id').val();
ucaRubFieldsEditAll();
$('#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);
{rdelim}); // END если есть действия с селектом "Изображение - выбор поля" пишем ID выбранного в скрытый input id="i_uca_img_field"
$('#uca_dsc_field').change(function(){ldelim} // START если есть действия с селектом "Описание события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_dsc_field"
uca_dsc_field = $('#uca_dsc_field').val();
i_uca_dsc_field = $('#i_uca_dsc_field').val(uca_dsc_field);
{rdelim}); // END если есть действия с селектом "Описание события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_dsc_field"
$('#uca_place_field').change(function(){ldelim} // START если есть действия с селектом "Место события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_place_field"
uca_place_field = $('#uca_place_field').val();
i_uca_place_field = $('#i_uca_place_field').val(uca_place_field);
{rdelim}); // END если есть действия с селектом "Место события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_place_field"
{/if}// END Если событиями календаря являются все доки из рубрики
{if $unicalendars.uca_events == 2}// START Если событиями календаря являются выбранные доки из рубрики
// START получаем данные активных чекбоксов-документов
@ -307,7 +347,7 @@
{rdelim});
{rdelim});// END ОДНИМ чекбоксом - отмечаем - снимаем сразу все чекбоксы документов и пишем в input значение
// START CHEK - отмечаем - снимаем чекбоксы документов по одному и пишем в input значение
// START CHECK - отмечаем - снимаем чекбоксы документов по одному и пишем в input значение
jQuery(function($) {ldelim}
$( document ).on('click change', "input:checkbox.my-checkbox", function() {ldelim}
var $this = $(this);
@ -377,6 +417,39 @@
$('#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 запрос при клике по кнопке Сменить рубрику
function ucaCangeRub() {ldelim}
$.ajax({ldelim}
@ -385,7 +458,8 @@
async: true,
data: {ldelim}c:'s'{rdelim},
success: function(data) {ldelim}
$("#uca_result").html("<input type='hidden' name='uca_rubric_title' id='uca_rubric_title' value=''><input type='hidden' name='uca_rubric_id' id='uca_rubric_id' value=''><select name='uca_result' id='uca_result' style='width: 300px;'>"+data+"</select>");
$("#uca_result").html("<input type='hidden' name='uca_rubric_title' id='uca_rubric_title' value=''><input type='hidden' name='uca_rubric_id' id='uca_rubric_id' value=''><span style='position:relative; top:2px; padding-right:6px;'>{#UCA_LIST_ALLDOC_RUB#}</span><select name='uca_result' id='uca_result' style='width: 300px;'>"+data+"</select>");
$('#uca_rub_after_fields').html('');
$('select').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});
{rdelim},
error: function(xhr, str){ldelim}
@ -402,26 +476,75 @@
$('#uca_rubric_id').val('');
$('#uca_rubric_title').val('');
$('#uca_inp_res').val('');
$('#uca_inptxt_res').val('');
$('#uca_inptxt_res').val('');
$('#uca_rub_after_fields').html('');
var uca_inp_res = $("#uca_result option:selected").val();
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}
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_frub_id = $('#uca_rubric_id').val();
ucaRubFields();
$('#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);
{rdelim}); // END если есть действия с селектом "Изображение - выбор поля" пишем ID выбранного в скрытый input id="i_uca_img_field"
$('#uca_dsc_field').change(function(){ldelim} // START если есть действия с селектом "Описание события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_dsc_field"
uca_dsc_field = $('#uca_dsc_field').val();
i_uca_dsc_field = $('#i_uca_dsc_field').val(uca_dsc_field);
{rdelim}); // END если есть действия с селектом "Описание события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_dsc_field"
$('#uca_place_field').change(function(){ldelim} // START если есть действия с селектом "Место события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_place_field"
uca_place_field = $('#uca_place_field').val();
i_uca_place_field = $('#i_uca_place_field').val(uca_place_field);
{rdelim}); // END если есть действия с селектом "Место события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_place_field"
{rdelim} else {ldelim}
uca_res_new_rub = '';
$('#uca_rub_after_fields').html('');
{rdelim};
{/if}
{rdelim}); // END если был выполнен 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 запрос вывести все поля рубрики
// START Если произошло событие клик на кнопке Сохранить изменения - отправляем AJAX запрос и пишем в БД данные
$("#btn_save_edit").on('click', function() {ldelim}
var uca_events = $('#uca_events').val();
var uca_title = $('#uca_title').val();
var uca_date_format = $('#uca_date_format').val();
var uca_link = $('#uca_link').val();
var uca_day = $('#uca_day').val();
var uca_scroll = $('#uca_scroll').val();
var uca_descript = $('#uca_descript').val();
var uca_events_limit = $('#uca_events_limit').val();
var uca_rubric_id = $('#uca_rubric_id').val();
var uca_rubric_title = $('#uca_rubric_title').val();
var uca_doc_id = $('#uca_doc_id').val();
var uca_events = $('#uca_events').val();
var uca_title = $('#uca_title').val();
var uca_date_format = $('#uca_date_format').val();
var uca_link = $('#uca_link').val();
var uca_day = $('#uca_day').val();
var uca_scroll = $('#uca_scroll').val();
var uca_descript = $('#uca_descript').val();
var uca_events_limit = $('#uca_events_limit').val();
var uca_rubric_id = $('#uca_rubric_id').val();
var uca_rubric_title = $('#uca_rubric_title').val();
var uca_doc_id = $('#uca_doc_id').val();
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 check_fields = $('#uca_title').val();
var check_fields_rubric_id = $('#uca_rubric_id').val();
@ -432,7 +555,7 @@
$.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{rdelim},
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}
$('#ed_title').html(uca_title);
$('#title_rub').html('&nbsp;&nbsp;'+uca_rubric_title);

105
unicalendar/templates/admin_unicalendar_list.tpl

@ -232,7 +232,7 @@
<td>
<input type="hidden" name="uca_doc_id" id="uca_doc_id" value="" />
<input type="hidden" name="uca_events" id="uca_events" value="" />
<select name="uca_events_sel" id="uca_events_sel" style="width: 300px; z-index: 1;">
<select name="uca_events_sel" id="uca_events_sel" style="width: 300px;">
<option style="color: #ABABAB;" value="" >{#UCA_EVENTS_SELECT#}</option>
<option value="1">{#UCA_EVENTS_SELECT_A#}</option>
<option value="2">{#UCA_EVENTS_SELECT_B#}</option>
@ -264,7 +264,7 @@
</div>
{/if}
<script>
$('uca_events_sel').styler({ldelim}selectSearch:false, selectVisibleOptions:5{rdelim});// стилизуем селект выбора событий календаря
// START обнуляем значение value у input Лимит вывода событий при событии focus
$('#uca_events_limit').focus(function(){ldelim}
$('#uca_events_limit').val('');
@ -275,6 +275,7 @@
$('#uca_events').val('');
$('#tr_uca_res' ).remove();
$('#tr_uca_res_doc').remove();
$('#tr_uca_data').remove();
var uca_request = '';
var uca_events = $("#uca_events_sel option:selected").val();
@ -284,24 +285,65 @@
$('#uca_rubric_id').val('');
$('#uca_rubric_title').val('');
$('#uca_events').val(uca_events);
$('#tr_uca').after('<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm"><tr class="noborder" id="tr_uca_res"><td width="180">{#UCA_EVENTS_SELECT_AC#}</td><td><input type="hidden" name="uca_rubric_title" id="uca_rubric_title" value=""><input type="hidden" name="uca_rubric_id" id="uca_rubric_id" value=""><select name="uca_result" id="uca_result" style="width: 300px;"></select></td></tr></table>');
$('#tr_uca').after('<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm" id="uca_after_fields"><tr class="noborder" id="tr_uca_res"><td width="180">{#UCA_EVENTS_SELECT_AC#}</td><td><input type="hidden" name="uca_rubric_title" id="uca_rubric_title" value=""><input type="hidden" name="uca_rubric_id" id="uca_rubric_id" value=""><select name="uca_result" id="uca_result" style="width: 300px;"></select></td></tr></table>');
uca_request = uca_events;
ucaCall();
$('#uca_result').change(function(){ldelim}
$('#uca_rubric_id').val('');
$('#uca_rubric_title').val('');
$('#uca_inp_res').val('');
$('#uca_inptxt_res').val('');
$('#uca_inptxt_res').val('');
$('#tr_uca_data').remove();
var uca_inp_res = $("#uca_result option:selected").val();
var uca_inptxt_res = $("#uca_result option:selected").text();
$('#uca_rubric_id').val(uca_inp_res);
$('#uca_rubric_title').val(uca_inptxt_res);
// START выбора полей в рубрике для вывода данных для изображения, описания, места проведения
var uca_id_sel_rub = ''; // создаем переменную
var uca_title_sel_rub = ''; // создаем переменную
var uca_img_field = ''; // создаем переменную
var i_uca_img_field = ''; // создаем переменную
var uca_dsc_field = ''; // создаем переменную
var i_uca_dsc_field = ''; // создаем переменную
var uca_place_field = ''; // создаем переменную
var i_uca_place_field = ''; // создаем переменную
$('#i_uca_img_field').val(''); // очищаем input
$('#i_uca_dsc_field').val(''); // очищаем input
$('#i_uca_place_field').val(''); // очищаем input
uca_id_sel_rub = $('#uca_rubric_id').val();// пишем в переменную Id выбранной рубрики
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_frub_id = $('#uca_rubric_id').val();
ucaRubFields();
$('#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);
{rdelim}); // END если есть действия с селектом "Изображение - выбор поля" пишем ID выбранного в скрытый input id="i_uca_img_field"
$('#uca_dsc_field').change(function(){ldelim} // START если есть действия с селектом "Описание события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_dsc_field"
uca_dsc_field = $('#uca_dsc_field').val();
i_uca_dsc_field = $('#i_uca_dsc_field').val(uca_dsc_field);
{rdelim}); // END если есть действия с селектом "Описание события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_dsc_field"
$('#uca_place_field').change(function(){ldelim} // START если есть действия с селектом "Место события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_place_field"
uca_place_field = $('#uca_place_field').val();
i_uca_place_field = $('#i_uca_place_field').val(uca_place_field);
{rdelim}); // END если есть действия с селектом "Место события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_place_field"
{rdelim};// END выбора полей в рубрике для вывода данных для изображения, описания, места проведения
{rdelim});
{rdelim}// END Если значение value не пустое и выбран тип события "Все документы из заданной рубрики"...
// Если значение value не пустое и выбран тип события "Выбранные документы из заданной рубрики", подставляем значение value в input,
// создаем таблицу, отправляем AJAX запрос и пишем данные в эту таблицу.
if (uca_events !='' && uca_events == '2' ){ldelim}
$('#tr_uca_data').remove();
$('#uca_rubric_id').val('');
$('#uca_rubric_title').val('');
$('#uca_events').val(uca_events);
@ -309,23 +351,70 @@
uca_request = uca_events;
ucaCall();
$('#uca_result').change(function(){ldelim}
var val_rub = $('#uca_result').val();
$('#tr_uca_data').remove();
$('#tr_uca_res_doc').remove();
$('#uca_rubric_id').val('');
$('#uca_rubric_title').val('');
$('#uca_inp_res').val('');
$('#uca_inptxt_res').val('');
$('#uca_doc_id').val('');
var uca_img_field = ''; // создаем переменную
var i_uca_img_field = ''; // создаем переменную
var uca_dsc_field = ''; // создаем переменную
var i_uca_dsc_field = ''; // создаем переменную
var uca_place_field = ''; // создаем переменную
var i_uca_place_field = ''; // создаем переменную
$('#i_uca_img_field').val(''); // очищаем input
$('#i_uca_dsc_field').val(''); // очищаем input
$('#i_uca_place_field').val(''); // очищаем input
var post_doc = '';
var uca_inp_res = $("#uca_result option:selected").val();
var uca_inptxt_res = $("#uca_result option:selected").text();
$('#tr_uca_res').after('<table id="tr_uca_res_doc" cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm"><colgroup><col width="180" /><col width="*" /></colgroup><col width="*" /></colgroup><col width="*" /><thead><tr class="noborder"><td align="center">{#UCA_EVENTS_SELECT_DOC#}</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"><td width="180" align="center"><label class="code" style="padding-bottom:4px;">{#UCA_SELECT_ALL_INF#} <input type="checkbox" id="check_all"></label></td></tr></tbody></table>');
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">&nbsp;{#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>');
$('#uca_rubric_id').val(uca_inp_res);
$('#uca_rubric_title').val(uca_inptxt_res);
uca_doc_request = uca_inp_res;
ucaDoc();
uca_frub_id = $('#uca_rubric_id').val();
ucaRubFields();
$('#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);
{rdelim}); // END если есть действия с селектом "Изображение - выбор поля" пишем ID выбранного в скрытый input id="i_uca_img_field"
$('#uca_dsc_field').change(function(){ldelim} // START если есть действия с селектом "Описание события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_dsc_field"
uca_dsc_field = $('#uca_dsc_field').val();
i_uca_dsc_field = $('#i_uca_dsc_field').val(uca_dsc_field);
{rdelim}); // END если есть действия с селектом "Описание события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_dsc_field"
$('#uca_place_field').change(function(){ldelim} // START если есть действия с селектом "Место события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_place_field"
uca_place_field = $('#uca_place_field').val();
i_uca_place_field = $('#i_uca_place_field').val(uca_place_field);
{rdelim}); // END если есть действия с селектом "Место события - выбор поля" пишем ID выбранного в скрытый input id="i_uca_place_field"
//alert(uca_frub_id);
{rdelim};
{rdelim});
{rdelim}// END Если значение value не пустое и выбран тип события "Выбранные документы из заданной рубрики"...
// 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 запрос вывести все поля рубрики
// START AJAX запрос по типу выбранного события - "Все документы из заданной рубрики"
function ucaCall() {ldelim}
$.ajax({ldelim}
@ -507,7 +596,7 @@
alert("{#UCA_SEL_RUB_ID_DOC#}");
{rdelim};
{rdelim}); // END Если произошло событие на кнопке "Добавить" - записываем в БД
@ -544,6 +633,4 @@
return subject;
{rdelim} // END аналог php функции str_replace
</script>
</script>
Loading…
Cancel
Save