Запуск правила Drupal (или любой логики PHP) на основе порога - PullRequest
1 голос
/ 10 марта 2010

Я создаю правило в D6, чтобы уведомить человека, когда «утвержденные» часы добровольцев достигают кратного 8. Часы записываются как пользовательский тип контента с числовым полем CCK, а «утвержденный» - это флаг. Я делал вычисления по модулю 8, но понял, что этого будет недостаточно. Если пользователь одобрил 7 часов и вставил еще 2, правило возвращает false и уведомление не отправляется. Вот текущий код правила, который срабатывает всякий раз, когда узел помечен:

$result = db_result(db_query("SELECT 
SUM(vol_hours.field_hours_worked_value) AS TotalHours 
FROM node 
INNER JOIN content_type_volunteer_log vol_hours ON node.vid = vol_hours.vid
INNER JOIN flag_content ON node.vid = flag_content.content_id AND flag_content.fid = 3
WHERE node.uid = '%d'
AND YEAR(field_date_worked_value) = YEAR(NOW())" , $node->uid));

if ($result % 8 == 0) {
return TRUE;
}
else {
return FALSE;
}

Какой-нибудь совет, как решить эту проблему? Нужен ли мне дополнительный тип флага «кратный 8», который увеличивается после прохождения каждого порога, может быть, как запланированное правило вместо правила запуска?

1 Ответ

0 голосов
/ 10 марта 2010

Я бы сохранил "last_checked_value" и инициировал событие, когда floor (current_value / 8)> floor (last_checked_value / 8)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...