Всего 125 692 комментария

Иван Бочкарев
39 минут назад
0
Так как уже выложил — оставлю так, далее будем сокращать названия.
Иван Бочкарев
48 минут назад
0
Я старался, но можно сделать сокращенно ms3FTBDiscount.

Что будет, когда выпущу ms3BOGOGenerator =) — BOGO-акции для MiniShop3.

Применяет акции «Купи N — получи M»: правила задаются в системной настройке (JSON), скидка учитывается в стоимости корзины через события msOnBeforeGetCartCost и msOnGetCartCost.
SYAN
3 часа назад
+2
А теперь все эту красоту оформляем в виде сниппета. Параметры по-умолчанию редактируем в самом сниппете
elements/snippets/bgImage.php
<?php
/**
 * Сниппет bgImage — обработка изображений через phpThumbOn
 *
 * Параметры:
 * - image (обязательный) — путь к исходному изображению
 * - width (опционально) — ширина итогового изображения (по умолчанию 600)
 * - height (опционально) — высота итогового изображения (по умолчанию 300)
 * - quality (опционально) — качество сжатия (по умолчанию 100)
 * - blur_strength (опционально) — сила размытия для фона (по умолчанию 9)
 * - brightness (опционально) — яркость для фона (по умолчанию 15)
 * - watermark_opacity (опционально) — прозрачность водяного знака (по умолчанию 100)
 */

// Получаем параметры
$image = $modx->getOption('image', $scriptProperties, '');
$width = $modx->getOption('width', $scriptProperties, 600);
$height = $modx->getOption('height', $scriptProperties, 300);
$quality = $modx->getOption('quality', $scriptProperties, 100);
$blur = $modx->getOption('blur_strength', $scriptProperties, 9);
$brightness = $modx->getOption('brightness', $scriptProperties, 15);
$watermarkOpacity = $modx->getOption('watermark_opacity', $scriptProperties, 100);

// Проверяем, что изображение передано
if (empty($image)) {
    $modx->log(modX::LOG_LEVEL_ERROR, 'ProcessImage: не передан параметр image');
    return '';
}

// Шаг 1. Уменьшение основного изображения без обрезки
$mainImageParams = "w={$width}&h={$height}&zc=0&q={$quality}&aoe=1";
$processedImage = $modx->runSnippet('phpthumbon', [
    'input' => $image,
    'options' => $mainImageParams
]);

// Шаг 2. Создание фонового изображения с размытием и яркостью
// Применяем 9 фильтров размытия для усиления эффекта
$blurFilters = '';
for ($i = 0; $i < 9; $i++) {
    $blurFilters .= "fltr[]=blur|{$blurStrength}&";
}
$bgImageParams = "w={$width}&h={$height}&zc=1&{$blurFilters}fltr[]=brit|{$brightness}";
$bgImage = $modx->runSnippet('phpthumbon', [
    'input' => $image,
    'options' => $bgImageParams
]);

// Шаг 3. Создание водяного знака из основного изображения
// Используем обработанное основное изображение как водяной знак
$filter = "fltr[]=wmi|{$processedImage}|C|{$watermarkOpacity}";

// Шаг 4. Генерация финального изображения с фоном и водяным знаком
$finalImage = $modx->runSnippet('phpthumbon', [
    'input' => $bgImage,
    'options' => $filter
]);

return $finalImage;
?>

Вывод изображения на странице. Параметры можно опустить или указать под разные задачи

{set $image = $_modx->runSnippet('@FILE snippets/bgImage.php', [
  'image' => $image, 
  'width' => 1200, 
  'height' => 675,
  'brightness' => 5,
  'blurStrength' => 20
])}

<img src="{$image}">
Иван Бочкарев
Вчера в 17:12
0
Добрый день!

