Всего 125 687 комментариев

Дмитрий Беляков
02 декабря 2020, 13:41
0
Ошибок в логе браузера нет. Кидает просто на страницу msgetorder с номером заказа.
Vladimir Alekhin
02 декабря 2020, 13:40
0
напишу решение, вдруг кому будет полезно.
xtype для combobox (путь: assets/components/МОЙКОМПОНЕНТ/js/mgr/widgets/МОЙГРИД.grid.js)

//Custom ProjectResources combobox
МОЕПРИЛОЖЕНИЕ.utils.DbrProjectRes = function(config) {
    config = config || {};
    Ext.applyIf(config,{
        
        name: 'project_id'
        ,hiddenName: 'project_id'
        ,displayField: 'pagetitle'
        ,valueField: 'id'
        ,fields: ['id','pagetitle']
        ,pageSize: 20
        ,url: МОЕПРИЛОЖЕНИЕ.config.connectorUrl
        ,baseParams: {
            action: 'mgr/МОЙКОМПОНЕНТ/getList'
            ,parent: '21948'     //передаем parent id для выборки потомков по этому родителю
        }
        ,typeAhead: true
        ,editable: true
        

    });
    МОЕПРИЛОЖЕНИЕ.utils.DbrProjectRes.superclass.constructor.call(this,config);
};
Ext.extend(МОЕПРИЛОЖЕНИЕ.utils.DbrProjectRes,MODx.combo.ComboBox);
Ext.reg('dbr-project-combo',МОЕПРИЛОЖЕНИЕ.utils.DbrProjectRes);
Код процессора (путь: core/components/МОЙКОМПОНЕНТ/processors/mgr/dbrresource/getlist.class.php):

<?php
class DbrResourceCreateProcessor extends modObjectGetListProcessor {
   
    public $classKey = 'modResource';
    public $defaultSortField = 'id';
    public $defaultSortDirection = 'ASC';
    public $checkListPermission = true;
    public function prepareQueryBeforeCount(xPDOQuery $c) {
        $parent = $this->getProperty('parent');
        if (!empty($parent)) {
            $c->where(array('parent' => $parent));
        }
        return $c;
    }
}
return 'DbrResourceCreateProcessor';
Спасибо Наумову Алексею за столь ценную подсказку!
Lori
02 декабря 2020, 13:40
0
не работает, выводит странное число
Дмитрий Беляков
02 декабря 2020, 13:39
0
Modx 2.8.1
Minishop2 последняя версия
Сайт на https
Scorp Satex
02 декабря 2020, 13:37
0
Версии Modx, MiniShop2, php? Ошибки в логе modx? Ошибки в логе браузера? Сайт работает с https?
Vladimir Alekhin
02 декабря 2020, 13:05
0
Спасибо большое, стало чуть понятнее.

Я на другой комментарий задал вопрос. А как правильнее с точки зрения modx наследоваться от
modObjectGetListProcessor
или
modResourceGetListProcessor
Lori
02 декабря 2020, 13:03
0
эти переменные были в шаблоне tpl.msGetOrder — не я их создавал. Да и в любом случае, даже используя просто $total.weight и $total.cost я получаю тоже самое. Не знаю как преобразовать строку в число
Vladimir Alekhin
02 декабря 2020, 13:03
0
Понял, похоже стандартный процессор getlist не может выбрать по родителю.

А как будет правильно, наследовать новый процессор от
class modResourceMyGetListProcessor extends modResourceGetListProcessor
или создать новый процессор что-то вроде:

<?php
class DbrIdeatankReourceGetListProcessor extends modObjectGetListProcessor {
    public $languageTopics = array('debureaucratization:dbrideatank');
    public $classKey = 'ModReource';
    public $defaultSortField = 'id';
    public $defaultSortDirection = 'ASC';
    public $checkListPermission = true;
    public function prepareQueryBeforeCount(xPDOQuery $c) {
        $parent = $this->getProperty('parent');
        if (!empty($parent)) {
            $c->where(array('parent:IS' => $parent));
        }
        return $c;
    }
}
return 'DbrIdeatankResourceGetListProcessor';
Артур Шевченко
02 декабря 2020, 12:56
0
$total.count вот общее количество, а вот $total.weight общий вес. Откуда $total.cart_cost и $total.cart_weight?
Lori
02 декабря 2020, 12:53
0
вроде понял. обе переменные пусть и принимают числовые значения, но являются строками. нужно просто конвертировать строки в числа перед вычислением
Наумов Алексей
02 декабря 2020, 12:50
+1
Ну вот у вас:
,baseParams: {
            action: 'resource/getlist'
            ,parent: '21948'
        }
parent вы передали, он будет доступен в процессоре.

Я делал всегда свой процессор, не пользовал стандартный, например это будет core/components/МОЙКОМПОНЕНТ/processors/mgr/resource/getcategories.class.php
, тогда
action: 'mgr/resource/getcategories'
а уже в этом процессоре возвращал что нужно
Lori
02 декабря 2020, 12:44
0
это же общий вес и общая стоимость товаров в корзине. Если выводить просто по отдельности, то нормальные числа, но как только делаю математические операции, то они оба будто определяются как 1.
Артур Шевченко
02 декабря 2020, 12:42
0
Откуда в массиве $total взялись cart_cost и cart_weight?
Андрей
02 декабря 2020, 12:40
0
А можно удалить ссылки. но при это оставив анкор ссылок?
Lori
02 декабря 2020, 12:35
0
да, верно. при этом выводится 0, если $total.cart_cost меньше $total.cart_weight, и выводится 1 если наоборот
Артур Шевченко
02 декабря 2020, 12:07
0
{$total.cart_cost - $total.cart_weight}
это ваши переменные?