Дмитрий Середюк

Дмитрий Середюк

С нами с 07 декабря 2014; Место в рейтинге пользователей: #211

[MODX/Laravel] DevDocker - удобная разработка под Linux

Всем приветики, в общем ни для кого не секрет что докер — это шикарная магическая штука и где то там его активно используют но не в modx конечно, где код до сих пор пишут в браузере. В общем 4 года я был в поиске оптимального решения как правильно и удобно вести разработку проектов (раньше на MODX, сейчас на фреймворках) и в итоге могу точно заявить, что я нашел идеальное решение! Под катом я расскажу все что я пробовал за 4 года и минусы каждого решения, ну а не терпеливые могут просто посмотреть видео сборки, которая решает их все или перейти сразу к гитхабу:

Видео

GitHub

Pavel Zarubin
21 апреля 2020, 02:12
modx.pro
7
1 933
+27

Избавляемся от ошибки «modAction support is deprecated» в старых пакетах

Если у вас есть дополнение, которое вы делали ещё на первой версии modExtra, то при его установке сейчас вы будете видеть такое сообщение об ошибке:

modAction support is deprecated since version 2.3.0.
Support for modAction has been replaced with routing based
on a namespace and action name. Please update the extra
with the namespace simpleupdater to the routing based system.

Исправить её не сложно, но раньше всё не доходили руки.
Илья Уткин
25 марта 2019, 11:43
modx.pro
11
10 624
+13

Как формируется menuindex?

Приветствую

Не до конца понимаю алгоритм работы menuindex ресурса в MODX. Как я понял, menuindex отображает порядок следования материалов в меню или в его ветках, но есть одна вещь, в которой прошу вашего совета.

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

Второй пункт меню в админке может быть обозначен 1, 2 или 3 (на скриншоте),

а в базе данных может отличаться на одну цифру от той, что указана в админке. Ну ладно, значение в админку подставляется из БД, значит, дело в кеше. Предположим, что мы его почистили и в админке стали отображаться фактические данные из админки, но и тут есть странность. В БД могут быть два одинаковых menuindex или пропуски между ними (все на втором скриншоте).


Почему так происходит, поясните пожалуйста такое поседение?
weranda
20 марта 2019, 10:33
modx.pro
1
1 105
0

SMSC.ru хук

Всем привет, хотела запостить в modstore, но там уже есть похожие платные дополнения.
Хук для FormIt, который отправляет SMS.
Нужно добавить _smschook_ в _hooks_ вызова сниппета (перед mail). В системных настройках Formit указать ключи:

  • Логин — [[++smschook_login]]
  • Пароль — [[++smschook_password]]
  • Телефоны — [[++smschook_phones]] в формате КОД СТРАНЫ + НОМЕР ТЕЛЕФОНА (без +), можно указать несколько через запятую
  • smschook_tpl — чанк по аналогии чанка для писем
  • smschook_phones — сюда можно передать телефоны
Пример вызова:
{'!AjaxForm' | snippet : [
     'form' => 'tpl.AjaxForm.example',
    'emailTpl' => 'contactEmailTpl',
    'hooks' => 'smschook,email',
    'emailFrom' => $_modx->config.emailsender,
    'emailFromName' => $_modx->config.site_name,
    'emailSubject' => 'Сообщение с сайта' ~ $_modx->config.site_name,
    'emailTo' => $_modx->config.emailsender,
    'validate' => 'name:equired',
     'smschook_tpl' => 'smscTpl',
]}
yani
13 февраля 2019, 21:46
modx.pro
23
1 760
+26

Как вывести новое поле в админке у заказов?

Написал такой плагин для нового поля и оно работает выводится во вкладке адрес и его можно редактировать.

