Rules - срабатывание условия для определенного дня недели

Главные вкладки

Аватар пользователя roman-yrv roman-yrv 7 апреля 2013 в 15:33

Добрый день.

Скажите пожалуйста, можно ли настроить срабатывание условия в правиле Rules для определенного дня недели без использования php-кода ?

Например, чтобы условие было истинно для воскресенья, но ложно для всех остальных дней недели.

С php-кодом всё достаточно просто.

$now = time();
$day = date("D", $now);
return $day == "Sun";

А вот без него реально ли настроить ?

Комментарии

Аватар пользователя roman-yrv roman-yrv 10 ноября 2015 в 11:49

Ну а каким образом, не подскажете ?

Я так понимаю, нужно как-то это задать в поле "Значение" (см. рис.)

Пытаюсь написать "Sunday" или "Sun" - не работает.

Как это задать, чтобы работало ?

Аватар пользователя aa2007 aa2007 8 апреля 2013 в 10:16

Верным путем идете. http://www.php.net/manual/ru/datetime.formats.relative.php
Лично у себя заметил, когда так же к датам привязывался, некоторые значения (например, "первая неделя текущего месяца") на php 5.2 некорректно обрабатывались, пришлось ставить 5.3

Аватар пользователя roman-yrv roman-yrv 8 апреля 2013 в 15:32

Сегодня попробовал, написал в этой строке сначала monday, а затем попробовал с mon - не работает условие.

Подскажите пожалуйста, что в данном случае написать, чтобы условие реагировало на день недели - понедельник ?

Аватар пользователя aa2007 aa2007 8 апреля 2013 в 15:45

например, можно включить показ отладочной информации и посмотреть что там пишется. так же можно в том же правиле добавить php код и в нем проверить что происходит при print strtotime('monday'); в общем разобраться от куда ноги растут, а там уже смотреть почему понедельник вовсе не понедельник.

Аватар пользователя roman-yrv roman-yrv 8 апреля 2013 в 16:19

Спасибо большое за наводку, вроде бы, разобрался.

Оказалось, что site:current-date - текущая дата и время, а monday - начало ближайшего понедельника.

Сделал два условия, первое условие - site:current-date > monday, а второе условие site:current-date < tuesday - заработало.

Или второе условие можно задать как site:current-date < monday+1 day