Евгений Лазарев
С нами с 06 августа 2018; Место в рейтинге пользователей: #417modx_session и mFilter2
Добрый день. На сайте 25к товаров которые фильтруются через mFilter2. Очистка сессий в БД стоит на 24 часа и соответсвет этому. Но заметил, что буквально за 10 часов с пустой до 900мб становится таблица modx_session. Начал смотреть что же там хранится и 95% информации в поле data — это перечисление ID товаров для фильтрации.
Хотя в настройках у меня указано:
Хотя в настройках у меня указано:
'parents' => $_modx->resource.id,
'depth' => 1,
Подскажите как это можно исправить? Зависимые поля в MIGX
Добрый день. Подскажите а есть возможность в migx делать зависимость полей. К примеру у меня 2 поля:
1) Продукты типа listbox с Input Option Values:
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]]
То есть опции модификации зависят напрямую от выбранного продукта? Проблема кэширования
Подскажите пожалуйста какую схему кэширования нужно указать в настройках для интернет магазина с 30к товарами на minishop2 c mFilter2 и SeoFilter. Еще есть mSync для синхронизации товарных позиций из 1С (вдруг это тоже важно). Дело в том, что в какой то момент времени в лог начинает жутко валиться всякая грязь: то файл не найден, то запрос в БД невозможен, по pdoFetch не загружен и так далее. Но как только в ручную кэш почистишь — то тишь да гладь. Может кто сталкивался с таким?
Доступ запрещен
Подскажите разбирающиеся. Делаю связки внешней системы RetailCRM и сайта (miniShop2). При изменении товаров в внешней системе происходит следующее:
1) отправляется запрос на сайт
2) логинюсь под пользователем retail
3) пытаюсь через процессор делать обновление/удаление/создание товаров заказа.
И ничего не происходит. Ошибка прав доступа. При этом если делать под админом (с галочкой «Неограниченные права») все работает, а под тем же админом но без нее то так же доступ запрещен. Что за магия такая может быть? У админа причем ВСЕ доступы есть и в админке он что угодно может делать.
1) отправляется запрос на сайт
2) логинюсь под пользователем retail
3) пытаюсь через процессор делать обновление/удаление/создание товаров заказа.
И ничего не происходит. Ошибка прав доступа. При этом если делать под админом (с галочкой «Неограниченные права») все работает, а под тем же админом но без нее то так же доступ запрещен. Что за магия такая может быть? У админа причем ВСЕ доступы есть и в админке он что угодно может делать.
Как создать дополнительную вкладку на странице ресурса
Добрый день. Подскажите пожалуйста знающие. Как добавить дополнительную вкладку на странице ресурса. На данный момент есть созданный компонент, подключен файл update.class.php наследуемый от ResourceUpdateManagerController. Видел много вариантов:
1) Ext.override(MODx.panel.Resource — не подходит поскольку данные еще не готовы когда включается этот скрипт и получаю ошибку.
2) MODx.addTab(«modx-resource-tabs» — не подходит поскольку вкладку необходимо разместить строго не в конце, и иметь возможность гибко управлять полями на других вкладках
1) Ext.override(MODx.panel.Resource — не подходит поскольку данные еще не готовы когда включается этот скрипт и получаю ошибку.
2) MODx.addTab(«modx-resource-tabs» — не подходит поскольку вкладку необходимо разместить строго не в конце, и иметь возможность гибко управлять полями на других вкладках
Порядок вывода скриптов в админке.
Подскажите пожалуйста, почему скрипты идут гораздо раньше чем 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 Добавление полей в $_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 Выбор пользователя в 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
}
}];
},
Создание своих вкладок в ресурсах
Всем привет. Я только начал поэтому просьба отнестись с пониманием. Кто нибудь знает как добавлять табы в раздел ресурсов для свое плагина. Внутри таба должен быть не грид (таблица) а просто поля как в дополнительных полях.
На данный момент есть схема с расширением класса ресурса по примеру minishop2 но никак не могу понять как вывести значения в поля и потом обработать их сохранение.
Есть хорошая заметка у Ильи, которая подходит (https://ilyaut.ru/cheats/add-tabs-to-the-edit-page-of-the-resource/), но как туда вставить значения не идет в голову.
На данный момент есть схема с расширением класса ресурса по примеру minishop2 но никак не могу понять как вывести значения в поля и потом обработать их сохранение.
Есть хорошая заметка у Ильи, которая подходит (https://ilyaut.ru/cheats/add-tabs-to-the-edit-page-of-the-resource/), но как туда вставить значения не идет в голову.
Как правильно внедриться в mFilter2?
Уважаемые коллеги. Может кто советом поможет. Ситуация такая — работает mFilter2: выводится 20 товаров на странице с стандартной пагинацией в виде кнопок. Нужно чтобы через каждые к примеру 5 товаров выводился баннер (если товаров 20 на странице, то их к примеру 3, если 40 то 6 и т.д.). При чем баннеры разные и зависят от фильтра.
Вывод баннеров понятно можно сделать в tpl написав условие
Сейчас реализован лишь поиск баннеров типа
Вывод баннеров понятно можно сделать в tpl написав условие
{if $banners[$idx]}{$banners[$idx]['image']}{/if}
. Но как сделать чтобы поиск самих баннеров (сам сниппет) происходил 1 раз за запрос фильтра или входа на страницу?Сейчас реализован лишь поиск баннеров типа
{var $banners = 'getBanners' | snippet}
который возвращает список с ключом номера товара после или до которого должен стоять. Но ей Богу не запускать же этот сниппет в каждой tpl.