1
我在D6中創建規則以在「已批准」志願小時數達到8的倍數時通知某人。小時被記錄爲具有數字CCK字段,「已批准」是一個標誌。我正在模8計算,但意識到這是不夠的。如果用戶有7小時的批准時間並且放入另一個2,則規則返回false,並且不發送通知。這裏是目前的規則代碼,每當一個節點被標記時觸發:基於閾值觸發Drupal規則(或任何PHP邏輯)
$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的倍數」的標誌類型,在每個閾值傳遞後遞增,可能是作爲預定的規則而不是觸發規則?
非常有意義觸發事件。也許我會運行一個cron作業來填充該字段並按照預定規則執行此操作。 – Nicholai 2010-03-11 13:12:50