getExtraValues($allowed)) { $this->error(tr('Unexpected values: %0', implode(', ', $extra))); } $object = $element->object; if (! $object || count($object) != 2) { $this->error(tra('Object must be provided and contain two arguments: type and object')); } $type = $this->evaluateChild($object[0]); $object = $this->evaluateChild($object[1]); $params = []; if ($range = $element->range) { if (count($range) == 1) { $params['range'] = $this->evaluateChild($range[0]); } else { $this->error(tra('Invalid range.')); } } if ($revote = $element->revote) { if (count($revote) == 1) { $params['revote'] = $this->evaluateChild($revote[0]); } else { $this->error(tra('Invalid revote period.')); } } if ($element->ignore) { $params['ignore'] = 'anonymous'; } if ($keep = $element->keep) { if ($keep[0] == 'oldest' || $keep[0] == 'latest') { $params['keep'] = $keep[0]; } else { $this->error(tra('Expecting "keep" to be "latest" or "oldest"')); } } $ratinglib = TikiLib::lib('rating'); return $ratinglib->collect($type, $object, $this->mode, $params); } }