Я создаю правило в 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», который увеличивается после прохождения каждого порога, может быть, как запланированное правило вместо правила запуска?