Артем
С нами с 15 октября 2017; Место в рейтинге пользователей: #1646 часов назад
Так как уже выложил — оставлю так, далее будем сокращать названия.
ms3FirstTimeBuyerDiscount - автоматическая скидка на первый заказ 4
8 часов назад
А теперь все эту красоту оформляем в виде сниппета. Параметры по-умолчанию редактируем в самом сниппете
elements/snippets/bgImage.php
<?php
/**
...
Унифицированное отображение разноформатных изображений без обрезки (решено) 1
Вчера в 17:14
Это не ошибка, а warning — посмотрим, спасибо!
UPD github.com/modx-pro/MiniShop3/pull/127
MiniShop3 1.2.0 - 1.3.0 Самое интересное 23
01 марта 2026, 14:45
Добавил сиcтемную настройку ms3recentlyviewed.block_bots_detector и интегрировал jaybizzle/crawler-detect
ms3RecentlyViewed - Недавно просмотренные товары для MiniShop3 5
01 марта 2026, 14:38
В следующий раз сделаю как положено)
Gallery3x 3.0.31 для MODX3 - управление файлами 2
28 февраля 2026, 15:20
Всем привет!
Версия модуля 1.4.0
Необходимо обновить наименования товаров.
Выбираем Тип импорта — Обновить данные товаров
Соответствие Столбца Наз...
msImportExport 919
27 февраля 2026, 21:26
Настройками нельзя, только написанием своего плагина, который будет проверять необходимые условия. Если сами не справитесь, могу написать его за отдел...
Вопрос по msProductDiscounts 4
25 февраля 2026, 17:49
Добавлен также генератор разнообразных типов опций товара в разном количестве для разных наборов и их заполнение у товаров.
ms3DemoData - компонент для быстрой генерации демо-данных MiniShop3 3
searchResources юзает getCollection, ровно как и остальные методы для поиска, тут можно передать привет оперативке.
process тоже переопределять нужно.
И что там в итоге остается, проверка прав?
Тем более, в твоем примере просто проверяется наличие '@FILE' в строке, а не на первой позиции. Это я к тому, что накосячить с этим гораздо проще, чем кажется.
То она просто скастуется до 0 через (int), а затем будет взято 3. В общем, в этой переменной всегда будет число и ошибки не будет. Максимум — условие не пройдет, если передать отрицательный minQuery.
Если у тебя будет 30к товаров, то getIterator сожрет всю оперативку даже не дойдя до половины.
Конечно, защищает от любых sql-инъекций.
достаточно просто
Объекты тут вообще не нужны, гораздо правильнее заменить это на
$query было бы неплохо хотя бы поверхностно обработать, т.к. он дальше напрямую передается в запрос.
Можно добавить (int).
- $a in list $b
- $a in keys $b
- $a in string $b (если указана строка вместо массива)
Соответственно, в твоем случае in list возвращает false, но сразу после этого идет проверка на in keys, которая уже возвращает true. То есть проверяется, что parent текущего ресурса содержится в ключах массива, а это, разумеется, правда.Из сорсов:
Не знаю, зачем был придуман этот модификатор, потому что в реальных кейсах никто не проверяет такой «микс» условий.
Рекомендую забыть об этом модификаторе и юзать его более конкретизированные версии, в частности in list.
А вообще, мне лично неясно, зачем здесь нужна вторая таблица. Достаточно создать 3 новых поля — discount, discount_after, discount_until, затем написать небольшой кусок логики, который будет проверять, что товар попадает в нужный временной отрезок и к нему можно применить акцию, ну и останется только рассчитать скидку согласно акции.
По инструкции, которую ты скинул, можно расширить админку и сделать вполне удобный интерфейс для заполнения этой инфы.
Пройдись в цикле по всем изображениям в базе, проверь их наличие через file_exists и актуализируй данные на основе наличия этих файлов.
Ну а потом просто добавь условие, которое тебе уже подсказали в другом треде.
В админке тык по шестеренке -> Наборы параметров.
Если класс выводимых объектов отличается от modResource, то его всегда нужно указывать явно.
Соответственно, в чанке юзается просто {$product.pagetitle}.
Восстанавливай нервы, отдыхай от этой суматохи и возвращайся с новыми силами!
пухомконнектором, что еще тут скажешь.Я не собираюсь использовать твой компонент, который состоит из 30 так-себе-написанных строк, да и другим не советую этого делать.
Какие мы тут плохие, обидели бедняжку:(
Ну ты извини нас, мы дружно скачаем твой компонент и будем использовать на всех своих сайтах. Ведь это самый удобный и самый практичный способ работы с ajax.
Собственно, если в разрешенных сниппетах будет какой-нибудь pdoResources, то это будет аналогично этому коду: