Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * 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);
     }
 }