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; }