/**
 *	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);
    }
}
Ejemplo n.º 4
0
 /**
  * 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);
     }
 }