WordPress.org

Plugin Directory

Changeset 1690431


Ignore:
Timestamp:
07/04/17 09:54:49 (6 months ago)
Author:
mnmlthms
Message:

Update v1.0.2

Location:
wp-my-instagram
Files:
24 added
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • wp-my-instagram/trunk/css/style.css

    r1674534 r1690431  
    1 .wpmi-list { padding: 0 !important; } 
     1.wpmi-list { padding: 0 !important; font-size: 0; } 
    22.wpmi-list li.wpmi-item { list-style: none; display: inline-block; } 
    33.wpmi-list:last-child { margin-bottom: 0; } 
  • wp-my-instagram/trunk/css/style.css.map

    r1674534 r1690431  
    11{ 
    22"version": 3, 
    3 "mappings": "AAAA,UAAU,GACN,OAAO,EAAC,YAAY;AACpB,uBAAY,GACR,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,YAAY;AAEzB,qBAAY,GACR,aAAa,EAAE,CAAC;AAEpB,mCAA0B,GACtB,KAAK,EAAE,GAAG;AAEd,wEAC0B,GACtB,KAAK,EAAE,YAAY;AAEvB,wEAC0B,GACtB,KAAK,EAAE,GAAG;AAEd,yEAC2B,GACvB,KAAK,EAAE,GAAG;;AAIlB,yCAAyC,GAEjC,mCAA0B,GACtB,KAAK,EAAE,WAAW;EAEtB,mCAA0B,GACtB,KAAK,EAAE,KAAK;EAEhB,oCAA2B,GACvB,KAAK,EAAE,GAAG", 
     3"mappings": "AAAA,UAAU,GACN,OAAO,EAAC,YAAY,EACpB,SAAS,EAAE,CAAC;AACZ,uBAAY,GACR,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,YAAY;AAEzB,qBAAY,GACR,aAAa,EAAE,CAAC;AAEpB,mCAA0B,GACtB,KAAK,EAAE,GAAG;AAEd,wEAC0B,GACtB,KAAK,EAAE,YAAY;AAEvB,wEAC0B,GACtB,KAAK,EAAE,GAAG;AAEd,yEAC2B,GACvB,KAAK,EAAE,GAAG;;AAIlB,yCAAyC,GAEjC,mCAA0B,GACtB,KAAK,EAAE,WAAW;EAEtB,mCAA0B,GACtB,KAAK,EAAE,KAAK;EAEhB,oCAA2B,GACvB,KAAK,EAAE,GAAG", 
    44"sources": ["style.scss"], 
    55"names": [], 
  • wp-my-instagram/trunk/css/style.scss

    r1674534 r1690431  
    11.wpmi-list{ 
    22    padding:0 !important; 
     3    font-size: 0; 
    34    li.wpmi-item{ 
    45        list-style: none; 
  • wp-my-instagram/trunk/inc/public/main.php

    r1675325 r1690431  
    99    class WP_My_Instagram_Main{ 
    1010 
     11        /** 
     12         * Display Feed 
     13         * @since 1.0.0 
     14         */ 
    1115        public function images_only( $media_item ) { 
    1216 
     
    1721        } 
    1822 
     23        /** 
     24         * Display Feed 
     25         * @since 1.0.0 
     26         */ 
    1927        static function display_feed( $args = array() ){ 
    2028 
     
    3139 
    3240            if( empty( $args['username'] ) ) 
    33                 echo esc_html__( 'You need to input your username', 'wp-my-instagram' ); 
    34  
    35  
    36             $media_array = WP_My_Instagram_Main::scrape_instagram( $args['username'], (int) $args['limit'] ); 
     41                echo esc_html__( 'You need to input your username.', 'wp-my-instagram' ); 
     42 
    3743            $output = ''; 
     44            $cached = false; 
     45            if( self::get_cache( $args['username'], (int) $args['limit'] ) ){ 
     46 
     47                $media_array = WP_My_Instagram_Main::scrape_instagram( $args['username'], (int) $args['limit'] ); 
     48                $cached = true; 
     49 
     50            }else{ 
     51                $media_array = array(); 
     52            } 
    3853 
    3954            if ( is_wp_error( $media_array ) ) { 
     
    4459 
    4560                // filter for images only? 
    46                 if ( $images_only = apply_filters( 'wpmi_images_only', FALSE ) ) { 
     61                if ( $images_only = apply_filters( 'wpmi_images_only', false ) ) { 
    4762                    $media_array = array_filter( $media_array, array( __CLASS__, 'images_only' ) ); 
    4863                } 
    49  
    5064                // slice list down to required limit 
    5165                $media_array = array_slice( $media_array, 0, (int) $args['limit'] ); 
    52                 $template_part = apply_filters( 'wpmi_template_part', 'wp-my-instagram/loop.php' ); 
     66                 
     67                if( !$cached ){ 
     68                    wp_enqueue_script( 'wp-my-instagram' ); 
     69                } 
    5370                ?> 
    54                 <div class="wp-my-instagram wpmi"> 
    55                     <ul class="wpmi-list wpmi-layout-<?php echo esc_attr( $args['layout'] );?>"><?php 
    56                     foreach ( $media_array as $item ) { 
    57                         // copy the else line into a new file (wp-my-instagram/loop.php) within your theme and customise accordingly 
    58                         if ( locate_template( $template_part ) != '' ) { 
    59                             include locate_template( $template_part ); 
    60                         } else { 
    61                             echo '<li class="wpmi-item"><a href="'. esc_url( $item['link'] ) .'" target="'. esc_attr( $args['target'] ) .'"><img src="'. esc_url( $item[$args['size']] ) .'"  alt="" title="'. esc_attr( $item['description'] ).'"/></a></li>'; 
    62                         } 
    63                     } 
    64                     ?> 
     71                <div id="wpmi-<?php echo esc_attr( uniqid() );?>" class="wp-my-instagram wpmi" data-args="<?php echo esc_attr( json_encode($args) );?>" data-cached="<?php echo esc_attr( $cached ? 'true' : 'false' );?>"> 
     72                    <ul class="wpmi-list wpmi-layout-<?php echo esc_attr( $args['layout'] );?>"> 
     73                        <?php 
     74                            echo self::make_items( $media_array, $args ); 
     75                        ?> 
    6576                    </ul> 
    6677                    <?php  
     
    7586            } 
    7687        } 
    77  
     88        /** 
     89         * Make items 
     90         * @since 1.0.2 
     91         */ 
     92        static function make_items( $media_array = array(), $args = array() ){ 
     93 
     94            $output = ''; 
     95            $template_part = self::get_template(); 
     96 
     97            foreach ( $media_array as $item ) { 
     98                // copy the else line into a new file (wp-my-instagram/loop.php) within your theme and customise accordingly 
     99                $output .= strtr( $template_part, array( 
     100                    '{{link}}'      => $item['link'], 
     101                    '{{target}}'    => $item['link'], 
     102                    '{{image}}'         => $item[$args['size']], 
     103                    '{{description}}'   => $item['description'], 
     104                ) ); 
     105            } 
     106 
     107            return $output; 
     108        } 
     109        /** 
     110         * Get item Template 
     111         * @since 1.0.2 
     112         */ 
     113        static function get_template(){ 
     114            $template_part_default = '<li class="wpmi-item"><a href="{{link}}" target="{{target}}"><img src="{{image}}"  alt="" title="{{description}}"/></a></li>'; 
     115            $template_part = apply_filters( 'wpmi_item_template', $template_part_default ); 
     116            if( empty( $template_part )) { 
     117                $template_part = $template_part_default; 
     118            } 
     119 
     120            return $template_part; 
     121        } 
     122        /** 
     123         * Get cache name 
     124         * @since 1.0 
     125         */ 
    78126        static function get_cache_name( $username, $limit){ 
    79127            $username = strtolower( $username ); 
     
    83131        } 
    84132        /** 
     133         * Get cache 
     134         * @since 1.0.2 
     135         */ 
     136        static function get_cache( $username, $limit){ 
     137 
     138            return get_transient( self::get_cache_name( $username, $limit ) ); 
     139        } 
     140        /** 
    85141         * Delete Cache 
    86          * @version 1.0 
     142         * @since 1.0 
    87143         */ 
    88144        static function delete_cache( $username, $limit ){ 
     
    95151        /** 
    96152         * Get Batch 
    97          * @version 1.0 
     153         * @since 1.0 
    98154         */ 
    99155        static function _get_batch( $username, $batch = 0 ){ 
     
    101157            $username = strtolower( $username ); 
    102158            $username = str_replace( '@', '', $username ); 
    103             $url = 'http://instagram.com/' . trim( $username ) . ( $batch ? "/?max_id={$batch}" : '' ); 
    104  
    105             $remote = wp_remote_get( $url ); 
     159            $url = 'https://instagram.com/' . trim( $username ) . ( $batch ? "/?max_id={$batch}" : '' ); 
     160 
     161            $remote = wp_remote_get( $url, array( 'timeout' => 120, 'sslverify' => false ) ); 
    106162 
    107163            if ( is_wp_error( $remote ) ) 
     
    111167                return new WP_Error( 'invalid_response', esc_html__( 'Instagram did not return a 200.', 'wp-my-instagram' ) ); 
    112168 
    113             $shards = explode( 'window._sharedData = ', $remote['body'] ); 
    114             $insta_json = explode( ';</script>', $shards[1] ); 
     169            $shared_data = explode( 'window._sharedData = ', $remote['body'] ); 
     170            $insta_json = explode( ';</script>', $shared_data[1] ); 
    115171            $insta_array = json_decode( $insta_json[0], TRUE ); 
    116172 
     
    178234        /** 
    179235         * Get Instagram 
    180          * @version 1.0 
     236         * @since 1.0 
    181237         * Special Thanks to Scott Evans - wp-instagram-widget 
    182238         */ 
     
    199255                    $instagram = self::_get_batch( $username, $last_id ); 
    200256 
    201                     if( $instagram ){ 
     257                    if( is_array( $instagram ) ){ 
    202258                        $last_image = end( $instagram ); 
    203259                        $last_id = !empty( $last_image['id'] ) ? $last_image['id'] : 0; 
  • wp-my-instagram/trunk/inc/public/widget.php

    r1675325 r1690431  
    1111        public function __construct() { 
    1212            parent::__construct( 
    13                 'wp-my-instagram', 
     13                'wp_my_instagram', 
    1414                esc_html__( 'WP My Instagram', 'wp-my-instagram' ), 
    1515 
  • wp-my-instagram/trunk/readme.txt

    r1675325 r1690431  
    55Requires at least: 3.9 
    66Tested up to: 4.8 
    7 Stable tag: 1.0.0 
     7Stable tag: 1.0.2 
    88License: GPLv2 or later 
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    6666== Changelog == 
    6767 
     68= 1.0.2 = 
     69* Fix Minor bugs 
     70* Add ajax cache refresher, no delay on loading when cache is expired 
     71 
    6872= 1.0.1 = 
    6973* Fix Minor bugs 
  • wp-my-instagram/trunk/wp-my-instagram.php

    r1675325 r1690431  
    44Plugin URI: https://wordpress.org/plugins/wp-my-instagram 
    55Description: A better version of WP Instagram Widget, allow you get more than 12 images from instagram 
    6 Version: 1.0.1 
     6Version: 1.0.2 
    77Author: mnmlthms 
    88Author URI: http://mnmlthms.com 
     
    2929if ( ! defined( 'ABSPATH' ) ) exit; 
    3030 
    31 define( 'WP_MY_INSTAGRAM_VERSION', '1.0.1' ); 
     31define( 'WP_MY_INSTAGRAM_VERSION', '1.0.2' ); 
    3232define( 'WP_MY_INSTAGRAM_OPTION', 'wp_my_instagram_instagram' ); 
    3333 
     
    9494            add_action( 'wp_enqueue_scripts', array( $this, 'wp_enqueue_scripts' ), 16 ); 
    9595 
     96            add_action( 'wp_ajax_wpmi-init-cache', array( $this, 'ajax_load_cache') ); 
     97            add_action( 'wp_ajax_nopriv_wpmi-init-cache', array( $this, 'ajax_load_cache') ); 
     98 
    9699        } 
    97100 
     
    109112            if( !apply_filters( 'wpim_raw_style', false ) ){ 
    110113                wp_enqueue_style( 'wp-my-instagram', WP_My_Instagram::get_url() . 'css/style.css', array(), '1.0' ); 
     114 
    111115            } 
     116 
     117            wp_register_script( 'wp-my-instagram', WP_My_Instagram::get_url() . 'js/script' . $suffix . '.js', array( 'jquery' ), '1.0' ); 
     118            wp_localize_script( 'wp-my-instagram', 'wpMyInstagramVars', array( 
     119                'nonce'     => esc_js( wp_create_nonce( 'wpmi-init-cache-nonce' ) ),     
     120            ) ); 
     121        } 
     122        /** 
     123         * Load cache via ajax 
     124         * 
     125         * @return    void 
     126         * 
     127         * @access    public 
     128         * @since     1.0.2 
     129         */ 
     130        public function ajax_load_cache(){ 
     131 
     132            $nonce_key = 'wpmi-init-cache-nonce'; 
     133 
     134            check_ajax_referer( $nonce_key, 'security' ); 
     135 
     136            $response = array( 
     137                'success' => true 
     138            ); 
     139 
     140            $_args = $_REQUEST['args']; 
     141 
     142            $output = array(); 
     143 
     144            if( !class_exists( 'WP_My_Instagram_Main' ) ){ 
     145 
     146                require_once( 'inc/public/main.php' ); 
     147                 
     148            } 
     149 
     150            foreach ( $_args as $key => $args) { 
     151 
     152                $media_array = WP_My_Instagram_Main::scrape_instagram( $args['username'], (int) $args['limit'] ); 
     153                if ( is_wp_error( $media_array ) ) { 
     154                    $output[$key] = $media_array->get_error_message(); 
     155                } else { 
     156                    $output[$key] = WP_My_Instagram_Main::make_items( $media_array, $args ); 
     157                } 
     158            } 
     159 
     160            $response['data'] = $output; 
     161 
     162            wp_send_json( $response ); 
     163 
     164            wp_die(1); 
     165 
    112166        } 
    113167        /** 
Note: See TracChangeset for help on using the changeset viewer.