Всего 125 675 комментариев

Евгений Лазарев
31 января 2021, 13:27
+1
Вдруг кому понадобится: я решил этот момент следующим образом:
1) создал кастомный сlass customFilter extends mse2FiltersHandler, возможность создания которого предусмотрена компонентом
2) переназначил функцию constract
public function __construct(mSearch2 &$mse2, array $config = array()) {
		parent::__construct($mse2, $config);
        $this->catalogBanners();
	}
3) В своей функции catalogBanners() выполнил что мне нужно:
public function catalogBanners(){
        $banners = json_decode($this->modx->resource->getTVValue('migx_catbans'),true);

        $fabrics = $_REQUEST['fabric'] ? explode(',',$_REQUEST['fabric']) : [];
        $metals = $_REQUEST['metal'] ? explode(',',$_REQUEST['metal']) : [];

        $key = md5(implode('|', array_merge($fabrics, $metals)));

        if (isset($_SESSION['catbans']) and $_SESSION['catbans']['key'] === $key){
            return true;
        }
        shuffle($banners);

        $is_main = (empty($fabrics) and empty($metals)) ? true : false;

        $catbans = [];
        foreach ($banners as $idx=>$banner){
            $is_good = true;
            $migx_fabric = is_array($banner['fabric']) ? $banner['fabric'] : explode(',',$banner['fabric']);
            if (empty(array_intersect($fabrics, $migx_fabric)) and !empty($banner['fabric']) and !$is_main){
                $is_good = false;
            }
            $migx_metal = is_array($banner['metal']) ? $banner['metal'] : explode(',',$banner['metal']);
            if (empty(array_intersect($metals, $migx_metal)) and !empty($banner['metal']) and !$is_main){
                $is_good = false;
            }
            if ($is_good){
                //Расчет позиции нахождения баннера (3,17,35,49,67)
                $position = 3 + count($catbans) * 14 + intdiv(count($catbans), 2) * 4;
                $catbans[$position] = $banner;
            }
        }

        $_SESSION['catbans'] = $catbans;
        $_SESSION['catbans']['key'] = $key;

        return true;
    }
4) в tpl mFilter2 уже обращаясь к сессии взял что мне нужно:
{var $catbans = $.session.catbans}
{if $catbans[$idx]}
<a href="{$catbans[$idx]['href']}" class="banner">
    <img src="/images/{$catbans[$idx]['img']}" alt="" />
</a>
{/if}
Итого:
— вызывается 1 раз, как и нужно и с появлением контента
— нет причин бояться обновления компонента
Евгений Лазарев
31 января 2021, 13:20
0
Решение хорошее, но не совсем подходит, потому что оно работает после того как отобразился контент товаров.
Артур Шевченко
31 января 2021, 12:06
0
Скиньте конечно. Попробуйте обновить админку.
Николай Савин
31 января 2021, 11:39
0
Язык зависит от системы MODX вообще. Нигде в miniShop нет своей языковой логики. Соответственно обновление компонента не может само по себе привести к смене языка системы.
Евгений
31 января 2021, 10:20
0
Да вроде ничего не делали, месяц назад сайт отдан, буквально недавно позвонил провайдер и сказал что операции там доходят до террабайта. Может быть какие-то файлы лога скинуть, те что есть?
Артур Шевченко
31 января 2021, 08:37
0
Это вы типа модификации хотите сделать? Или что за другое изображение? А вообще самом простое это сделать TV типа migx с двумя колонками название цвета и путь к картинке, на фронте с помощью js менять картинку в зависимости от выбранного цвета.
Александр Туниеков
31 января 2021, 08:05
0
Извняюсь, принял ваш крик души на свой счет. 3 дня на нервах сижу. Компонент не стал полностью бесплатным. Оплату перенес на сервис. Так что reMessages купят. И, возможно, будут пользоваться и RealMessenger. Просто продавать компоненты без modstore не удобно и мне проще сделать сам компонент сделать бесплатным.
Александр Туниеков
31 января 2021, 02:57
0
Ну блин. сервис gtsnotify.ru платный 300р в месяц. Если поставят realMessenger, то это все равно 300р в месяц, а reMessages 1990р за один раз. И он окупится за 6 месяцев :-). Компоненты бесплатные потому, что без Modstore мне их продавать не удобно. Так что все логично :-) просто въехать в тему надо.
Артур Шевченко
31 января 2021, 00:45
0
первое, попробуйте удалить папку с кешем. второе, скажите что делали перед тем как это случилось?
Фарит
Фарит
30 января 2021, 22:24
+1
Modstore не пропустило мой компонент так как он аналог уже опубликованного. Мне потраченного времени жалко, поэтому публикую компоненты в открытом доступе бесплатно.
Modstore, публикуйте аналогичные компоненты по одинаковым ценам, чтобы не было смысла авторам демпинговать, но в то же время и вы получите больше денег (большинство купят оба компонента) и клиенты смогут выбирать наиболее удобный для себя продукт.
Сейчас же и reMessages мало кто купит, т.к. есть бесплатный аналог и gtsNotify не купят, т.к. из-за вас он стал бесплатным. Где логика?
pobnpolk
30 января 2021, 19:36
0
Подскажите как через QuickView цены поменять, через шаблон «Товар» — отлично всё работает. Через QuickView, тот же код, не работает. Подключал скрипт внутри, без результата. Это минус.
pobnpolk
30 января 2021, 17:09
0
Ну а всё-таки, где меняется язык?
pobnpolk
30 января 2021, 16:51
0
Иван, где можно хорошо научиться, из какого источника, писать свои обработчики, плагины, и компоненты под ваш продукт. Доделывать уже существующие. Всё вроде здорово, сообщество умное, но когда начинаешь делать или спрашивать всем как обычно нет особого времени объяснять, все у все индивидуально, кто-то старается ради авторитета, кто-то ради продаж. Поэтому приходится всегда искать решения индивидуально и очень долго, а это невыгодно.
Иван Бочкарев
30 января 2021, 16:47
0
пока не было обращений по данному вопросу. Обновлено или установлено более 80 магазинов.
pobnpolk
30 января 2021, 16:33
0
Всплывающие сообщения — при добавлении товара в корзину, или удалении. Message.success
Иван Бочкарев
30 января 2021, 16:23
0
Это вопрос? О каких уведомлениях идёт речь?
pobnpolk
30 января 2021, 16:20
0
Иван, добрый день. Спасибо за релиз.
Подскажите пожалуйста, после обновления все уведомления стали на английском?
Alexey
30 января 2021, 16:07
0
Привет! Попробуй в чанке письма заказчику — по дефолту это tpl.msEmail — вывести что-то такого плана:

<a href="{$total.payment_link}">Ссылка на оплату</a>

Если правильно помню содержимое класса минишопа, если класс платежа есть в настройках (и в платежном классе есть метод getPaymentLink), то автоматом генерируется плейсхолдер со ссылкой на оплату.
Артур Шевченко
30 января 2021, 12:28
0
А вы можете пошаговое решение написать или дать ссылку? Я бы почитал для саморазвития.