Всего 123 800 комментариев

Сергей Карпович
30 июня 2024, 10:06
0
Подскажите как показать уведомление только при отправке форм с определенным классом:

Вот так запускаю всплывашку для всех форм, но нужно только для форм с классом form_post
document.addEventListener('si:send:success', (e) => {
    const { action, target, result, headers, Sending } = e.detail;
    Sending.success = (result, target) => {
        Fancybox.close([{ src: "#popup" }]);
        Fancybox.show([{ src: "#success-message", type: "inline" }]);
    }
})
Николай Савин
29 июня 2024, 22:45
0
Насколько я знаю Илья не планирует поддерживать компонент. Он бы с удовольствием передал его приемнику для развития, но таковых не нашлось (если я не ошибаюсь)
vit
vit
29 июня 2024, 21:30
0
Мне кажется самое оптимальное это все сайты объединить в одну админку и не делать кучу лишних движений.
Алексей
29 июня 2024, 15:05
0
Надеюсь ГрандМастер вернёт Сдэк, никто не пишет, просто все понимают надо ждать.
Артур Шевченко
29 июня 2024, 11:29
+1
ваше решение можно использовать параллельно
Можно

С опциями товаров будет работать?
Это настолько само собой разумеется, что я не стал писать.

Мне не хватает силы своего воображения, чтобы представить это.
А зачем это воображать? Установите компонент на тестовом сайте на modhost и посмотрите.

А можно простецкий пример на fenom?
Читайте документацию
Егор
28 июня 2024, 09:42
0
спасибо за ответ. На счет «гугления» — я пытаюсь делать на zoomx. Некоторые вещи не смог победить с ним, вроде vendor.name в чанке. Все время выводит единицу. Как только не пробовал. Да и тот же mSearch2, не получилось у меня вывести количество результатов. Гуглил, использовал и total, и totalvar…

Я предполагаю, что если бы многие были чуточку «добрее», не составило бы труда сделать примеры или дать больше информации. Кроме того, зачем я, или кто-нибудь еще будет писать в поддержку автору материала, когда перед глазами будут готовые примеры хотя бы на fenom. Но видимо, им нравится постоянно отвечать, вместо того, чтобы сделать подробную документацию один раз :)
Здоров Александр
28 июня 2024, 09:41
+1
я извиняюсь, не глянул что ветка про другой компонент совсем, весь ответ про стандартный mfilter

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

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

Теперь добавим блок для показа метаинформации: количество результатов, выбранные фильтры, время фильтрации.
А можно простецкий пример на fenom? Сэкономит время.
Кровельный
27 июня 2024, 18:41
0
Вы можете не использовать 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/ нельзя, так как это временная папка, которая очищается.
Максим
27 июня 2024, 12:28
0
Проверьте существует ли эта папка (/assets/cache/).
Проверьте путь на опечатки.
Проверьте права на запись у этой папки (может ли пользователь, из-под которого запускается php, записывать в неё).
Ivan K.
27 июня 2024, 09:13
0
<?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.
27 июня 2024, 01:48
0
Видимо не дорос я до ваших компонентов))

Не работает у меня мой самописный плагин, который реагирует на событие msOnAddToCart и берет цену из другого поля, не price, в зависимости от контекста. С обычной корзиной, работает, кстати.
Володя
26 июня 2024, 14:53
0
Добрый.
Можно создать настройку ms2_payment_tinkoff_status_cancel и указать там несуществующий статус, но не 0. Должно сработать.
Вячеслав Варов
26 июня 2024, 14:38
0
Почему-то сниппет игнорирует указанные в настройках лиректориии и продолжает сохранять файлы в /assets/minifyx/ хотя указано /assets/cache/
Алексей
26 июня 2024, 10:39
0
Вобщем есть ли системная настройка у mpsTinkoff, которая отвечает за автоматическое включение статуса Заказ Отменён id 4?
Алексей
26 июня 2024, 10:14
0
Добрый день. Подскажите пожалуйста как это изменить, настройку не могу найти.

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

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

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

mspTinkoff 1.0.13-beta Установлено 2023-04-25, 3:38 pm
Год и 2 месяца поздно в тех )
Сергей Карпович
25 июня 2024, 20:33
0
Polylang не умеет переводить значения опций, а переводы названий фильтров можно сделать через управление словарями.
Значения опций на другом языке указывается в локализации, просто заполняются на нужном языке
Скрин: disk.yandex.ru/d/rzQVfNHcuQmSAg