Пример #1
0
 /**
  * A list of parent options
  *
  * @param array $options
  * @return array
  */
 public function get_all_parents_options($options)
 {
     $result = [];
     $data = helper_tree::convert_by_parent($this->get(), 'sm_cntractn_parent_id');
     helper_tree::convert_tree_to_options_multi($data, 0, ['name_field' => 'sm_cntractn_name', 'i18n' => true], $result);
     return $result;
 }
Пример #2
0
 /**
  * Presets
  *
  * @see $this->get()
  */
 public function presets($options = [])
 {
     $options['__preset'] = true;
     if (empty($options['columns'])) {
         $options['columns'] = [$this->column_prefix . 'name'];
     } else {
         if (!is_array($options['columns'])) {
             $options['columns'] = [$options['columns']];
         }
     }
     $options['options_map'] = ['preset_value' => 'name'];
     $options['orderby'] = ['preset_value' => SORT_ASC];
     $options['pk'] = [];
     if (!empty($options['where'])) {
         $options['pk'] = array_keys($options['where']);
     }
     $options['pk'][] = 'preset_value';
     $values_found = $this->options($options);
     foreach ($values_found as $k => $v) {
         $values_found[$k]['__parent'] = '__values_found_all__';
     }
     $values_found['__values_found_all__'] = ['name' => i18n_if('Previously Set Values:', $options['i18n'] ?? false), '__parent' => null, 'disabled' => true];
     // eixsting values
     if (!empty($options['existing_values'])) {
         $existing_values = is_array($options['existing_values']) ? $options['existing_values'] : [$options['existing_values']];
         $found = false;
         foreach ($existing_values as $v) {
             if (empty($values_found[$v])) {
                 $found = true;
                 $values_found[$v] = ['name' => i18n_if($v, $options['i18n'] ?? false), '__parent' => '__values_existing__'];
             }
         }
         if ($found) {
             $values_found['__values_existing__'] = ['name' => i18n_if('Existing Value(s)', $options['i18n'] ?? false), '__parent' => null];
         }
     }
     // convert to tree
     $values_found = helper_tree::convert_by_parent($values_found, '__parent');
     $result = [];
     helper_tree::convert_tree_to_options_multi($values_found, 0, ['name_field' => 'name'], $result);
     return $result;
 }