예제 #1
0
/**
 * check file callback
 */
function jcf_ajax_check_file()
{
    $jcf_read_settings = $_POST['jcf_read_settings'];
    if ($jcf_read_settings == JCF_CONF_SOURCE_FS_THEME or $jcf_read_settings == JCF_CONF_SOURCE_FS_GLOBAL) {
        $file = jcf_get_settings_file_path($jcf_read_settings);
        if ($jcf_read_settings == JCF_CONF_SOURCE_FS_THEME) {
            $msg = __("The settings will be written to your theme folder.\nIn case you have settings there, they will be overwritten.\nPlease confirm that you want to continue.", JCF_TEXTDOMAIN);
        } else {
            $msg = __("The settings will be written to folder wp-conten/jcf-settings.\nIn case you have settings there, they will be overwritten.\nPlease confirm that you want to continue.", JCF_TEXTDOMAIN);
        }
        if (file_exists($file)) {
            $resp = array('status' => '1', 'msg' => $msg);
        } else {
            $resp = array('status' => '1', 'file' => '1');
        }
    } else {
        $resp = array('status' => '1');
    }
    jcf_ajax_reposnse($resp, 'json');
}
/**
 *	Function for update saving method
 *	@return string Return read method from file or database
 */
function jcf_update_read_settings()
{
    $current_value = jcf_get_read_settings();
    $new_value = $_POST['jcf_read_settings'];
    if (MULTISITE && ($_POST['jcf_multisite_setting'] != JCF_CONF_MS_NETWORK && $new_value == JCF_CONF_SOURCE_FS_GLOBAL)) {
        jcf_add_admin_notice('error', __('<strong>Settings storage update FAILED!</strong>. Your MultiSite Settings do not allow to set global storage in FileSystem', JCF_TEXTDOMAIN));
        return $current_value;
    } else {
        if (!empty($current_value)) {
            // if need to copy settings from db to FS
            if (!empty($_POST['jcf_keep_settings'])) {
                if (in_array($new_value, array(JCF_CONF_SOURCE_FS_GLOBAL, JCF_CONF_SOURCE_FS_THEME))) {
                    $file = jcf_get_settings_file_path($new_value);
                    if (jcf_clone_db_settings_to_fs($file, $new_value)) {
                        jcf_add_admin_notice('notice', __('<strong>Database settings has been imported</strong> to file system.', JCF_TEXTDOMAIN));
                        $saved = update_site_option('jcf_read_settings', $new_value);
                    } else {
                        jcf_add_admin_notice('error', __('<strong>Database settings import to file system FAILED!</strong>. Revert settings storage to Database.', JCF_TEXTDOMAIN));
                    }
                }
            } else {
                $saved = update_site_option('jcf_read_settings', $new_value);
            }
        } else {
            $saved = add_site_option('jcf_read_settings', $new_value);
        }
        if ($saved) {
            jcf_add_admin_notice('notice', __('<strong>Settings storage</strong> configurations has been updated.', JCF_TEXTDOMAIN));
        }
        return $saved ? $new_value : $current_value;
    }
}