Евгений Лазарев

Евгений Лазарев

С нами с 06 августа 2018; Место в рейтинге пользователей: #417

modx_session и mFilter2

Добрый день. На сайте 25к товаров которые фильтруются через mFilter2. Очистка сессий в БД стоит на 24 часа и соответсвет этому. Но заметил, что буквально за 10 часов с пустой до 900мб становится таблица modx_session. Начал смотреть что же там хранится и 95% информации в поле data — это перечисление ID товаров для фильтрации.

Хотя в настройках у меня указано:
'parents' => $_modx->resource.id,
                'depth' => 1,
Подскажите как это можно исправить?
Евгений Лазарев
15 декабря 2021, 12:20
modx.pro
323
0

Зависимые поля в MIGX

Добрый день. Подскажите а есть возможность в migx делать зависимость полей. К примеру у меня 2 поля:
1) Продукты типа listbox с Input Option Values:
@SELECT CONCAT(pagetitle,' - ',id), id FROM modx_site_content WHERE template=6 AND deleted=0
2) Модификации типа listbox с Input Option Values:
@SELECT CONCAT(name,' - ',id), id FROM modx_msop_modifications WHERE active=1 AND rid=[[+id]]
То есть опции модификации зависят напрямую от выбранного продукта?
Евгений Лазарев
08 декабря 2021, 18:59
modx.pro
916
0

Проблема кэширования

Подскажите пожалуйста какую схему кэширования нужно указать в настройках для интернет магазина с 30к товарами на minishop2 c mFilter2 и SeoFilter. Еще есть mSync для синхронизации товарных позиций из 1С (вдруг это тоже важно). Дело в том, что в какой то момент времени в лог начинает жутко валиться всякая грязь: то файл не найден, то запрос в БД невозможен, по pdoFetch не загружен и так далее. Но как только в ручную кэш почистишь — то тишь да гладь. Может кто сталкивался с таким?
Евгений Лазарев
17 ноября 2021, 12:35
modx.pro
441
0

Доступ запрещен

Подскажите разбирающиеся. Делаю связки внешней системы RetailCRM и сайта (miniShop2). При изменении товаров в внешней системе происходит следующее:
1) отправляется запрос на сайт
2) логинюсь под пользователем retail
3) пытаюсь через процессор делать обновление/удаление/создание товаров заказа.

И ничего не происходит. Ошибка прав доступа. При этом если делать под админом (с галочкой «Неограниченные права») все работает, а под тем же админом но без нее то так же доступ запрещен. Что за магия такая может быть? У админа причем ВСЕ доступы есть и в админке он что угодно может делать.
Евгений Лазарев
17 августа 2021, 18:48
modx.pro
527
0

Как создать дополнительную вкладку на странице ресурса

