[Модуль] Simple Calendar (app_calendar)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Logrus » Сб янв 05, 2019 10:08 pm

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
Снимок1.PNG (28.16 КБ) 3606 просмотров
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Logrus » Сб янв 05, 2019 10:44 pm

https://lugasoft.ru/calendar/proizvodstvennyj/2019
перенесенные и сокращенные не соответствуют импорту, чет там все напутано
это к описанию в модуле
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение webms » Сб янв 05, 2019 11:32 pm

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, календарь с праздниками для РФ все ок работает, что в прошлом году, что в этом году сам обновился.
А вот Латвию не юзал, мне не надо)
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Logrus » Вс янв 06, 2019 12:15 am

давайте конкретную дату сравним?
22 сокращенный рабочий день или перенесенный?
23 двоит
Screenshot_2019-01-06-02-11-56.png
Screenshot_2019-01-06-02-11-56.png (67.28 КБ) 3593 просмотра
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение fandaymon » Вс янв 06, 2019 12:24 am

Logrus писал(а):
Вс янв 06, 2019 12:15 am
давайте конкретную дату сравним?
22 сокращенный рабочий день или перенесенный?
23 двоит
Двоит скорее всего из-за того, что есть запись с ежегодным повторением. Плюс функция создаёт запись на этот день, но уже без повторения
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Logrus » Вс янв 06, 2019 12:29 am

двоит все импортированные праздники, больше ничего
скрин категории
Screenshot_2019-01-06-02-26-53.png
Screenshot_2019-01-06-02-26-53.png (131.37 КБ) 3590 просмотров
23 февраля до импорта не было, после импорта в бд одна запись
повторов у них нет
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение fandaymon » Вс янв 06, 2019 12:36 am

Logrus писал(а):
Вс янв 06, 2019 12:29 am
двоит все импортированные праздники, больше ничего
скрин категории
Screenshot_2019-01-06-02-26-53.png
23 февраля до импорта не было, после импорта в бд одна запись
повторов у них нет
23 не было 2019 года? Или вообще не было? Скажем 23 2018, или 23 2017...
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Logrus » Вс янв 06, 2019 12:40 am

до импорта не было в календаре событий на 23.02 любого года
после импорта скрин выше, повтор событий там не включен
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение fandaymon » Вс янв 06, 2019 1:37 am

Logrus писал(а):
Вс янв 06, 2019 12:40 am
до импорта не было в календаре событий на 23.02 любого года
после импорта скрин выше, повтор событий там не включен
А! Понял - потому что эта категория отмечена галочкой Праздники и отмечена цветом, т.е. по сути попадает в 2 разных случая...
За это сообщение автора fandaymon поблагодарил:
Logrus (Вс янв 06, 2019 1:38 am)
Рейтинг: 1.16%
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Logrus » Вс янв 06, 2019 1:39 am

еще путаница с сокращенным или перенесенным
п.с. обязательный выбор обоих галок при импорте и мало цветов на категории
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить