Как стать автором
Обновить
0

MODX *

Система управления содержимым с открытым кодом

Сначала показывать
Порог рейтинга
Уровень сложности

Парадигма программирования процессорами в MODx Revolution

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

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

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

MODX Revolution — пара костылей для необычных ситуаций

Время на прочтение5 мин
Количество просмотров22K
MODX конечно крутая CMF, но порой сталиваешся с такими мелочами, которые напрягают. Я не буду в этом топике плакаться какие все вокруг плохие, а я такой хороший. Возьмем, например, ветку Revolution и препарируем ее. А чтобы вы не потеряли интерес к этой заметке, вот небольшой план статьи:
  1. Разбор бэкенда
  2. Углубление в настройки
  3. Работа с вложенными чанками
  4. Наблюдаем за работой парсера
  5. Мощный кеш

Итак, все, кому стало интересно прошу под кат.
Всего голосов 9: ↑6 и ↓3+3
Комментарии14

Пользовательские запросы к БД в MODx Revolution

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

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

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

Работа с поддоменами в MODx

Время на прочтение3 мин
Количество просмотров10K
Тут от товарища поступил вопрос:
День добрый!

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

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


Решил дать ответ в публику, наверняка кому-нибудь тоже пригодится.
Читать дальше →
Всего голосов 6: ↑2 и ↓4-2
Комментарии21

Истории

Связка MODx Revolution + LiveStreet

Время на прочтение4 мин
Количество просмотров7K
Когда собирался писать свой топик, ломал голову куда же его писать? С одной стороны часть сайта написана на MODx, с другой стороны другая часть написана на LiveStreet, а с третьей стороны это такие костыли, что в пору в Ненормальное программирование писать. Оказалось, что Хабр готовился к такому повороту событий и сделал возможность писать сразу в несколько блогов, за что ему отдельный респект! :-)

Ну а теперь собственно к основному вопросу: В свое время я написал и запустил купонный сервис, само собой написанный на MODx Revolution (само собой, потому что я ярый любитель этого движка и что бы ни писал, всегда пишу именно на этом фреймворке).
Так вот, проект рос, развивался, много функционала было написано (благо MODx позволяет решить любую задачу), да вот только замыслилось мне на сайте еще и социалку-блог а-ля Хабрахабр запустить, да чтобы все наши пользователи там были, да чтобы отзывы по акциям туда же попадали, да чтобы отзывы были и в акциях, и в социалке, и чтобы и там и там их можно было комментировать и читать их в отдельной ветке все до кучи, и еще много-много чего… И когда я думал, сколько же мне понадобится времени, чтобы напрограммировать это все самому, я делался очень грусным...

Но вспомнил я про LiveStreet, о котором слышал давно-давно, и то, что он позиционируется как легкий и быстрый клон Хабра. И вот решил я отдельно социалку поднять на LS и увязать его с моим основным сайтом на MODx. LiveStreet установил и запустил за пару часов (это мое первое знакомство с этим движком).
Читать дальше →
Всего голосов 17: ↑11 и ↓6+5
Комментарии17

Решение проблемы «пустой админки» MODX Revo

Время на прочтение2 мин
Количество просмотров44K
При установке MODX Revolution у многих возникает проблема с тем, что при заходе в админку не загружается основное содержимое (правый блок).

Такое поведение — следствие работы работы модуля Suhosin и/или eAccelerator.

Под катом решения.
Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии26

Заметки о MODX Revo от новичка

Время на прочтение10 мин
Количество просмотров34K

Disclaimer: Конечно, скорее всего многое, из представленного в этой статье, покажется капитанством для сведующих людей. Однако, возможно, кому-то она поможет...

Введение


Итак, что же такое MODX (кстати, пишется именно так — MODX, а не как название хаба — MODx)? Если читать официальный сайт — то это CMS. Однако, это лишь часть правды. На самом деле, MODX находится примерно посередине между CMS и CMF. Впрочем, любой, кто заинтересовался бы MODX это быстро бы узнал из других статей, поэтому не буду останавливаться на этом пункте подробней.

Поскольку MODX находится посередине между CMS и CMF, то её не так легко освоить, как простую CMS, вроде Wordpress или Joomla. Пожалуй, эта статья написана в целях раскрытия некоторых тонкостей, которые кажутся неочевидными на первый взгляд.

Читать дальше →
Всего голосов 36: ↑26 и ↓10+16
Комментарии23

Как я воевал с контекстами

