Вопросы

pdoResources 100% нагрузка на процессор

Приветствую,
прошу помощи, раньше с подобной проблемой не встречался и не могу найти решения.
При выводе ресурсов использую pdoResources, всё работало как надо,
но когда ресурсов стало много (сейчас примерно 70 тысяч и планируется еще больше),
страница перестала грузится, скрипт дает нагрузку 100% на процессор, и в итоге сообщение nginx 504
если убрать вызов pdoResources — страница нормально отображается
вот так вызываю
[[pdoResources?
    &parents=`2`
    &limit=`7`
    &includeTVs=`shop_logo,categories`
    &tpl=`tpl.catalog_shops.row`  
]]
Greza
21 ноября 2018, 09:53
modx.pro
1 168
0

Вопрос по службе оплаты minishop2

Пишу небольшой компонент для оплаты и воткнулся на:

Как правило, вы сами настраиваете, куда обращаться и как передавать. Поэтому, в настройках PayPal я указываю адрес sitename.com/assets/components/minishop2/payment/paypal.php, который запускает MODX в режиме API. По сути — это контроллер приёма оплаты.

при заходе на этот файл у меня выводится Access Dained, права доступа на папки 755 на файлы 644, но пробовал и 755 сути не меняет, что делаю не так?
Вячеслав Варов
21 ноября 2018, 00:22
modx.pro
746
0

Почему Tickets может не работать?

Приветствую

Зашел на тестовый сайт, загрузил и установил Tickets, в шаблоне написал:
[[!TicketComments? &allowGuest=`1`]]
Открываю страницу, передо мною такая форма:

Заполняю все поля, нажимаю кнопку Написать, страница перезагружается, а в ответ тишина, комментарий не появился.
Подумал, что дело в старой версии MODX, установил чистую 2.6.5 — то же самое.
Создал тестовый сайт на modhost — то же самое.
Люди добрые, господа осведомленные, что я сделал не так?

P.S.
В журнале ошибок пусто.
В консоли пусто.
Пишу в режиме инкогнито.
weranda
20 ноября 2018, 20:49
modx.pro
834
-1

заказы пользователя minishop2

Всем привет.
Подскажите пожалуйста как сделать фильтрацию в заказах по vendor(поставщик).

Приведите пожалуста пример где все заказы от всех пользователей по определённому vendor выводятся.
Буду вам очень признателен.

Спасибо заранее всем кто поможет советами.
Кирилл
20 ноября 2018, 17:33
modx.pro
669
0

MiniShop2. Вывод во фронтенд цен товаров из корзины без скидки.

Добрый день.
Изучаю написание плагинов на примерах. Поставил себе задачу реализовать простейшую систему скидок от общей суммы заказа. Код плагина такой:
<?php
switch ($modx->event->name) {
    case 'msOnChangeInCart':
    case 'msOnRemoveFromCart':
    case 'msOnAddToCart':
        $discount = 0;
        $status = $cart->status();
        $tmp = $cart->get();
        //Cтавим изначальную цену без скидок
        foreach($tmp as $_key=>$cartItem) {
            if ($product = $modx->getObject('msProduct', $cartItem['id'])) {
                $tmp[$_key]['clear_price'] = $product->get('price');
                $tmp[$_key]['price'] = $product->get('price');
            }
        }
        if($status['total_cost']>=6000) $discount = 5;
        elseif($status['total_cost']>=3000) $discount = 3;
        //Если есть скидка, пересчитываем цены на товары в $tmp
        if($discount>0) {
            foreach ($tmp as $_key=>$cartItem) {
                if ($product = $modx->getObject('msProduct', $cartItem['id'])) {;
                    $tmp[$_key]['price'] = $product->get('price')*((100-$discount)/100);
                }
            }
        }
        //Записываем данные в корзину
        $cart->set($tmp);
        //$modx->log(xPDO::LOG_LEVEL_ERROR, print_r($cart->get(), true));
        break; 
}
В коде к товарам корзины я добавил дополнительное поле clear_price, в котором хранится цена товара без скидок. Как можно вывести его в чанк корзины msCart?

UPD В чанке корзины есть примерно такой код:
{foreach $products as $product}   
    ...{$product.clear_price}...
    ...{$product.price}...
{/foreach}

Я хочу передать в чанк некие данные, расчитанные в плагине. {$product.price} передаёт высчитанную цену как и положено. {$product.clear_price} не отображается. Как мне это сделать?

UPD2 Обнаружился странный глюк(?). Если я использую для передачи цены без скидки поле old_price товара корзины, то в чанке fenom передаёт её корректно в код {$product.old_price}, но… в зависимости от суммы заказа! Т.е. если сумма заказа более определённой цифры, передаётся вычисленная мной цена, если меньше, передаётся значение, которое хранится в поле old_price данного товара в каталоге. Сейчас код плагина у меня такой:
<?php
switch ($modx->event->name) {
    case 'msOnAddToCart':
    case 'msOnChangeInCart':
    case 'msOnRemoveFromCart':
        $discount = 0;
        $status = $cart->status();
        $tmp = $cart->get();
        foreach ($tmp as $_key=>$cartItem) {
            if($product = $modx->getObject('msProduct', $cartItem['id'])) {
                $tmp[$_key]['old_price'] = $product->get('price'); // #3
                if($status['total_cost']>=6000) $discount = 5; // #1
                elseif($status['total_cost']>=3000) $discount = 3;// #2
                $tmp[$_key]['price'] = $product->get('price')*((100-$discount)/100);
            }
        }
        //Записываем данные в корзину
        $cart->set($tmp);
        $modx->log(xPDO::LOG_LEVEL_ERROR, print_r($cart->get(), true));
        break; 
}
Методом тыка пришёл к выводу, что строки #1 и #2 каким-то образом влияют на значение в {$product.old_price} в чанке. Причём проверка через $modx->log(xPDO::LOG_LEVEL_ERROR, print_r($cart->get(), true)); показывает, что значение old_price в строке #3 устанавливается, но почему-то не передаётся в чанк.
Артём
20 ноября 2018, 15:23
modx.pro
928
0

msearch2 - вывод свойств товара

Здравствуйте. Наверное, напишу глупость, но не могу понять, как сделать так, чтобы в результатах поиска выводились свойства minishop товаров.
Что бы в шаблон попадали определенные ТВ, у сниппета есть параметр &includeTVs=``
Допустим у товара есть свойство arcticle. В шаблоне для поиска выводится вот так, как и в категориях сайта:
<div class="kod">Код товара: [[+article]]</div>
Но в категориях артикл выводится, а на странице поиска нет, в категориях выводится через mFilter2 правда. А на странице поиска вот так:
[[!pdoPage?
                    &element=`mSearch2`
                    &parents=`3`
                    &tpl=`tpl.product`
                    &includeTVs=`alt_pagetitle`                    
                    &tvPrefix=`tv 
]]
Так же в шаблоне есть плейсхолдер для картинки
<img src="[[+thumb]]" alt="[[+pagetitle]]" />
Он так же не выводится поиском. Подскажите пожалуйста, что я делаю не так?
Dolce
19 ноября 2018, 14:14
modx.pro
2 063
0

как расширить поле товара minishop2

Всем привет.

Привидитие пожалуйста простую реализацию как расширить поле товара и создать дополнительное поле (как size, color) только

партнёрский артикул поставщика (так как vendor есть ). Тоесть допустим есть группа товаров у поставщика, которая идёт с определённым артикулом.

И как сделать вывод Заказы только с данным полем.

Буду очень признателен за советы!

Спасибо.
Кирилл
19 ноября 2018, 13:55
modx.pro
1 199
0

как вывести товар по артикулу minishop2

Всем привет, как вывести товар по артикулу, приведите пожалуйста пример реализации или все товары с артикулом с первыми 5-10 знаками

есть например товар впереди идёт код партнёра поставщика напимер sx12345 название товара

как вывести товары такого формата все с артикулом где впереди sx12345

Спасибо за советы заранее.
Кирилл
18 ноября 2018, 19:05
modx.pro
1 058
0

AjaxLogin кнопка Регистрация

Доброго дня. Как сделать, чтобы после успешной регистрации форма регистрации не оставалась активной (так как можно еще понажимать на кнопку Регистрация и письма отправятся). Либо после регистрации редирект на страницу, например «Спасибо» от Login
Михаил
18 ноября 2018, 18:55
modx.pro
1 336
0

Помогите с оптимизацией.

Задача такая. В неком главном ресурсе внутри есть блоки задач а в каждом блоке есть задача (Это все в виде ресурсов и коллекций). То есть 2х уровневая структура. У каждоый задачи есть ответственный (пользователь зарегестрированный в системе принадлежащей определенной группе).

Вывод всего этого дела простой — pdoResources и в нем pdoResources. Получается запросов к БД для вывода будет: количество блоков задач + 1.

Но еще нужно вывести select с пользователями к каждой задаче. Это получается запросов к БД будет еще: количество задач.

Список пользователей всегда одинаковы единственное но нужно в этом списке сделать checked на определенном пользователе указанном в задаче.

Можно ли как нибудь это оптимизировать без такого огромного количества запросов к БД?
Евгений Лазарев
18 ноября 2018, 15:35
modx.pro
732
0