Это исправлено в github.com/modx-pro/MiniShop3/pull/107, в ближайшее время выйдет новая версия. @Николай Савин fyi
Дмитрий
Вчера в 15:48
0
так же при обновлении minishop3 до версии 1.5.0-beta1 ошибка
[MiniShop3] System routes are in: core/components/minishop3/config/routes/
[MiniShop3] Scheduler not installed, skipping task registration. Install Scheduler component to enable background task processing.
PHP warning: Undefined array key "desc"
PHP warning: Undefined array key "desc"
Успешно установлен пакет minishop3-1.5.0-beta1
Дмитрий
Вчера в 15:37
0
Добрый день! При обновлении modx 3.1.2 до 3.2.0 появились ошибки
Fatal error: Uncaught TypeError: array_diff_key(): Argument #1 ($array) must be of type array, string given in /home/setup/includes/upgrade.install.php:254 Stack trace: #0 /home/setup/includes/upgrade.install.php(254): array_diff_key('{"mscategory_sa...', Array) #1 /home/setup/includes/runner/modinstallrunnerweb.class.php(78): include('/home/hostcweb/...') #2 /home/setup/includes/runner/modinstallrunner.class.php(49): modInstallRunnerWeb->execute(1) #3 /home/setup/controllers/install.php(34): modInstallRunner->run(1) #4 /home/setup/includes/request/modinstallrequest.class.php(81): include('/home/hostcweb/...') #5 /home/setup/index.php(30): modInstallRequest->handle() #6 {main} thrown in /home/setup/includes/upgrade.install.php on line 254
, оказалось, что в modx_access_policies у modx_access_policies стоял 0 template, а в data
"{\"mscategory_save\":true,\"msproduct_save\":true,\"msproduct_publish\":true,\"msproduct_delete\":true,\"msorder_save\":true,\"msorder_view\":true,\"msorder_list\":true,\"msorder_remove\":true,\"mssetting_save\":true,\"mssetting_view\":true,\"mssetting_list\":true,\"msproductfile_save\":true,\"msproductfile_generate\":true,\"msproductfile_list\":true}"
, убрал лишние кавычки и /, поставил 8 шаблон руками, после этого modx обновился. Это баг minishop3 или я где-то напортачил?
Иван Бочкарев
01 марта 2026, 14:45
+1
Добавил сиcтемную настройку ms3recentlyviewed.block_bots_detector и интегрировал jaybizzle/crawler-detect
Ivan K.
01 марта 2026, 14:38
0
В следующий раз сделаю как положено)
Николай Савин
28 февраля 2026, 22:07
+1
Заранее прошу прощение за занудство, но по semver если в релизе фигурирует слово «Добавлено» — то это автоматически минорный релиз (меняем вторую цифру в версии)
Дмитрий
28 февраля 2026, 15:20
0
Всем привет!
Версия модуля 1.4.0
Необходимо обновить наименования товаров.
Выбираем Тип импорта — Обновить данные товаров
Соответствие Столбца Название — pagetitle
Запускаем импорт.
В логе запись апдейтится, но там нет поля pagetitle:

[2026-02-28 14:43:45] (INFO @ /var/sites/core/components/msimportexport/model/msimportexport/msie.class.php: 2905) Update SQL:
UPDATE `modx_ms2_products` AS msProductData SET `price`='26420',`old_price`='0',`article`='',`sklad`=0,`weight`='0',`color`='[\"\\u0414\\u0443\\u0431 \\u043a\\u0430\\u043f\\u0443\\u0447\\u0447\\u0438\\u043d\\u043e\"]',`size`='[\«2000x600\»,\«2000x700\»,\«2000x800\»,\«2000x900\»]',`made_in`='',`vendor`=4,`steklo`=0,`nestandart`=1,`garanty`=5,`available`=2,`new`=0,`favorite`=0,`popular`=0,`ms2colors_common_id`=1,`ms2colors_collection_id`=68,`mk_price_box`=5870,`mk_price_nalich`=5580,`mk_subtype`=1,`mk_kapitel`=0,`mk_material`=8,`mk_style`=2,`mk_type_open`='[\«1\»,\«2\»,\«3\»,\«4\»]' WHERE `msProductData`.`id` = 1567

Подскажите, пож-та, как поправить.
Спасибо.

Файл импорта:
ID; Название; Опубликован; Цена; Старая цена; Артикул;sklad; Вес; Цвет; Размер; Страна; Производитель;steklo;nestandart;garanty;available; Новый; Особый; Популярный;ms2colors_common_id;ms2colors_collection_id;mk_price_box;mk_price_nalich;mk_subtype;mk_kapitel;mk_material;mk_Стайл;mk_type_open;ms2colors_common_name;ms2colors_collection_name
1567; Футура 311;1;26420.00;0.00;;0;0.000; Дуб капуччино;2000x600|2000x700|2000x800|2000x900;;4;0;1;5;2;0;0;0;1;68;5870;5580;1;0;8;2;1|2|3|4; Светло коричневый; Дуб капучино
Артур Шевченко
27 февраля 2026, 21:26
0
Настройками нельзя, только написанием своего плагина, который будет проверять необходимые условия. Если сами не справитесь, могу написать его за отдельную плату.
Николай
27 февраля 2026, 15:50
0
Можно ли учитывать все товары в корзине для минимальной стоимости (даже те, для которых не настроена скидка), но исключить одну категорию из этого подсчета.
Николай
27 февраля 2026, 15:34
0
т.е. если я настроил скидку на 2 категории, то скидка будет применятся, только тогда когда я набрал минимальную сумму из этих 2-х категорий?
Артур Шевченко
27 февраля 2026, 15:27
0
В настройках скидки можно выбрать «Учитывать количество акционных товаров» тогда при подсчёте суммы будет учитываться только общая стоимость товаров удовлетворяющих остальным условиям акции
Николай Савин
25 февраля 2026, 17:49
+2
Добавлен также генератор разнообразных типов опций товара в разном количестве для разных наборов и их заполнение у товаров.
Николай Савин
25 февраля 2026, 15:21
0
Сложно сказать. Впервые про такую проблему слышу. Вы можете написать мне в телеграм доступы — вместе посмотрим
Ольга
25 февраля 2026, 15:07
0
Подскажите, никак не получается понять почему — почему вывод корзины не работает после авторизации? причем добавление товаров уже после авторизации, ничего не решает, корзины не видно, так же не видно мини корзинки, все пусто. Может ге в системе что то щелкнуть нужно? типа сессий, итд?