예제 #1
0
파일: mpft.php 프로젝트: verbazend/AWFA
  public static function apply_default(MEOW_Field $field, MEOW_FieldSet $set, $field_type_class) {
    
    if ($field->blank()) {
      
      if (isset($field->info->type_options["default_value"])) {
        $default_value = $field->info->type_options["default_value"];
      } 
    
      // apply default value filters
      
      $field->info->field_set();

      $info = $set->info();
      
      $set_name = $info->name;
      $field_name = $field->info->name;
      
      
      if ($info->type == "s") {
        
        $filter = "shared";
        
      } else if ($info->type == "p") {

        $filter = $info->vis("post_types");

      } else if ($info->type == "x") {
        
        $filter = $info->vis("taxonomies");
        
      } else if ($info->type == "t") {
        
        $filter = $info->vis("templates");
        
      } else {
        
        $filter = "site";
        
      }
      
      
      $any_filter_key = "mp_field_default";
      
      $filter_key = "mp_default_{$filter}_{$set_name}_{$field_name}";
      $field_filter_key = "mp_default_{$set_name}_{$field_name}";

      $set_any_filter_key = "mp_default_{$set_name}";
      $set_filter_key = "mp_default_{$filter}_{$set_name}";
      

      if (!isset($default_value)) {
        $default_value = null;
      }
      
      $default_value = apply_filters( $filter_key, $default_value );
      $default_value = apply_filters( $field_filter_key, $default_value );
      $default_value = apply_filters( $set_filter_key, $default_value, $field_name );
      $default_value = apply_filters( $set_any_filter_key, $default_value, $field_name );
      
      // parse value using value_for_set
      
      if (!is_null($default_value)) {
        $default_value = $field->value_for_set($default_value);
      }
    
      $fill = false;
      
      if (!is_null($default_value)) {
        

        if (is_array($default_value)) {
        
          if (count($default_value)) {
            $fill = true;
          }
        
        } else {

          if (trim($default_value) != "") {
            $fill = true;
          }
        
        }
        
      }
      
      if ($fill) {
        $field->data( (object) array("prop" => array(), "val" => $default_value, "__blank" => false, "__default" => true) );
      }
      
    }
    
    
  }