Рубрика «modx» - 6

Честно говоря у меня противоречивые мнения относительно всех возможностей которые предоставляет MODX Revolution. Но факт, что эта CMF обладает огромнейшим потенциалом нельзя скрыть. Многим веб-разработчикам данная информация может показаться неинтересной в виду того, что у меня специфичные задачи. Кому-то — эта информация покажется интересной, но не более того, т. к. на практике применять врятли придется. Что ж, в любом случае я расскажу свою историю а там мало ли…
Читать полностью »

11 дней прошло с последнего пресс-релиза моего модуля modLivestreet для связки MODX Revolution + LivestreetCMS
За это время пакет был серьезно доработан и уже претендует на звание стабильной версии.
Список изменений под катом.
У кого возникнут вопросы, спрашивайте.Читать полностью »

Продолжая нашу тему про модуль связки MODX и Livestreet, представляю новую версию модуля modLivestreet: livestreet-0.3.0-rc.transport.zip

Что нового? Да практически все :-) Модуль переписан с нуля.
1. Серьезно изменена (улучшена) логика обработки запросов на LiveStreet.
2. Добавлена синхронизированная регистрация пользователей в MODX и LiveStreet. Теперь регистрируя пользователя через админку MODX, пользователь автоматически создается в LiveStreet, а обрабатывая запрос на LiveStreet на регистрацию пользователя, регистрация проходит через MODX, что в свою очередь так же обеспечивает синхронную регистрацию пользователя в обоих движках.
Данную функцию можно отключать через настройку.
Под катом схемы работы (упрощенные) MODX в стандартной версии и с модулем modLivestreet. Читать полностью »

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

Итак, вот готовый пакет для MODX: modxlivestreet.ru/uploads/files/2012/10/14/livestreet-0.1.2-rc.transport.zip

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

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

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

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

В прошлом топике я писал о том, что к своему сайту на MODX я прикрутил LiveStreet, дабы сделать форум. (В этот раз не буду много писать, так как больше рассчет на комментарии. )
С тех пор меня не покидала мысли сделать объединенный движок MODX + LiveStreet. Зачем? Вот и я тем же вопросом задавался… Все думал «а надо ли оно вообще?». В итоге решил, что надо. От MODX не приходится ждать полноценной социалки, а LiveStreet — хороший социальный блог, но не более того.
Как мне видится, симбиоз двух этих движков может дать очень неплохие возможности.
Небольшая выдержка:

Общая схема работы примерно такая:

  • Устанавливается отдельно LiveStreet
  • Устанавливается отдельно MODX
  • Для MODX пишутся отдельно сниппет для вызова LiveStreet/index.php и буферизации вывода (через ob_start()) и плагин для перехвата УРЛ-запросов, чтобы не создавать все страницы под LiveStreet
  • При запросе к MODX, когда нам надо, сниппет вызывает исполнение LiveStreet

Такая схема нам позволит не только использовать MODX как надстройку для LiveStreet, но и расположение LiveStreet и MODX на разных доменах, что позволит не только визуально менять LiveStreet при обращении через разные домены, но и с помощью MODX менять логику работы LiveStreet, к примеру выводить не все блоги, а только какие-то определенные.

Краткие инструкции и ссылка на github: livestreet.newpg.ru/livestreet/blog/github/3.htmlЧитать полностью »

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

В данной статье я хотел бы рассказать насколько MODx Revolution в целом изменил мой подход к программированию.
Не знаю как кто программирует, но я считаю, что давным давно уже программирую методами ООП. К чему же в общих чертах сводилось программирование? Я писал (или брал готовые) классы под свои задачи (класс по работе с базой данных, класс по работе с шаблонами, класс еще под что-нибудь). Большинство классов были довольно большие и выполняли множество необходимых задач по своему профилю. Чаще всего по мере роста проекта многие классы разрастались, или обзаводились расширениями, или и то и другое. Так или иначе, уверен многие сталкивались с ситуацией часового разбора объекта в пару тысяч строк и несколькими десятками методов, чтобы разобраться куда можно внести очередные изменения, но так, чтобы при этом что-то другое не сломалось. Но на мой взгляд сложнее всего обеспечить гармоничное взаимодействие различных объектов между собой, особенно в плане перехвата ошибок при выполнении тех или иных действий, а главное в момент ошибки решить насколько она критичная и стоит ли прервать процесс выполнения, или можно идти дальше. А еще сюда же приписать клиент-серверные решения, чтобы стандартизировать ответы выполнения и для серверной части (с дальнейшей ее отрисовкой в шаблоны), и для Ajax-запросов.

