Олег

Олег

С нами с 31 октября 2016; Место в рейтинге пользователей: #87

Добавление записи в лексикон через API

Всем привет!
Нашел небольшой затык, подскажите, пожалуйста.

При установке пакета modExtra можно добавлять новые записи, но они добавляются в пространство имен пакета.
Мне нужно, чтобы при установке запись добавлялась в пространство имен minishop2. Думал сделать через резолверы, но не могу найти способа — метод set() для лексикона не сохраняет значения.

Есть у кого идея, как это сделать?

Думаю посмотреть, как это происходит в modExtra и немного переделать, но, боюсь, много времени на разбор уйдет.
Олег
03 июля 2017, 07:49
modx.pro
995
0

Вопрос по Fenom

Всем привет!
Использую я в одном месте migx, вывожу данные через getimagelist.
Пытаюсь вывести поле title, используя варианты:
[[+title]]{$_modx->getPlaceholder('title')}{'title' | placeholder}{$title}{$_pls['title']}
К сожалению работает только родной парсер, все варианты через fenomвыдают пустой вариант.
Есть ли возможность использовать fenom?
Олег
15 июня 2017, 14:24
modx.pro
1 425
0

Узнать, изменилось ли значение TV

Всем хорошей пятницы!

Появился вопрос, который что-то не гуглится.
Пишу плагин, в котором нужно отслеживание изменения TV ресурса.

Можно ли как-то при сохранении документа получать старое и новое значение?

Попытался вот таким способом (работал в процессорах modextra):
//старое значение
$id = $modx->resource->get('id');
$doc = $modx->getObject('modResource', $id);
echo $doc->getTVValue('discount');

//новое значение
echo $modx->resource->getTVValue('discount');
Надеялся, что в modx->resource лежат еще не сохраненные данные.
Но, к сожалению, ошибся.

Есть какой-то способ?

Можно использовать события OnBeforeDocFormSave и OnDocFormSave, но как передавать значение при срабатывании разных событий?
Можно хранить его в сессии пользователя, но мне почему-то не нравится такое решение.
Олег
02 июня 2017, 06:57
modx.pro
962
0

Вопросы по modExtra

Свежие сводки с полей:
К сожалению не получил ни одного ответа на свои вопросы, с одним из них разобрался самостоятельно.
Попробую еще раз, от меня не убудет.
Сейчас интерфейс выглядит вот так:



Основных вопросов на данный момент 2:
1) По первому и второму пункту из скриншота- хочу сделать, чтобы в первом столбце выводился id категории, во втором название категории. Сейчас в обоих выводится ID категории.

Как я понимаю для второго столбца нужно написать свой рендер. Как лучше получать данные? Можно сделать через процессор (наверное), но мне не нравится, что для каждой строки будет выполняться этот процессор.
Сейчас рендер выглядит вот так и ждет редактирования:



Олег
26 мая 2017, 08:17
modx.pro
1 212
0

Вопросы по modExtra

Всем привет!
Я еще не теряю надежды получить какой-нибудь ответ.
Занимаюсь дополнением для минишопа, возникли вопросы, на которые не получается найти ответов:

1) assets/components/mycomponent/js/mgr/widgets/items.windows.js
Как добавить select (combobox) разобрался, как подставлять туда значения из бд? А конкретнее список существующих категорий товаров.
Нужен свой коннектор, что он должен выдавать на выходе? В каком формате?
Олег
23 мая 2017, 07:49
modx.pro
651
0

Вопросы по созданию компонента.

Всем доброго времени суток!
Решил я попробовать сделать свой компонент для скидок категории в minishop2.
К сожалению с некоторыми вопросами не получается разобраться:
1) prntscr.com/f97413
Хочу, чтобы в поле «Категория» выводились все существующие категории. Нашел несколько примеров и JS часть готова, но при этом должно идти обращение к какому-то коннектору. Не обнаружил ни одного примера коннектора.
Пример из уроков Sendex
Еще ссылки на похожие темы:
modx.pro/help/6950/
modx.pro/help/5537/
toster.ru/q/227044
Но нигде нет примера коннектора! Нужно просто вернуть id и pagetitle возможных категорий. Подскажите, пожалуйста, кто знает.