Время на прочтение4 мин
Количество просмотров15K
Как истинный консерватор, я долгое время использовал исключительно MODx Evolution. Меня устраивало прежде всего наличие исчерпывающей документации, кучи статей и предельно понятной архитектуры данной версии MODx CMF. О версии Revolution я периодически читал разные статьи, но мне не хотелось менять привычную для меня систему на что-либо другое. Однако, в один прекрасный момент количество таблиц в базе данных моего мультидоменного «хомячка» на хостинге достигло устрашающих размеров. Встал вопрос о мультидоменном решении. Когда-то я вычитал о возможности создать на MODx Revolution мультидоменный сайт. Я установил движок на тестовый поддомен и начал копать глубже. Как оказалось, в самом фреймворке как такового готового решения насчёт мультидоменности пока не существует. Существует некая система контекстов. Разные контексты можно определить на разные поддомены. Только для этого нужно править файл index.php.
Читать дальше →
Всего голосов 22: ↑14 и ↓8+6
Комментарии28

Компонент «Фильтрация и управление фильтрами» 1.2 для MODX Revolution

Время на прочтение3 мин
Количество просмотров19K
tagManager Наконец-то дошли руки довести до ума компонент «Фильтрация и управление фильтрами» (tagManager). Первая его версия была очень сырая, даже пришлось сделать дополнительно упрощённый вариант фильтрации. Теперь всё, что было задумано реализовано в нормальном виде и хочу рассказать об этом компоненте сообществу MODX и всем интересующимся.

Функции:
  • Сортировка групп фильтров и отдельно их значений.
  • Настройка активности групп фильтров и отдельных значений (чекбокс).
  • Изменение значений (по двойному клику появляется поле) для всех товаров, у которых есть это значение.
  • Ajax-фильтрация и сортировка товаров в каталоге.
  • Выводится число товаров по каждому фильтру. Блокируется получение пустого результата поиска.
  • Поддержка типов ввода TV с выбором одновременно нескольких значений — Флажки(checkbox), Список (множественный выбор).

Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии12

Сниппет Loginza для MODX Revolution

Время на прочтение2 мин
Количество просмотров7.6K
Хочу представить широкой общественности мой сниппет Loginza для MODX Revolution.



Он существует довольно давно, и причин, почему я про него пишу сейчас 2:
1. Пару дней назад я его серьезно обновил.
2. Парни из Loginza упорно делают вид, что сниппета нет — и не выкладывают его у себя на сайте. Отталкивая, тем самым, потенциальных юзеров MODX.
Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии6

MODX Cloud: первый обзор

Время на прочтение3 мин
Количество просмотров6.9K
Совершенно неожиданно выдали приглашение на бету MODX Cloud. Это широко рекламируемое развитие MODX Revolution с невиданными возможностями. А на самом деле, продвинутый shared-хостинг с единой панелью управления кучей сайтов на облаке.

В перспективе, это позволит нам не распыляться, а централизованно обновлять сайты, бэкапить и просто приятно работать с клиентами.

Пока Cloud в состоянии закрытой беты, но мне удалось поглядеть — и вот обзор (в посте много кликабельных картинок).
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии17

MODx Revo: TinyMCE и Конструктор таблиц

Время на прочтение1 мин
Количество просмотров18K
При установке редактора TinyMCE (на момент написания статьи версия: 4.3.3 pl) по умолчанию он настраивается таким образом, что в нем нет возможности добавлять в редактируемую область разметку таблиц. Видимо это сделано для компактности и «дружелюбности», чтобы не пугать пользователей своими многочисленными возможностями (другого объяснения я найти не смог).

И так, вот что необходимо сделать, чтобы в редакторе TinyMCE в MODx Revo появились элементы редактирования таблиц:

  1. Перейдите к настройкам системы ("Система" -> "Настройка системы");
  2. Отфильтруйте параметры по компоненту "tinymce";
  3. Найдите параметр "tiny.custom_buttons3" (цифра в конце означает строчку вывода кнопок на панели TiniMCE, на свое усмотрение можно выбрать другой аналогичный параметр "tiny.custom_buttonsN"). Добавьте в значение параметра слово "tablecontrols";
  4. Для того чтобы кнопки заработали, необходимо подключить плагин для работы с таблицами. Для этого в параметре "tiny.custom_plugins" нужно добавить к списку плагинов — "table".

Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии6

Разрабатываем социальную сеть на MODx Revolution

Время на прочтение5 мин
Количество просмотров22K
MODx развивается стремительными темпами, и я решил попробовать сделать социальную сеть на этом замечательном движке. Ведь в нем давно уже есть возможность работать с пользователями (регистрация, авторизация и пр.), встроенный механизм сообщений пользователей, он умеет работать с изображениями и много чего еще.

