PATH:
home
/
letacommog
/
supportleta
/
wp-content
/
plugins
/
the-grid
/
frontend
<?php /** * @package The_Grid * @author Themeone <themeone.master@gmail.com> * @copyright 2015 Themeone */ // Exit if accessed directly if (!defined('ABSPATH')) { exit; } class The_Grid_Ajax extends The_Grid { /** * Cloning disabled * @since 1.0.0 */ private function __clone() { } /** * De-serialization disabled * @since 1.0.0 */ private function __wakeup() { } /** * Construct for Ajax * @since 1.0.0 */ public function __construct() { // Add action - ajax load more item in grid add_action('wp_ajax_the_grid_load_more', array($this, 'the_grid_load_more_items')); add_action('wp_ajax_nopriv_the_grid_load_more', array($this, 'the_grid_load_more_items')); } /** * Load more item with ajax (button or scroll) * @since 1.0.0 */ public function the_grid_load_more_items() { $nonce = $_POST['grid_nonce']; $action = $_POST['action']; // check ajax nounce if (!wp_verify_nonce($nonce, $action) && is_user_logged_in()) { // build error response $response = array( 'success' => false, 'message' => __('Loading Error', 'tg-text-domain'), 'content' => null ); // return response wp_send_json($response); } else { global $tg_is_ajax, $tg_grid_preview; // set ajax mode $tg_is_ajax = true; // retrieve ajax data $grid_page = (isset($_POST['grid_page'])) ? $_POST['grid_page'] : die(); $grid_name = (isset($_POST['grid_name']) && !empty($_POST['grid_name'])) ? $_POST['grid_name'] : die(); $grid_data = (isset($_POST['grid_data']) && !empty($_POST['grid_data'])) ? $_POST['grid_data'] : null; $process_data = new The_Grid_Data($grid_name); // get grid options (back end if data and front end if not) if ($grid_data) { // set preview mode $tg_grid_preview = true; // retrieve all grid settings foreach ($grid_data as $data => $val) { $data = str_replace('the_grid_', '', $data); $grid_data[$data] = wp_unslash($val); } // normalize data in preview mode $this->grid_data = $process_data->normalize_data($grid_data); } else { // fetch data from grid name $this->grid_data = $process_data->get_data(); } // get grid items $this->get_items(); // build each item in custom loop $content = $this->get_item(); // send json response $response = array( 'success' => true, 'message' => __('Content correctly retrieved', 'tg-text-domain'), 'content' => $content, 'ajax_data' => htmlspecialchars_decode($this->grid_data['ajax_data']) ); // return success response wp_send_json($response); } } /** * Retrieve grid items * @since 1.0.0 */ public function get_items() { try { // get grid items $source_class = new The_Grid_Source($this->grid_data); $this->grid_items = $source_class->get_items(); $this->grid_data = $source_class->get_data(); } catch (Exception $e) { // show error message if throw $response = array( 'success' => false, 'message' => html_entity_decode($e->getMessage()), 'content' => null, 'ajax_data' => null ); // return error response wp_send_json($response); } } /** * Retrieve grid items * @since 1.0.0 */ public function get_item() { try { // loop through each item ob_start(); The_Grid_Loop($this->grid_data, $this->grid_items); $content = ob_get_contents(); ob_end_clean(); return $content; } catch (Exception $e) { // build error response if throw $response = array( 'success' => false, 'message' => html_entity_decode($e->getMessage()), 'content' => null, 'ajax_data' => null ); // return error response wp_send_json($response); } } } new The_Grid_Ajax();
[+]
..
[-] the-grid-init.class.php
[edit]
[+]
assets
[-] the-grid-loop.class.php
[edit]
[-] the-grid-item.class.php
[edit]
[-] the-grid-style.class.php
[edit]
[-] the-grid-source.class.php
[edit]
[-] the-grid-ajax.class.php
[edit]
[-] the-grid.class.php
[edit]
[-] the-grid-layout.class.php
[edit]
[-] the-grid-element.class.php
[edit]
[-] the-grid-data.class.php
[edit]