<?php
switch ($modx->event->name) {
    
    case 'OnMODXInit':
        $modx->loadClass('msOrder');
        $modx->map['msOrder']['fields']['speed']    = '';
        $modx->map['msOrder']['fieldMeta']['speed'] = array(
            'dbtype' => 'varchar',
            'precision' => 100,
            'phptype' => 'string',
            'null' => true,
            'default' => ''
            
        );
      
    case 'msOnManagerCustomCssJs':
        if ($page != 'orders')
            return;
        $modx->controller->addHtml("
            <script type='text/javascript'>
Ext.ComponentMgr.onAvailable('minishop2-window-order-update', function(){

    var newField = {  
        border: false,
        layout: 'column',
        items: [
            {
                border: false,
                columnWidth: 0.5,
                autoHeight: true,
                layout: 'form',
                items: {
                    xtype: 'textfield',
                    name: 'speed',
                    fieldLabel: 'Скорость доставки',
                    anchor: '100%'
                }
            }
        ],
        autoHeight: true,
    }
    this.fields.items[2].items.unshift(newField);
});            
            </script>");
        break;        
}
Но не могу вывести этот новый столбик в таблице заказы в админке
Не подскажите, как это сделать?
Вася
28 декабря 2018, 00:47
modx.pro
1
678
0

[tvSuperSelect] 1.2.2 Кастомайз по полной программе!


Новый функционал позволяет навесить свой процессор на получение значений для любого ТВ с типом tvSuperSelect. Теперь мы можем вывести абсолютно любые значения в этом ТВ, которые передадим через наш процессор. Предлагаю рассмотреть подробнее, как это делается и что это нам даст.
Павел Гвоздь
13 сентября 2018, 10:54
modx.pro
20
2 963
+23

Ускоряем массовое обновление ресурсов в 3 раза

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


Так, например, я столкнулся с куском кода в ядре, который увеличивает время выгрузки большого кол-ва товаров в ~3 раза, выполняя одно и то же ресурсоёмкое действие каждый раз, когда скрипт запускает обновление ресурса через процессор modResourceUpdateProcessor.

Сразу оговорю тот момент, что я не считаю этот кусок кода в ядре лишним или вредным, нет! Я полагаю, что этот код при обновлении большого кол-ва ресурсов можно выполнить самостоятельно по окончании работы скрипта выгрузки.

Я говорю вот об этой строчке кода. Давайте попробуем разобраться, что же с ней не так!
Павел Гвоздь
11 сентября 2018, 14:29
modx.pro
28
2 177
+19

mixedImage - custom TV

mixedImage — modx custom TV

Версия 2.0:



— Изменен внешний вид

— Добавлены новые возможности:

Возможность руками вписать путь к файлу
Новая настройка при создании TV: Удаление файла, если выставлено «Да», то при очистке поля файл физически удаляется с сервера
Открывает сразу папку указаную в настройках TV (от корня источника файлов)

— Поправлено несколько небольших багов:

работа системной настройки «Загружать только при редактировании»
опечатки в лексиконах
правильный текст ошибок
ошибка транслитерации если файл уже существует

_______________________________ _________________________________

Добавлена опция для ресайза загружаемого изображения

Добавляет новый тип TV поля: Смешанная загрузка файла/Mixed Image Input




Является сместью FastUploadTV и стандартной загрузки файлов, часть кода взята из FastUploadTV
Евгений Webinmd
15 марта 2018, 12:09
modx.pro
8
13 646
+13

Автоматическая смена источника ms2gallery в зависимости от шаблона

Когда у вас есть зависимость между источником файлов ms2gallery и шаблоном страницы, а желания переключать его вручную — нет.
Максим Кузнецов
05 марта 2018, 20:57
modx.pro
14
1 695
+7

Экспорт товаров Minishop2 в CSV – без программирования

Задача: экспорт товаров в CSV с возможностью выгрузки всех опций или tv как захочется.
Сложность: 0 знаний в php :-)
Решение:
  1. Создаем новый ресурс: > опубликован > не показывать в меню > тип содержимого: HTML > не использовать HTML редактор > заморозить uri c .csv в конце.
  2. Вызываем msProducts с нужными настройками, у меня так:
    {'!msProducts'|snippet:[
        'hideContainers' => 1,
        'parents' => 3,
        'limit' => 150,
        'depth' => 3,
        'includeTV' => '1',
        'includeTVs' => 'video',
        'sortby' => 'menuindex',
        'sortdir' => 'DESC',
        'showLog' => 1,
        'tplFirst' => '@FILE chunks/export/first_row_drom.tpl',
        'tpl' => '@FILE chunks/export/eng_drom.tpl'
        ]}
  3. Сохраняем
Konstantin
11 января 2018, 09:30
modx.pro
16
7 528
+5