gtsAPI - компонент API для MODX

Так как у нас нет дизайнера, и на каждый чих искать дизайнера-фрилансера нет желания, возникает проблема обернуть функционал нашего сайта в красивую обертку. Изучать глубоко верстку нет желания и времени. Гораздо проще воспользоваться каким-то UI фреймворком. Тем более многие нужные блоки в них уже хорошо реализованны.
Современные UI фреймворки, такие как Quasar и PrimeVue, общаются с сайтом посредством какого-либо API. Дефолтная реализация API в MODX меня не устроила и я сейчас пишу свою реализацию API для MODX — gtsAPI.
Основная фишка gtsAPI — это то что для большинства нужных операций с таблицами базы данных нужно только настроить правила. А все остальное берет на себя компонент. То есть, нам не нужно для 200 таблиц нашей базы данных писать отдельные контроллеры :-). Сделал c некоторой поддержкой RestAPI.
Александр Туниеков
26 декабря 2023, 17:29
modx.pro
2
996
+6

Запрос xpdo с условием при сложении значений двух столбцов

Добрый день подскажите может кто знает. Нужно сделать SQL запрос при этом условием должно быть сумма значений двух столбцов.
+----+---------+-----------+
| id | width | length |
+----+---------+-----------+
| 1 | 0 | 300 |
| 2 | 100 | 400 |
| 3 | 200 | 500 |
| 4 | 300 | 600 |
| 5 | 100 | 700 |
| 6 | 200 | 800 |
| 7 | 300 | 900 |
+----+---------+-----------+
Такой код к сожалению не работает:
$q = $modx->newQuery('Test');
$q->where([
    'width + length:<=' => 1000,
    'length - width:>=' => 500,
]);
$modx->getCollection('Test', $q);
Евгений Лазарев
26 декабря 2023, 16:15
modx.pro
408
0

Как вывести на сайте ссылки на контексты (поддомены) и сделать навигацию в виде меню?

Здравствуйте!
На сайте есть контексты «Города» (поддомены) каким образом без прописывания вручную, можно сделать навигицию по ним в виде списка?
Leo
Leo
26 декабря 2023, 15:07
modx.pro
377
0

[msAltCart] Динамическая корзина для MiniShop2

Приветствую! Предлагаю вашему вниманию современный вариант полюбившегося многим компонента msMCD. Как водится постарался учесть большинство популярных кейсов использования корзины: миникорзина в шапке, динамическая корзина сбоку, всплывающее окно с последним добавленным товаров, основная корзина. Подробности под катом.
Артур Шевченко
25 декабря 2023, 20:16
modx.pro
3
934
+8

[miniShop2] Как проверить стоимость доставки при оформлении заказа?

Добрый день.
Возникла необходимость ввести дополнительную проверку не равна ли стоимость доставки нулю при оформлении заказа. Необходимо делать это до создания заказа и поэтому по идее нужно использовать плагин на системное событие msOnBeforeCreateOrder, но похоже, что в него не поступают данные о стоимости доставки или я просто не понимаю как их получить. Подскажите пожалуйста.
И ещё один вопрос, как отловить событие из плагина на js, чтобы вывести предупреждение на фронте?
Спасибо за помощь
Giant Dad
25 декабря 2023, 14:31
modx.pro
411
0

Как в MIGX сделать поле с выбором конфигурации

Приветствую!
Подскажите пожалуйста как сделать в MIGX select поле с выбором конфигурации полей, например, я хочу в зависимости от выбора конфигурации выводить на заполнение тот или иной набор полей, видел где-то статью, не смог найти.

И второй вопрос, как сделать вывод картинки, в меню заполнения полей, я хочу чтобы после выбора конфигурации выводилось превью в виде картинки и следом шли поля, какой тип поля для этого нужно указать? Я думал о поле image с дефолтным значением, но может есть более эстетичные варианты?

Все это я хочу сделать для более удобного наполнения блоками страницы. Например для каждого шаблона будет migx поле, внутри которого будет возможность выбора, какой блок ты хочешь добавить, и соответственно для каждого блока свой набор полей и превью.
Вячеслав Варов
25 декабря 2023, 14:16
modx.pro
2
411
0

Добавление и удаление товара из корзины со страницы категории и товара

Периодически клиенты просят функционал, чтобы можно было изменять количество товара не только находясь в корзине, но и со страниц категорий и самого товара.
Поэтому поделюсь своим решением. Сразу отмечу, что оно не претендует на позицию идеального, так что если есть замечания и предложения, то с радостью их выслушаю.
ВАЖНО! У меня версия miniShop2 4.2.0. Код будет отличаться для версий ниже. Так например до 4.1.4 отличается метод генерации ключа товара, а до версии 4.1.0 методы add и change корзины возвращают только ключ товара, когда в более новых версиях также есть измененное кол-во товара и прочая информация о нем.

1) Итак, для начала создадим сниппет inCart, который будет отвечать за вывод HTML-разметки, в зависимости от того, есть товар в корзине или нет. И соответственно два чанка tpl.inCart.btn и tpl.inCart.btn.not
Dan
Dan
25 декабря 2023, 01:30
modx.pro
2
1 383
+9

Tickets – вставка изображения в редакторе

Здравствуйте!

Компонент Tickets

При редактировании тикета (поста) в текстовом редакторе для вставки изображения нажимаю на кнопку Insert/Edit Image
В модальном окне, к сожалению, нет кнопки Загрузить изображение, только поле текстовое, куда можно вставить путь к картинке.

Как это можно исправить?

Геннадий

Gennady
24 декабря 2023, 07:19
modx.pro
407
0

[msGallery] не создаются миниатюры

Всем доброго дня.
Может кто сталкивался, не создаются миниатюры в msGallery при загрузке изображений в галерею товара.
disk.yandex.ru/i/OML5iB_TuMDpGA
disk.yandex.ru/i/PZDFmGG0vvhQmw
Обычно разварачиваю сайты на modhost.pro, и с такой проблемой не сталкивался.
Сейчас разрабатываю на beget.ru, может что-то с настройками сервера?
Сергей
23 декабря 2023, 16:32
modx.pro
339
0

Непредсказуемая логика в операции модификатора eq

Здравствуйте!
Почему, когда я залогинен, то сниппет redirect все равно выполняется? Как исправить эту странную логику?

[[!+modx.user.id:isloggedin:eq=`1`:then=`
	. . .			
`:else=`
	[[!redirect]]
`]]

redirect:
header('HTTP/1.1 301 Moved Permanently');
header('Location: /');
Владимир
23 декабря 2023, 14:08
modx.pro
370
0