Добрый день. Подскажите пожалуйста знающие. Как добавить дополнительную вкладку на странице ресурса. На данный момент есть созданный компонент, подключен файл update.class.php наследуемый от ResourceUpdateManagerController. Видел много вариантов:
1) Ext.override(MODx.panel.Resource — не подходит поскольку данные еще не готовы когда включается этот скрипт и получаю ошибку.
2) MODx.addTab(«modx-resource-tabs» — не подходит поскольку вкладку необходимо разместить строго не в конце, и иметь возможность гибко управлять полями на других вкладках
Евгений Лазарев
19 июля 2021, 16:32
modx.pro
374
0

Порядок вывода скриптов в админке.

Подскажите пожалуйста, почему скрипты идут гораздо раньше чем html? Код моего update.class.php (создан потому что у меня есть класс наследуемый от modResource)
public function loadCustomCssJs()
    {
        $assetsUrl = $this->helpDesk->config['assetsUrl'];
        $properties = $this->modx->getObject('hdOrderData', $this->resource->get('id'));
        parent::loadCustomCssJs();
        $this->addHtml('
        <script type="text/javascript">
        Ext.onReady(function() {
            helpDesk.config = '.json_encode($this->helpDesk->config).';
            helpDesk.config.connector_url = "'.$this->helpDesk->config['connectorUrl'].'";
            helpDesk.record = '.json_encode($properties->toArray()).';
        });
        </script>');
        $this->addLastJavascript($assetsUrl . 'js/mgr/helpdesk.js');
        $this->addLastJavascript($assetsUrl . 'js/mgr/resource/tab.js');
    }
В дереве addHtml гораздо ниже чем addLastJavascript. отсюда у меня ошибка, поскольку не могу подхватить данные необходимые в tab.js
Евгений Лазарев
17 июля 2021, 17:20
modx.pro
444
0

Добавление полей в $_modx->resource.

Подскажите может кто сталкивался. Пишу плагин почти в слепую ориентируясь на minishop2. Создал необходимы таблицы:
<object class="hdOrder" extends="modResource">
        <composite alias="Data" class="hdOrderData" local="id" foreign="id" cardinality="one" owner="local"/>
    </object>

    <object class="hdOrderData" table="hd_orders" extends="xPDOSimpleObject">
        <field key="contact" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="true"/>

        <index alias="contact" name="contact" primary="false" unique="false" type="BTREE">
            <column key="contact" length="" collation="A" null="false"/>
        </index>

        <aggregate alias="Order" class="hdOrder" local="id" foreign="id" cardinality="one" owner="foreign"/>
    </object>
Хочу вывести значения переменных из таблицы hdOrderData на странице типа $_modx->resource.article, но не выводится. Само присоединение сделано через плагин
case 'OnLoadWebDocument':
        // Set product fields as [[*resource]] tags
        if ($modx->resource->get('template') === 7) {
            if ($dataMeta = $modx->getFieldMeta('hdOrderData')) {
                unset($dataMeta['id']);
                $modx->resource->_fieldMeta = array_merge(
                    $modx->resource->_fieldMeta,
                    $dataMeta
                );
            }
        }
        break;
Нужен вывод $_modx->resource.contact
Евгений Лазарев
08 июня 2021, 18:12
modx.pro
1
666
-1

Выбор пользователя в select ExtJS

Добрый день. Подключил селекты стандартные, но не могу никак понять какой параметр указать чтобы пользователь с текущим id отображался в списке. Просто открываешь окно изменения и select пустой.
getFields: function (config) {
        return [{
            xtype: 'modx-combo-user',
            fieldLabel: _('hd_helper_master'),
            name: 'master',
            value: config.id + '-master',
            anchor: '100%',
            allowBlank: false,
            displayField: 'fullname',
            valueField: 'id',
            fields: ['fullname','id'],
            baseParams: {
                action: 'security/user/getlist',
                usergroup: 4
            }
        }];
    },
Евгений Лазарев
02 июня 2021, 17:45
modx.pro
424
0

Создание своих вкладок в ресурсах

Всем привет. Я только начал поэтому просьба отнестись с пониманием. Кто нибудь знает как добавлять табы в раздел ресурсов для свое плагина. Внутри таба должен быть не грид (таблица) а просто поля как в дополнительных полях.

На данный момент есть схема с расширением класса ресурса по примеру minishop2 но никак не могу понять как вывести значения в поля и потом обработать их сохранение.

Есть хорошая заметка у Ильи, которая подходит (https://ilyaut.ru/cheats/add-tabs-to-the-edit-page-of-the-resource/), но как туда вставить значения не идет в голову.
Евгений Лазарев
26 февраля 2021, 13:26
modx.pro
376
0

Как правильно внедриться в mFilter2?

Уважаемые коллеги. Может кто советом поможет. Ситуация такая — работает mFilter2: выводится 20 товаров на странице с стандартной пагинацией в виде кнопок. Нужно чтобы через каждые к примеру 5 товаров выводился баннер (если товаров 20 на странице, то их к примеру 3, если 40 то 6 и т.д.). При чем баннеры разные и зависят от фильтра.
Вывод баннеров понятно можно сделать в tpl написав условие
{if $banners[$idx]}{$banners[$idx]['image']}{/if}
. Но как сделать чтобы поиск самих баннеров (сам сниппет) происходил 1 раз за запрос фильтра или входа на страницу?

Сейчас реализован лишь поиск баннеров типа
{var $banners = 'getBanners' | snippet}
который возвращает список с ключом номера товара после или до которого должен стоять. Но ей Богу не запускать же этот сниппет в каждой tpl.
Евгений Лазарев
19 декабря 2020, 20:11
modx.pro
516
0