Страница 29 из 38
Re: [Модуль] Simple Calendar (app_calendar)
Добавлено: Сб янв 05, 2019 10:08 pm
Logrus
fandaymon писал(а): Сб янв 05, 2019 9:41 pm
Logrus писал(а): Сб янв 05, 2019 9:30 pm
fandaymon писал(а): Сб янв 05, 2019 7:55 pm
Кстати - для заполнения календаря праздниками России в модуле есть встроенная функция
Код: Выделить всё
include_once('./modules/app_calendar/app_calendar.class.php');
$calendar = new app_calendar();
$calendar->calendar_getholidays();
кто-нибудь проверял, работает?
Если категории назначены для праздников и перенесённых дней, то должна работать
с праздниками попробовал, там было, ничего не удалило, ничего не добавило, хз, разбираться нужно
категория праздники, пробовал и с галкой и без, в бд ни одной записи не изменилось, страница календаря по ссылке из функции в браузере доступна
п.с. обе должны быть сразу?
в бд одна запись, на страницах двоит

- Снимок1.PNG (28.16 КБ) 4602 просмотра
Re: [Модуль] Simple Calendar (app_calendar)
Добавлено: Сб янв 05, 2019 10:44 pm
Logrus
https://lugasoft.ru/calendar/proizvodstvennyj/2019
перенесенные и сокращенные не соответствуют импорту, чет там все напутано
это к описанию в модуле
Re: [Модуль] Simple Calendar (app_calendar)
Добавлено: Сб янв 05, 2019 11:32 pm
webms
fandaymon писал(а): Сб янв 05, 2019 7:55 pm
Кстати - для заполнения календаря праздниками России в модуле есть встроенная функция
Код: Выделить всё
include_once('./modules/app_calendar/app_calendar.class.php');
$calendar = new app_calendar();
$calendar->calendar_getholidays();
А если кому-то нужны праздники Латвии, то ниже код сценария
Код: Выделить всё
$year=date('Y');
$rec=SQLSelectOne('select ID from calendar_categories where holidays=1');
if ($rec) {
$hl_ID=$rec['ID'];
//Удаляем все записи за текущий год из календаря
//с категорией у которой стоит галочка Праздники
SQLExec('delete from calendar_events where CALENDAR_CATEGORY_ID=' . $hl_ID . ' and Year(DUE)=' . $year);
$rec=SQLSelectOne('select ID from calendar_categories where workdays=1');
$workdays_ID=$rec['ID'];
//Удаляем все записи за текущий год из календаря
//с категорией у которой стоит галочка Праздники
SQLExec('delete from calendar_events where CALENDAR_CATEGORY_ID=' . $workdays_ID . ' and Year(DUE)=' . $year);
$url='https://www.lrpv.gov.lv/lv/patentu-valde/par-iestadi/kontakti/2015gada-pirmssvetku-dienas-un-brivdienas';
$doc = new DOMDocument;
$internalErrors = libxml_use_internal_errors(true);
$doc->loadHTMLFile($url);
$tabl_temp=$doc->getElementsByTagName('table');
$tabl_tr=$tabl_temp[0]->getElementsByTagName('tr');
$i=1;
foreach($tabl_tr as $nodename) {
if ($i>1) {
$tabl_td=$nodename->getElementsByTagName('td');
if (mb_strlen($tabl_td[1]->textContent)>9) {
$date=$tabl_td[1]->textContent;
$date=mb_substr($date,6,4) . '-' . mb_substr($date,3,2) .'-' . mb_substr($date,0,2);
$Record = Array();
$Record['DUE'] = $date ;
$Record['CALENDAR_CATEGORY_ID'] = $workdays_ID;
$Record['TITLE'] = $tabl_td[4]->textContent;
$Record['ID']=SQLInsert('calendar_events', $Record);
$date=$tabl_td[2]->textContent;
$date=mb_substr($date,6,4) . '-' . mb_substr($date,3,2) .'-' . mb_substr($date,0,2);
$Record = Array();
$Record['DUE'] = $date ;
$Record['CALENDAR_CATEGORY_ID'] = $hl_ID;
$Record['TITLE'] = $tabl_td[4]->textContent;
$Record['ID']=SQLInsert('calendar_events', $Record);
}
elseif (mb_strlen($tabl_td[2]->textContent)>9) {
$tabl_p= $tabl_td[2]->getElementsByTagName('p');
$dd=$tabl_p[0]->textContent;
if ($dd=='')
$date=$tabl_td[2]->textContent;
else
$date=$dd;
$date=mb_substr($date,6,4) . '-' . mb_substr($date,3,2) .'-' . mb_substr($date,0,2);
$Record = Array();
$Record['DUE'] = $date ;
$Record['CALENDAR_CATEGORY_ID'] = $hl_ID;
$Record['TITLE'] = $tabl_td[4]->textContent;
$Record['ID']=SQLInsert('calendar_events', $Record);
if (mb_strlen($tabl_td[3]->textContent)>9) {
$tabl_p= $tabl_td[3]->getElementsByTagName('p');
$dd=$tabl_p[0]->textContent;
if ($dd=='')
$date=$tabl_td[3]->textContent;
else
$date=$dd;
$date=mb_substr($date,6,4) . '-' . mb_substr($date,3,2) .'-' . mb_substr($date,0,2);
$Record = Array();
$Record['DUE'] = $date ;
$Record['CALENDAR_CATEGORY_ID'] = $hl_ID;
$Record['TITLE'] = 'Выходной';
$Record['ID']=SQLInsert('calendar_events', $Record);
}
}
elseif (mb_strlen($tabl_td[3]->textContent)>9) {
// $date=$tabl_td[3]->textContent;
$tabl_p= $tabl_td[3]->getElementsByTagName('p');
$dd=$tabl_p[0]->textContent;
if ($dd=='')
$date=$tabl_td[3]->textContent;
else
$date=$dd;
$date=mb_substr($date,6,4) . '-' . mb_substr($date,3,2) .'-' . mb_substr($date,0,2);
$Record = Array();
$Record['DUE'] = $date ;
$Record['CALENDAR_CATEGORY_ID'] = $hl_ID;
$Record['TITLE'] = $tabl_td[4]->textContent;
$Record['ID']=SQLInsert('calendar_events', $Record);
}
}
$i++;
}
}
fandaymon, календарь с праздниками для РФ все ок работает, что в прошлом году, что в этом году сам обновился.
А вот Латвию не юзал, мне не надо)
Re: [Модуль] Simple Calendar (app_calendar)
Добавлено: Вс янв 06, 2019 12:15 am
Logrus
давайте конкретную дату сравним?
22 сокращенный рабочий день или перенесенный?
23 двоит

