10, 'pagination' => array( 0 => 'disable', 'mode' => 'paged', 'preload_images' => 1, 'cache_pages' => 1, 'preload_pages' => 1, 'spinner' => 'default', 'spinner_image' => WPV_URL . '/res/img/ajax-loader.gif', 'spinner_image_uploaded' => '', 'callback_next' => '', 'page_selector_control_type' => 'drop_down', ), 'ajax_pagination' => array( 0 => 'disable', 'style' => 'fade', ), 'rollover' => array( 'posts_per_page' => 4, 'speed' => 5, 'effect' => 'fade', 'preload_images' => 1, 'include_page_selector' => 0, ), ); $view_settings = wpv_parse_args_recursive($view_settings, $defaults); if ($view_settings['pagination']['spinner'] == 'uploaded') { $view_settings['pagination']['spinner_image'] = $view_settings['pagination']['spinner_image_uploaded']; } return $view_settings; } add_filter('wpv_view_settings_save', 'wpv_pager_defaults_save', 10, 1); function wpv_pager_defaults_save($view_settings) { // we need to set 0 for the checkboxes that aren't checked and are missing for the $_POST. $defaults = array( 'pagination' => array( 'preload_images' => 0, 'cache_pages' => 0, 'preload_pages' => 0, ), 'rollover' => array( 'preload_images' => 0, ), ); $view_settings = wpv_parse_args_recursive($view_settings, $defaults); return $view_settings; } /** * Views-Shortcode: wpv-pagination * * Description: Display the pagination controls that are within the shortcode. * The pagination controls will only be displayed if there are multiple * pages to display * * Parameters: * This has no parameters. * */ add_shortcode('wpv-pagination', 'wpv_pagination_shortcode'); function wpv_pagination_shortcode($atts, $value) { extract( shortcode_atts(array(), $atts) ); global $WP_Views; if ($WP_Views->get_max_pages() > 1.0) { // output the pagination. return wpv_do_shortcode($value); } else { // only 1 page so we don't need any pagination controls. return ''; } } /** * Views-Shortcode: wpv-pager-num-page * * Description: Display the maximum number of pages found by the Views Query. * * Parameters: * This has no parameters. * */ add_shortcode('wpv-pager-num-page', 'wpv_pager_num_page_shortcode'); function wpv_pager_num_page_shortcode($atts) { extract( shortcode_atts(array(), $atts) ); global $WP_Views; return sprintf('%1.0f', $WP_Views->get_max_pages()); } /** * Views-Shortcode: wpv-pager-prev-page * * Description: Display a "Previous" link to move to the previous page. * eg. [wpv-pager-prev-page]Previous[/wpv-pager-prev-page] * * Parameters: * This has no parameters. * */ add_shortcode('wpv-pager-prev-page', 'wpv_pager_prev_page_shortcode'); function wpv_pager_prev_page_shortcode($atts, $value) { extract( shortcode_atts(array(), $atts) ); global $WP_Views; $page = $WP_Views->get_current_page_number(); if ($page > 1) { $page--; $value = wpv_do_shortcode($value); // TODO remove // return '' . $value . ''; $view_settings = $WP_Views->get_view_settings(); $ajax = $view_settings['ajax_pagination'][0] == 'enable' ? 'true' : 'false'; $effect = isset($view_settings['ajax_pagination']['style']) ? $view_settings['ajax_pagination']['style'] : 'fade'; $cache_pages = $view_settings['pagination']['cache_pages']; $preload_pages = $view_settings['pagination']['preload_pages']; $spinner = $view_settings['pagination']['spinner']; $spinner_image = $view_settings['pagination']['spinner_image']; $callback_next = $view_settings['pagination']['callback_next']; return '' . $value . ''; } else { return ''; } } /** * Views-Shortcode: wpv-pager-next-page * * Description: Display a "Next" link to move to the next page. * eg. [wpv-pager-next-page]Next[/wpv-pager-next-page] * * Parameters: * This has no parameters. * */ add_shortcode('wpv-pager-next-page', 'wpv_pager_next_page_shortcode'); function wpv_pager_next_page_shortcode($atts, $value) { extract( shortcode_atts(array(), $atts) ); global $WP_Views; $page = $WP_Views->get_current_page_number(); if ($page < $WP_Views->get_max_pages()) { $page++; $value = wpv_do_shortcode($value); // TODO remove // return '' . $value . ''; $view_settings = $WP_Views->get_view_settings(); $ajax = $view_settings['ajax_pagination'][0] == 'enable' ? 'true' : 'false'; $effect = isset($view_settings['ajax_pagination']['style']) ? $view_settings['ajax_pagination']['style'] : 'fade'; $cache_pages = $view_settings['pagination']['cache_pages']; $preload_pages = $view_settings['pagination']['preload_pages']; $spinner = $view_settings['pagination']['spinner']; $spinner_image = $view_settings['pagination']['spinner_image']; $callback_next = $view_settings['pagination']['callback_next']; return '' . $value . ''; } else { return ''; } } /** * Views-Shortcode: wpv-pager-current-page * * Description: Display the current page number. It can be displayed as a number * or as a drop-down list to select another page. * * Parameters: * 'style' => leave empty to display a number. * 'style' => 'drop_down' to display a selector to select another page. * 'stile' => 'link' to display a series of links to each page * */ add_shortcode('wpv-pager-current-page', 'wpv_pager_current_page_shortcode'); function wpv_pager_current_page_shortcode($atts) { extract( shortcode_atts(array(), $atts) ); global $WP_Views; $page = $WP_Views->get_current_page_number(); if (isset($atts['style'])) { $view_settings = $WP_Views->get_view_settings(); $cache_pages = $view_settings['pagination']['cache_pages']; $preload_pages = $view_settings['pagination']['preload_pages']; $spinner = $view_settings['pagination']['spinner']; $spinner_image = $view_settings['pagination']['spinner_image']; $callback_next = $view_settings['pagination']['callback_next']; if ($view_settings['pagination']['mode'] == 'paged') { $ajax = $view_settings['ajax_pagination'][0] == 'enable' ? 'true' : 'false'; $effect = isset($view_settings['ajax_pagination']['style']) ? $view_settings['ajax_pagination']['style'] : 'fade'; } if ($view_settings['pagination']['mode'] == 'rollover') { $ajax = 'true'; $effect = $view_settings['rollover']['effect']; // convert rollover to slide effect if the user clicks on a page. if ($effect == 'slideleft' || $effect == 'slideright') { $effect = 'slideh'; } if ($effect == 'slideup' || $effect == 'slidedown') { $effect = 'slidev'; } } switch($atts['style']) { case 'drop_down': $out = ''; $out .= '\n"; return $out; case 'link': $page_count = intval($WP_Views->get_max_pages()); // output a series of links to each page. $out = '