Связка MODx Revolution + LiveStreet. Часть 2 (Дубль два)

    Прошлый мой топик закритиковали из-за отсутствия полностью задокументированного и оформленного решения, отправив меня все это дело переделывать, потому и переписываю топик с нуля, так как и решение с нуля все переделано.
    Думал за часик все оформлю, а в итоге все переписал единым пакетом, полностью переосмыслив логику. Если так посмотреть, то с этим плагином MODX может работать не только с LiveStreet, а скорее всего много с чем, как бы выполняя роль шлюза (или nginx-а, чтобы понятней было).

    Итак, вот готовый пакет для MODX: goo.gl/X6HCd (Extra залил на modx.com, но пока на модерации. Как только запустят, обновлю ссылку)

    Что требуется для работы?
    Отдельно MODX
    Отдельно LiveStreet (можно в какой-нибудь внутренней папке в MODX (но не на одном уровне с livestreet.url_prefix, а то могут возникнуть сложности с подменой УРЛ-ов), можно за пределами MODX_DOCUMENT_ROOT (но лишь бы на одном сервере и доступ к файловой системе был)).

    В общем ставим это все (или берем готовые сайты), устанавливаем на MODX данные пакет, правим (если надо) системные конфиги MODX пространства имен livestreet.

    Это все просто.

    Чуууточку сложнее вот это сделать:

    /*После установки LiveStreet переименуйте livestreet_root/config/config.stable.php.dist 
    в config.stable.php
    и перепишите в нем конфиги по типу
    */
    // Подгружать только если ис-под MODX работает
    if(!defined('IN_MODX')) return;
    
    // Если надо, то $modx можно привязать к самому LiveStreet, но пока мы его просто заглобалим
    global $modx;   
    
    // Формирует новый УРЛ для LiveStreet-сайта
    $web = preg_replace('/([^:])\/\//', "$1/",LIVESTREET_WEB.LIVESTREET_URL_PREFIXE);
    $web = preg_replace('/\/*$/', "", $web);
    $config['path']['root']['web'] = $web;
    // Можно задать новый префикс для кеша, но не обязательно. 
    $config['sys']['cache']['prefix'] = 'livestreet_modx_cache';
    // Можно перегрузить скин
    $config['view']['skin']        = 'synio';  // шаблон(скин)
    // Можно взять название сайта из MODX
    $config['view']['name']        = $modx->getOption('site_name');                   // название сайта
    $config['view']['description'] = 'Description your site'; // seo description
    return $config;  
    
    /*
    В общих чертах все. Все обращения к LiveStreet (УРЛ-ы с префиксом LIVESTREET_URL_PREFIXE)
    будут обрабатываться Плагином.
    А для первоначальной страницы в MODX просто укажите пустой шаблон и в качестве 
    контента укажите вызов некешируемого сниппета [[!livestreet.run]]
    */
    

    Но следует учитывать, что это лайтовая версия для небольших нагрузок, так как вся статика прогоняется через MODX.
    Для того, чтобы значительно снизить нагрузку на сервер, следует прописать реврайты для apache или nginx (или у кого там что стоит).
    Тогда все будет весело работать :-)

    И небольшой скриншот по сути)))
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 6

      0
      А вот теперь кому что не нравится?
        0
        А зачем? Просто ради спротивного интереса: что будет, если скрестить уже с ежом? Если это все имеет какое-то практическое значение?
          0
          Видимо у меня с изложением мыслей какие-то проблемы, потому что никто не понимает…
          Постараюсь еще объяснить. Я не знаю ни одного нормального расширения под MODX, чтобы развернуть на нем социалку. У него в репозитории даже категории нет типа social engine. У него есть только blogging. И что мы там видим?Quip, getResources, tagLister, Articles и т.д. Нужна социалочка под MODX? да не вопрос! Сейчас все это в кучку собиру и быстро все напрограммирую, часов за 100… А потом еще шаблоны сверстаю, потом все Ajax-пироги приготовлю (еще часов 100) и вот у меня уже готова социалочка :-) Оц, вотрой заказчик подвернулся? Ну ничего, наработки уже есть, в этот раз всего за 90 часов справлюсь…

          То, что я предлагаю, что вы называете «ужа с ежом», позволяет развернуть блог за час. В самое ближайшее время я его еще докручу (в планах интеграция с социалками и некоторым функционалом MODX) и все.

          Еще раз приведу свой проект в пример:
          pro-cent.ru/
          forum.pro-cent.ru/
          Это уже не независимые сайты. Они очень жестко интегрированы между собой. Отзывы по акциям (сами акции и т.п. — все в рамках MODX) сохраняются в LiveStreet. Можно писать и там, и там. Авторизация единая. Авторизовался в одном месте, авторизован в другом.

          Есть еще вопросы?
            0
            Много слов, но все равно непонятно. Если речь про то, что УЖЕ есть сайт на MODx и срочно потребовалось добавить функционала LS — то ясно. Но ежели ресурс делается с нуля и сразу ясно, что ему нужна «социалочка», то лучше сразу на LS и делать.
              0
              Один чел сказал следующее:
              Про оценивание: пока человек сам не столкнется с проблемой сообщества на сайте, написанном на MODX, он и не оценит ваш топик.=)
              Считаю он прав.

              Если речь про то, что УЖЕ есть сайт на MODx и срочно потребовалось добавить функционала LS — то ясно. Но ежели ресурс делается с нуля и сразу ясно, что ему нужна «социалочка», то лучше сразу на LS и делать.

              Во-первых, я не накладывал рамок кому и когда использовать данный модуль.
              Во-вторых, понятное дело, что многое зависит от целей. Кому-то и группа во Вконтактах — вполне достаточно.
              Но если говорить про MODX и LS, то они могут друг другу понадобиться, когда придется расширять функционал. Вы можете развернуть LS, а потом столкнуться со сложностями расширения функционала до интернет-магазина. В таком случае MODX может помочь, а этот модуль позволяет их друг с другом «подружить».
              С другой стороны создав интернет-магазин на MODX, вам может понадобиться социалка. И тут опять-таки этот модуль позволяет быстро решить данный вопрос.
            +1
            Кстати, вопрос на вопрос: а зачем связка nginx+apache?
            В некотором роде это решение и делает MODX nginx-ом.
            Кстати, у того же LS как таковой админки нет. Зато мое решение позволяет еще и админку на MODX сделать для LS. Просто префиксы для их баз данных свести и можно LS как компонент рассматривать.
            К примеру префикс для таблиц MODX — modx_
            В ту же базу устанавливаем LS с префиксом modx_livestreet_
            Собираем компонент и уже можно будет работать с БД а-ля $modx->getObject('LivestreetUser', 15);

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое