Игорь Терентьев

Игорь Терентьев

С нами с 29 ноября 2013; Место в рейтинге пользователей: #83

Как перезаписать или расширить конфиг грида ExtJS

Всем привет! Вопрос к знатокам ExtJS.

Как расширить или перезаписать конфиг, а в идеале только один параметр?

Нужно в гриде с заказами выделять строку цветом. Для этого нужно добавить условие в getRowClass:
github.com/bezumkin/miniShop2/blob/master/assets/components/minishop2/js/mgr/misc/default.grid.js#L25-L40

Который наследуется в miniShop2.grid.Orders:
github.com/bezumkin/miniShop2/blob/master/assets/components/minishop2/js/mgr/orders/orders.grid.js
Игорь Терентьев
29 марта 2019, 19:25
modx.pro
1 051
+1

Как вы разрабатываете сайты на MODX в команде?

Всем привет!

Поделитесь своим опытом разработки сайтов в команде.



Сейчас мы разрабатываем сайты вдвоем. У каждого из нас есть по тестовому сайту. И еще есть один тестовый для клиента, где мы показываем новую версию перед продакшеном. Всего получается 3 сайта для разработки и 1 рабочий. Тестовые сайты расположены на нашем домене третьего уровня.
Игорь Терентьев
13 сентября 2018, 20:26
modx.pro
3
1 620
+2

Как сделать, чтобы getImageList понимал тэги Fenom?

Читал в этом вопросе, что можно просто заменить $modx->getChunk.

Я сделал копию getImageList и добавил в начало:
$path = MODX_CORE_PATH . 'components/pdotools/model/pdotools/';
$pdoFetch = $modx->getService('pdofetch','pdoFetch', $path, $scriptProperties);

И заменил $modx->getChunk на $pdoFetch->getChunk здесь

Но все равно тэги Fenome не распознаются.

Нужно это мне для работы с пагинацией и сложных чанков с условиями:
{'!pdoPage' | snippet : [
                'element' => 'getImageList',
                'docid' => $_modx->resource.id,
                'tvname' => 'resourcealbum',
                'processTVs' => 0,
                'where' => [
                    'active' => 1,
                ],
                'ajaxMode' => 'button',
                'tpl' => 'migx.gallery.item',
                'limit' => 2,
            ]}
Игорь Терентьев
26 февраля 2018, 19:50
modx.pro
973
0

Порядок значений опций товара

После сохранения товара изменяется порядок введенных значений опций.

До сохранения:

После сохранения:


Как это пофиксить? Пусть и с правкой исходников.
Игорь Терентьев
20 сентября 2017, 21:27
modx.pro
2 118
+1

MiniShop2 и греческий язык

В форме заказа не проходят валидацию греческие символы (например Σχήμα κουτιού και)

На счет php не знаю, но js точно не пропускает:



Не могу найти в default.js блок, который отвечает за валидацию.
Игорь Терентьев
05 сентября 2017, 09:06
modx.pro
1
1 583
0

Как через API добавить опцию товара miniShop2?

Размеры, цвета добавляются, а опцию «shank» не получается…
$ob = $modx->newObject('msProduct');
$tmp = [
    'pagetitle' => $pagetitle
    ,'class_key' => 'msProduct'
    ,'uri' => $url
    ,'createdon' => time()
    ,'template' => 4
    ,'price' => $cur_price
    ,'tags' => $tags
    ,'color' => $color
    ,'options-shank' => $shank
    ,'option-shank' => $shank
    ,'shank' => $shank
];
$ob->fromArray($tmp);
$ob->save();
Игорь Терентьев
01 августа 2017, 17:04
modx.pro
3
3 956
0

Меняется old_price при изменении price в плагине

При изменении цены через плагин (события: msOnGetProductPrice, msOnBeforeAddToCart, msOnAddToCart) перезаписывается значение поля old_price значением price (до изменения). Как сделать так, чтобы значение не изменялось или записать в него свое значение?

Плагин:
<?php
switch ($modx->event->name) {
    case 'msOnGetProductPrice':
        if ($modx->context->key == 'mgr') {
            return '';
        }
        $currencyrate = $modx->getService('currencyrate', 'currencyrate',
            $modx->getOption('currencyrate_core_path', null,
                $modx->getOption('core_path') . 'components/currencyrate/') . 'model/currencyrate/', $scriptProperties);
        if (!($currencyrate instanceof currencyrate)) {
            return '';
        }
        $currency = $currencyrate->currency;
        if ($currency == $modx->getOption('currencyrate_currency')) {
            return '';
        }
        $list = $currencyrate->getList();
        
	$values = & $modx->event->returnedValues;
        
        if (!isset($modx->event->returnedValues['price'])) {
            $modx->event->returnedValues['price'] = $price;
        }
        $price = &$modx->event->returnedValues['price'];
        $new_price = ($price * $list[EUR]) / $list[$currency];
        if ($new_price !== false) {
            $price = $new_price;
        }
        
        break;
}
Игорь Терентьев
19 июля 2017, 10:39
modx.pro
1 880
0

Кэширование pdoMenu

Как можно закэшировать уже обработанный результат работы сниппета, чтобы при открытии еще не закэшированной страницы данные не обрабатывались заново? Меню очень уж большое…
Игорь Терентьев
26 апреля 2017, 16:25
modx.pro
1 528
0

Сортировка в мультикатегориях MiniShop2

Можно ли как-то сортировать вручную товары (по типу menuindex) в мультикатегориях, чтобы в разных категориях был свой порядок и он никак не влиял на остальные категории?
Игорь Терентьев
06 февраля 2017, 10:44
modx.pro
1 307
0

Номер телефона miniShop2 в профиль пользователя

Добрый вечер!
Нужно при оформлении заказа брать номер телефона из msOrderAddress и записывать его в профиль пользователя.

Написал такой плагин, но номер телефона записывается совсем не тот…

<?php
switch ($modx->event->name) {
    case "msOnCreateOrder":
        $msUserId = $msOrder->get('user_id');
        $msAddress = $modx->getObject('msOrderAddress',$msUserId);
        $msPhone = $msAddress->get('phone');
        
        $user = $modx->getObject('modUser',$msUserId);
        $profile = $user->getOne('Profile');
        $profile->set('phone', $msPhone);
        $profile->save();
        break;
}

На этом этапе в переменную попадает id заказа, а не пользователя:

$msUserId = $msOrder->get('user_id');
Игорь Терентьев
22 января 2017, 14:39
modx.pro
6
3 207
0