MyFavorites

MyFavorites – компонент, который позволяет добавить на сайт списки избранного. Основной упор сделан на работу с анонимными пользователями, аналитикой и защитой от ботов.

Основные возможности компонента
  • Создание различных списков избранного.
  • Работа как с анонимными пользователями, так и только с зарегистрированными.
  • Пользовательские списки избранного (пользователь может сам создавать/переименовывать и удалять свои списки).
  • Очистка сессий сайта и удаление кук пользователем не влияют на список избранного у анонимных пользователей.
  • Идентификация анонимного пользователя и, как следствие, его списка избранного, посетившего сайт с разных браузеров (метод не срабатывает во всех 100% случаев. На сайте должна быть подключена Google Analytics или Яндекс.Метрика).
  • Привязка списка избранного анонимного пользователя к зарегистрированному пользователю при его авторизации или создании заказа на сайте.
  • Синхронизация избранного на разных устройствах/браузерах, если ранее не было определено, что они принадлежат одному и тому же пользователю.
  • Передача данных о событиях добавления/удаления и очистки списка избранного в Google Analytics и Яндекс.Метрика.
  • Черные списки IP.
  • Защита от CSRF-атаки.
  • Защита с помощью reCAPTCHA 3.
  • Лимит на запросы для анонимных и зарегистрированных пользователей.
  • Уведомление на Email о подозрительной активности пользователя.
  • Доступ в админке сайта к информации о пользователях, их списках избранного и активности.
  • Экспорт информации о пользователях и избранном в CSV, XLSX и ODS.
  • Корректная работа с Cloudflare.
  • Быстрая кастомизация стилей через CSS переменные.
  • Возможность подписываться на JS события компонента для кастомизации его работы.
  • Нативный JavaScript.
Prihod
24 мая 2024, 16:31
modx.pro
2
1 271
+11

Zoomx получить данные родителя на странице товара

Здравствуйте!

Кто нибудь в этой игре «Zoomx» проходил квест: «Получить данные родителя на странице товара»? в шаблоне product.tpl?

Да, можно попробовать вывести через «pdoCrumbs», или другие… А что-нибудь попроще, как например на fenom?

Вроде:

{7 | resource: 'tv_name'}

или

{set $parent_id = $_modx->resource.parent} //Получаем id родителя
{set $grand_parent_id  = $parent_id | resource : 'parent' } //Получаем id дедушки
{$grand_parent_id  | resource : 'pagetitle'} //выводим заголовок
Егор
24 мая 2024, 16:26
modx.pro
333
0

Modhost и облачное хранилище S3 (timeweb cloud)

Всем доброго времени суток.

Как многие, наверное, видели — в админке для источника файлов можно указать «Тип источника файлов» -> Amazon S3 (Использует хранилище Amazon S3.). Не знаю, работает ли сервера амазона в РФ, и как их оплачивать заметка не об этом.

Смысл в том, что используя технологию «Amazon S3» (облачное объектное хранилище) можно хранить, например, в том числе, медиа файлы (картинки, изображения) не на modhost, а на стороннем сервисе (ничоси). Для сайтов, которые используют большое количество изображений в высоком разрешении это отличное решение. НО!
Егор
24 мая 2024, 04:35
modx.pro
2
447
+2

Проблема с контекстами Babel

Здравствуйте! у меня есть 5 контекстов: en|ua|ru|fr|de. Проблема заключается в том, что если я в web версии в адресной строке прописываю такую ссылку www.site.com/franchiza, то меня перебрасывает на 404 страницу франц. версии. Код htaccess и роутинга:
htaccess
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(en|ua|ru|fr|de)/favicon.ico$ favicon.ico [L,QSA]


RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(en|ua|ru|fr|de)/assets(.*)$ assets$2 [L,QSA]


RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(en|ua|ru|fr|de)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
и Роутинг
<?php
if($modx->context->get('key') != "mgr"){
                switch ($_REQUEST['cultureKey']) {
                        case 'ua':
                        /* switch the context */
                        $modx->switchContext('ua');
                        break;
                        case 'fr':
                        /* switch the context */
                        $modx->switchContext('fr');
                        break;
                    default:
                        /* Set the default context here */
                        $modx->switchContext('web');
                        break;
                }
                unset($_GET['cultureKey']);
            }
