function wpv_ajax_get_page($post_data) { global $WP_Views; // Fix a problem with WPML using cookie language when DOING_AJAX is set. $cookie_lang = null; if (isset($_COOKIE['_icl_current_language']) && isset($post_data['lang'])) { $cookie_lang = $_COOKIE['_icl_current_language']; $_COOKIE['_icl_current_language'] = $post_data['lang']; } // Switch WPML to the correct language. if (isset($post_data['lang'])) { global $sitepress; if (method_exists($sitepress, 'switch_lang')) { $sitepress->switch_lang($post_data['lang']); } } $post_id = $post_data['post_id']; $_GET['wpv_paged'] = $post_data['page']; $_GET['wpv_view_count'] = $post_data['view_number']; if (isset($post_data['wpv_column_sort_id']) && $post_data['wpv_column_sort_id'] != 'undefined') { $_GET['wpv_column_sort_id'] = $post_data['wpv_column_sort_id']; } if (isset($post_data['wpv_column_sort_dir']) && $post_data['wpv_column_sort_dir'] != 'undefined') { $_GET['wpv_column_sort_dir'] = $post_data['wpv_column_sort_dir']; } if (isset($post_data['get_params'])) { foreach ($post_data['get_params'] as $key => $param) { $_GET[$key] = $param; } } global $post, $authordata, $id; $view_data = unserialize(base64_decode($post_data['view_hash'])); $post = get_post($post_id); $authordata = new WP_User($post->post_author); $id = $post->ID; if ($post_data['wpv_view_widget_id'] == 0) { // set the view count so we return the right view number after rendering. $WP_Views->set_view_count(intval($post_data['view_number']) - 1, null); echo $WP_Views->short_tag_wpv_view($view_data); //echo wpv_do_shortcode($post->post_content); } else { // set the view count so we return the right view number after rendering. $WP_Views->set_view_count(intval($post_data['view_number']), $post_data['wpv_view_widget_id']); $widget = new WPV_Widget(); $args = array('before_widget' => '', 'before_title' => '', 'after_title' => '', 'after_widget' => ''); $widget->widget($args, array('title' => '', 'view' => $post_data['wpv_view_widget_id'])); echo $WP_Views->get_max_pages(); } if ($cookie_lang) { // reset language cookie. $_COOKIE['_icl_current_language'] = $cookie_lang; } }
function wpv_ajax_get_page($post_data) { global $WP_Views; // Fix a problem with WPML using cookie language when DOING_AJAX is set. $cookie_lang = null; if (isset($_COOKIE['_icl_current_language']) && isset($post_data['lang'])) { $cookie_lang = $_COOKIE['_icl_current_language']; $_COOKIE['_icl_current_language'] = $post_data['lang']; } // Switch WPML to the correct language. if (isset($post_data['lang'])) { global $sitepress; if (method_exists($sitepress, 'switch_lang')) { $sitepress->switch_lang($post_data['lang']); } } $_GET['wpv_paged'] = intval(esc_attr($post_data['page'])); $_GET['wpv_view_count'] = esc_attr($post_data['view_number']); if (isset($post_data['wpv_column_sort_id']) && esc_attr($post_data['wpv_column_sort_id']) != 'undefined' && esc_attr($post_data['wpv_column_sort_id']) != '') { $_GET['wpv_column_sort_id'] = esc_attr($post_data['wpv_column_sort_id']); } if (isset($post_data['wpv_column_sort_dir']) && esc_attr($post_data['wpv_column_sort_dir']) != 'undefined' && esc_attr($post_data['wpv_column_sort_dir']) != '') { $_GET['wpv_column_sort_dir'] = esc_attr($post_data['wpv_column_sort_dir']); } // $post_data['get_params'] holds arbitrary URL parameters from the page triggering the pagination // We have a hacky solution to keep array URL parameters // by using the flag ##URLARRAYVALHACK## as the glue of the imploded array if (isset($post_data['get_params'])) { foreach ($post_data['get_params'] as $key => $param) { if (!isset($_GET[$key])) { $param_san = esc_attr($param); // @hack alert!! We can not avoid this :-( if (strpos($param_san, '##URLARRAYVALHACK##') !== false) { $_GET[$key] = explode('##URLARRAYVALHACK##', $param_san); } else { $_GET[$key] = $param_san; } } } } // In other $post_data items, we are keeping the [] brackets for array flagging if (isset($post_data['dps_pr'])) { foreach ($post_data['dps_pr'] as $dps_pr_item) { if (is_array($dps_pr_item) && isset($dps_pr_item['name']) && isset($dps_pr_item['value'])) { if (strlen($dps_pr_item['name']) < 2) { if (!isset($_GET[$dps_pr_item['name']])) { $_GET[$dps_pr_item['name']] = esc_attr($dps_pr_item['value']); } } else { if (strpos($dps_pr_item['name'], '[]') === strlen($dps_pr_item['name']) - 2) { $name = str_replace('[]', '', $dps_pr_item['name']); if (!isset($_GET[$name])) { $_GET[$name] = array(esc_attr($dps_pr_item['value'])); } else { if (is_array($_GET[$name])) { $_GET[$name][] = esc_attr($dps_pr_item['value']); } } } else { if (!isset($_GET[$dps_pr_item['name']])) { $_GET[$dps_pr_item['name']] = esc_attr($dps_pr_item['value']); } } } } } } if (isset($post_data['dps_general'])) { $corrected_item = array(); foreach ($post_data['dps_general'] as $dps_pr_item) { if (is_array($dps_pr_item) && isset($dps_pr_item['name']) && isset($dps_pr_item['value'])) { if (strlen($dps_pr_item['name']) < 2) { $_GET[$dps_pr_item['name']] = esc_attr($dps_pr_item['value']); } else { if (strpos($dps_pr_item['name'], '[]') === strlen($dps_pr_item['name']) - 2) { $name = str_replace('[]', '', $dps_pr_item['name']); if (!in_array($name, $corrected_item)) { $corrected_item[] = $name; if (isset($_GET[$name])) { unset($_GET[$name]); } } if (!isset($_GET[$name])) { $_GET[$name] = array(esc_attr($dps_pr_item['value'])); } else { if (is_array($_GET[$name])) { $_GET[$name][] = esc_attr($dps_pr_item['value']); } } } else { $_GET[$dps_pr_item['name']] = esc_attr($dps_pr_item['value']); } } } } } $view_data = json_decode(base64_decode($post_data['view_hash']), true); global $post, $authordata, $id; if (isset($post_data['post_id']) && is_numeric($post_data['post_id'])) { $_GET['wpv_post_id'] = esc_attr($post_data['post_id']); // we need to set this for the post_type_dont_include_current_page setting to work $post_id = esc_attr($post_data['post_id']); $post = get_post($post_id); $authordata = new WP_User($post->post_author); $id = $post->ID; } if (esc_attr($post_data['wpv_view_widget_id']) == 0) { // set the view count so we return the right view number after rendering. $view_id = $WP_Views->get_view_id($view_data); $WP_Views->set_view_count(intval(esc_attr($post_data['view_number'])), $view_id); echo $WP_Views->short_tag_wpv_view($view_data); //echo wpv_do_shortcode($post->post_content); } else { // set the view count so we return the right view number after rendering. $WP_Views->set_view_count(intval(esc_attr($post_data['view_number'])), esc_attr($post_data['wpv_view_widget_id'])); $widget = new WPV_Widget(); $args = array('before_widget' => '', 'before_title' => '', 'after_title' => '', 'after_widget' => ''); $widget->widget($args, array('title' => '', 'view' => esc_attr($post_data['wpv_view_widget_id']))); echo $WP_Views->get_max_pages(); } if ($cookie_lang) { // reset language cookie. $_COOKIE['_icl_current_language'] = $cookie_lang; } }