/** * Returns a list of valid targets for a given rule. * * @param $rule * @return array [string] * @throws \invalid_parameter_exception */ public static function get_targets($rule) { $params = self::validate_parameters(self::get_targets_parameters(), array('rule' => $rule)); $obj = \tool_cat\rule::create_rule($params['rule']); $keys = $obj->get_supported_targets(); // Prettify. $values = array_map(function ($str) { $str = str_replace('_', ' ', $str); return ucwords($str); }, $keys); return array_combine($keys, $values); }