Vladyslav
23 мая 2024, 20:44
modx.pro
1 500
0

Вывод товаров mFilter2

Добрый вечер, подскажите, люди добрые, как реализовать (и возможно ли это в принципе) вывод только тех товаров, у которых есть заполненное tv поле?
Андрей
23 мая 2024, 18:38
modx.pro
319
0

Как запретить повторное добавление товара в корзину?

Доброго времени суток!
На сайте отключен выбор количества товара и в корзину всегда добавляется один (так нужно заказчику).

Но если посетитель кликнет по кнопке дважды — справа от корзины появится цифра два, а перейдя в корзину посетитель увидит там один товар.

Получается путаница.

В идеале конечно после добавления в корзину менять кнопку «в корзину» на ссылку «перейти в корзину», но я не нашел решение, которое будет работать даже после перезагрузки страницы.

Возможно ли как-то игнорировать повторное нажатие кнопки? Или может все уже придумано до меня?
Либо как вариант справа от корзины показывать количество наименований товаров (если такое возможно)
Олег
23 мая 2024, 01:39
modx.pro
359
0

[miniShop2 + mspTinkoff] Можно ли вызвать оплату заказа через API ?

Добрый день. Создаю заказ через API modx примерно так:

$miniShop2->initialize($modx->context->key, $scriptProperties);
$miniShop2->cart->clean();

$miniShop2->cart->add(165, 1, $option);
$miniShop2->order->add('receiver', 'Заказ доставки из калькулятора');
$miniShop2->order->add('email', 'test@test.io');
$miniShop2->order->add('phone', $fullInfo['Телефон']);
$miniShop2->order->add('comment', $fullInfo['ФИО и комментарий']);
$miniShop2->order->add('text_address', $text);
	
$miniShop2->order->add('payment', 2);
$miniShop2->order->add('delivery', 1);
    
$miniShop2->order->submit();

Как сделать так, чтобы после создания заказа происходил переход на его оплату? На сайте установлен модуль mspTinkoff.
Giant Dad
22 мая 2024, 16:27
modx.pro
1
1 799
0

[miniShop2] Можно ли заменить цену товара в корзине?

Можно ли заменить цену товара в корзине при оформлении заказа через API?
Например,
$miniShop2->initialize($modx->context->key, $scriptProperties);
$miniShop2->cart->clean();
$miniShop2->cart->add(165, 1, $option);
$cart = $miniShop2->cart->get();
$cart[array_key_first($cart)]['price'] = $newPrice;
$miniShop2->cart->clean();
$miniShop2->cart->set($cart);
заменяет цену в корзине, но после оформления заказа, у товара всё равно цена по умолчанию. Почему?
Giant Dad
22 мая 2024, 13:41
modx.pro
200
0

pdoPage фильтр по TV (список одиночный выбор) [РЕШЕНО]

Доброе утро, друзья!

Есть TV поле (список одиночный выбор) с параметрами:
Владимир == 1||Санкт-Петербург == 2
И есть вывод:
[[!pdoPage? 
&parents=`20`
&tpl=`tpl.news`
&includeTVs=`testgeo`
&limit=`8`
&ajaxMode=`default`
&pageLimit=`4` 
&where=`{"TVtestgeo.value:LIKE":"%1%"}`
]]
Он выводит статьи которые принадлежат либо Владимиру, либо Санкт-Петербургу.
Не пойму, как перевести в Fenom это (&where=`{«TVtestgeo.value:LIKE»:"%1%"}`). Подскажите пожалуйста!
Алексей
21 мая 2024, 09:02
modx.pro
314
0

Вывести цвет из свойств товара Mininshop2

Добрый день!
Возникла необходимость вывести цвет товара из свойств товара Minishop2. Это стандартное поле, которое есть в товаре от Minishop2. На цену влиять не будет, в корзине это поле не нужно. Просто будет использоваться, как описание характеристики.
Прописывал [[+color]] в шаблоне товара — ничего не вывелось. Подскажите, как правильно вывести это?
Установлен MODX Revolution 2.8.1
Айнур
20 мая 2024, 09:45
modx.pro
292
0