diff --git a/README.md b/README.md index f30a156..c301485 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ ##### Changelog: +##### 14.05.2017 - обновление модуля - версия 1.2.3 - изменен алгоритм проверки актуальности календарей + ##### 09.05.2017 - обновление модуля - версия 1.2.2 - добавлена проверка актуальности календарей при изменении количества документов в рубрике после создания календаря ##### 06.05.2017 - обновление модуля - версия 1.2.1 - оптимизация запросов БД для публичной части модуля diff --git a/unicalendar/class.unicalendar.php b/unicalendar/class.unicalendar.php index a239897..87e1b49 100644 --- a/unicalendar/class.unicalendar.php +++ b/unicalendar/class.unicalendar.php @@ -142,7 +142,7 @@ class Unicalendar $sql = $AVE_DB->Query(" SELECT * FROM " . PREFIX . "_module_unicalendar - WHERE id = id + WHERE id = '".$AVE_DB->InsertId()."' "); $unicalendars = array(); while ($row = $sql->FetchAssocArray()) @@ -165,7 +165,7 @@ class Unicalendar $sql = $AVE_DB->Query(" SELECT Id, document_alias, document_title, document_published, document_meta_description FROM " . PREFIX . "_documents - WHERE rubric_id = '" . $urubric_id . "' AND Id !=1 && Id != '".PAGE_NOT_FOUND_ID."' + WHERE rubric_id = '" . $urubric_id . "' AND Id !=1 && Id != '".PAGE_NOT_FOUND_ID."' "); $results = array(); while ($row = $sql->FetchAssocArray()) @@ -176,17 +176,19 @@ class Unicalendar foreach ( $results as $k=>$v ) { $uni_data .= "{ \"date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_published']))."\", \"title\": \"".$v['document_title']."\", \"description\": \"".$v['document_meta_description']."\", \"url\": \"".$v['document_alias']."\" },"; - $rubric_count .= $v['Id'].","; + $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: \"dddd DD-MM-YYYY\", showDescription: ".$uca_descript.", 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."}}});});"; - // считаем количество документов в категории на момент создания календаря и записываем значение в БД - $rubric_count = count(explode(",", chop($rubric_count, ' ,'))); + // Получаем Id документов в категории на момент создания календаря и записываем значение в БД + $rubric_count ='Id='.$rubric_count; + $rubric_count = chop($rubric_count, ' OR Id='); + $AVE_DB->Query(" UPDATE " . PREFIX . "_module_unicalendar SET - uca_rub_doc_count = '" . $rubric_count . "' + uca_doc_id = '" . $rubric_count . "' WHERE id = '" . $uca_id . "' "); @@ -222,16 +224,6 @@ class Unicalendar } $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: \"dddd DD-MM-YYYY\", showDescription: ".$uca_descript.", 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."}}});});"; - // считаем количество выбранных документов в категории на момент создания календаря и записываем значение в БД - $rubric_count = count(explode(",", chop($rubric_count, ' ,'))); - $AVE_DB->Query(" - UPDATE - " . PREFIX . "_module_unicalendar - SET - uca_rub_doc_count = '" . $rubric_count . "' - WHERE id = '" . $uca_id . "' - "); - // Создаем js файл для календаря с названием dataXXX.js - где XXX = Id календаря $fdir = "/modules/unicalendar/js/data-files/"; mkdir(BASE_DIR . $fdir, 0777, true); @@ -369,19 +361,21 @@ class Unicalendar foreach ( $results as $k=>$v ) { $uni_data .= "{ \"date\": \"".pretty_date(strftime('%Y-%m-%d %H:%M:%S', $v['document_published']))."\", \"title\": \"".$v['document_title']."\", \"description\": \"".$v['document_meta_description']."\", \"url\": \"".$v['document_alias']."\" },"; - $rubric_count .= $v['Id'].","; + $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: \"dddd DD-MM-YYYY\", showDescription: ".$uca_descript.", 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."}}});});"; - // считаем количество документов в категории на момент создания календаря и записываем значение в БД - $rubric_count = count(explode(",", chop($rubric_count, ' ,'))); + // Получаем Id документов в категории на момент создания календаря и записываем значение в БД + $rubric_count ='Id='.$rubric_count; + $rubric_count = chop($rubric_count, ' OR Id='); + $AVE_DB->Query(" UPDATE " . PREFIX . "_module_unicalendar SET - uca_rub_doc_count = '" . $rubric_count . "' + uca_doc_id = '" . $rubric_count . "' WHERE id = '" . $unicalendar_id . "' - "); + "); // Создаем js файл для календаря с названием dataXXX.js - где XXX = Id календаря $fdir = "/modules/unicalendar/js/data-files/"; @@ -415,16 +409,6 @@ class Unicalendar } $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: \"dddd DD-MM-YYYY\", showDescription: ".$uca_descript.", 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."}}});});"; - // считаем количество выбранных документов в категории на момент создания календаря и записываем значение в БД - $rubric_count = count(explode(",", chop($rubric_count, ' ,'))); - $AVE_DB->Query(" - UPDATE - " . PREFIX . "_module_unicalendar - SET - uca_rub_doc_count = '" . $rubric_count . "' - WHERE id = '" . $unicalendar_id . "' - "); - // Создаем js файл для календаря с названием dataXXX.js - где XXX = Id календаря $fdir = "/modules/unicalendar/js/data-files/"; mkdir(BASE_DIR . $fdir, 0777, true); @@ -481,13 +465,13 @@ class Unicalendar echo "