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

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

Модератор: immortal

fandaymon
Сообщения: 1570
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 40 раз
Поблагодарили: 578 раз

Re: Календарь/менеджер задач

Сообщение fandaymon » Пт мар 23, 2018 5:56 pm

Logrus писал(а):я сейчас и SOON раскомментировал, сайагенда и мой вариант пропущенных нормально отработали, с выводом замечаний не увидел
п.с. думаю можно и принимать, а там уже и ошибки если есть всем отлавливать (оставлю так, на гите SOON закомментирован)
п.п.с на сцене календаря вторая полоса прокрутки при категориях вид портит
SOON бесполезно раскоменчивать - в new_events всё равно ничего нету. Я бы честно говоря лучше пользовался правильным вариантом 8-)
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

Re: Календарь/менеджер задач

Сообщение Logrus » Пт мар 23, 2018 5:57 pm

т.е. 304 закомментировать
19:46 Алиса: У вас на сегодня запланированы задачи: 1. Полить лимон. 2. Передать показания электроэнергии. Так же напоминаю о пропущенных задачах: 1. Квартиранты.
19:46 Алиса: Будущие события: 1. Через 2 дня проверка.
п.с. хай пока так буде
на пользователей в методе сложнее и пока не на чем особо и проверить-то
ночью в телегу разное пробовал, где с имени это из метода, только этому пользователю, только его события и/или задачи
Logrus, [23.03.18 01:36]
Ну надо же, ни событий, ни задач. Халява.

Logrus, [23.03.18 01:54]
Александр, для вас на сегодня событий нет. Задач для вас на сегодня нет.

Logrus, [23.03.18 01:55]
Александр, для вас на сегодня событий нет. Ваши задачи на сегодня: проверка.

Logrus, [23.03.18 01:58]
У вас на сегодня запланированы задачи: 1. Полить лимон. 2. Передать показания электроэнергии. 3. проверка.
Последний раз редактировалось Logrus Пт мар 23, 2018 6:52 pm, всего редактировалось 7 раз.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
fandaymon
Сообщения: 1570
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 40 раз
Поблагодарили: 578 раз

Re: Календарь/менеджер задач

Сообщение fandaymon » Пт мар 23, 2018 6:35 pm

webms писал(а):Кстати да, а почему не произносит больше будущие задачи и просроченные?
Я бы весь этот код вот так переделал бы

Код: Выделить всё

function dayss($day)
{
        $a = substr($day, strlen($day) - 1, 1);
        if ($a == 1) $str = "день";
        if ($a == 2 || $a == 3 || $a == 4) $str = "дня";
        if ($a == 5 || $a == 6 || $a == 7 || $a == 8 || $a == 9 || $a == 0) $str = "дней";
        return $str;
}
$stateOff = $params['PropushhennyeDela'];
if (file_exists('./modules/app_calendar/app_calendar.class.php'))
{
        include_once('./modules/app_calendar/app_calendar.class.php');
        $calendar = new app_calendar();
        $calendar -> usual($out);
        $events = $out['EVENTS_TODAY'];
        $say_phrase = '';

        if ($events) {
          $tasks='';
          $cals='';
          $i=0;
          $j=0;
          foreach ($events as $ev) {
           if ($ev['IS_TASK']==1 and $ev['IS_DONE']==0) {
            $i++;
            $tasks.=$i . '. ' . $ev['TITLE'] . '. ';
           } else {
            $j++;
            $cals.=$j . '. ' . $ev['TITLE'] . '. ';
           }
          } 
           if ($i!=0) $say_phrase.= "У вас на сегодня запланированы задачи. " . $tasks;
           if ($j!=0) $say_phrase.= "Сегодняшние события. " . $tasks;
        }

        if ($stateOff != 'OFF') { //вызывается параметром, если ничего не пришло - будет говорить. 
         //$events = $out['EVENTS_PAST']; - Тут была ошибка
         $events=$out['CALENDAR_CATEGORIES'];
         $i=0;
         $tasks='';
         if ($events) {
          foreach ($events as $category) {
           $events_past=$category['EVENTS_PAST'];
           if ($events_past) {           
            // $tasks.= 'Категория: ' . $category['TITLE'] . ' .'; <- Если нужно перед пропущенными задачами указывать категорию   
            foreach ($events_past as $ev) {
             $i++;
             $tasks.=$i . '. ' . $ev['TITLE'] . '. ';    
            }
           }
          }
          if ($i!=0) $say_phrase.= " Напоминаю пропущенные задачи. " . $tasks;
         }
        }
        $events = $out['EVENTS_PASTPLAN'];
        if ($events[0]['TITLE'])
        {
                $say_phrase.= "Напоминаю что";
                $total_tasks = count($events);
                for ($i = 0; $i < $total_tasks; $i++)
                {
                        $datetime1 = date_create($events[$i]['DUE']);
                        $datetime2 = date_create(date('Y-m-d'));
                        $timeRASCHET = date_diff($datetime1, $datetime2);
                        $say_phrase.= " через ";
                        $say_phrase.= $timeRASCHET -> days." ".dayss($timeRASCHET -> days)." ".$events[$i]['TITLE'].". ";
                }
        }
}
if ($say_phrase)
{
         sleep(2);
        echo $say_phrase;
        //rs('DemoSay', $say_phrase); //Алиса говорит, но в чат не пишет.
        //say($say_phrase,3);
}
 
