Максим

Максим

С нами с 02 декабря 2015; Место в рейтинге пользователей: #129
Максим
27 августа 2019, 10:14
+1
Смотрим сниппет, видим там класс pdoPage? в него, и ищем по link. В результате находим вот эту строку и смотрим дальше что же там происходит.
Максим
26 августа 2019, 17:54
0
Вообще в таких случаях лучше использовать switch — код будет читабельнее. Плюс не стоит смешивать синтаксис родного парсера и fenom
Максим
26 августа 2019, 17:49
0
Вообще родной хук формита называется FormitSaveForm. И получается одно из двух:
1) Опечатались и форма не сохранялась
2) Был написан отдельный хук
При первом случае — нечего вытаскивать, так как ничего не сохранялось. Во втором случае нужно искать сниппет FormSave и смотреть что там происходит.
Максим
26 августа 2019, 10:43
0
А приходит массив объектов. Но я не могу понять где это регулируется. Если мой процессор только для построения списка, то где генерируется результат выборки из базы?
Максим
23 августа 2019, 17:30
0
Они же в таком формате в базе и хранятся… Их нужно отдельно где-то получать и вставлять?
Максим
23 августа 2019, 16:58
0
Судя по тому что я вижу — из конфига. Ну или я ошибаюсь(((
Максим
23 августа 2019, 16:44
0
Смущает! Только я руками в конфиг пишу value разных форматов и не спасает.
Да процессор это для построения выпадающено списка. Список строится нормально!) А вот value не хочет подставляться.
Максим
23 августа 2019, 16:35
0
А можешь чуть развернутей?
Если ты про разные форматы, то так тоже не работает:
Максим
23 августа 2019, 16:28
0
Володя, привет. Не помогает((( И фишка еще в том, что там можно несколько магазинов выбрать
Максим
23 августа 2019, 15:54
0
Самое интересное, что данные из базы приходят. Пробовал руками подставлять данные разного формата — число, массив чисел, объект ( {id:33174} ), но все без толку(((

Что не так?
Максим
23 августа 2019, 14:35
0
Спасибо! Это упрощает задачу! Если я все правильно понял, то остается написать контроллер, который будет дергать соответствующие классы и их методы?
Максим
23 августа 2019, 11:11
0
Вы покупали оба компонента! Правильнее будет обозначить задачу разработчикам компонентов через поддержку. Я бы сначала по этому поводу поговорил с поддержкой mSearch2 а потом с поддержкой msDiscount. Так как данные компоненты должны уметь работать друг с другом. Для этого написаны специальные события. А раз они не умеют работать дружно — значит кто-то накосячил и нужно это исправить!) Ведь речь идет не о бесплатных решениях.
Максим
23 августа 2019, 10:46
0
Пару дней мониторю эту тему! Вродь как все просто! На событии OnPageNotFound ловим урлы типа /api/v1/* подключаем класс компонента! Для реализации класса можно условиться, что вместо * идут основные параметры запроса разделенные слешами:
1) Тип ресурса
2) Метод
3) Критерий
Таким образом мы получим запросы типа:

/api/v1/resources/getlist/ = /api/v1/resources/ - получаем список сущностей - массив объектов
/api/resources/get/{$id}/ - получаем сущность - объект
Конечно же сервер должен вернуть нам JSON.
Ну а понимание того, что мы хотим сделать с ресурсом, нам даст метод запроса (GET, POST, UPDATE ...).
Сам класс компонента должен проверить права (тут есть вопросы!), корректно определить пожелания пользователя из запроса, произвести валидацию данных, дернуть соответствующий процессор и вернуть ответ!
Если админка только для разработчика, то для обращения по апи пользователь должен быть авторизован в текущем контексте и иметь соответствующие права.
Вродь как этого достаточно для старта, или я опять не вижу кучу подводных камней?
Максим
21 августа 2019, 17:21
0
Событие: mskladOnProductImport
Ну так и задать!) Разные размеры в 1с представлены отдельными позициями номенклатуры?
Просто вы же не можете предугадать какой товар является основным, а какой всего лишь размером основного товара.
Максим
21 августа 2019, 17:05
0
Скорее всего они в 1с представлены отдельными товарами. Если это так, то нужен какой-то идентификатор того, что это один и тот же товар и тогда уже можно на событии mSync (не помню как называется) проверять наличие этого идентификатора и добавлять как опцию товара а не создавать новый.
Максим
21 августа 2019, 13:44
1
+1
Реализовывал подобное! Только для личных кабинетов использовал Office!
Готового даже не искал а решил запилить свой велосипедик! Получилось! Да и сложного там мало.
Для решения первого вопроса можно использовать событие msOnChangeOrderStatus. В нем уже проверять статус и выполнять свои манипуляции. Так же необходимо расширить таблицу пользователей для хранения баланса и даты зачисления. Пример расширения!
Для решения второго нужно создать кастомный класс оплаты. Пример подключения есть в документашке
Ну а для решения третьего пункта можно запускать задачку по крону в которой будут сравниваться даты и при нужных условиях обнуляться балансы пользователей!)
Проект у меня на битбакете в приватном репозитории. Так что если нужны будут куски кода для примера, то велкам в личку!)
Максим
21 августа 2019, 13:21
0
Ответ на первый вопрос:
Дописать соответствующий код в объект!) То есть создать в нем еще пару методов для отображения и скрытия и вызывать их в соответствии с логикой, которую вы нам не огласили!)
Ответ на второй вопрос:
Можно сделать многое если изучить объекты:
mse2Config — основной конфиг;
mSearch2 — основной объект;
И событие:
$(document).on('mse2_load', function(e, data) {
var hash = mSearch2.Hash.get();
});
На одном из проектов реализовывал диапазон цен в виде селекта. Да и диапазон цен был статичным. В итоге в вызове сниппета прописал этот чанк для цены а дальше своим скриптом делал актуализацию данных в селекте и запускал фильтрацию при выборе!
Внимательнее изучите код компонента и документацию, тогда все станет ясным!)
Максим
21 августа 2019, 12:22
0
Добавить инпутам:
name="options[Название опции]"
Максим
26 марта 2019, 14:56
0
Ну SIGNED это по-сути диапазон целых чисел. У меня в базе пока целые числа. Так что не думаю что DECIMAL изменит ситуацию.
Но, Илья, в любом случае спасибо! Буду тестировать!)
P.S. Пока еще не проверял BETWEEN с числами с плавающей точкой!)))