/** * 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; }
/** * Admin main page */ function jcf_admin_settings_page() { $post_types = jcf_get_post_types('object'); // edit page if (!empty($_GET['pt']) && isset($post_types[$_GET['pt']])) { jcf_admin_fields_page($post_types[$_GET['pt']]); return; } // load template include JCF_ROOT . '/templates/settings_page.tpl.php'; }
/** * autocomplete */ function autocomplete() { $term = $_POST['term']; if (empty($term)) { die(''); } $post_type = $_POST['post_types']; $post_types = jcf_get_post_types('object'); if ($post_type != 'any') { $post_type_where = " post_type = '{$post_type}' "; } else { // get all post types $post_type_where = "( post_type = '" . implode("' OR post_type = '", array_keys($post_types)) . "' )"; } global $wpdb; $query = "SELECT ID, post_title, post_status, post_type\n\t\t\tFROM {$wpdb->posts}\n\t\t\tWHERE {$post_type_where} AND (post_status = 'publish' OR post_status = 'draft') AND post_title LIKE '%{$term}%'\n\t\t\tORDER BY post_title"; $posts = $wpdb->get_results($query); $response = array(); foreach ($posts as $p) { $draft = $p->post_status == 'draft' ? ' (DRAFT)' : ''; $type_label = $post_type != 'any' ? '' : ' / ' . $post_types[$p->post_type]->labels->singular_name; $response[] = array('id' => $p->ID, 'label' => $p->post_title . $draft . $type_label, 'value' => $p->post_title . $draft . $type_label, 'type' => $p->post_type, 'status' => $p->post_status); } $json = json_encode($response); header("Content-Type: application/json"); echo $json; exit; }
/** * export fields from form callback */ function jcf_ajax_export_fields_form() { $jcf_read_settings = jcf_get_read_settings(); if ($jcf_read_settings != JCF_CONF_SOURCE_DB) { $jcf_settings = jcf_get_all_settings_from_file(); } else { $jcf_settings = jcf_get_all_settings_from_db(); } $post_types = !empty($jcf_settings['post_types']) ? $jcf_settings['post_types'] : jcf_get_post_types(); $fieldsets = $jcf_settings['fieldsets']; $field_settings = $jcf_settings['field_settings']; $registered_fields = jcf_get_registered_fields(); // load template header('Content-Type: text/html; charset=utf-8'); include JCF_ROOT . '/templates/export.tpl.php'; exit; }
/** * Admin main page */ function jcf_admin_settings_page() { $post_types = jcf_get_post_types('object'); $jcf_read_settings = jcf_get_read_settings(); $jcf_multisite_settings = jcf_get_multisite_settings(); $jcf_tabs = !isset($_GET['tab']) ? 'fields' : $_GET['tab']; // edit page if (!empty($_GET['pt']) && isset($post_types[$_GET['pt']])) { jcf_admin_fields_page($post_types[$_GET['pt']]); return; } if (!empty($_POST['save_import'])) { $saved = jcf_admin_save_settings($_POST['import_data']); $notice = $saved ? array('notice', __('<strong>Import</strong> has been completed successfully!', JCF_TEXTDOMAIN)) : array('error', __('<strong>Import failed!</strong> Please check that your import file has right format.', JCF_TEXTDOMAIN)); jcf_add_admin_notice($notice[0], $notice[1]); } if (!empty($_POST['jcf_update_settings'])) { if (MULTISITE) { $jcf_multisite_settings = jcf_save_multisite_settings($_POST['jcf_multisite_setting']); } $jcf_read_settings = jcf_update_read_settings(); } // load template include JCF_ROOT . '/templates/settings_page.tpl.php'; }