Наверх

pervosvyatitel.ru - новости и проповеди Патриарха Кирилла

Мы, в некоммерческом фонде «Здоровая Страна» разработали сайт, на котором пресс-служба Патриарха Кирилла размещает новости, проповеди, анонсы событий.

Кроме того на сайте есть интерактивный календарь со всеми православными праздниками (сами события берем с сайта www.pravoslavie.ru — оказывается, давно уже есть адекватное API, с помощью которого можно получить очень подробную информацию по каждому дню).

Но большую часть времени, конечно, потратили на приложения для iOS и Android. Под катом, как всегда, подробности)

Я был приятно удивлен, когда понял, насколько просто в MODX сделать API для работы с мобильными приложениями. Серверная разработка на MODX — просто сказка. Честно.

Первое, что понадобилось — это получать на смартфоне список статей. Все данные передаются с сервера в приложение в виде JSON. Для MODX — раз плюнуть:
return $modx->toJSON($output);

Далее — надо было на каждый день года получить данные и сохранить их, чтобы потом отдать в мобильное приложение разом все дни. Написали парсер и сохраняем данные в «вечном кеше». Если будут какие-то исправления, надо только перезапустить парсер — он запишет в кеш уже новые данные (например, в другом формате).
$cachename = 'calendar-1.0.4';
if (empty($cacheKey)) $cacheKey = 'api';
if (empty($cacheHandler)) $cacheHandler = $modx->getOption(
    'cache_resource_handler', null,
    $modx->getOption(xPDO::OPT_CACHE_HANDLER, null, 'xPDOFileCache'));
if (!isset($cacheExpires)) $cacheExpires = (integer) $modx->getOption(
    'cache_resource_expires', null,
    $modx->getOption(xPDO::OPT_CACHE_EXPIRES, null, 0));
if (empty($cacheElementKey)) $cacheElementKey = $cachename;
$cacheOptions = array(
    xPDO::OPT_CACHE_KEY => $cacheKey,
    xPDO::OPT_CACHE_HANDLER => $cacheHandler,
    xPDO::OPT_CACHE_EXPIRES => $cacheExpires
);

// ...

$modx->cacheManager->set($cacheElementKey, $output, $cacheExpires, $cacheOptions);

Ну а отправлять пуши при публикации статьи — одно удовольствие. Все делаем с помощью стандартных средств MODX — плагинов! Один плагин на событие OnDocPublished и пуши отправляются сами собой)

Ну и спасибо большое Василию Наумкину за pdoTools, eventsCalendar2, Tickets и Jevix.


2 комментария

  1. Владимир 24 апреля 2014, 22:58 # 0
    pervosvyatitel.ru/write/ форма отправляется без поверки
    1. alexandr 26 июня 2015, 08:14 # 0
      Может планирует статью о интеграции сайта на modx и android… отправка страниц в приложение андройд? Или поделитесь какой информацией? Я только начинаю, много чего не знаю

      Авторизация

      через сервис Loginza:


      Шаблоны MODX

      1 2 Дальше »

      Объектная
      модель
      MODX