Евгений Савицкий

Евгений Савицкий

С нами с 10 августа 2014; Место в рейтинге пользователей: #190

Упрощаем работу с TV

Продолжая тему, начатую Василием, предлагаю решение для упрощения работы с TV. Оно поможет тем, у кого логика сайта завязана на TV — запросы, фильтры и т.п.
Решается эта задача созданием полей в таблице ресурсов и копированием в них значений TV.
Сергей Шлоков
02 декабря 2015, 09:18
modx.pro
49
8 212
+7

Расширение любых таблиц MODX

В очередной раз понадобилось изменить таблицу сайта, менять которую не предусмотрено.

Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.

Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
Василий Наумкин
16 ноября 2015, 07:07
modx.pro
117
10 465
+11

[pdoTools] Версия 2.1 - улучшения Fenom

Привет друзья! Хочу представить вам новую версию pdoTools с улучшениями работы шаблонизатора Fenom.

Функциональность vs Безопасность

Я долго думал, как бы разрешить менеджерам запускать чанки и сниппеты, но при этом не пускать их к объектам MODX. Потому что, если включить системную настройку pdotools_fenom_modx, то любой менеджер сможет сделать в чанке вот так:
{if $res = $modx->getObject('modResource', 1)}
	$res->remove();
{/if}
Нам бы этого не хотелось, правда?

С другой стороны, я не хочу придумывать очередной псевдоязык команд, типа
{runSnippet('name', [params => data])}
или
{'name' [params => data] | snippet}
Поэтому я добавил специальную переменную {$_modx}, которая ссылается на небольшой безопасный класс, где есть только нужные менеджерам функции и свойства:
  • {$_modx->placeholders} — массив с системными плейсхолдерами
  • {$_modx->config} — массив с системными настройками
  • {$_modx->context} — массив (не объект!) с текущим контекстом
  • {$_modx->user} — массив (не объект!) с текущим пользователем
  • {$_modx->resource} — массив (не объект!) с текущим ресурсом
  • {$_modx->lexicon} — служба загрузки лексиконов
  • {$_modx->lexicon()} — функция для вывода строки из лексикона
  • {$_modx->runSnippet()} — запуск сниппета
  • {$_modx->runProcessor()} — запуск процессора
  • {$_modx->getChunk()} — вывод чанка
  • и т.д., смотрите исходник.
Василий Наумкин
09 августа 2015, 12:17
modx.pro
13
12 311
+11

Публичное тестирование mxManager для iOS

Привет, друзья!

Спешу поделиться новостью, что моё мобильное iOS приложение доступно для публичного тестирования через сервис TestFlight.

Чтобы принять в нём участие, и ознакомиться с ранней версией приложения, вам нужно:
  1. Проверить версию вашего устройства — требуется iOS 8.
  2. Написать мне свой email (или просто отметиться в комментариях — я сам его посмотрю)
  3. Установить приложение TestFlight из AppStore
  4. Дождаться приглашения на участие в программе по почте
  5. Открыть ссылку из письма на устройстве и установить mxManager через TestFlight.
  6. Установить на свой сайт компонент mxManager из нашего или официального репозитория
Василий Наумкин
16 апреля 2015, 05:52
modx.pro
1
5 734
+3

Привязка встроенных объектов к кастомным

В силу ряда причин, мне потребовалось в свой кастомный объект, имеющий свою таблицу в бд и наследующий xPDOSimpleObject, добавить привязку к стандартному объекту MODX. Например, modUser.
Сделать это с помощью aggregates и composites в схеме моего кастомного объекта не получилось (собственно, добавление в схему связи с нативным modx-объектом ни к чему не привело — связи не появилось). Я полагаю, это свзяано с тем, что в схеме modx.mysql.schema.xml свзяи с моим кастомным объектом как не было, так и нет.
Антон Фомичёв
04 марта 2015, 10:42
modx.pro
5
2 130
+2