function findRules($url, $key, $project_id) { $s3ql = compact('url', 'key'); $s3ql['select'] = '*'; $s3ql['from'] = 'rules'; $s3ql['where']['project_id'] = $project_id; list($q, $rules) = S3DBCall($s3ql); #Now make a list of rule subject, verbs, object and rule_ids foreach ($rules as $rule_info) { $ruleSubs[] = strtolower($rule_info['subject']); $ruleVerbs[] = strtolower($rule_info['verb']); $ruleObjs[] = strtolower($rule_info['object']); $ruleIds[] = $rule_info['rule_id']; } return array($rules, $ruleSubs, $ruleVerbs, $ruleObjs, $ruleIds); }
<?php #rule Template - a tab separated file with first line rule id include '../S3QLgoodies.php'; $url = $_REQUEST['url']; $key = $_REQUEST['key']; $project_id = $_REQUEST['project_id']; $s3ql = compact('url', 'key'); $s3ql['select'] = 'rule_id,subject,verb,object'; $s3ql['from'] = 'rules'; $s3ql['where']['project_id'] = $project_id; $s3ql['format'] = 'php'; $rules = S3DBCall($s3ql); foreach ($rules[1] as $rule_info) { $rule_ids[] = $rule_info['rule_id']; $subjects[] = $rule_info['subject']; $verb[] = $rule_info['verb']; $object[] = $rule_info['object']; } $str .= chr(9); foreach ($rule_ids as $rule_id) { $str .= $rule_id; if ($rule_id != end($rule_ids)) { $str .= chr(9); } } $str .= chr(10); $str .= chr(9); foreach ($subjects as $rule_id) { $str .= $rule_id; if ($rule_id != end($rule_ids)) {
function ruleReference($rule, $url, $key, $repeat = FALSE) { $s3ql = compact('url', 'key'); $s3ql['from'] = 'rules'; $s3ql['where']['rule_id'] = $rule; $rule_data = S3DBCall($s3ql); if ($rule_data) { return $rule_data; } else { return False; } }
function insertStatement($url, $key, $item_id, $rule_id, $value) { if ($item_id != '' && $rule_id != '' && $value != '') { $s3ql = compact('url', 'key'); $s3ql['format'] = 'php'; $s3ql['insert'] = 'statement'; $s3ql['where']['item_id'] = $item_id; $s3ql['where']['rule_id'] = $rule_id; $s3ql['where']['value'] = trim($value); $statementInserted = S3DBCall($s3ql); return $statementInserted; } else { return False; } }