[РЕШЕНО] msFavorites.ids | snippet (модуль msFavorite) ограничение в 10 элементов

Всем Доброго времени суток.
Столкнулся с проблемой снипета {'!msFavorites.ids' | snippet}
[[!+msfavorite.total.default]]  показывает 10, но на самом деле добавлено  19 элементов
Ограничен вывод в 10 элементов.

[[!pdoPage:default=`
        <div><strong>ПУСТО</strong></div>
        `?
        &parents=`0`
        &resources=`{'!msFavorites.ids' | snippet}`
        &element=`msProducts`
        &sortby=``
        &totalVar=`total`
        &tpl=`tpl.msProducts.tovarFavorite`
 
        ]]
    </div>
    [[!+page.nav]]

Как исправить?

Решение.

{set $idss = $_modx->runSnippet('!msFavorites.ids', [  'limit' => '9999' ])  }  
 
 {'!pdoPage' | snippet  : [
	'parents' => '0',
	'element' => 'msProducts',
	'resources' => $idss,
	'sortby' => '',
	'totalVar' => 'total',
	'ajaxMode' => 'button',
	 
]}
Andre
08 марта 2023, 17:35
modx.pro
145
0

Комментарии: 5

Scorp Satex
09 марта 2023, 10:21
0
1. Вызов
{'!msFavorites.ids' | snippet}
— сколько idшников выдает? тоже 10 штук или больше?
2. У pdoPage есть параметры: docs.modx.pro/komponentyi/pdotools/snippetyi/pdopage Один из них — &limit по умолчанию limit и там указано 10. Попробуйте указать там 99.
    Andre
    09 марта 2023, 11:42
    0
    1. выдает ровно 10 id [32,46,55,64,73,84,95,105,114,120]

    2. pdoPage &limit=`999` ставлю но без изминений,
    так как в resources передаю id
    &resources=`{'!msFavorites.ids' | snippet}`  
    что равно 
    &resources=`32,46,55,64,73,84,95,105,114,120`
      Scorp Satex
      09 марта 2023, 23:32
      0
      msFavorites.ids — тоже наследует общие параметры от pdoTools.

      Попробуйте прописать:

      [[!msFavorites.ids?
      &limit=`99`
      ]]
        Andre
        10 марта 2023, 09:41
        0
        Спасибо!
    Andre
    09 марта 2023, 12:09
    0
    msFavorites.ids
    <?php
    /** @var array $scriptProperties */
    /** @var msFavorites $msFavorites */
    if (!$msFavorites = $modx->getService('msfavorites.msFavorites', '', MODX_CORE_PATH . 'components/msfavorites/model/')) {
        return 'Could not load msFavorites class!';
    }
    /** @var pdoFetch $pdoFetch */
    if (!$modx->loadClass('pdofetch', MODX_CORE_PATH . 'components/pdotools/model/pdotools/', false, true)) {
        return false;
    }
    
    if (!empty($returnIds)) {
        $return = 'ids';
    }
    if ($return === 'ids') {
        $returnIds = 1;
    }
    
    if (!isset($list) OR $list == '') {
        $list = 'default';
    }
    if (!isset($type) OR $type == '') {
        $type = 'resource';
    }
    
    $list = is_array($list) ? $list : array_map('trim', explode(',', $list));
    $rows = $modx->runSnippet('msFavorites.objects', array_merge($scriptProperties, ['return' => 'data', 'list' => $list, 'type' => $type, 'groupKey' => 'list']));
    $pls = [
        'list'  => [],
        'total' => [],
    ];
    foreach ($list as $l) {
        $keys = !empty($rows[$l]) ? array_column($rows[$l], 'key') : [];
        $pls['list'][$l] = !empty($keys) ? implode(',', $keys) : '-0';
        $pls['total'][$l] = count($keys);
    }
    $msFavorites->setPlaceholders($pls);
    
    $log = '';
    if ($modx->user->hasSessionContext('mgr') && !empty($showLog)) {
        $log .= '<pre class="msFavoritesLog">' . print_r($pdoFetch->getTime(), 1) . '</pre>';
    }
    $modx->setPlaceholder('msFavorites.log', $log);
    
    $output = [];
    switch ($return) {
        case 'data':
            $output = $pls;
            break;
        case 'json':
            $output = json_encode($pls, true);
            break;
        case 'ids':
        default:
            $output = reset($pls['list']);
            if (!empty($toPlaceholder)) {
                $modx->setPlaceholder($toPlaceholder, $output);
                $output = '';
            }
            break;
    }
    
    return $output;
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5