/** * init field object */ function jcf_init_field_object($field_mixed, $fieldset_id = '', $collection_id = '') { // $field_mixed can be real field id or only id_base $id_base = preg_replace('/\\-([0-9]+)/', '', $field_mixed); $field = jcf_get_registered_fields($id_base); $field_obj = new $field['class_name'](); $field_obj->set_fieldset($fieldset_id); $field_obj->set_collection($collection_id); $field_obj->set_id($field_mixed); //if is not new field and include to cillection if (!$field_obj->is_new && $collection_id) { $collection_obj = new Just_Field_Collection(); $collection_obj->set_fieldset($fieldset_id); $collection_obj->set_id($collection_id); $field = $collection_obj->instance['fields'][$field_mixed]; $field_obj->set_slug($field['slug']); $field_obj->instance = $field; } return $field_obj; }
/** * save field from the form callback */ function jcf_ajax_save_field() { $field_type = $_POST['field_id']; $fieldset_id = $_POST['fieldset_id']; $collection_id = isset($_POST['collection_id']) ? $_POST['collection_id'] : ''; $field_obj = jcf_init_field_object($field_type, $fieldset_id, $collection_id); $resp = $field_obj->do_update(); if (isset($resp['id_base']) && $resp['id_base'] == 'collection') { ob_start(); Just_Field_Collection::settings_row($resp['id'], $fieldset_id); $resp["collection_fields"] = ob_get_clean(); } jcf_ajax_reposnse($resp, 'json'); }
?> " data-collection_id="<?php echo $collection_id; ?> "><?php _e('Delete', JCF_TEXTDOMAIN); ?> </a></span> </div> </td> <td><?php echo preg_replace('/\\-[0-9]+$/', '', $field_id); ?> </td> <td><?php echo Just_Field_Collection::get_width_alias($field['field_width']); ?> </td> <td><?php if ($field['enabled']) { _e('Yes', JCF_TEXTDOMAIN); } else { _e('No', JCF_TEXTDOMAIN); } ?> </td> </tr> <?php } ?> <?php
/** * return empty collection fields group */ public static function ajax_return_collection_field_group() { $fieldset_id = $_POST['fieldset_id']; $collection_id = $_POST['collection_id']; $collection = jcf_init_field_object($collection_id, $fieldset_id); self::$current_collection_field_key = $_POST['group_id']; ?> <div class="collection_field_group"> <h3> <span class="dashicons dashicons-editor-justify"></span> <span class="collection_group_title"> <?php echo $collection->instance['title'] . ' Item'; ?> </span> <span class="dashicons dashicons-trash"></span> </h3> <div class="collection_field_group_entry"> <?php foreach ($collection->instance['fields'] as $field_id => $field) { echo '<div class="collection_field_border jcf_collection_' . (intval($field['field_width']) ? $field['field_width'] : '100') . '">'; $field_obj = jcf_init_field_object($field_id, $collection->fieldset_id, $collection->id); $field_obj->set_slug($field['slug']); $field_obj->instance = $field; $field_obj->is_post_edit = true; $field_obj->field($field_obj->field_options); echo '</div>'; } ?> <div class="clr"></div> </div> </div> <?php die; }