예제 #1
0
파일: mpv-meta.php 프로젝트: verbazend/AWFA
  public static function field_ui_template_data(MEOW_FieldSet $set, MEOW_Field $field, $args = array()) {

    $r = wp_parse_args( $args,
      array("preview" => false, "readonly" => false, "preview_prefix" => "preview_", "id_base" => "mp_meta_", "name_base" => "mp_meta", "prop_name_base" => "mp_meta_prop", "prop_id_base" => "mp_meta_prop_" )
    );
    
    $set_info = $set->info();
    $field_info = $field->info();
    $ftc = MPFT::type_class($field_info->type);

    $i = $field->set_index();
    
    if (WOOF::is_true_arg($r, "creator")) {
      $i = "!!set_index!!";
    } else if ($field->creator) {
      // leave a placeholder for Handlebars to render into
      $i = "{{set_index}}";
    } 
    
    $prefix = "";
    
    if ($r["preview"]) {
      $prefix = $r["preview_prefix"];
    }
    
    $set_id = $prefix.$r["id_base"]."{$set_info->name}_$i"; 
    $set_name = $prefix.$r["name_base"]."[{$set_info->name}][$i]"; 

    if (WOOF::is_true_arg($r, "nested")) {
      $field_id = $prefix."{$set_id}_{$field_info->name}";
      $field_name = $prefix.$r["name_base"]."[{$i}][{$field_info->name}]";
      $field_prop_name = $prefix.$r["prop_name_base"]."[{$i}][{$field_info->name}]";
      $field_prop_id = $prefix.$r["prop_id_base"]."{$set_info->name}_{$i}_{$field_info->name}";
    
    } else {
      
      $field_id = $prefix."{$set_id}_{$field_info->name}";
      $field_name = $prefix."{$set_name}[{$field_info->name}]";
      $field_prop_name = $prefix.$r["prop_name_base"]."[{$set_info->name}][$i][{$field_info->name}]";
      $field_prop_id = $prefix.$r["prop_id_base"]."{$set_info->name}_{$i}_{$field_info->name}";
    }
    
    
    // prepare the data to return
    $d = array();
    
    $strip_whitespace = !call_user_func( array($ftc, "ui_preserve_whitespace") );
    
    if ($r["preview"]) {
      $field->_version_preview = true;
    }
  
    $d["type"] = $field_info->type;
    $d["ui"] = WOOF::render_template( call_user_func_array( array($ftc, "ui"), array($field)), array("id" => $field_id, "name" => $field_name, "prop_id" => $field_prop_id, "prop_name" => $field_prop_name), $strip_whitespace );
    
    return $d;
        
  }