Какой же именно инструментарий предлагает MODx Revolution для программирования логики проекта? Всего два класса: Процессор (выполняется классом modProcessor) и Коннектор (выполняется классом modConnector).
Что это такое? Процессор — отдельный файл с чаще всего одной или несколькими мелкими задачами, в результате выполнения которого ответ должен быть только положительным (что будет свидетельствовать о положительном результате выполнения), или отрицательный (желательно с конкретным сообщением об ошибке), что будет само собой говорить, что произошло что-то критически неправильно.Читать полностью »

MODX конечно крутая CMF, но порой сталиваешся с такими мелочами, которые напрягают. Я не буду в этом топике плакаться какие все вокруг плохие, а я такой хороший. Возьмем, например, ветку Revolution и препарируем ее. А чтобы вы не потеряли интерес к этой заметке, вот небольшой план статьи:

  1. Разбор бэкенда
  2. Углубление в настройки
  3. Работа с вложенными чанками
  4. Наблюдаем за работой парсера
  5. Мощный кеш

Читать полностью »

MODX конечно крутая CMF, но порой сталиваешся с такими мелочами, которые напрягают. Я не буду в этом топике плакаться какие все вокруг плохие, а я такой хороший. Возьмем, например, ветку Revolution и препарируем ее. А чтобы вы не потеряли интерес к этой заметке, вот небольшой план статьи:

  1. Разбор бэкенда
  2. Углубление в настройки
  3. Работа с вложенными чанками
  4. Наблюдаем за работой парсера
  5. Мощный кеш

Читать полностью »

Данный топик наверняка будет полезен тем, у кого довольно большие проекты на MODx Revolution, так как с обычными сайтами-визитками достаточно и стандартных методов работы а-ля $modx->getObject(), $modx->getCollection() и т.п. И данные методы по сути своей не просто работа с базой данных, а еще и с объектами MODx.

При работе с большими проектами методы а-ля $modx->getCollection() для нас не лучшее решение по двум причинам:
1. Перерасход ресурсов. Данные методы не просто получают данные из БД, но еще и создают инстанции получаемых объектов. В данном случае получая информацию о 10000 документов, мы получаем 10000 объектов modResource, что не очень круто.
2. Осложняется задача подсчета получаемых записей. Помимо прямых сложностей подсчета еще на уровне запроса, даже если вы получите 10 записей одного и того же документа (к примеру), MODx вернет вам как результат только один объект modResource. И хотя часто такое устроит многих программистов (они получили уникальные объекты и рады), кого-то это не устроит, так как опять же происходит перерасход ресурсов, а по конечному результату сразу и не видно, что запрос не оптимизированный.
К тому же при работе на крупных проектах нам чаще всего нужны не сами объекты, а только информация (записи из базы данных).

Описанные здесь методы работы с БД ставят 2 задачи:
1. Дать бОльшую гибкость в написании запросов к БД.
2. Придерживаться стандартных методов xPDO, то есть избежать чистого SQL, так как чистый SQL по некоторым причинам в фреймворках вообще не кашерно (хотя бы с точки зрения возможной миграции на другой тип БД, смены названий таблиц, префиксов или еще чего-нибудь) Читать полностью »

Тут от товарища поступил вопрос:

День добрый!

Читаю статью про дружбу ModX и LS, и решил спросить вопрос, который сам никак в ModX не могу решить — как реализовать логику работы Revo в зависимости от текущего поддомена основного сайта?

Я вижу на pro-cent.ru, что в поддомен выносится название города (http://kaliningrad.pro-cent.ru/). ModX как-то помогает в обработке этого, или у Вас все руками и своим кодом сделано?

Решил дать ответ в публику, наверняка кому-нибудь тоже пригодится. Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js