Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 122 комментария

Здоров Александр
Здоров Александр
1. да, использовать для фильтрации и для поиска возможно, будет работать через параметр &parents
2. да, фильтровать по опциям можно — параметр filters, вот пример парочки фильтров
&filters=`ms|price:number,msoption|razmer,tv|fil_top_row
по остальному — смотрите статьи в интернете, одно из лучших умений начинающего программиста — гугление
Егор
Егор
а подскажите, пожалуйста, если установлен mSearch2 (для поиска) ваше решение можно использовать параллельно, только для фильтрации? И еще, не нашел в документации слов про «опции». С опциями товаров будет работать? Или у вас все на TV сделано? Так же, если можно, добавьте пожалуйста несколько скриншотов из настройки компонента в документацию:

нажав жёлтую (или оранжевую или вторую слева в колонке Действия)
Мне не хватает силы своего воображения, чтобы представить это. Растерялся :_(

Теперь добавим блок для показа метаинформации: количество результатов, выбранные фильтры, время фильтрации.
А можно простецкий пример на fenom? Сэкономит время.
cronAbs
cronAbs
Вы можете не использовать MinifyX для некоторых компонентов, например ms2. Для этого надо унаследовать класс miniShop2 вместе с методом initialize(), и там где вызывается regClientScript() указать скрипт статично, далее обвернуть его каким-нибудь условием, например для определённых страниц или шаблонов, чтобы не боятся за то, что при обновлении что-то затрётся.

// Пример версионности статичного файла.
public function initialize($ctx = 'web', $scriptProperties = array())
{
    ...
        // Register JS
        $js = trim($this->modx->getOption('ms2_frontend_js'));
        if (!empty($js) && preg_match('/\.js/i', $js)) {
            $jsFile = 'assets/components/minishop2/js/web/minishop.js';
            $jsFileSize = filesize($_SERVER['DOCUMENT_ROOT'].'/'.$jsFile);
            $this->modx->regClientScript($jsFile.'?v='.$jsFileSize);
            ...
        }
    ...
}
miniShop2Config, а также можно обвернуть в условие. Или как в
примере выше добавить конфиги.

По поводу
и продолжает сохранять файлы в /assets/minifyx/ хотя указано /assets/cache/
Тут лучше дождаться ответа разработчика, так как путь assets/components/minifyx/cache обычно идёт по умолчанию, возможно погрешность с вашей стороны или установлен кэш. Логируйте ошибки в журнал и смотрите, что там не так. Да, и ещё указывать из /assets/cache/ нельзя, так как это временная папка, которая очищается.
Ivan K.
Ivan K.
<?php

switch ($modx->event->name) {
    case 'msOnAddToCart':
        // Проверка на контекст
        if ($modx->context->key !== 'web') {
            // Получаем текущие товары в корзине
            $tmp = $cart->get();

            // Получаем id добавленного продукта
            foreach ($tmp as $key => $item) {
                $productId = $item['id'];
                $product = $modx->getObject('msProduct', $productId);
                if ($product) {
                    // Получаем цену для монобренда "my_price_mono"
                    $newPrice = $product->get('my_price_mono');

                    // Проверяем, что цена задана и больше нуля
                    if (!empty($newPrice) && $newPrice > 0) {
                    // Устанавливаем новую цену
                        $tmp[$key]['price'] = $newPrice;
                    } else {
                        // Логгирование ошибки для пустой или некорректной цены
                        $modx->log(modX::LOG_LEVEL_ERROR, 'Invalid or empty my_price_mono for product ID ' . $product->get('id'));
                    }
                }
            }

            // Сохраняем измененную корзину
            $cart->set($tmp);
        }
        break;
}
Ivan K.
Ivan K.
Видимо не дорос я до ваших компонентов))

Не работает у меня мой самописный плагин, который реагирует на событие msOnAddToCart и берет цену из другого поля, не price, в зависимости от контекста. С обычной корзиной, работает, кстати.
Алексей
Алексей
Добрый день. Подскажите пожалуйста как это изменить, настройку не могу найти.

Заказу автоматически ставится «Статус Отменен ID 4» при неуспешной попытке оплаты на эквайринге на сайте тинкофф там где карту вводят.

(неуспешная попытка оплаты — это если не получилось картой оплатить, может при вводе смс-кода клиент ошибся или банковский антифрод не дал оплатить )

Как можно настроить…? Чтобы зря заказу статус отменён не ставился. Это ж и емайл клиенту приходит зря. И у меня на этот статус Отменён Id 4 привязано действие другого компонента Онлайн кассы, он чек возврата автоматически делает.

mspTinkoff 1.0.13-beta Установлено 2023-04-25, 3:38 pm
Год и 2 месяца поздно в тех )
Сергей Карпович
Сергей Карпович
Артур Шевченко
Артур Шевченко
phpthumbon просто сниппет, который генерирует превью и сохраняет на сервере. Если тебе нужно хранить сгенерированные превью на другом сервере, то нужно использовать источники файлов. Modx поддерживает хранилище Amazon S3 из коробки.
Артур Шевченко
Артур Шевченко
Я не использую minishop, фильтр нужен только для статей-ресурсов, фильтрация нужна будет по ТВ полям которые polylang кажется переводит.
В любом случае, если это текстовые значения индексировать их плохая идея, так как по факту значение одно, просто на разных языках. Я бы заменил ключом, а переводы добавил в словари.
Konstantin
Konstantin
Я не использую minishop, фильтр нужен только для статей-ресурсов, фильтрация нужна будет по ТВ полям которые polylang кажется переводит. И да — создаваться ресурсы будут через админку стандартным путем. Спасибо за ответ!
Артур Шевченко
Артур Шевченко
Совместим ли он с Polylang?
Polylang не умеет переводить значения опций, а переводы названий фильтров можно сделать через управление словарями.

Нужно ли делать индексацию каждый раз при создании нового ресурса?
Если ресурс создаётся через админку или стандартный процессор — нет не нужно.