/** * set fields in wp-options */ function jcf_field_settings_update($key, $values = array(), $fieldset_id = '') { $option_name = jcf_fields_get_option_name(); $jcf_read_settings = jcf_get_read_settings(); if ($jcf_read_settings != JCF_CONF_SOURCE_DB) { $jcf_settings = jcf_get_all_settings_from_file(); $post_type = jcf_get_post_type(); $fieldset = $jcf_settings['fieldsets'][$post_type][$fieldset_id]; if (isset($jcf_settings['field_settings']) && isset($jcf_settings['field_settings'][$post_type])) { $field_settings = $jcf_settings['field_settings'][$post_type]; } else { $field_settings = array(); } if ($values === NULL && isset($field_settings[$key])) { unset($fieldset['fields'][$key]); unset($field_settings[$key]); } if (!empty($values)) { $fieldset['fields'][$key] = $values['enabled']; $field_settings[$key] = $values; } $jcf_settings['fieldsets'][$post_type][$fieldset_id] = $fieldset; $jcf_settings['field_settings'][$post_type] = $field_settings; jcf_save_all_settings_in_file($jcf_settings); } else { $field_settings = jcf_get_options($option_name); if ($values === NULL && isset($field_settings[$key])) { unset($field_settings[$key]); } if (!empty($values)) { $field_settings[$key] = $values; } jcf_update_options($option_name, $field_settings); } }
/** * Keep settings in the file of theme * @param string $file Path to file where to save fields settings * @param string $settings_source Source setting * @return boolean Operation status */ function jcf_clone_db_settings_to_fs($file, $settings_source) { $jcf_settings = jcf_get_all_settings_from_db(); $dir = dirname($file); if (!is_dir($dir) && !wp_mkdir_p($dir) || !is_writable($dir) || !($saved = jcf_save_all_settings_in_file($jcf_settings, $settings_source))) { // if fail - print error $msg = array('error', sprintf(__('<strong>Settings storage update FAILED!</strong>. Please check that directory exists and writable: %s', JCF_TEXTDOMAIN), dirname($dir))); jcf_add_admin_notice($msg[0], $msg[1]); } else { // we have another notification after this func called //$msg = array('notice', __('<strong>Fields settings</strong> successfully copied!', JCF_TEXTDOMAIN)); } return $saved; }
/** * update order fieldsets * @param array $keys Fieldsets keys */ function jcf_fieldsets_order($keys = array()) { $option_name = jcf_fieldsets_get_option_name(); $new_fieldsets = array(); $jcf_read_settings = jcf_get_read_settings(); if ($jcf_read_settings != JCF_CONF_SOURCE_DB) { $jcf_settings = jcf_get_all_settings_from_file(); $post_type = jcf_get_post_type(); foreach ($keys as $key) { $new_fieldsets[$key] = $jcf_settings['fieldsets'][$post_type][$key]; unset($jcf_settings['fieldsets'][$post_type][$key]); } $jcf_settings['fieldsets'][$post_type] = $new_fieldsets; jcf_save_all_settings_in_file($jcf_settings); } else { $fieldsets = jcf_get_options($option_name); foreach ($keys as $key) { $new_fieldsets[$key] = $fieldsets[$key]; unset($fieldsets[$key]); } jcf_update_options($option_name, $new_fieldsets); } }
/** * delete field from collection */ public function delete_field($field_id) { $option_name = jcf_fields_get_option_name(); $jcf_read_settings = jcf_get_read_settings(); if ($jcf_read_settings != JCF_CONF_SOURCE_DB) { $jcf_settings = jcf_get_all_settings_from_file(); $post_type = jcf_get_post_type(); $fieldset = $jcf_settings['fieldsets'][$post_type][$this->fieldset_id]; $field_settings = $jcf_settings['field_settings'][$post_type]; if (isset($field_settings[$this->id]['fields'][$field_id])) { unset($field_settings[$this->id]['fields'][$field_id]); } $jcf_settings['fieldsets'][$post_type][$this->fieldset_id] = $fieldset; $jcf_settings['field_settings'][$post_type] = $field_settings; jcf_save_all_settings_in_file($jcf_settings); } else { $field_settings = jcf_get_options($option_name); if (isset($field_settings[$this->id]['fields'][$field_id])) { unset($field_settings[$this->id]['fields'][$field_id]); } jcf_update_options($option_name, $field_settings); } }