diff --git a/README.md b/README.md
index 1a3080f..f363a3d 100644
--- a/README.md
+++ b/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 - Добавлен выбор формата даты для публичной части календаря, проверка условий при создании календаря
diff --git a/unicalendar/class.unicalendar.php b/unicalendar/class.unicalendar.php
index fffdbfb..d2c246d 100644
--- a/unicalendar/class.unicalendar.php
+++ b/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 "
| "."".$v['Id']." | "."".$v['document_title']." | "."".$v['document_published'] = pretty_date(strftime(TIME_FORMAT, $v['document_published']))." | "."".$v['document_expire'] = pretty_date(strftime(TIME_FORMAT, $v['document_expire']))." |
";
}
}
+
+
+ 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 "";
+ };
+ }
+
+ 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 "";
+ };
+ }
+
+ 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 "";
+ };
+ }
+
+ 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 "";
+ };
+ }
+
+
if (isset($_POST['check_rel'])) // если пришел запрос-проверка актуальности календаря (не будет выведен документ с Id=1 это Главная страница и документ Ошибка 404)
{
global $AVE_DB;
diff --git a/unicalendar/css/eventCalendar_theme_responsive.css b/unicalendar/css/eventCalendar_theme_responsive.css
index de25dda..f76258e 100644
--- a/unicalendar/css/eventCalendar_theme_responsive.css
+++ b/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 */
\ No newline at end of file
+/* end of theme css */
\ No newline at end of file
diff --git a/unicalendar/css/eventCalendar_theme_responsive_min.css b/unicalendar/css/eventCalendar_theme_responsive_min.css
new file mode 100644
index 0000000..f93f0ed
--- /dev/null
+++ b/unicalendar/css/eventCalendar_theme_responsive_min.css
@@ -0,0 +1 @@
+.eventCalendar-wrap{border:solid 1px #d3d3d3;box-shadow:0 0 15px #999;border-radius:5px;margin-bottom:20px;background-color:#fff;color:#807E7E;}.eventCalendar-wrap .eventCalendar-arrow{text-decoration:none;color:#fff;padding:0 5px;line-height:28px;top:9px;padding:8px 10px;}.eventCalendar-wrap .eventCalendar-arrow.prev{}.eventCalendar-wrap .eventCalendar-arrow:hover{opacity:0.7;}.eventCalendar-wrap .eventCalendar-arrow span{height:0;width:0;font-size:0;line-height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid #fff;float:left;text-indent:-5000px;}.eventCalendar-wrap .eventCalendar-arrow.eventCalendar-prev span{border-left-width:0;border-right:6px solid #fff;}.eventCalendar-slider{height:80px;}.eventCalendar-monthWrap{border-radius:5px;top:10px;left:0px;}.eventCalendar-currentTitle{line-height:25px;background-color:#138DA5;outline:1px solid #138DA5;border:1px solid #E3E3E3;border-width:1px 0;}.eventCalendar-currentTitle .eventCalendar-monthTitle{font-size:110%;text-decoration:none;font-weight:bold;color:#fff;}.eventCalendar-daysList{zoom:1;padding:0;width:100%;}.eventCalendar-daysList.eventCalendar-showAsWeek{margin:10px 5px;width:auto;border:solid 1px #BCBCBC;border-bottom-width:0;border-radius:0;background-color:#CCCCCC;background-image:linear-gradient(top,#EEEEEE 42%,#CCCCCC 71%);background-image:-o-linear-gradient(top,#EEEEEE 42%,#CCCCCC 71%);background-image:-moz-linear-gradient(top,#EEEEEE 42%,#CCCCCC 71%);background-image:-webkit-linear-gradient(top,#EEEEEE 42%,#CCCCCC 71%);background-image:-ms-linear-gradient(top,#EEEEEE 42%,#CCCCCC 71%);background-image:-webkit-gradient( linear,left top,left bottom,color-stop(0.42,#EEEEEE),color-stop(0.71,#CCCCCC) );}.eventCalendar-daysList.showDayNames.eventCalendar-showAsWeek{border-radius:5px 5px 0 0;}.eventCalendar-daysList:before,.eventCalendar-daysList:after{content:"";display:table;}.eventCalendar-daysList:after{clear:both;}.eventCalendar-day-header{text-transform:lowercase;text-align:center;font-size:12px;border-bottom:solid 1px #BCBCBC;}.eventCalendar-daysList.eventCalendar-showAsWeek li{height:auto;margin:0;}.eventCalendar-daysList.eventCalendar-showAsWeek li.eventCalendar-empty{background-color:#ccc;min-height:27px;border-top:solid 1px #ccc;}.eventCalendar-day a{text-decoration:none;font-size:10px;color:#424242;}.eventCalendar-day{border-left:solid 1px #BCBCBC;}.eventCalendar-day a{border:solid 1px #BCBCBC;border-width:0 1px 1px 0;}.eventCalendar-showAsWeek .eventCalendar-day{border-left-width:0;}.eventCalendar-showAsWeek .eventCalendar-day a{border:solid 1px red;border-color:#fff #BCBCBC #BCBCBC #eee;line-height:27px;font-size:11px;}.eventCalendar-day a:hover{background-color:#E4E4E4;}.eventCalendar-daysList li.today a{color:#fff;background:#aaa;}li.eventCalendar-day.today a:hover{background-color:#ccc;}.eventCalendar-daysList li.eventCalendar-dayWithEvents a{background:#89B814;color:#fff;}li.eventCalendar-day.eventCalendar-dayWithEvents a:hover{background-color:#C2D374;}.eventCalendar-daysList li.current a{color:#fff;background:#449FB2;box-shadow:inset 5px 5px 10px #216B7A;text-shadow:2px 2px 2px #216B7A;}li.eventCalendar-day.current a:hover{background-color:#79BDCC;box-shadow:inset 5px 5px 10px #449FB2;text-shadow:2px 2px 2px #449FB2;}.eventCalendar-loading{border-radius:4px;margin:5px auto;padding:0 10px;background-color:#ccc;color:#fff;text-align:center;font-weight:bold;box-shadow:0 0 10px #ccc;text-shadow:0 0 3px #aaa;position:absolute;z-index:4;top:25px;left:5px;}.eventCalendar-loading.error{background-color:red;}.eventCalendar-subtitle{padding-top:10px;}.eventCalendar-list-wrap{min-height:100px;position:relative;}.eventCalendar-list-content.scrollable{height:100px;overflow-y:auto;margin:0 5px 5px 0;}.eventCalendar-list{margin:0;padding:0;list-style-type:none;}.eventCalendar-list li{padding:0 5px 15px;margin:0;clear:both;}.eventCalendar-list li time{font-size:10px;line-height:13px;}.eventCalendar-list li time em{float:left;font-style:normal;}.eventCalendar-list li time small{font-size:10px;float:left;background-color:#807E7E;color:#fff;padding:0 5px 0 4px;margin:0 0 0 3px;}.eventCalendar-list li .eventCalendar-eventTitle{display:block;clear:both;font-weight:bold;text-decoration:none;}.eventCalendar-list li a.eventCalendar-eventTitle{color:#0E8EAB;}.eventCalendar-list li a.eventCalendar-eventTitle:hover{text-decoration:underline;}.eventCalendar-list li .eventDesc{clear:both;margin:0 0 5px 0;font-size:80%;line-height:1.2em;}.eventCalendar-list .eventCalendar-noEvents{font-size:120%;border-radius:4px;margin:5px;padding:5px;background-color:#ccc;color:#fff;text-align:center;font-weight:bold;box-shadow:0 0 10px #ccc;text-shadow:0 0 3px #aaa;}.bt{font-size:12px;display:block;clear:both;text-align:center;margin-top:10px;padding:9px 34px 11px;text-decoration:none;font-weight:bold;line-height:1;color:#ffffff;background-color:#698B10;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);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border:1px solid #698B10;border-color:#698B10 #698B10 #465F05;border-radius:4px;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;-ms-transition:0.1s linear all;-o-transition:0.1s linear all;transition:0.1s linear all;}.bt:hover{background-position:0 -15px;text-decoration:none;color:#E4E4E4;}.bt:visited{color:#E4E4E4;}body{}a{color:#0E8EAB}.features li{margin-bottom:3px;}#thanksPanel li{margin-bottom:0;}#introPanel{padding-top:20px;}.poweredBy img{float:left;margin-right:3px;}.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;}#appLogo{margin-right:30px;}pre{clear:both;background-color:#FFFFCC;padding:5px;border:solid 1px #FED17E;overflow:auto;}#license{width:300px;float:right;font-size:10px;line-height:12px;text-align:center;}Paste your CSS here to minify
\ No newline at end of file
diff --git a/unicalendar/images/css_sprites.png b/unicalendar/images/css_sprites.png
new file mode 100644
index 0000000..545ad89
Binary files /dev/null and b/unicalendar/images/css_sprites.png differ
diff --git a/unicalendar/js/jquery.eventCalendar.js b/unicalendar/js/jquery.eventCalendar.js
index 2d7de42..b8fe3ff 100644
--- a/unicalendar/js/jquery.eventCalendar.js
+++ b/unicalendar/js/jquery.eventCalendar.js
@@ -402,7 +402,28 @@
if (parseInt(eventMinute) <= 9) {
eventMinute = "0" + parseInt(eventMinute);
}
-
+ // Проверка на пустоту значений Тизера события (изображение, описание, место)
+
+ if(event.image != '')// Start проверяем на пустоту значение переменной Изображение
+ {
+ var eventImage = '';
+ } else {
+ var eventImage = '';
+ }// End проверяем на пустоту значение переменной Изображение
+
+ if(event.description != '')// Start проверяем на пустоту значение переменной Описание
+ {
+ var eventDescription = event.description;
+ } else {
+ var eventDescription = '';
+ }// End проверяем на пустоту значение переменной Описание
+
+ if(event.location != '')// Start проверяем на пустоту значение переменной Место
+ {
+ var eventLocation = '' + event.location + '
';
+ } 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 = '' + event.title + '';
} else {
eventTitle = ''+event.title+'';
}
- events.push(''+eventTitle+'' + event.description + '
');
+ events.push(''+ eventImage + eventTitle +'' + '
' + eventStringDate + '
'+eventHour+':'+eventMinute+'
'+eventLocation + eventDescription + '
');
i++;
}
}
diff --git a/unicalendar/lang/ru.php b/unicalendar/lang/ru.php
index 42d6f51..04491ed 100644
--- a/unicalendar/lang/ru.php
+++ b/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 = "[ \"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\" ]";
diff --git a/unicalendar/lang/ru.txt b/unicalendar/lang/ru.txt
index 21319da..2ad88e4 100644
--- a/unicalendar/lang/ru.txt
+++ b/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 = "Выбрать все"
+UCA_SELECT_ALL_INF_CH = "± чекбоксы"
UCA_RELEV = "Актуальность"
UCA_ALERT_RELEV_YES = "Ок - данные календаря актуальны"
UCA_ALERT_RELEV_BAD = "Внимание - события в календаре неактуальны! На момент создания календаря документов в рубрике было больше, чем на текущий момент, это приводит к тому, что календарь содержит события, ведущие на страницу с ошибкой 404! Для устранения - пересохраните/отредактируйте календарь!
ОТЧЕТ:
В рубрике :
"
UCA_ALERT_RELEV_WAR = "Предупреждение - события в календаре неактуальны! На момент создания календаря документов в рубрике было меньше, чем на текущий момент. Для устранения - пересохраните календарь."
UCA_ALERT_RELEV_BAD_SD = "Внимание - события в календаре неактуальны! На момент создания календаря был(и) выбран(ы) документ(ы), которые(ых) на текущий момент не существует в рубрике. Это приводит к тому, что календарь содержит события, ведущие на страницу с ошибкой 404! Для устранения - пересохраните/отредактируйте календарь!
ОТЧЕТ:
В рубрике :
"
UCA_ALERT_RELEV_BAD_SE = ",
документ(ы) с
Id = "
-UCA_ALERT_RELEV_BAD_SF = " не найден(ы) !"
\ No newline at end of file
+UCA_ALERT_RELEV_BAD_SF = " не найден(ы) !"
+UCA_SEL_FIELD_BTN = "Выбрать"
+UCA_SEL_FIELD_DATA_INF = "Выбор полей для создания тизера события"
+UCA_SEL_FIELD_DATA_TTL = "Название события"
+UCA_SEL_FIELD_TTL = "Аналогично названию документа (тег < title >)"
+UCA_SEL_FIELD_H_IMG = "Изображение Изображение (Одиночное)\'> "
+UCA_SEL_FIELD_IMG = "Выбрать поле"
+UCA_SEL_FIELD_DATA_DSC = "Описание события Предупреждение:
Все HTML теги (если они присутствуют в поле) будут вырезаны (естественно только в календаре), в тизере будет выведено не более 255 символов.\'> "
+UCA_SEL_FIELD_DSC = "Выбрать поле"
+UCA_SEL_FIELD_DATA_PLW = "Место события Все HTML теги (если они присутствуют в поле) будут вырезаны (естественно только в календаре).
Eсли вы не планируете указывать место, оставьте это значение пустым (не выбирайте никакого поля).\'> "
+UCA_SEL_FIELD_PLC = "Выбрать поле"
+UCA_SEL_FIELD_DATA_STR = "Начало события"
+UCA_SEL_FIELD_DATA_END = "Завершение события"
+UCA_SEL_FIELD_SDOC = "Задано документом"
diff --git a/unicalendar/module.php b/unicalendar/module.php
index ccce8d6..62b526d 100644
--- a/unicalendar/module.php
+++ b/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'] = '
Модуль позволяет создавать различные календари событий.
Для вывода календаря используйте системный тег [mod_unicalendar:XXX]';
$modul['ModuleAutor'] = 'Repellent';
$modul['ModuleCopyright'] = '© AVE.cms Team 2017';
diff --git a/unicalendar/sql.php b/unicalendar/sql.php
index 9fb7645..f92a70e 100644
--- a/unicalendar/sql.php
+++ b/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`
+ ";
+
?>
\ No newline at end of file
diff --git a/unicalendar/templates/admin_unicalendar_edit.tpl b/unicalendar/templates/admin_unicalendar_edit.tpl
index e7be8a2..e932024 100644
--- a/unicalendar/templates/admin_unicalendar_edit.tpl
+++ b/unicalendar/templates/admin_unicalendar_edit.tpl
@@ -116,6 +116,8 @@
+
+
+
+
+
+
@@ -269,6 +275,40 @@
{/foreach}
\ No newline at end of file
+
\ No newline at end of file