Для начала давайте разберемся с пользователями, дадим им возможность писать статьи, например, или добавлять свои события.
Читать дальше →
Всего голосов 23: ↑15 и ↓8+7
Комментарии14

Ближайшие события

Альтернативная пометка в Wayfiner, квадратики в SimpleSearch и полезные ссылки для Modx Revolution

Время на прочтение3 мин
Количество просмотров3.5K
Перепост из моего блога — может кому-нибудь пригодится

Начал делать новые проекты на Revo — переход с Evo происходит со скрипом, т.к. в Evo помнил все наизусть. После установки голой системы необходимо развернуть полезные пакеты, а так же немного их модифицировать, чтобы приступить к верстке и программированию. Однако дефолтные установленные пакеты при всей их гибкости не всегда помогают — в частности решить задачу альтернативной разметки строк меню.

Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

mSearch: поиск + фильтр для MODX Revolution

Время на прочтение5 мин
Количество просмотров35K


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

Он называется mSearch и сначала задумывался как простейший поиск по сайту, с учетом морфологии русского языка. То есть, нужно было простое и легкое решение для любого сайта, без установки Sphinx и других серьезных систем.

В процессе гугления я натолкнулся на одну интересную реализацию этой задачи при помощи phpMorphy. Полнотекстовый поиск по таблице с индексом, с генерацией разных словарных форм. Идея мне приглянулась, под мои критерии она подходила и я написал свое решение, положив в основу этот метод.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии5

Aloha Editor для MODX Revolution

Время на прочтение2 мин
Количество просмотров13K


Хочу рассказать о новом плагине для MODX Revolution для редактирования текста (включая значения доп. полей TV) во внешней части сайта.
Используется Aloha Editor (aloha-editor.org).
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии5

Тестовые сайты MODX Revolution

Время на прочтение2 мин
Количество просмотров8.5K


Представляю вашему внимаю мой сервис для близкого знакомства с MODx Revolution. Никаких регистраций, смс и прочей нудятины.

Абсолютно бесплатно, на сутки вы получаете свежеустановленный сайт на облаке Selectel с админскими правами.
Это как бы демо-сайт, только для для одного человека и с возможностью полноценной работы. Доступ вы получите в течении 10 — 15 минут через какое то время, ибо — Хабраэффект.

Через 24 часа этот сайт будет автоматически удален.

Основная задача сервиса — дать спокойно ознакомиться с отличной системой, а также хоть немного развеять мифы о «тормознутости» и «сложности».
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии17

Импорт инфоблоков из 1С-Битрикс в MODx Revolution

Время на прочтение4 мин
Количество просмотров5.6K
Третьего дня задали задачу — написать скрипт для переезда с Битрикс на MODx. Задача показалась интересной, тем более, что с Битрикс толком ни разу не работал.



Ничего не могу написать про саму систему, так как даже в админку не заходил — работал только с базой данных. Кстати, это 322 таблицы, против 68 у MODx.

Читать дальше →
Всего голосов 28: ↑19 и ↓9+10
Комментарии11

Релиз SBShop 1.0 — интернет-магазин на MODX Evolution

Время на прочтение3 мин
Количество просмотров9.2K
imageПока кипят обсуждения о том, что лучше MODX Revo или MODX Evo, я в очередной раз хочу отметить, что хоронить Evo еще рановато. Для тех, кто считает также и до сих пор любит младшее поколение этой CMS, я хотел бы представить свою разработку, которая позволит превратить MODX Evo в полноценный интернет-магазин.

У этого решения есть как свои плюсы, так и минусы, но я искренне надеюсь, что найдутся те, кому проведенная работа будет интересна и полезна.
Всех заинтересованных прошу под кат!
Всего голосов 19: ↑17 и ↓2+15
Комментарии34

Вывод соседних документов в MODX Evolution

Время на прочтение2 мин
Количество просмотров9.2K
На многих сайтах после текста статьи часто можно встретить блок ссылок на другие материалы сайта. Например, ссылки «Следующая статья», «Предыдущая статья». Также на странице товара, помимо самого товара, можно увидеть ссылки на соседние товары из той же категории.

Однажды передо мной встала задача вывести на каждой странице товара ссылки на другие товары в той же категории, причем соседние.

У Ditto, как и у Wayfinder, я такой возможности не нашел. Поэтому написал простой сниппет и решил поделиться им здесь. Надеюсь кому-то он пригодится. Сниппет, как и было сказано выше, очень простой — отличный пример для тех, кто только начинает писать свои решения для MODX. В коде множество комментариев, так что проблем с пониманием возникнуть не должно.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии5