[РЕШЕНО] 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',
	 
]}
Денис Усачев
08 марта 2023, 17:35
modx.pro
622
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.
    Денис Усачев
    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`
      ]]
Денис Усачев
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