Ejemplo n.º 1
0
 function manage_options()
 {
     global $bizzthemes_site, $wpdb, $themeid, $frameversion, $opt, $optd;
     if (isset($_POST['upload'])) {
         if ($_POST['upload'] == 'all') {
             check_admin_referer('bizzthemes-upload-all', '_wpnonce-bizzthemes-upload-all');
             #wp
             // DEFAULT OPTIONS
             $def_theme_id = $themeid;
             $def_frame_version = $frameversion;
             // UPLOADED OPTIONS
             $new_options = file_get_contents($_FILES['file']['tmp_name']);
             // remove BOM
             $new_options = mb_convert_encoding($new_options, 'UTF-8', 'ASCII,UTF-8,ISO-8859-1');
             if (substr($new_options, 0, 3) == pack("CCC", 0xef, 0xbb, 0xbf)) {
                 $new_options = substr($new_options, 3);
             }
             // decode
             $new_options = json_decode($new_options, true);
             $new_theme_id = $new_options['theme_id'];
             $new_frame_version = $new_options['frame_version'];
             $new_options_id = $new_options['options_id'];
             if (function_exists('wp_cache_clean_cache')) {
                 #wp
                 global $file_prefix;
                 wp_cache_clean_cache($file_prefix);
                 #wp
             }
             // wrong file
             $files_array = array('bizzthemes-layouts', 'bizzthemes-settings', 'bizzthemes-design');
             $wrongfile = true;
             foreach ($files_array as $needle) {
                 if (strpos($_FILES['file']['name'], $needle) !== false) {
                     $wrongfile = false;
                 }
             }
             if ($wrongfile) {
                 wp_redirect(admin_url('admin.php?page=bizz-tools&type=Layouts&error=wrongfile'));
             }
             #wp
             // file error
             if ($_FILES['file']['error'] > 0) {
                 wp_redirect(admin_url('admin.php?page=bizz-tools&type=All&error=file'));
             } else {
                 // all fine
                 if ($new_options['options_id'] == 'layouts') {
                     if (version_compare($def_frame_version, $new_frame_version, '!=')) {
                         wp_redirect(admin_url("admin.php?page=bizz-tools&type=Layouts&error=version&tried={$new_frame_version}&yours={$def_frame_version}"));
                     } elseif ($def_theme_id != $new_theme_id) {
                         wp_redirect(admin_url("admin.php?page=bizz-tools&type=Layouts&error=theme&tried={$new_theme_id}&yours={$def_theme_id}"));
                     } else {
                         // read options
                         $new_all_widgets = $new_options['options_value']['all_widgets'];
                         $new_sidebars_widgets = $new_options['options_value']['sidebars_widgets'];
                         // $new_sidebars_widgets 	= $new_options['options_value']['sidebars_widgets'][0]['option_value'];
                         $new_widget_posts = isset($new_options['options_value']['widget_posts']) ? $new_options['options_value']['widget_posts'] : array();
                         $new_grid_posts = isset($new_options['options_value']['grid_posts']) ? $new_options['options_value']['grid_posts'] : array();
                         // reset old grids
                         $query = "DELETE FROM {$wpdb->posts} WHERE post_type LIKE 'bizz_grid' OR post_type LIKE 'bizz_widget' AND post_content_filtered = '{$themeid}' ";
                         $wpdb->query($query);
                         // reset backed up widgets
                         delete_option($themeid . '_sidebars_widgets');
                         // update defaults option
                         update_option('bizz_defaults_' . $themeid, true);
                         // update widgets
                         // bizz_update_widgets($new_sidebars_widgets, $new_all_widgets);
                         // update posts
                         bizzthemes_update_options('set_new', $new_all_widgets);
                         bizzthemes_update_options('set_new', $new_sidebars_widgets);
                         bizzthemes_insert_posts('set_new', array_merge($new_widget_posts, $new_grid_posts));
                         // redirect
                         wp_redirect(admin_url('admin.php?page=bizz-tools&imported=true&type=Layouts'));
                         #wp
                     }
                 } elseif ($new_options['options_id'] == 'settings') {
                     if (version_compare($def_frame_version, $new_frame_version, '!=')) {
                         wp_redirect(admin_url("admin.php?page=bizz-tools&type=Settings&error=version&tried={$new_frame_version}&yours={$def_frame_version}"));
                     } else {
                         // read options
                         $new_options = $new_options['options_value'];
                         // insert data
                         update_option('bizzthemes_options', $new_options);
                         // redirect
                         wp_redirect(admin_url('admin.php?page=bizz-tools&imported=true&type=Settings'));
                         #wp
                     }
                 } elseif ($new_options['options_id'] == 'design') {
                     if (version_compare($def_frame_version, $new_frame_version, '!=')) {
                         wp_redirect(admin_url("admin.php?page=bizz-tools&type=Design&error=version&tried={$new_frame_version}&yours={$def_frame_version}"));
                     } elseif ($def_theme_id != $new_theme_id) {
                         wp_redirect(admin_url("admin.php?page=bizz-tools&type=Design&error=theme&tried={$new_theme_id}&yours={$def_theme_id}"));
                     } else {
                         // read options
                         $new_options = $new_options['options_value'];
                         // insert data
                         update_option('bizzthemes_design', $new_options);
                         // reset custom designs
                         bizz_generate_css();
                         // redirect
                         wp_redirect(admin_url('admin.php?page=bizz-tools&imported=true&type=Design'));
                         #wp
                     }
                 }
             }
         }
     } elseif (isset($_GET['download'])) {
         if ($_GET['download'] == 'layouts') {
             $widgets_array = bizz_get_active_widgets();
             $bizz_get_widget_posts = bizz_get_widget_posts();
             $bizz_get_grid_posts = bizz_get_grid_posts();
             $sidebars_widgets = get_option('sidebars_widgets');
             check_admin_referer('bizzthemes-download-layouts');
             #wp
             header('Content-Description: File Transfer');
             header('Cache-Control: public, must-revalidate');
             header('Pragma: hack');
             header('Content-Type: text/plain');
             header('Content-Disposition: attachment; filename="bizzthemes-layouts-' . date("Y-m-d") . '.json"');
             $json_string = json_encode(array('theme_id' => $themeid, 'frame_version' => $frameversion, 'options_id' => 'layouts', 'options_value' => array('all_widgets' => $widgets_array, 'widget_posts' => $bizz_get_widget_posts, 'grid_posts' => $bizz_get_grid_posts, 'sidebars_widgets' => array('0' => array('option_name' => 'sidebars_widgets', 'option_value' => $sidebars_widgets, 'type' => 'sidebars_widgets')))));
             echo str_replace("'", "\\'", $json_string);
             exit;
         } elseif ($_GET['download'] == 'settings') {
             check_admin_referer('bizzthemes-download-settings');
             #wp
             header('Content-Description: File Transfer');
             header('Cache-Control: public, must-revalidate');
             header('Pragma: hack');
             header('Content-Type: text/plain');
             header('Content-Disposition: attachment; filename="bizzthemes-settings-' . date("Y-m-d") . '.json"');
             echo json_encode(array('theme_id' => $themeid, 'frame_version' => $frameversion, 'options_id' => 'settings', 'options_value' => $opt));
             exit;
         } elseif ($_GET['download'] == 'design') {
             check_admin_referer('bizzthemes-download-design');
             #wp
             header('Content-Description: File Transfer');
             header('Cache-Control: public, must-revalidate');
             header('Pragma: hack');
             header('Content-Type: text/plain');
             header('Content-Disposition: attachment; filename="bizzthemes-design-' . date("Y-m-d") . '.json"');
             echo json_encode(array('theme_id' => $themeid, 'frame_version' => $frameversion, 'options_id' => 'design', 'options_value' => $optd));
             exit;
         }
     } elseif (isset($_GET['restore'])) {
         if ($_GET['restore'] == 'layouts') {
             check_admin_referer('bizzthemes-restore-layouts');
             #wp
             // fire the engine
             $default_action = 'set_defaults';
             bizzthemes_default_layouts($default_action);
             wp_redirect(admin_url('admin.php?page=bizz-tools&restored=true&type=Layouts'));
             #wp
         }
         if ($_GET['restore'] == 'layouts-blank') {
             check_admin_referer('bizzthemes-restore-layouts');
             #wp
             // fire the engine
             $default_action = 'reset';
             bizzthemes_default_layouts($default_action);
             wp_redirect(admin_url('admin.php?page=bizz-tools&blank=true&type=Layouts'));
             #wp
         } elseif ($_GET['restore'] == 'settings') {
             check_admin_referer('bizzthemes-restore-settings');
             #wp
             $query = "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'bizzthemes_options' OR option_name LIKE '%pag_exclude%' OR option_name LIKE '%pst_exclude%' ";
             $wpdb->query($query);
             wp_redirect(admin_url('admin.php?page=bizz-tools&restored=true&type=Settings'));
             #wp
         } elseif ($_GET['restore'] == 'design') {
             check_admin_referer('bizzthemes-restore-design');
             #wp
             $query = "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'bizzthemes_design' ";
             $wpdb->query($query);
             bizz_generate_css();
             wp_redirect(admin_url('admin.php?page=bizz-tools&restored=true&type=Design'));
             #wp
         }
     }
 }