Последний раз редактировалось fandaymon Вс мар 25, 2018 10:24 pm, всего редактировалось 2 раза.
За это сообщение автора fandaymon поблагодарили (всего 2):
Logrus (Пт мар 23, 2018 6:41 pm) • webms (Вс мар 25, 2018 9:42 pm)
Рейтинг: 2.33%
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

Re: Календарь/менеджер задач

Сообщение Logrus » Пт мар 23, 2018 9:34 pm

СпойлерПоказать
Сцена.PNG
Сцена.PNG (36.54 КБ) 3933 просмотра
Календарь.PNG
Календарь.PNG (124.93 КБ) 3933 просмотра
Новая_запись.PNG
Новая_запись.PNG (68.67 КБ) 3933 просмотра
Иконка.PNG
Иконка.PNG (57.84 КБ) 3933 просмотра
Категории.PNG
Категории.PNG (67.4 КБ) 3933 просмотра
Настройки.PNG
Настройки.PNG (58.61 КБ) 3933 просмотра
Особая признательность fandaymon и webms

Оригинальный пост
Скрипт по заполнению календаря и метод для отправки пользователям (обновление на него)
примеры данных
проверка
иконки ?
скрипт 1 , 2 аналог усеченный первого, рекомендуемый пост выше
Последний раз редактировалось Logrus Вс мар 25, 2018 11:40 pm, всего редактировалось 1 раз.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: Календарь/менеджер задач

Сообщение webms » Вс мар 25, 2018 9:45 pm

fandaymon, спасибо тебе огромное!
fandaymon
Сообщения: 1570
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 40 раз
Поблагодарили: 578 раз

Re: Календарь/менеджер задач

Сообщение fandaymon » Вс мар 25, 2018 10:26 pm

Сорри - в последний код не ту версию скопировал - там была ошибка

Код: Выделить всё

//$events = $out['EVENTS_PAST']; - Тут была ошибка
$events=$out['CALENDAR_CATEGORIES']; 
За это сообщение автора fandaymon поблагодарили (всего 2):
webms (Вс мар 25, 2018 11:03 pm) • Logrus (Вс мар 25, 2018 11:09 pm)
Рейтинг: 2.33%
TheForum
Сообщения: 146
Зарегистрирован: Сб авг 06, 2016 2:11 am
Откуда: Рига
Благодарил (а): 13 раз
Поблагодарили: 18 раз

Re: Календарь/менеджер задач

Сообщение TheForum » Вс мар 25, 2018 10:44 pm

Я покопался на форуме - попалось 2 разных файла holidays.dat один покороче. Так вот он в базу был внесен с неправильной кодировкой - кракозябры... Что не так в файле? Открыл notepad++ - вроде оформлены одинаково...

Да, и как переделать или что изменить в скрипте Сергея если нам надо будет внести таким же образом новые файлы но с другими категориями?
12/31/2017 Holidays Р‘.Рќ.Ельцин РѕР±СЉСЏРІРёР» Рѕ досрочном сложении полномочий главы государства (1999 год)
12/31/2017 Holidays Б.Н.Ельцин объявил о досрочном сложении полномочий главы государства (1999 год)
12/31/2017 Holidays В России открылась первая междугородная телефонная линия (1898 год)
12/31/2017 Holidays Именины Зоя, Михаил, Модест, Семен, Севастьян
12/30/2017 Holidays Р’ РўРѕРєРёРѕ открыто первое РІ РђР·РёРё метро (1927 год)
Немного желания, терпения и времени - и все получится :)
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

Re: Календарь/менеджер задач

Сообщение Logrus » Вс мар 25, 2018 10:58 pm

скрипт и holidays.dat есть где-то в другой теме оригинал
здесь выложен повторно (holidays.dat 1251)
мной он был разбит на три части с редактированием (несколько правок было с десяток) и сохранен в 65001 без BOM (я выше путь по конвертациям расписывал полуручной)
но в обоих
31::12::1999::Б.Н.Ельцин объявил о досрочном сложении полномочий главы государства::
откуда (1999 год)
откуда файл-то

в скрипте 17 стр.
$category=SQLSelectOne("SELECT * FROM calendar_categories WHERE TITLE LIKE 'Holidays'");
Последний раз редактировалось Logrus Вс мар 25, 2018 11:11 pm, всего редактировалось 1 раз.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
TheForum
Сообщения: 146
Зарегистрирован: Сб авг 06, 2016 2:11 am
Откуда: Рига
Благодарил (а): 13 раз
Поблагодарили: 18 раз

Re: Календарь/менеджер задач

Сообщение TheForum » Вс мар 25, 2018 11:11 pm

Что то не могу его найти :( Попался архив - но там 3 разных файла - days, holidays.. Можешь его еще раз выложить и указать для народа что этот верный? И еще вопрос - у меня теперь куча неправильных событий из-за кодировки, а можем сделать скрипт для очистки календаря в базе - ну вот если что то не так? (как у меня получилось)? А то вручную долго по одному событию выкидывать...
Немного желания, терпения и времени - и все получится :)
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

Re: Календарь/менеджер задач

Сообщение Logrus » Вс мар 25, 2018 11:51 pm

А то вручную долго по одному событию выкидывать...
в пма в таблице calendar_events отсортировать колонку CALENDAR_CATEGORY_ID (а если по TITLE то у тебя с Р с битой все начинаются)
снизу галка отметить все и удалить это вручную быстро

у себя попробовал вообще запустить
Disconnect(); // closing database connection ?>
За это сообщение автора Logrus поблагодарил:
TheForum (Пн мар 26, 2018 12:29 am)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить