Всего 125 989 комментариев

Роман
22 декабря 2021, 22:08
1
0
Выберите раздел, куда хотите сохранить. Посмотрите ошибки в инспекторе ошибок.
steve.kon
22 декабря 2021, 21:16
0
Полностью согласен. Скорее всего будет внедрен вот этот сервис без всяких изобретений на уровне CMS: restoplace.cc/
Закрывает абсолютно все потребности
Александр Мельник
22 декабря 2021, 19:14
+2
В моем понимании такой софт должен быть максимально красивый и отзывчивый. Стоит администратор ресторана перед монитором и там без всяких перезагрузок страницы отображаются брони, разным цветом подсвечиваются столики, меняются даты и время брони.
Не приятно с этим будет работать если нужно будет постоянно обновлять в админке какие то страницы, чтобы посмотреть что забронировано. Но мне кажется в стандартной админке modx такой интерактивности не добиться. Я бы делал и часть для покупателя и часть для администратора как хорошо сверстанные обычные страницы, просто нашел бы способ закрыть паролем часть для админа.
R2m0x94 (Vasily)
22 декабря 2021, 18:38
0
Точнее так будет более правильнее:
$plugin = ['availability' => '{core_path}components/minishop2/plugins/cart/availability/index.php'];
if ($miniShop2 = $modx->getService('miniShop2')) {
    $miniShop2->addPlugin('cart', $plugin);
}
R2m0x94 (Vasily)
22 декабря 2021, 18:15
0
Возьмем например такую иерархию в дереве каталогов проекта:
plugins
|_cart
|_|_availability
|_|_|_index.php
|_order
|_|_custom_modules
|_|_|_index.php
|_|_deliverytime
|_|_|_index.php
И рассмотрим пример системной настройки ms2_plugins: []
Давайте попробуем туда записать данные за вместо квадратных скобок, поместим массив json:
{
    "cart": {"availability": "{core_path}components/minishop2/plugins/cart/availability/index.php"}, 
    "order": {
        "custom_modules": "{core_path}components/minishop2/plugins/order/custom_modules/index.php",
        "deliverytime": "{core_path}components/minishop2/plugins/order/deliverytime/index.php"
    }
}
Работает, отлично!

На Вашем же примере надо просто выполнить код в консоле, который будет помещать массив в плагин cart
<?php
$plugins = [
    'cart' => ['availability' => '{core_path}components/minishop2/plugins/cart/availability/index.php']
];
if ($miniShop2 = $modx->getService('miniShop2')) {
    $miniShop2->addPlugin($plugins);
}
И Вы увидите в системной настройке ms2_plugins массив-json со следующем содержимом:
{"cart": {"availability": "{core_path}components/minishop2/plugins/cart/availability/index.php"}}
Алексей
22 декабря 2021, 15:30
0
да этот официальный плагин затирает cart_cost переменную, вся логика расчёта корзины теряется
да и удаляться сам без ошибок не умеет, приходиться файлик
core/components/minishop2/custom/order/boxberryOrderHandler.class.php
вручную удалять
прям бестолково сделан, ничего не скажешь, сдэком проще доставлять-)
vrm13
22 декабря 2021, 09:39
0
согласен, но я не могу в поддержку более года прошло на оба компонента, поэтому сам ковырял. У msoneclick даже есть события типа «msoneclick_after_init» только всё рано не получилось, в консоли вижу только одну разницу в вызовах на странице и в модальном окне: на странице когда всё работает подключается actions.php от msOrderFiles, а в модальном окне его не появляется, а как он запускается я так не понял.
Андрей
21 декабря 2021, 21:43
+1
«Подскажите, пожалуйста, на каких компонентах такое можно реализовать?»
По идее можно попробовать сделать на — UserEvents
Николай Савин
21 декабря 2021, 20:12
+3
Ой да кто тут опытный, это же MODX. Тут если знают что такое PHP — это уже опытные.
А если умеют компоненты делать — так вообще полубоги.
Тодор
21 декабря 2021, 18:26
+2
я не самый опытный в этом вопросе, но посмотрю может как-нибудь соберу вместе свои примеры по этому вопросу и опубликую
Тодор
21 декабря 2021, 18:23
1
+2
Здесь немного сложнее, нужно расширить класс mse2FiltersHandler по этой инсрукции и отредактировать метод getSortFields, перед return нужно добавить еще пару строк
if(!empty($this->config['sortby'])){
    //если хочеш использовать те параметри что были при инициализации mFilter2
    $sortby = explode(",", $this->config['sortby']);
    array_unshift($data,  $sortby[0]); 
    //можно и напрямую заново определить sortby
    //array_unshift($data, "CASE `Data`.`vendor` WHEN 7 THEN 1 ELSE 0 END ASC"); 
}
Николай
21 декабря 2021, 14:39
0
Здравствуйте, а так и должно быть? Видео
Николай Савин
21 декабря 2021, 12:56
1
+2
Это очень интересный кейс. @Тодор а чего бы тебе не написать чуть более расширенную заметку на эту тему. Что-то вроде «Сортировка с использованием операторов БД».
Не припоминаю, чтобы я тут такое встречал.
Giant Dad
21 декабря 2021, 12:53
0
Спасибо. Это помогло. А можно ещё как-то сделать так, чтобы при сортировке, положим, по цене, сначала тоже выводились товары с указанным свойством с сортировкой по цене, а потом — остальные тоже с сортировкой. Например, сначала товары производителя «Х» от самого дорогого до самого дешёвого, а потом товары всех остальных производителей, тоже от дорогого до дешёвого? В одном списке.
Александр Туниеков
20 декабря 2021, 21:08
0
У меня все TV пропадали, кроме тех, что вне категорий. Выяснилось, что исчезло поле rank таблицы категорий, а при построении TV делается запрос категорий с сортировкой по rank. И соответственно запрос ничего не возвращал.
Проверяй таблицу категорий, файлы manager\templates\default\resource\sections\tvs.tpl, manager\controllers\default\resource\update.class.php, manager\controllers\default\resource\resource.class.php.
Shedko Denis
20 декабря 2021, 20:01
0
ИМХО, для начала откройте в другом браузере. И если там не будет такой ошибки — что почти 99,99%, то загрузите сайт без кэша.

Чтобы просто перезагрузить страницу без использования старого кэша необходимо нажать на клавиатуре CTRL+F5 или CTRL+SHIFT+R.
Бывало такое на одном из пк, почему именно на нем — не выяснили.
Тодор
20 декабря 2021, 18:49
4
+3
Убери
'sort'=>'resource|menuindex:asc',
оставь только
'sortby' => 'CASE `Data`.`vendor` WHEN 7 THEN 1 ELSE 0 END ASC, msProduct.id',
Giant Dad
20 декабря 2021, 17:35
0
А как можно получать изображения модификаций товаров из МойСклад в модификацию msOptionsPrice2? Используется API 1.2. Это где-то в настройках syncMoySklad указывать? Я вижу параметр sync_moysklad_modification_fields, но не понимаю, что дописать в JSON, чтобы получить картинку модификации. Это вообще возможно?