Ejemplo n.º 2
0
function bizz_define_theme_options()
{
    global $options, $design, $opt, $optd;
    $theme_options = get_option('bizzthemes_options');
    # get theme options
    // options by default
    $default_options = array();
    foreach ($options as $key => $value) {
        if (isset($value['id']) && isset($value['std'])) {
            $default_options[$value['id']] = $value['std'];
        }
    }
    // options saved
    if (!empty($theme_options)) {
        $theme_options = bizz_reverse_escape($theme_options);
        $opt = stripslashes_deep($theme_options);
    } else {
        $opt = stripslashes_deep($default_options);
    }
    // parse not set options
    $opt = wp_parse_args($opt, $default_options);
    // Pull design options from database
    $theme_optionsd = get_option('bizzthemes_design');
    # get design options
    // options by default
    $default_optionsd = array();
    foreach ($design as $key => $value) {
        if (isset($value['id']) && isset($value['std'])) {
            unset($value['std']['border-position']);
            $default_optionsd[$value['id']] = $value['std'];
        }
    }
    // options saved
    if (!empty($theme_optionsd)) {
        $theme_optionsd = bizz_reverse_escape($theme_optionsd);
        $optd = stripslashes_deep($theme_optionsd);
    } else {
        $optd = stripslashes_deep($default_optionsd);
        update_option('bizzthemes_design', $optd);
        bizz_generate_css();
        // updates layout.css file
    }
    // parse not set options
    $optd = wp_parse_args($optd, $default_optionsd);
}
Ejemplo n.º 3
0
function bizz_ajax_callback()
{
    global $wpdb, $bizz_registered_grids, $themeid;
    switch ($_POST['type']) {
        case 'bizz-grids':
            // update containers
            $data = $_POST['data'];
            parse_str($data, $output);
            print_r($output);
            // new grids
            $containers = array();
            foreach ($output as $key => $value) {
                $containers[$key] = $value;
                $_condition = $value['condition'];
                $_item = $value['item'];
            }
            $bizz_new_grid = $containers;
            $bizz_new_grid = serialize($bizz_new_grid);
            $bizz_new_grid = mysql_real_escape_string($bizz_new_grid);
            // saved grids
            $args = array('post_type' => 'bizz_grid', 'numberposts' => -1, 'orderby' => 'date', 'order' => 'DESC', 'post_status' => 'publish');
            $bizz_old_grids = get_posts($args);
            foreach ($bizz_old_grids as $grids) {
                if ($grids->post_excerpt == $_condition && $grids->post_title == $_item) {
                    $bizz_old_grid_id = $grids->ID;
                    $bizz_old_grid_content = unserialize($grids->post_content);
                }
            }
            // manage grids options
            if (!empty($bizz_old_grid_id)) {
                // default grid
                foreach ($bizz_registered_grids as $key => $value) {
                    $default_grids[$key] = $value;
                    unset($default_grids[$key]['container']);
                    unset($default_grids[$key]['grids']);
                }
                // saved grid
                $bizz_saved_grids = $bizz_new_grid;
                $bizz_saved_grids = bizz_reverse_escape($bizz_saved_grids);
                $bizz_saved_grids = unserialize($bizz_saved_grids);
                foreach ($bizz_saved_grids as $key => $value) {
                    $saved_grids[$key] = $value;
                    unset($saved_grids[$key]['condition']);
                    unset($saved_grids[$key]['item']);
                }
                // Update or delete
                if ($default_grids === $saved_grids) {
                    # delete post object
                    wp_delete_post($bizz_old_grid_id);
                } else {
                    # update post object
                    $update_post = array();
                    $update_post['ID'] = $bizz_old_grid_id;
                    $update_post['post_content'] = $bizz_new_grid;
                    $update_post['post_content_filtered'] = $themeid;
                    // Update the post inside database
                    wp_update_post($update_post);
                }
            } else {
                // Create post object
                $args = array('post_type' => 'bizz_grid', 'post_title' => $_item, 'post_excerpt' => $_condition, 'post_content' => $bizz_new_grid, 'post_content_filtered' => $themeid, 'ping_status' => get_option('default_ping_status'), 'post_status' => 'publish');
                // Insert the post into database
                wp_insert_post($args);
            }
            die;
            break;
        case 'bizz-widgetlogic-delete':
            // get ajax data
            $data = $_POST['data'];
            parse_str($data, $output);
            print_r($output);
            // new widgetlogic
            $widgetlogics = array();
            foreach ($output as $key => $value) {
                if ($key == 'widget-id' || $key == 'condition' || $key == 'item' || $key == 'parent') {
                    $widgetlogics[$key] = $value;
                }
            }
            $bizz_new_widget = $widgetlogics;
            // saved widgets
            $args = array('post_type' => 'bizz_widget', 'numberposts' => -1, 'post_status' => 'publish');
            $bizz_old_widgets = get_posts($args);
            foreach ($bizz_old_widgets as $widgets) {
                $old_widget_id = unserialize($widgets->post_content);
                if ($old_widget_id['widget-id'] == $bizz_new_widget['widget-id']) {
                    // delete widget post
                    wp_delete_post($widgets->ID, true);
                }
            }
            die;
            break;
        case 'bizz-widgetlogic':
            // get ajax data
            $data = $_POST['data'];
            parse_str($data, $output);
            print_r($output);
            // new widgetlogic
            $widgetlogics = array();
            foreach ($output as $key => $value) {
                $_condition = $key['condition'];
                $_item = $key['item'];
                $_id = $key['widget-id'];
                if ($key == 'widget-id' || $key == 'condition' || $key == 'item' || $key == 'parent' || $key == 'show') {
                    $widgetlogics[$key] = $value;
                }
            }
            $bizz_new_widget = $widgetlogics;
            // saved widgets
            $args = array('post_type' => 'bizz_widget', 'numberposts' => -1, 'orderby' => 'date', 'order' => 'DESC', 'post_status' => 'publish');
            $bizz_old_widgets = get_posts($args);
            foreach ($bizz_old_widgets as $widgets) {
                $old_widget_content = unserialize($widgets->post_content);
                if ($old_widget_content['widget-id'] == $bizz_new_widget['widget-id'] && $old_widget_content['condition'] == $bizz_new_widget['condition'] && $old_widget_content['item'] == $bizz_new_widget['item']) {
                    $bizz_old_widget_id = $widgets->ID;
                    $bizz_old_widget_content = unserialize($widgets->post_content);
                }
            }
            // save widget post
            if (!empty($bizz_old_widget_id)) {
                // Update post object
                $update_post = array();
                $update_post['ID'] = $bizz_old_widget_id;
                $update_post['post_content'] = serialize($bizz_new_widget);
                $update_post['post_content_filtered'] = $themeid;
                // Update the post inside database
                wp_update_post($update_post);
            } else {
                // Create post object
                $args = array('post_type' => 'bizz_widget', 'post_title' => $bizz_new_widget['item'], 'post_excerpt' => $bizz_new_widget['condition'], 'post_content' => serialize($bizz_new_widget), 'post_content_filtered' => $themeid, 'ping_status' => get_option('default_ping_status'), 'post_status' => 'publish');
                // Insert the post into database
                wp_insert_post($args);
            }
            die;
            break;
        case 'bizz-sidebars-backup':
            // backup sidebars_widgets
            $saved_sidebars = get_option('sidebars_widgets');
            update_option($themeid . '_sidebars_widgets', $saved_sidebars);
            die;
            break;
        case 'bizz-design':
            $opts = array();
            $opts['themeid'] = $themeid;
            $data = $_POST['data'];
            parse_str($data, $output);
            print_r($output);
            foreach ($output as $key => $value) {
                if ($value != '') {
                    if (is_string($value)) {
                        $opts[$key] = mysql_real_escape_string($value);
                    } else {
                        $opts[$key] = $value;
                    }
                }
            }
            // end foreach
            // Update/SAVE Options into MySQL Array
            update_option('bizzthemes_design', $opts);
            bizz_generate_css();
            // updates layout.css file
            die;
            break;
        case 'bizz-all':
            $opts = array();
            $opts['themeid'] = $themeid;
            $data = $_POST['data'];
            parse_str($data, $output);
            print_r($output);
            foreach ($output as $key => $value) {
                if ($value != '') {
                    if (is_string($value)) {
                        $opts[$key] = mysql_real_escape_string($value);
                    } else {
                        $opts[$key] = $value;
                    }
                }
            }
            // end foreach
            // Update/SAVE Options into MySQL Array
            update_option('bizzthemes_options', $opts);
            die;
            break;
        case 'upload':
            $clickedID = $_POST['data'];
            // Acts as the name
            $filename = $_FILES[$clickedID];
            $override['test_form'] = false;
            $override['action'] = 'wp_handle_upload';
            $uploaded_file = wp_handle_upload($filename, $override);
            echo $uploaded_file['url'];
            die;
            break;
        case 'bizz-info-layout':
            $opts = array();
            $opts['themeid'] = $themeid;
            $opts['box'] = 'hidden';
            // Update/SAVE Options into MySQL Array
            update_option('bizzthemes_info_layout', $opts);
            die;
            break;
        case 'bizz-treeview':
            $data = $_POST['data'];
            parse_str($data, $output);
            foreach ($output as $key => $value) {
                $post_type = $key;
            }
            $single_posts = bizz_layout_single('is_single', $post_type);
            $can_paginate = bizz_layout_single('is_single', $post_type, 2);
            if (!empty($single_posts)) {
                $single_posts = bizz_tabs_list($single_posts);
                print_r($single_posts);
                if (!empty($can_paginate)) {
                    print_r('<div class="paginateme linkedp" rel="2" title="Click to load more posts">Page <span>2</span></div>');
                    print_r('<div class="ajax-loader"><!----></div>');
                }
            } else {
                print_r('<ul class="treeview"><li class="menu-tab last">' . __('No posts found.', 'bizzthemes') . '</li></ul>');
            }
            die;
            break;
        case 'bizz-treeview-paginateme':
            $single_posts = bizz_layout_single('is_single', $_POST['data'], $_POST['paged'] + 1);
            $can_paginate = bizz_layout_single('is_single', $_POST['data'], $_POST['paged'] + 1);
            if (!empty($single_posts)) {
                $single_posts = bizz_tabs_list($single_posts);
                print_r($single_posts);
                if (!empty($can_paginate)) {
                    print_r('<div class="paginateme linkedp" rel="' . ($_POST['paged'] + 1) . '" title="Click to load more posts">Page <span>' . ($_POST['paged'] + 1) . '</span></div>');
                    print_r('<div class="ajax-loader"><!----></div>');
                }
            } else {
                print_r('<ul class="treeview"><li class="menu-tab last">' . __('No posts found.', 'bizzthemes') . '</li></ul>');
            }
            die;
            break;
        case 'bizz-info-recover':
            $saved_themesidebars = get_option($themeid . '_sidebars_widgets');
            $data = $_POST['data'];
            if (isset($data) && $data == 'recover_yes') {
                update_option('sidebars_widgets', $saved_themesidebars);
                echo __('Your widgetized sidebars have been successfully recovered.', 'bizzthemes');
            } elseif (isset($data) && $data == 'recover_no') {
                delete_option($themeid . '_sidebars_widgets');
                echo __('Your widgetized sidebars backup has been removed.', 'bizzthemes');
            }
            die;
            break;
    }
}