File "articles-pagination.php"

Full Path: /var/www/bvnghean.vn/save_bvnghean.vn/wp-content/plugins/sneeit-framework/includes/articles/articles-pagination.php
File size: 4.42 KB
MIME-type: text/x-php
Charset: utf-8

<?php

add_filter('sneeit_articles_pagination_fields', 'sneeit_articles_pagination_fields');
function sneeit_articles_pagination_fields($args = array()) {
	return array(
		'pagination' => array(
			'label' => esc_html__('Pagination', 'sneeit'), 		
			'description' => esc_html__('Depending on your post queries, the pagination may be not displayed if your query have no any paged permalink', 'sneeit'), 		
			'type' => 'select', 
			'choices' => array(
				'' => esc_html__('None', 'sneeit'), 
				'number-ajax' => esc_html__('Number Ajax Load', 'sneeit'), 
				'number-reload' => esc_html__('Number Full Reload', 'sneeit'), 
				'loadmore' => esc_html__('Loadmore', 'sneeit'), 
				'infinite' => esc_html__('Infinite Scroll', 'sneeit'), 
				'nextprev-ajax' => esc_html__('Next / Previous Ajax Load', 'sneeit'),
				'nextprev-reload' => esc_html__('Next / Previous Full Reload', 'sneeit')
			),
			'default' => '',
			'heading' => esc_html__('Block Pagination', 'sneeit')
		),
	);
}

add_action('sneeit_articles_pagination', 'sneeit_articles_pagination');
function sneeit_articles_pagination($site_args) {
	if (empty($site_args['ajax_handler']) ||
		empty($site_args['pagination_container']) ||
		empty($site_args['content_container'])) {
		return ;
	}
	
	global $Sneeit_Articles_Pagination_Script;
	$Sneeit_Articles_Pagination_Script = array(
		'site_args' => $site_args,
		'block_args' => array(),
		'ajax_url' => admin_url( 'admin-ajax.php' )
	);
	
	add_filter('sneeit_articles_query_args', 'sneeit_articles_pagination_block_args');
	add_action('wp_enqueue_scripts', 'sneeit_articles_pagination_register');
	add_action('wp_footer', 'sneeit_articles_pagination_enqueue', 1);
	
	if (is_admin()) :
		add_action( 'wp_ajax_nopriv_sneeit_articles_pagination', 'sneeit_articles_pagination_callback' );
		add_action( 'wp_ajax_sneeit_articles_pagination', 'sneeit_articles_pagination_callback' );
		
		add_action( 'wp_ajax_nopriv_sneeit_articles_pagination_redirect', 'sneeit_articles_pagination_redirect_callback' );
		add_action( 'wp_ajax_sneeit_articles_pagination_redirect', 'sneeit_articles_pagination_redirect_callback' );
	endif;// is_admin for ajax
}

function sneeit_articles_pagination_callback() {	
	$callback = sneeit_get_server_request('callback');
	
	if (function_exists($callback)) {
		$args = sneeit_get_server_request('args');
		$args = json_decode( trim( wp_unslash( $args ) ), true );
		call_user_func($callback, $args);
	}
	die();
}
function sneeit_articles_pagination_redirect_callback() {	
	$args = sneeit_get_server_request('args');
	$args = json_decode( trim( wp_unslash( $args ) ), true );		
	echo sneeit_articles_archive_link($args);
	die();
}


function sneeit_articles_pagination_block_args($block_args) {
	if (!is_array($block_args) ||
		!is_array($block_args['args']) ||
		empty($block_args['args']) || 
		empty($block_args['args']['pagination']) ||
		empty($block_args['args']['block_id']) ||
		empty($block_args['args']['count']) || 
		empty($block_args['found_posts']) ||
		$block_args['args']['count'] > $block_args['found_posts']) {
		return '';
	}
	
	// process block args if full reload
	if ($block_args['args']['pagination'] == 'number-reload' ||
		$block_args['args']['pagination'] == 'nextprev-reload') {
		$block_args['args']['count'] = get_option('posts_per_page', $block_args['args']['count']);
	}
	
	global $Sneeit_Articles_Pagination_Script;	
		
	$block_id = $block_args['args']['block_id'];		
	$Sneeit_Articles_Pagination_Script['block_args'][$block_id] = $block_args;
	
	if (!empty($block_args['args']['menu_item_id'])) {		
		foreach ( (array) $block_args as $key => $value ) {
			if ( !is_scalar($value) )
				continue;

			$block_args[$key] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8');
		}

		return '<script type="text/javascript">Sneeit_Articles_Pagination["block_args"]["'.$block_id.'"] = ' . wp_json_encode( $block_args ) . ';</script>';
	}
		
	return '';
}


function sneeit_articles_pagination_register() {	
	wp_register_script('sneeit-articles-pagination', sneeit_front_enqueue_url('front-articles-pagination.js'), array('jquery'), SNEEIT_PLUGIN_VERSION, true);
}
function sneeit_articles_pagination_enqueue() {
	global $Sneeit_Articles_Pagination_Script;		
	
	if (empty($Sneeit_Articles_Pagination_Script['block_args'])) {
		unset($Sneeit_Articles_Pagination_Script['block_args']);
	}
	wp_enqueue_script('sneeit-articles-pagination');
	wp_localize_script( 'sneeit-articles-pagination', 'Sneeit_Articles_Pagination', $Sneeit_Articles_Pagination_Script);
}