/** * Process all the rules collection * * @param input the input data used to check criterias * @param output the initial ouput array used to be manipulate by actions * @param params parameters for all internal functions * @param force_no_cache don't write rule's result into cache (for preview mode mainly) * * @return the output array updated by actions **/ function processAllRules($input = array(), $output = array(), $params = array(), $force_no_cache = false) { //If cache enabled : try to get value from the cache $new_values = $this->checkDataInCache($input); if ($new_values != Rule::RULE_NOT_IN_CACHE) { $output["_rule_process"] = true; return array_merge($output, $new_values); } $output = parent::processAllRules($input, $output, $params); if (!$force_no_cache && isset($output["_ruleid"])) { $this->insertDataInCache($input, $output); unset($output["_ruleid"]); } return $output; }