Futuris
С нами с 09 января 2016; Место в рейтинге пользователей: #288MODX + Docker
Всем привет!
Увидел тут в комментариях к одной заметке вопрос про MODX в Docker. Так уж совпало, что я как раз недавно освоил работу с Docker для своих проектов на Vesp, и Pixmill попросили меня сделать что-то такое же и для MODX.
Вызов был принят — и вот результат github.com/bezumkin/modx-docker, можете использовать. Ниже будут пояснения.
Увидел тут в комментариях к одной заметке вопрос про MODX в Docker. Так уж совпало, что я как раз недавно освоил работу с Docker для своих проектов на Vesp, и Pixmill попросили меня сделать что-то такое же и для MODX.
Вызов был принят — и вот результат github.com/bezumkin/modx-docker, можете использовать. Ниже будут пояснения.
Кешируем mFilter2
Как кол-во товаров на сайте переваливает какую-то границу, то mFilter2 начинает жестко тупить. Переодически мне приходиться бороться с этой проблемой. В итоге изучения mFilter2 выработал пару решений.
Простые отзывы на сайте AjaxForm (Formit) + MIGX
Создание отзывов на сайте без использования платных дополнений или громоздких, таких как Tickets.
Нам понадобятся следующие дополнения: Formit, AjaxForm и если хочется защитить форму — recaptchav3.
Данная статья будет полезна новичкам в modx и ни на что не претендует.
Нам понадобятся следующие дополнения: Formit, AjaxForm и если хочется защитить форму — recaptchav3.
Данная статья будет полезна новичкам в modx и ни на что не претендует.
pdoResources группировка по TV
Недавно столкнулся с задачкой.
Есть ресурсы списком, но категория указывается в TV (tvName), на страницы нужно вывести (список категорий), хотел уже написать сниппет с группировкой кастомный, полез pdoResources и посмотрел как там прописываются алиасы в итоге увидел что к TV прописывается алиас TV.
Вот мое решение, может кому пригодится:
TV + tvName +.value
Есть ресурсы списком, но категория указывается в TV (tvName), на страницы нужно вывести (список категорий), хотел уже написать сниппет с группировкой кастомный, полез pdoResources и посмотрел как там прописываются алиасы в итоге увидел что к TV прописывается алиас TV.
Вот мое решение, может кому пригодится:
TV + tvName +.value
[[!pdoResources?
&parents=`2773`
&tpl=`media_item`
&prepareTVs=`1`
&includeTVs=`tvName`
&groupby=`TVtvName.value`
]]
На выводе получается (у меня) 4 категории (скрин)Цель Яндекс.Метрики на msOneClick
Подскажите кто сталкивался. Как можно вставить цель Метрики на мадальное окно msOneClick? Чтобы сорабатывала по факту отправки формы?
На AjaxForm, есть такая конструкция для вставки в модал:
А вот куда впилить на msOneClick пока не разберусь?
На AjaxForm, есть такая конструкция для вставки в модал:
&successMessage=`Заказ звонка успешно отправлен
<script>yaCounterXXXXXXX.reachGoal('call');</script>`
А вот куда впилить на msOneClick пока не разберусь?
Кэширование элементов в ZoomX
ZoomX постепенно начинает набирать популярность. В связи с чем возникает ряд вопросов. Один из которых — кэширование элементов в шаблонизаторе Smarty. В принципе, по документации не сложно разобраться. Но, конечно, модыксерам хотелось бы работать так, как они привыкли. В этом плане Fenom из pdoTools реализован именно по этому принципу — для запрета кэширования в названии элемента указывается восклицательный знак. Всё привычно. Но работает не всегда.
Используем системный composer в MODX 3
Привет.
Одно из самых заметных изменений в MODX 3 это наличие системного Composer для установки своих зависимостей.
Одно из самых заметных изменений в MODX 3 это наличие системного Composer для установки своих зависимостей.
Что такое Composer из зачем он нужен ?
Composer — это менеджер для подключения и управления этими сторонними библиотеками или пакетами в вашем PHP-проекте который решает следующие проблемы:- Быстрая установка и обновление пакетов
- Резолвинг зависимостей между пакетами
- Хранение пакетов и их версии в едином файле без необходимости версионировать все пакеты вручную
Использование MODX вне MODX3
Перевод заметки Using MODX Outside of MODX3
В одной из статей было рассмотрено создание экземпляра объекта $modx в эпоху до MODX3. В этой статье мы рассмотрим использование MODX вне MODX Revolution 3. Большая часть кода такая же, как и в предыдущей статье (прим. переводчика: предыдущая статья не переведена, так как немного не актуальна в рамках перехода на модх3). Основное отличие состоит в том, что MODX Revolution 3 широко использует пространства имен и имеет автозагрузчик для загрузки классов.
В одной из статей было рассмотрено создание экземпляра объекта $modx в эпоху до MODX3. В этой статье мы рассмотрим использование MODX вне MODX Revolution 3. Большая часть кода такая же, как и в предыдущей статье (прим. переводчика: предыдущая статья не переведена, так как немного не актуальна в рамках перехода на модх3). Основное отличие состоит в том, что MODX Revolution 3 широко использует пространства имен и имеет автозагрузчик для загрузки классов.
Немного о виджетах в административной панели
Добрый день, сегодня хочу немного поговорить об удобстве наших дорогих клиентов. А именно о главной странице административной панели.
Картинка для привлечения внимания:
Картинка для привлечения внимания:
Билдер SQL запросов для modx, minishop2 и TV
Всем привет, просили меня недавно сделать выгрузку со старого сайта на modx с более чем 200к товаров, т.к. я уже давно не работал с modx, абсолютно забыв методы API, а также помня, насколько медленно и ресурсозатратно оно работает было решено писать SQL напрямую и все бы ничего, пока я не увидел структуру tv полей. Руками писать SQL с выборкой необходимых TV было адским адом, и было решено за часик накидать мини билдер SQL запросов
Получился примерно такой в использовании билдер, по мне покрывает 100% моих задач в формировании SQL для выгрузок из modx & ms2:
Если хочется сразу к коду
Получился примерно такой в использовании билдер, по мне покрывает 100% моих задач в формировании SQL для выгрузок из modx & ms2:
$builder = new SimpleBuilder();
$builder->addResourceFields('id', 'pagetitle', 'longtitle')
->addMs2Fields('article', 'price')
->addTvFields('price_opt', 'product_time', 'valute', 'remains', 'product_tax')
->where('deleted', '=', false)
->where('published', '=', true)
->where('class_key', '=', 'msProduct')
->where('remains', '!=', 0)
->whereNotNull('remains')
->whereIn('id', [18559, 18560])
->limit(1)
->offset(1)
;
$sql = $builder->sql();
$products = $modx->query($sql)->fetchAll(PDO::FETCH_ASSOC);
Под катом код и результат SQL который формирует билдерЕсли хочется сразу к коду