Богдан

Богдан

С нами с 02 марта 2013; Место в рейтинге пользователей: #161
Богдан
21 октября 2014, 20:46
0
А с товарами miniShop2 сниппет ms2GalleryResources должен работать? Пробую вывести превьюшки всех товаров в категории — ничего не выводит…
Богдан
19 октября 2014, 20:59
0
Рад помочь)
Богдан
19 октября 2014, 20:49
0
Имелось ввиду, что вторая комбинация символов должна быть наоборот. Но судя по тому, что у Ильи в сообщении выше так написано, и в коде также, наверное Jevix меняет символы местами на ]} (хотя должно быть наоборот).
Богдан
19 октября 2014, 20:34
0
Роман, таки не исправлен код… Строка 168, 91 и 73 — там стоит ]}, а должно быть ]}
Богдан
13 октября 2014, 19:20
2
+2
Я так понимаю, цены только в корзине нужно менять? Я сделал такой функционал через плагин. Создаем плагин cartProcessing, вешаем на него события msOnAddToCart, msOnChangeInCart, msOnRemoveFromCart.
Текст плагина:
<?php
switch ($modx->event->name) {
    case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart':
        $miniShop2 = $modx->getService('minishop2','miniShop2',
        	MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);
        if (!($miniShop2 instanceof miniShop2)) return '';
        
        // Инициализируем класс в текущий контекст
        $miniShop2->initialize($modx->context->key, $scriptProperties);
        $total_count = $miniShop2->cart->status()['total_count'];
        $tmp = $miniShop2->cart->get();
        if ($total_count > 4) { // если 5 и более товаров - оптовые цены, в интернет-магазине оптовые цены забиваются в поле article
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$realPrice = $product->get('price');
                	$optPrice = $product->get('article'); // вместо article можно указать любое другое поле товара
                	$tmp[$key1]['price'] = $optPrice;
                }
            }
        }
        else {
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$realPrice = $product->get('price');
                	$tmp[$key1]['price'] = $realPrice;
                }
            }
        }
        $miniShop2->cart->set($tmp);
        break;
}
В данном случае, если в корзине 5 и более товаров будут отображены оптовые цены, меньше 5 шт. — розничные. Оптовые цены будут браться из поля article (можно исправить под любое поле товара).
Богдан
11 октября 2014, 18:06
0
Отличное решение! А как сделать, чтобы отображались два графика (наложенные друг на друга на одной диаграмме) — по обороту и по количеству заказов?
Богдан
18 августа 2014, 20:20
1
0
Павел, спасибо! Отличное, простое решение. Осталось еще написать сниппет, который бы выводил среднюю оценку по товару. Сделаю — выложу код сниппета, вдруг кому нибудь пригодится.
Богдан
02 апреля 2014, 17:10
0
Я делал так. Экспортировал таблицу с контентом из БД MODX EVO в CSV, потом приводил порядок столбцов в соответствие с таблицей MODX Revo, через онлайн конвертор преобразовывал CSV в SQL формат и импортировал в таблицу MODX Revo.
Богдан
11 января 2014, 20:03
0
Кстати, по поводу большого количества ресурсов в дереве… Как вариант решения Collections.
Богдан
23 декабря 2013, 16:42
0
Disallow: *?
Так лучше не делать, если на сайте где-нибудь есть разбивка на страницы (pdoPage или getPage) — они могут не попасть в индекс.
Богдан
13 августа 2013, 01:45
0
Василий, спасибо, настроил VPS по твоему топику, все просто летает.

Но есть одна проблема — иногда наблюдаются странные глюки с передачей файлов по sftp через FileZilla (через другие клиенты не пробовал). При попытке скачать или загрузить файл на хостинг получаю ошибку — "Превышено время ожидания соединения", и так может быть несколько раз подряд. Потом через какое-то время опять все работает. И так регулярно. Какой либо закономерности возникновения этой ошибки не заметил.

У кого нибудь была похожая проблема?
Богдан
07 августа 2013, 13:23
0
А через migx не пробовали это реализовать?
Богдан
06 апреля 2013, 19:43
0
Плагин нужен, чтобы добавить оптовую цену в корзину. Для вывода оптовой цены в каталоге, нужно в чанках заменить [[+price]] на
[[!+modx.user.id:isloggedin:then=`[[+old_price]]`:else=`[[+price]]`]]
Богдан
06 апреля 2013, 19:40
0
Александр, нужно создать новый плагин, в него вставить код, который привел Василий. На вкладке «Системные события» поставить галочку на msOnBeforeAddToCart.
Богдан
06 апреля 2013, 17:01
0
Получается, таким образом можно реализовать и мультивалютность? Если записывать в сессию текущую валюту, а в плагине просто умножать цену на нужный коэффициент. Но как в этом случае суммировать стоимость доставки с учетом текущей валюты?
Богдан
06 апреля 2013, 12:59
0
Спасибо, Василий, работает! Только проверять в итоге решил по принадлежности к группе. Оказывается MODX кеширует принадлежность пользователя к группе, поэтому проверка $modx->user->isMember('VIP') возвращала false даже если пользователь находится в группе VIP. Решение проблемы с кешированием членства в группе нашел на хабре. Может есть способ справиться с этой проблемой без правки файлов MODX?
Богдан
24 марта 2013, 03:47
0
Скачай обновленную версию, была такая проблема — Василий вчера исправил, уже работает.
Богдан
23 марта 2013, 17:08
0
Василий, подскажи, пожалуйста, как обновить превьюшку из сниппета? Хочу сделать сниппет, который будет обновлять все превьюшки у всех товаров.
Богдан
23 марта 2013, 15:58
0
Оригинальное изображение не обрабатывается, как вариант добавить в настройках источника медиа генерацию увеличенного изображения и использовать его.