/** * Walk options * * @param mixed $meta * @param array $field * @param mixed $options * @param mixed $db_fields * * @return string */ public static function walk($options, $db_fields, $meta, $field) { $attributes = call_user_func(array(SWP_Meta_Box::get_class_name($field), 'get_attributes'), $field, $meta); $walker = new SWPMB_Select_Walker($db_fields, $field, $meta); $output = sprintf('<select %s>', self::render_attributes($attributes)); $output .= '<option></option>'; $output .= $walker->walk($options, $field['flatten'] ? -1 : 0); $output .= '</select>'; $output .= self::get_select_all_html($field); return $output; }
/** * Walk options * * @param mixed $meta * @param array $field * @param mixed $options * @param mixed $db_fields * * @return string */ public static function walk($options, $db_fields, $meta, $field) { $attributes = call_user_func(array(SWP_Meta_Box::get_class_name($field), 'get_attributes'), $field, $meta); $walker = new SWPMB_Select_Walker($db_fields, $field, $meta); $output = sprintf('<select %s>', self::render_attributes($attributes)); if (false === $field['multiple']) { if (isset($field['placeholder']) && $field['placeholder'] != '') { $output .= "<option value=''>{$field['placeholder']}</option>"; } } $output .= $walker->walk($options, $field['flatten'] ? -1 : 0); $output .= '</select>'; $output .= self::get_select_all_html($field); return $output; }
function display_level($options, $parent_id = 0, $active = false) { $id = $this->db_fields['id']; $field = $this->field; $meta = $this->meta; $walker = new SWPMB_Select_Walker($this->db_fields, $this->field, $this->meta); $field_class = SWP_Meta_Box::get_class_name($field); $attributes = call_user_func(array($field_class, 'get_attributes'), $field, $meta); $children = $options[$parent_id]; $output = sprintf('<div class="swpmb-select-tree %s" data-parent-id="%s"><select %s>', $active ? '' : 'hidden', $parent_id, SWPMB_Field::render_attributes($attributes)); $output .= isset($field['placeholder']) ? "<option value=''>{$field['placeholder']}</option>" : '<option></option>'; $output .= $walker->walk($children, -1); $output .= '</select>'; foreach ($children as $c) { if (isset($options[$c->{$id}])) { $output .= $this->display_level($options, $c->{$id}, in_array($c->{$id}, $meta) && $active); } } $output .= '</div>'; return $output; }