Всего 123 791 комментарий

Артур Шевченко
19 января 2024, 13:46
+1
Фильтр работает через ajax, параметр меняется в JS, поэтому и тебе нужно менять свою переменную в JS.
Володя
19 января 2024, 10:54
+1
ну и сам сниппет примерно такой
<?php

/** @var modX $modx */
/** @var array $scriptProperties */

$cacheKey = $modx->getOption('cacheKey', $scriptProperties, 'cache_key', true);
$cacheTime = $modx->getOption('cacheTime', $scriptProperties, 3600);

/** @var modCacheManager $cacheManager */
$cacheManager = $modx->getCacheManager();
if ($output = $cacheManager->get($cacheKey)) {
    return $output;
}

// если нет в кеше получаем $output и сохраняем в кеш

$cacheManager->set($cacheKey, $output, $cacheTime);

return $output;
Володя
19 января 2024, 10:51
+1
но вообще как то странно, я бы сделал сниппет обертку для сохранения в кеш, чтото типа
{var $output= 'saveToCache'|snippet:[
    'element' => 'msProducts',
    'cacheKey' => 'cacheKey',
    'cacheTime' => 3600
    ....
]}
{$output}
Володя
19 января 2024, 10:48
+1
в начале попробуй добавить
$modx->switchContext('web');
vit
vit
19 января 2024, 09:47
0
У меня get работает. Но фильтр работает без перезагрузки и из за этого get остается старым.
Задача записать выбранное значение в переменную и что бы при изменении фильтра она менялась
Артур Шевченко
19 января 2024, 09:19
0
mFilter2 при изменениях фильтров меняет и get параметр соответствующий. Если у тебя это не работает проверь разметку в чанке и наличие ошибок в консоли браузера.
Сергей
18 января 2024, 17:23
0
Точно! Так сработало. Очевидное — невероятно, как говорится. Спасибо за наводку, хорошего дня!
Наумов Алексей
18 января 2024, 16:29
+1
Я поэтому и написал, что попробуйте указать там не порядковый №1,2..N, а id ресурса (Страны).
Сергей
18 января 2024, 15:49
0
Привет! Спасибо за совет. А разве при выводе ресурсов страны этому блоку получится присвоить значение атрибута data-partner равное значение атрибуту data-show-partner из меню? Не возникнет ситуации, когда они просто не совпадут, и логика показа сломается?
Наумов Алексей
18 января 2024, 15:29
+1
Сначала выводишь ту разметку, что в nav при помощи pdoResources, хотя можно и через pdoMenu (что наверное даже логичнее).
Для data-show-partner используешь, к примеру, id ресурса через [[+id]], либо [[+idx]]

А потом для каждой страны делаешь свой вызов pdoResources, чтобы вывести дочерние элементы.
Хотя, может получится опять же все завернуть в один вызов pdoMenu (смотря, насколько там сложная верстка).
iWatchYouFromAfar
18 января 2024, 14:11
0
Ну вы же и делаете сейчас новый фронт на Vue — соответственно на него у вас в любом случае уйдет год, не важно откуда данные приходят, с вашего сниппета или с любого другого реста.

Значит основная проблема — бекенд. У вас API для 200 таблиц написан на MODx, где у вас все таки связаны руки. Значит перенести эту логику в условную лару не составит труда. Это же просто работа с данными которые лежат где-то в БД.

Зачем ночами сидеть и пытаться запихать на фронт сайта, который сделан на MODx — Vue, я хз. Еще вам придется решать вопросы зависимости компонентов от jQuery.

Ну… Это так, мысли в слух. Я не удивлен если у тебя на сайте будет и Vue и jQuery и что-то на ванильке. Франкеншейты они такие…
Артур Шевченко
18 января 2024, 13:40
0
Скинь строку на которой выскакивает это предупреждение.
Купчинский Михаил
18 января 2024, 12:16
0
Добрый день!
При использовании компонента постоянно выскакивает ошибка
/var/www/u2436897/data/www/..............ru/core/cache/includes/elements/modx/revolution/modplugin/11.include.cache.php 14 PHP warning: Undefined array key «SendIt»