Madao
Был в сети 08 января 2026, 17:18
Заказы не принимаю
- Заметки 14
- Комментарии 10
1. Работать с датами можно через объект DateTime. Насколько помню там даже можно просто сравнивать даты обычным оператором $myDate > $yourDate
2. Может быть имеет смысл не привязываться к году, а просто выводить за столько то дней до и после определённой даты. Новый год всегда 1 января не важно какого года, другие праздники тоже.
3. На мой взгляд удобнее и нагляднее вместо:
писать в таком стиле:
4. Я всегда стараюсь делать один return в сниппетах или функциях. Для меня лично тоже так удобнее и нагляднее (единая точка выхода).
Указал год — сработает только для него. Не указал, ежегодно. Если длительность не указана, то она равна 1 дню.
Тоже решаю такие квесты регулярно, поэтому позволю себе задать вопрос)
Просто интересно, а ты не пробовал стандартные для Revo планируемые даты публикации прикрутить для этих целей как-то?
Имею в виду перед тем, как решение выработал. Сниппет конечно круче, т.к. он универсальный, один раз поставил, и будет срабатывать каждый год))
Тоже горожу сниппеты, но сейчас подумал, что по-простому кажется можно было типа такого
выводить в шаблоне страницы, а в стандартных полях ресурса (с id=8 из моего примера) ставить планируемую дату публикации, и снятия с публикации, вот эти:
Как думаешь, @Денис Усманов, рабочая это схема для одноразовых событий?
Делаем tv поле флажками со значениями от 1 до 7 и назовем например его day_of_sale. И в чанках вывода товаров используем
И еще по хорошему добавить такое же условие в плагин на событие msOnBeforeAddToCart, если покупка идет через минишоп, чтобы нельзя было вообще в корзину добавить товар
Все условия, естественно, можно сделать сложнее и любыми, но общий посыл думаю ясен.
Чанк вывода msMCDMiniCartRowTpl