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 } } }
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); }
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; } }