PATH:
home
/
lab2454c
/
mact34.com
/
wp-content
/
plugins
/
bdthemes-element-pack
/
modules
/
instagram
<?php namespace ElementPack\Modules\Instagram; use ElementPack\Base\Element_Pack_Module_Base; if ( ! defined( 'ABSPATH' ) ) { exit; } // Exit if accessed directly class Module extends Element_Pack_Module_Base { public function __construct() { parent::__construct(); $this->add_actions(); } public function get_name() { return 'instagram'; } public function get_widgets() { $widgets = [ 'Instagram' ]; return $widgets; } /** * @param int $item_count * @param bool $cache * @param float|int $cache_time * * @return bool|mixed */ public function element_pack_instagram_feed( $item_count = 100, $cache = true, $cache_time = HOUR_IN_SECONDS * 12 ) { $options = get_option( 'element_pack_api_settings' ); $access_token = ( ! empty( $options['instagram_access_token'] ) ) ? $options['instagram_access_token'] : ''; if ( $access_token ) { $data = ( $cache ) ? get_transient( 'ep_instagram_feed_data' ) : false; if ( false === $data ) { $url = 'https://api.instagram.com/v1/users/self/media/recent/?access_token=' . $access_token . '&count=' . $item_count; $feeds_json = wp_remote_fopen( $url ); $feeds_obj = json_decode( $feeds_json, true ); $feeds_images_array = []; $instagram_user = []; $ins_counter = 1; if ( 200 == $feeds_obj['meta']['code'] ) { if ( ! empty( $feeds_obj['data'] ) ) { foreach ( $feeds_obj['data'] as $data ) { array_push( $feeds_images_array, array( 'image' => [ 'small' => $data['images']['thumbnail']['url'], // thumbnail image 'medium' => $data['images']['low_resolution']['url'], // medium image 'large' => $data['images']['standard_resolution']['url'], // large image ], 'link' => $data['link'], 'like' => $data['likes']['count'], 'comment' => [ 'count' => $data['comments']['count'] ], //'text' => $data['text'], 'post_type' => $data['type'], 'user' => $data['user'], ) ); if ( 1 == $ins_counter ) { $instagram_user = $data['user']; $ins_counter ++; } } set_transient( 'ep_instagram_feed_data', $feeds_images_array, $cache_time ); set_transient( 'ep_instagram_user', $instagram_user, $cache_time ); return get_transient( 'ep_instagram_feed_data' ); } } } return $data; } } /** * Instagram post layout maker with ajax load * @return string instagram images with layout */ public function element_pack_instagram_ajax_load() { $limit = $_REQUEST['item_per_page']; $current_page = $_REQUEST['current_page']; $load_more_per_click = $_REQUEST['load_more_per_click']; $cache = $_REQUEST['cache']; $cache_time = $_REQUEST['cache_time']; $skin = isset( $_REQUEST['skin'] ); $insta_feeds = $this->element_pack_instagram_feed( 100, $cache, $cache_time); if ( $current_page == 1 ) { $start = 0; $end = $limit - 1; } else { $start = $limit + ( ( $current_page - 2 ) * $load_more_per_click ) + 1; $end = $limit + ( $load_more_per_click * ( $current_page - 1 ) ); } ob_start(); for ( $i = $start; $i <= $end; $i ++ ) { if ( $insta_feeds[ $i ] ) { if ( 'bdt-classic-grid' == $skin ) { include 'widgets/template-classic.php'; } else { include 'widgets/template.php'; } } } $output = ob_get_clean(); echo $output; die(); } public function add_actions() { add_action( 'wp_ajax_nopriv_element_pack_instagram_ajax_load', [ $this, 'element_pack_instagram_ajax_load' ] ); add_action( 'wp_ajax_element_pack_instagram_ajax_load', array( $this, 'element_pack_instagram_ajax_load' ) ); } }
[+]
widgets
[+]
..
[-] module.php
[edit]
[+]
skins
[-] module.info.php
[edit]