Esempio n. 1
0
 /**
  * Get taxonomy field
  *
  * @return AbstractField
  * @throws WpException
  */
 public function get_field()
 {
     if ($this->_field == null) {
         if ($this->_field_init == null) {
             $this->_field = new Text();
         } elseif (is_string($this->_field_init)) {
             $this->_field = FieldFactory::build($this->_field_init);
         } elseif (Action::is_callable($this->_field_init)) {
             $this->_field = Action::execute($this->_field_init);
             if (!$this->_field instanceof AbstractField) {
                 throw new WpException("Option \"{$this->_title}\" init function must return a Field.");
             }
         } else {
             throw new WpException("Invalid field type.");
         }
         $this->_field->set_name($this->_key);
         $this->_field->set_label($this->_title);
     }
     return $this->_field;
 }
Esempio n. 2
0
 /**
  * @param AbstractField $field
  *
  * @return string
  */
 protected function _render_field(AbstractField $field)
 {
     $css_classes = $field->get_classes();
     if ($field instanceof Text && in_array('large-text', $css_classes)) {
         $key = array_search('large-text', $css_classes);
         $css_classes[$key] = 'regular-text';
         $field->set_classes($css_classes);
     }
     return sprintf('<td>%s</td>', $field->render_field());
 }
Esempio n. 3
0
 protected function _get_field_value(AbstractField $field, $post, $index)
 {
     if (!$post) {
         return null;
     }
     $values = get_post_meta($post->ID, $field->get_name(), true);
     if (!is_array($values)) {
         if (empty($this->_defaults) || !isset($this->_defaults[$field->get_name()])) {
             return null;
         }
         $values = $this->_defaults[$field->get_name()];
     }
     return array_key_exists($index, $values) ? $values[$index] : null;
 }
Esempio n. 4
0
 protected function _render_for_attribute()
 {
     return ' for="' . $this->_field->get_id() . '"';
 }