- Screenshot_2019-01-06-02-11-56.png (67.28 КБ) 4589 просмотров
Re: [Модуль] Simple Calendar (app_calendar)
Добавлено: Вс янв 06, 2019 12:24 am
fandaymon
Logrus писал(а): Вс янв 06, 2019 12:15 am
давайте конкретную дату сравним?
22 сокращенный рабочий день или перенесенный?
23 двоит
Двоит скорее всего из-за того, что есть запись с ежегодным повторением. Плюс функция создаёт запись на этот день, но уже без повторения
Re: [Модуль] Simple Calendar (app_calendar)
Добавлено: Вс янв 06, 2019 12:29 am
Logrus
двоит все импортированные праздники, больше ничего
скрин категории

- Screenshot_2019-01-06-02-26-53.png (131.37 КБ) 4586 просмотров
23 февраля до импорта не было, после импорта в бд одна запись
повторов у них нет
Re: [Модуль] Simple Calendar (app_calendar)
Добавлено: Вс янв 06, 2019 12:36 am
fandaymon
Logrus писал(а): Вс янв 06, 2019 12:29 am
двоит все импортированные праздники, больше ничего
скрин категории
Screenshot_2019-01-06-02-26-53.png
23 февраля до импорта не было, после импорта в бд одна запись
повторов у них нет
23 не было 2019 года? Или вообще не было? Скажем 23 2018, или 23 2017...
Re: [Модуль] Simple Calendar (app_calendar)
Добавлено: Вс янв 06, 2019 12:40 am
Logrus
до импорта не было в календаре событий на 23.02 любого года
после импорта скрин выше, повтор событий там не включен
Re: [Модуль] Simple Calendar (app_calendar)
Добавлено: Вс янв 06, 2019 1:37 am
fandaymon
Logrus писал(а): Вс янв 06, 2019 12:40 am
до импорта не было в календаре событий на 23.02 любого года
после импорта скрин выше, повтор событий там не включен
А! Понял - потому что эта категория отмечена галочкой Праздники и отмечена цветом, т.е. по сути попадает в 2 разных случая...
Re: [Модуль] Simple Calendar (app_calendar)
Добавлено: Вс янв 06, 2019 1:39 am
Logrus
еще путаница с сокращенным или перенесенным
п.с. обязательный выбор обоих галок при импорте и мало цветов на категории