コード例 #1
0
ファイル: set.php プロジェクト: kevintrogers/justbkause
 public function populate_values($opt, $force_update = false)
 {
     $fields = $this->get_fields();
     foreach ($fields as $field) {
         $is_multi = VP_Util_Reflection::is_multiselectable($field);
         if (array_key_exists($field->get_name(), $opt)) {
             if ($is_multi and is_array($opt[$field->get_name()])) {
                 $field->set_value($opt[$field->get_name()]);
             }
             if (!$is_multi and !is_array($opt[$field->get_name()])) {
                 $field->set_value($opt[$field->get_name()]);
             }
         } else {
             if ($force_update) {
                 if ($is_multi) {
                     $field->set_value(array());
                 } else {
                     $field->set_value('');
                 }
             }
         }
     }
 }
コード例 #2
0
ファイル: alchemy.php プロジェクト: estrategasdigitales/kanet
 function _enfactor_field($field, $mb, $in_group = false)
 {
     $is_multi = VP_Util_Reflection::is_multiselectable($field['type']);
     if (!$is_multi) {
         $mb->the_field($field['name']);
     } else {
         $mb->the_field($field['name'], WPALCHEMY_FIELD_HINT_CHECKBOX_MULTI);
     }
     $field['name'] = $mb->get_the_name();
     // create the object
     $make = VP_Util_Reflection::field_class_from_type($field['type']);
     $vp_field = call_user_func("{$make}::withArray", $field);
     // get value from mb
     $value = $mb->get_the_value();
     // get default from array
     $default = $vp_field->get_default();
     // if tocopy always assign default
     if ($mb->is_parent_multi() and $mb->is_in_multi_last()) {
         $value = $default;
     } else {
         // if value is null and default exist, use default
         if (is_null($value) and !is_null($default) and empty($this->meta)) {
             $value = $default;
         } else {
             if (VP_Util_Reflection::is_multiselectable($field['type'])) {
                 if (!is_array($value)) {
                     $value = array($value);
                 }
             }
         }
     }
     $vp_field->set_value($value);
     if (!$in_group) {
         $vp_field->add_container_extra_classes(array('vp-meta-single'));
     }
     return $vp_field;
 }
コード例 #3
0
 /**
  * Setter for $_default
  *
  * @param mixed $_default default value of the field
  */
 public function set_default($_default)
 {
     if (is_array($_default) and !VP_Util_Reflection::is_multiselectable($this)) {
         $_default = VP_Util_Array::first($_default);
     }
     $this->_default = $_default;
     return $this;
 }