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

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}
это ваши переменные?
Lori
02 декабря 2020, 12:03
0
извини за назойливость. я все таки смог изменить значение weight и теперь переименовал эту графу. теперь мне нужно вывести разницу total_price и total.weight, но когда я пишу в чанке так:
{$total.cart_cost - $total.cart_weight}
то у меня выводится либо 0 либо 1. Подскажи как сделать такую простую вещь?
Артур Шевченко
02 декабря 2020, 11:41
0
{set $total = $_modx->runSnippet('pdoResources', ['parents'=>'2', 'setTotal' => '1', 'tpl' => 'tpl.pdo-more'])}
Это не работает, не знаю почему, проще написать свой модификатор, который будет возвращать количество дочерних элементов типа такого назовем его getCountRes
return count($modx->getCollection('modResource', array('parent' => $parent)));
В шаблоне
{set $total = $_modx->runSnippet('getCountRes', ['parent'=>'2'])}
{if $_modx->resource.menuindex < $total - 3}
{set $offset = $_modx->resource.menuindex}
{else}
{set $offset = 0}
{/if}
{'!pdoResources' | snippet:[
'parents'=>2,
'limit'=>3,
'depth'=>10,
'tpl'=>'tpl.pdo-more',
'includeTVs'=>'global-video,img',
'resources'=>'-'~$_modx->resource.id,
'sortby'=>'publishedon',
'sortdir'=>'DESC',
'offset'=>$offset
]}
Владислав
02 декабря 2020, 11:21
0
Сейчас вот так вставляю в шаблон страницы:
{set $total = $_modx->runSnippet('pdoResources', ['parents'=>'2', 'setTotal' => '1', 'tpl' => 'tpl.pdo-more'])}
{if $_modx->resource.menuindex < $total — 3}
{set $offset = $_modx->resource.menuindex}
{else}
{set $offset = 0}
{/if}
Владислав
02 декабря 2020, 11:20
0
Я понимаю, но Ваш код вызова не работает, я уже все параметры fenom Включил
Lori
02 декабря 2020, 11:18
0
да, на вкладке элементы, галочку давно поставил
Артур Шевченко
02 декабря 2020, 11:16
0
обычный вызов не понимает что ты ему переменную передаешь.
Артур Шевченко
02 декабря 2020, 11:16
0
Это логично, надо через fenom вызывать.
Артур Шевченко
02 декабря 2020, 11:15
0
Я только что всё проверил всё работает. Ты плагин создавал в админке на вкладке элементы? Вот тут галочку поставил yadi.sk/i/xsqoAy8g1mG2LA?