2) Черновая версия компонента (без modextra) готова, все работает через плагин и tv поля для категории.
В modExtra все сделано через процессоры — create, delete, update итд. Можно ли подключить какой-то свой общий файл в них, чтобы можно было из коннекторов вызывать нужные функции в этом файле?
Олег
18 мая 2017, 09:09
modx.pro
716
0

Расширение msCategory

Всем доброго здравия и хорошей рабочей недели!
Подскажите, пожалуйста, кто в курсе: можно ли расширять msCategory также, как товары без изменения кода дополнения? В документации не увидел ничего насчет такой возможности.

Появилась потребность делать скидку для всех товаров внутри какой-то категории включая товары с мультикатегориями и нужно учитывать вложенность.
Пока лучшее, что нашел — msDiscount, но там нужно дописывать свой метод.

Рассматриваю возможность сделать для этого отдельное дополнение.
Олег
15 мая 2017, 08:19
modx.pro
767
0

Снова вопрос про параметр where в mFilter2

Всем доброго времени суток!
Достаточно часто получается затык с параметром where — какой синтаксис ни использовать.
Сейчас пробую два варианта (в вызове сниппета через fenom):
1) Json — при использовании четырех условий остается только первое и последнее, из центра вырезаются:
'where' => '{"Data.color:=":"Белый","OR:Data.color:=":"Белый матовый","OR:Data.color:=":"RAL 9010","OR:Data.color:=":"RAL 9003"}'
В логе пишет:
0.0076170: Added where condition: class_key=msProduct, Data.color:==Белый, OR:Data.color:==RAL 9003, msProduct.id:IN(8583,8596,8609,8622,8635,8649,8661,8674,8686,8698,8711,8724,8737), msProduct.published=1, msProduct.deleted=0
Олег
26 апреля 2017, 11:17
modx.pro
1 679
0

MiniShop 2 плагин msOnBeforeAddToCart

Доброго дня всем!
Не нашел подходящего решения остатков для одного магазина, решил допилить сам.

Хочу проверять кол-во добавляемого товара в плагине msOnBeforeAddToCart и в msOnBeforeChangeInCart (давно модифицировал работу minishop2, но хочу вынести изменения, чтобы можно было обновляться).

Проблема состоит вот в чем:
Не могу получить доступ к корзине, хотя объект передается, файл: mscarthandler.class.php

$response = $this->ms2->invokeEvent('msOnBeforeAddToCart', array(
                'product' => $product,
                'count' => $count,
                'options' => $options,
                'cart' => $this,
            ));
При попытке в плагине обратиться к $cart не получаю никакого результата.
Задача — получить количество этого товара в корзине. В mscarthandler.class.php обращение происходит вот так:

$this->cart[$key]['count']
Но все, что внутри плагина могу узнать о $cart — то, что это объект методом is_object()
Олег
19 апреля 2017, 13:50
modx.pro
1
3 385
0

Вопрос по extjs при работе с modextra

Всем доброго дня!
Меняю болванку modextra, при изменении предмета во всплывающем окошке хочу сделать выпадающий список с нужными вариантами.
Эта задача оказалась нетрудной, но хотелось бы иметь возможность менять список вариантов без редактирования кода компонента. Для этого хотелось бы использовать значения из системной настройки, но как их получить при рендере окошка?
В файле combo.js описываются типы полей, начало выглядит так:

Reviews.combo.Search = function (config) { ...
Откуда берется массив config? Есть ли момент, когда он формируется через php? Тогда я бы просто добавил что-то навроде:

config['values'] = $modx->getOption(...
UPD:
Разобрался, не знаю, на сколько это правильно, но в home.class.php добавил:

Reviews.config.rating_values = "'. $this->modx->getOption('reviews.rating_values',null, 'Хорошо, Нормально, Плохо') .'";
А в combo.js:
values = Reviews.config.rating_values || 'Хорошо, Нормально, Плохо';
Олег
13 апреля 2017, 09:26
modx.pro
871
0