コード例 #1
0
ファイル: functions.interface.php プロジェクト: adwleg/site
/**
 * Ajax Save Options
 *
 * @uses get_option()
 *
 * @since 1.0.0
 */
function of_ajax_callback()
{
    global $options_machine, $of_options;
    $nonce = $_POST['security'];
    if (!wp_verify_nonce($nonce, 'of_ajax_nonce')) {
        die('-1');
    }
    //get options array from db
    $all = of_get_options();
    $save_type = $_POST['type'];
    //Uploads
    if ($save_type == 'upload') {
        $clickedID = $_POST['data'];
        // Acts as the name
        $filename = $_FILES[$clickedID];
        $filename['name'] = preg_replace('/[^a-zA-Z0-9._\\-]/', '', $filename['name']);
        $override['test_form'] = false;
        $override['action'] = 'wp_handle_upload';
        $uploaded_file = wp_handle_upload($filename, $override);
        $upload_tracking[] = $clickedID;
        //update $options array w/ image URL
        $upload_image = $all;
        //preserve current data
        $upload_image[$clickedID] = $uploaded_file['url'];
        of_save_options($upload_image);
        if (!empty($uploaded_file['error'])) {
            echo 'Upload Error: ' . $uploaded_file['error'];
        } else {
            echo esc_url($uploaded_file['url']);
        }
        // Is the Response
    } elseif ($save_type == 'image_reset') {
        $id = $_POST['data'];
        // Acts as the name
        $delete_image = $all;
        //preserve rest of data
        $delete_image[$id] = '';
        //update array key with empty value
        of_save_options($delete_image);
    } elseif ($save_type == 'backup_options') {
        $backup = $all;
        $backup['backup_log'] = date('r');
        of_save_options($backup, BACKUPS);
        die('1');
    } elseif ($save_type == 'restore_options') {
        $smof_data = get_option(BACKUPS);
        update_option(OPTIONS, $smof_data);
        of_save_options($smof_data);
        die('1');
    } elseif ($save_type == 'import_options') {
        $smof_data = unserialize(base64_decode($smof_data));
        //100% safe - ignore theme check nag
        of_save_options($smof_data);
        die('1');
    } elseif ($save_type == 'save') {
        wp_parse_str(stripslashes($_POST['data']), $smof_data);
        unset($smof_data['security']);
        unset($smof_data['of_save']);
        of_save_options($smof_data);
        die('1');
    } elseif ($save_type == 'reset') {
        of_save_options($options_machine->Defaults);
        $_SESSION['theme_customize'] = null;
        die('1');
        //options reset
    } elseif ($save_type == 'generate_less') {
        require get_template_directory() . '/lib/inc-generate-less/generate-less.php';
        $result = cupid_generate_less();
        die($result);
    }
    die;
}
コード例 #2
0
ファイル: theme-setup.php プロジェクト: adwleg/site
function cupid_setup_options()
{
    // reset Theme options
    global $of_options, $options_machine;
    $smof_data = of_get_options();
    if (!isset($smof_data) || !array_key_exists('smof_init', $smof_data) || empty($smof_data['smof_init'])) {
        $options_machine = new Options_Machine($of_options);
        of_save_options($options_machine->Defaults);
    }
    // generate less to css
    require get_template_directory() . '/lib/inc-generate-less/generate-less.php';
    cupid_generate_less();
}
コード例 #3
0
ファイル: install-demo.php プロジェクト: adwleg/site
 function install_demo()
 {
     if (!(isset($_REQUEST['security']) && current_user_can('manage_options'))) {
         ob_end_clean();
         $data_response = array('code' => 'error', 'message' => __("Permission error!", 'g5plusThemeFramework'));
         echo json_encode($data_response);
         die;
     }
     set_time_limit(1800);
     if (!defined('FS_METHOD')) {
         define('FS_METHOD', 'direct');
     }
     if (!defined('WP_LOAD_IMPORTERS')) {
         define('WP_LOAD_IMPORTERS', true);
     }
     // Load Importer API
     require_once ABSPATH . 'wp-admin/includes/import.php';
     if (file_exists(ABSPATH . 'wp-content/plugins/revslider/revslider_admin.php')) {
         require_once ABSPATH . 'wp-content/plugins/revslider/revslider_admin.php';
     }
     $importer_error = false;
     $import_file_path = THEME_DIR . "assets" . DIRECTORY_SEPARATOR . "data-demo" . DIRECTORY_SEPARATOR . "demo-data.xml";
     $import_setting_path = THEME_DIR . "assets" . DIRECTORY_SEPARATOR . "data-demo" . DIRECTORY_SEPARATOR . "setting.json";
     //check if wp_importer, the base importer class is available, otherwise include it
     if (!class_exists('WP_Importer')) {
         $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php';
         if (file_exists($class_wp_importer)) {
             require_once $class_wp_importer;
         } else {
             $importer_error = true;
         }
     }
     if (!class_exists('G5_Import')) {
         $class_wp_import = THEME_DIR . 'lib/install-demo/wordpress-importer.php';
         if (file_exists($class_wp_import)) {
             require_once $class_wp_import;
         } else {
             $importer_error = true;
         }
     }
     if ($importer_error !== false) {
         ob_end_clean();
         $data_response = array('code' => 'fileNotFound', 'message' => __("The Auto importing script could not be loaded. please use the wordpress importer and import the XML file that is located in your themes folder manually.", 'g5plusThemeFramework'));
         echo json_encode($data_response);
         die;
     } else {
         if (class_exists('G5_Import')) {
             include_once THEME_DIR . 'lib/install-demo/g5plus_import_class.php';
         }
         $g5plus_import = new g5plus_import();
         $type = $_REQUEST['type'];
         $other_data = $_REQUEST['other_data'];
         ob_start();
         switch (trim($type)) {
             case 'init':
                 $demo_data_directory = get_template_directory() . DIRECTORY_SEPARATOR . 'assets' . DIRECTORY_SEPARATOR . 'data-demo' . DIRECTORY_SEPARATOR;
                 $arr_demo_file = array($demo_data_directory . 'demo-data.xml', $demo_data_directory . 'setting.json', $demo_data_directory . 'change-data.json');
                 foreach ($arr_demo_file as $file_demo) {
                     if (!file_exists($file_demo)) {
                         ob_end_clean();
                         $data_response = array('code' => 'fileNotFound', 'message' => __("File not found! Please check file exists in directory:\n[your-theme]/assets/data-demo/", 'g5plusThemeFramework'));
                         echo json_encode($data_response);
                         die;
                     }
                 }
                 if ($handle = opendir(THEME_DIR . "assets" . DIRECTORY_SEPARATOR . "data-demo" . DIRECTORY_SEPARATOR . "log")) {
                     $arr_other_data = explode('||', $other_data);
                     while (false !== ($entry = readdir($handle))) {
                         if (in_array($entry, $arr_other_data)) {
                             continue;
                         }
                         if ($entry != "." && $entry != "..") {
                             unlink(THEME_DIR . "assets" . DIRECTORY_SEPARATOR . "data-demo" . DIRECTORY_SEPARATOR . "log" . DIRECTORY_SEPARATOR . $entry);
                         }
                     }
                 }
                 ob_end_clean();
                 $data_response = array('code' => 'setting', 'message' => '');
                 echo json_encode($data_response);
                 break;
             case 'setting':
                 if (!$g5plus_import->saveOptions($import_setting_path)) {
                     ob_end_clean();
                     $data_response = array('code' => 'fileNotFound', 'message' => __("File not found! Please check file exists in directory:\n[your-theme]/assets/data-demo/", 'g5plusThemeFramework'));
                     echo json_encode($data_response);
                     die;
                 }
                 ob_end_clean();
                 $data_response = array('code' => 'core', 'message' => '');
                 echo json_encode($data_response);
                 die;
             case 'core':
                 $check_method = $_REQUEST['method'];
                 if (trim($check_method) == 'livesite' || trim($check_method) == 'no-get-image') {
                     $g5plus_import->fetch_attachments = true;
                 } else {
                     $g5plus_import->fetch_attachments = false;
                 }
                 try {
                     $import_return = $g5plus_import->import($import_file_path);
                     if ($import_return !== true) {
                         ob_end_clean();
                         $data_response = array('code' => 'core', 'message' => $import_return);
                         echo json_encode($data_response);
                         die;
                     }
                 } catch (Exception $ex) {
                     ob_end_clean();
                     $data_response = array('code' => 'core', 'message' => $other_data);
                     echo json_encode($data_response);
                     die;
                 }
                 ob_end_clean();
                 $data_response = array('code' => 'slider', 'message' => '');
                 echo json_encode($data_response);
                 die;
             case 'slider':
                 $import_return = $g5plus_import->import_revslider($other_data);
                 if ($import_return === false) {
                     ob_end_clean();
                     $data_response = array('code' => 'fileNotFound', 'message' => __("File not found! Please check file exists in directory:\n[your-theme]/assets/data-demo/", 'g5plusThemeFramework'));
                     echo json_encode($data_response);
                     return;
                 } else {
                     if ($import_return !== 'done') {
                         ob_end_clean();
                         $data_response = array('code' => 'slider', 'message' => $import_return);
                         echo json_encode($data_response);
                         die;
                     }
                 }
                 // update post id has changed after import
                 $g5plus_import->update_post_id();
                 // generate less to css
                 require get_template_directory() . '/lib/inc-generate-less/generate-less.php';
                 cupid_generate_less();
                 ob_end_clean();
                 $data_response = array('code' => 'done', 'message' => '');
                 echo json_encode($data_response);
                 die;
             case 'fix-data':
                 $demo_data_directory = get_template_directory() . DIRECTORY_SEPARATOR . 'assets' . DIRECTORY_SEPARATOR . 'data-demo' . DIRECTORY_SEPARATOR;
                 $arr_demo_file = array($demo_data_directory . 'setting.json', $demo_data_directory . 'change-data.json');
                 foreach ($arr_demo_file as $file_demo) {
                     if (!file_exists($file_demo)) {
                         ob_end_clean();
                         $data_response = array('code' => 'fileNotFound', 'message' => __("File not found! Please check file exists in directory:\n[your-theme]/assets/data-demo/", 'g5plusThemeFramework'));
                         echo json_encode($data_response);
                         die;
                     }
                 }
                 // update post id has changed after import
                 $g5plus_import->update_post_id();
                 // generate less to css
                 require get_template_directory() . '/lib/inc-generate-less/generate-less.php';
                 cupid_generate_less();
                 ob_end_clean();
                 $data_response = array('code' => 'done', 'message' => '');
                 echo json_encode($data_response);
                 die;
         }
     }
     die;
 }