• SMS Уведомления + Логирование событий в Google Calendar на PHP

      Навеяло: habrahabr.ru/blogs/i_am_insane/45040 (Чудеса автоматизации или как отправляют SMS настоящие гики).
      Если люди делают такие изощрения — значит сильно надо.

      За пару часов был разработан класс для добавления в Google Calendar событий. А уже календарь гугла станет нам слать СМСки.

      Для использования нам нужно правильно настроить наш каллендарь(стоит завести для этого отдельный аккаунт):
      1. Установить часовой пояс календаря такойже как на сервере.
      2. Настроить СМС уведомления (Настройки -> Настройка для мобильных устройств)
      3. Настроить уведомление по умолчанию для календаря.(Настроки календаря — Уведомления)
      Ставим по умолчанию уведомить за 1 минуту до события по СМС. Можно добавить Дополнительно уведомление по почте.
      Всё. Календарь подготовлен.

      Для работы скрипта нам понядобится часть ZendFramework.
      Набор классов gdata: framework.zend.com/download/gdata.

      И код скрипта с классом и примером использования:

      <?
        require_once 'Zend/Loader.php';
        Zend_Loader::loadClass('Zend_Gdata');
        Zend_Loader::loadClass('Zend_Gdata_AuthSub');
        Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
        Zend_Loader::loadClass('Zend_Gdata_Calendar');

        class GCAlerter
        {
          public $gcCalendar;
          public $gcTimeCorrect;
        
          public function __construct($user, $pass, $tc)
          {
            $client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, "cl");
            $this->gcCalendar = new Zend_Gdata_Calendar($client);
            $this->gcTimeCorrect = $tc;
          }
        
          public function Alert($text)
          {
            $quickAddText = "$text ".date("h:i",time() + $this->gcTimeCorrect);
            $event = $this->gcCalendar->newEventEntry();
            $event->content = $this->gcCalendar->newContent($quickAddText);
            $event->quickAdd = $this->gcCalendar->newQuickAdd('true');
            $newEvent = $this->gcCalendar->insertEvent($event);
            return $newEvent->id->text;
          }
        }
        
        $user = "mycal@gmail.com";
        $pass = 'mypass';
        $timecorr = 2*60;// 2*60 = 2 min, 10*60 = 10min

        $gcAlerter = new GCAlerter($user, $pass, $timecorr);
        $gcAlerter->Alert("OMG I`m die!!!");
      ?>


      * This source code was highlighted with Source Code Highlighter.


      $timecorr — переменная корректировки времени.
      Время на сервере и время гугла могут различаться изза неверного времени сервера. Не всегда есть возможность это исправить.
      По сути — этим параметром подгоняем нужное время так, чтобы уведомление приходило не позднее, чем через минуту после события.
    • Bitrix. Разработка. Как не набивать данные для тестирования вручную.

        Многие ругают Битрикс, приводят примеры огромных запросов, плюются на ресурсоёмкость… и я понимаю причины.

        Битрикс действительно далеко не идеален, но с моей точки зрения заслуживает внимания. Это сейчас самая зарабатывающая CMS как минимум в России.
        Т.е. знание Битрикс — это весомый вклад в карман разработчика.

        Сейчас у меня не достаточно кармы, но в дальнейшем планирую завести блог, в котором стану делиться наработками в этой области.

        Статья №1. Как не набивать данные для тестирования вручную.
        В разработке практически любого проекта возникает проблемма набивки данных для тестирования. Это дело меня лично всегда сильно утомляло.
        Окончательно решив, что я разработчик, а не оператор взялся за скрипт.

        Итак задача: разработать скрипт для забивки тестовых данных(рыбы) в Инфоблоки проекта на Битрикс.
        Читать дальше →