/** * Get all settings from db * @return array Return all settings for fieldsets and fields */ function jcf_get_all_settings_from_db() { $post_types = jcf_get_post_types(); $jcf_settings = array(); $fieldsets = array(); $field_settings = array(); $field_options = array(); foreach ($post_types as $key => $value) { jcf_set_post_type($key); $fieldsets[$key] = jcf_fieldsets_get(); $field_settings[$key] = jcf_field_settings_get('', true); } $jcf_settings = array('post_types' => $post_types, 'fieldsets' => $fieldsets, 'field_settings' => $field_settings); return $jcf_settings; }
/** * function to delete field from the database */ public function do_delete() { // remove from fieldset: $fieldset = jcf_fieldsets_get($this->fieldset_id); if (isset($fieldset['fields'][$this->id])) { unset($fieldset['fields'][$this->id]); } jcf_fieldsets_update($this->fieldset_id, $fieldset); // remove from fields array jcf_field_settings_update($this->id, NULL, $this->fieldset_id); }
/** * Fields UI page */ function jcf_admin_fields_page($post_type) { jcf_set_post_type($post_type->name); $fieldsets = jcf_fieldsets_get(); $field_settings = jcf_field_settings_get(); //pa($fieldsets); //pa($field_settings,1); // load template include JCF_ROOT . '/templates/fields_ui.tpl.php'; }
/** * fields order change callback */ function jcf_ajax_fields_order() { $fieldset_id = $_POST['fieldset_id']; $order = trim($_POST['fields_order'], ','); $fieldset = jcf_fieldsets_get($fieldset_id); $new_fields = explode(',', $order); $fieldset['fields'] = array(); foreach ($new_fields as $field_id) { $fieldset['fields'][$field_id] = $field_id; } jcf_fieldsets_update($fieldset_id, $fieldset); $resp = array('status' => '1'); jcf_ajax_reposnse($resp, 'json'); }
/** * callback function for "save_post" action */ function jcf_post_save_custom_fields($post_ID = 0, $post = null) { // do not save anything on autosave if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } // verify this came from the our screen and with proper authorization, // because save_post can be triggered at other times if (!wp_verify_nonce($_POST['justcustomfields_noncename'], plugin_basename(__FILE__))) { return; } // check permissions $permission = 'page' == $_POST['post_type'] ? 'edit_page' : 'edit_post'; if (!current_user_can($permission, $post_ID)) { return; } // OK, we're authenticated: we need to find and save the data // set global post type jcf_set_post_type($_POST['post_type']); // get fieldsets $fieldsets = jcf_fieldsets_get(); // create field class objects and call save function foreach ($fieldsets as $f_id => $fieldset) { foreach ($fieldset['fields'] as $field_id => $tmp) { $field_obj = jcf_init_field_object($field_id, $fieldset['id']); $field_obj->set_post_ID($post->ID); $field_obj->do_save(); } } //pa('stop',1); return false; }
/** * Fields UI page */ function jcf_admin_fields_page($post_type) { jcf_set_post_type($post_type->name); $jcf_read_settings = jcf_get_read_settings(); if ($jcf_read_settings == JCF_CONF_SOURCE_DB) { $fieldsets = jcf_fieldsets_get(); $field_settings = jcf_field_settings_get(); } else { $jcf_settings = jcf_get_all_settings_from_file(); $fieldsets = $jcf_settings['fieldsets'][$post_type->name]; $field_settings = $jcf_settings['field_settings'][$post_type->name]; } // load template include JCF_ROOT . '/templates/fields_ui.tpl.php'; }