/** * Build options based on parameters, this must be used to have * consistencies in selects * * @param array $data * @param array $options_map * @param array $orderby * @param array $options * @return array */ public static function build_options($data, $options_map, $orderby, $options) { $data = object_data_common::options($data, $options_map, $options); // sorting if (!empty($options['i18n']) && $options['i18n'] !== 'skip_sorting') { // mandatory sorting if localized array_key_sort($data, ['name' => SORT_ASC], ['name' => SORT_NATURAL]); } else { if (empty($orderby)) { array_key_sort($data, ['name' => SORT_ASC], ['name' => SORT_NATURAL]); } } return $data; }
/** * Optgroups * * @see $this->get() */ public function optgroups($options = []) { $data = $this->get($options); $options_map = !empty($this->options_map) ? $this->options_map : [$this->column_prefix . 'name' => 'name']; if (!empty($this->optgroups_map)) { $optgroups_map = $this->optgroups_map; $optgroups_map['column'] = $optgroups_map['column']; return object_data_common::optgroups($data, $optgroups_map, $options_map); } else { return object_data_common::options($data, $options_map); } }