BlossomThemes Social Feed - Version 1.0.8

Version Description

Download this release

Release Info

Developer blossomthemes
Plugin Icon 128x128 BlossomThemes Social Feed
Version 1.0.8
Comparing to
See all releases

Code changes from version 1.0.2 to 1.0.8

README.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://blossomthemes.com
4
  Tags: comments, spam
5
  Requires at least: 4.3
6
  Tested up to: 4.9
7
- Stable tag: 1.0.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -50,6 +50,24 @@ If you do not enter the Instagram username in the widget, the username assigned
50
  = 1.0.1 =
51
  * Compatibility tested
52
 
53
-
54
  = 1.0.2 =
55
- * Issue fixed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  Tags: comments, spam
5
  Requires at least: 4.3
6
  Tested up to: 4.9
7
+ Stable tag: 1.0.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
50
  = 1.0.1 =
51
  * Compatibility tested
52
 
 
53
  = 1.0.2 =
54
+ * Issue fixed
55
+
56
+ = 1.0.3 =
57
+ * No username issue fixed
58
+
59
+ = 1.0.4 =
60
+ * Function changed
61
+
62
+ = 1.0.5 =
63
+ * API updated
64
+
65
+ = 1.0.6 =
66
+ * API updated
67
+
68
+ = 1.0.7 =
69
+ * Notice Fixed
70
+
71
+ = 1.0.8 =
72
+ * Resource Minification
73
+ * Image size load smaller
admin/class-blossomthemes-instagram-feed-admin.php CHANGED
@@ -73,7 +73,7 @@ class Blossomthemes_Instagram_Feed_Admin {
73
  * class.
74
  */
75
 
76
- wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/blossomthemes-instagram-feed-admin.css', array(), $this->version, 'all' );
77
 
78
  }
79
 
@@ -96,7 +96,7 @@ class Blossomthemes_Instagram_Feed_Admin {
96
  * class.
97
  */
98
 
99
- wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/blossomthemes-instagram-feed-admin.js', array( 'jquery' ), $this->version, false );
100
 
101
  }
102
 
73
  * class.
74
  */
75
 
76
+ wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/blossomthemes-instagram-feed-admin.min.css', array(), $this->version, 'all' );
77
 
78
  }
79
 
96
  * class.
97
  */
98
 
99
+ wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/blossomthemes-instagram-feed-admin.min.js', array( 'jquery' ), $this->version, false );
100
 
101
  }
102
 
admin/css/blossomthemes-instagram-feed-admin.css DELETED
@@ -1,55 +0,0 @@
1
- /**
2
- * All of the CSS for your admin-specific functionality should be
3
- * included in this file.
4
- */
5
- .btss-backend-sidebar{
6
- display: inline-block;
7
- float: right;
8
- width: 20%;
9
- }
10
- .btss-backend-sidebar .thumbnail{
11
- padding: 12px;
12
- line-height: 1.4em;
13
- font-size: 13px;
14
- border: 1px solid #e5e5e5;
15
- box-shadow: 0 1px 1px rgba(0,0,0,.04);
16
- background: #fff;
17
- margin-bottom: 20px;
18
- }
19
- form.btif-settings-form {
20
- background: #fff;
21
- padding: 10px;
22
- width: 78%;
23
- float: left;
24
- }
25
- .thumbnail-review {
26
- background: #fff;
27
- padding: 12px;
28
- margin: 0;
29
- }
30
- .btif-option-field-wrap label {
31
- margin: 10px 15px 10px 0;
32
- display: inline-block;
33
- font-weight: 600;
34
- }
35
- .btif-inner-wrap .nav-tab-active, .btif-inner-wrap .nav-tab-active:focus, .btif-inner-wrap .nav-tab-active:focus:active, .btif-inner-wrap .nav-tab-active:hover {
36
- border-bottom: 1px solid #fff;
37
- background: #fff;
38
- color: #000;
39
- }
40
- .btif-inner-wrap{
41
- background: #fff;
42
- width: 77.5%;
43
- float: left;
44
- padding: 15px;
45
- border: 1px solid #ddd;
46
- }
47
- .blossomthemes-instagram-feed-settings{
48
- display: none;
49
- }
50
- .blossomthemes-instagram-feed-settings.general{
51
- display: block;
52
- }
53
- div#blossomthemes-instagram-feed-settings-usage .shortcode-usage {
54
- width: 30%;
55
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/css/blossomthemes-instagram-feed-admin.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .btss-backend-sidebar{display:inline-block;float:right;width:20%}.btss-backend-sidebar .thumbnail{padding:12px;line-height:1.4em;font-size:13px;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;margin-bottom:20px}form.btif-settings-form{background:#fff;padding:10px;width:78%;float:left}.thumbnail-review{background:#fff;padding:12px;margin:0}.btif-option-field-wrap label{margin:10px 15px 10px 0;display:inline-block;font-weight:600}.btif-inner-wrap .nav-tab-active,.btif-inner-wrap .nav-tab-active:focus,.btif-inner-wrap .nav-tab-active:focus:active,.btif-inner-wrap .nav-tab-active:hover{border-bottom:1px solid #fff;background:#fff;color:#000}.btif-inner-wrap{background:#fff;width:77.5%;float:left;padding:15px;border:1px solid #ddd}.blossomthemes-instagram-feed-settings{display:none}.blossomthemes-instagram-feed-settings.general{display:block}div#blossomthemes-instagram-feed-settings-usage .shortcode-usage{width:30%}
admin/js/blossomthemes-instagram-feed-admin.js DELETED
@@ -1,9 +0,0 @@
1
- jQuery(document).ready(function($){
2
- $('.btss-tab-trigger').click(function(){
3
- $('.btss-tab-trigger').removeClass('nav-tab-active');
4
- $(this).addClass('nav-tab-active');
5
- var configuration = $(this).data('configuration');
6
- $('.blossomthemes-instagram-feed-settings').hide();
7
- $('#blossomthemes-instagram-feed-settings-'+configuration).show();
8
- });
9
- });
 
 
 
 
 
 
 
 
 
admin/js/blossomthemes-instagram-feed-admin.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(document).ready(function(t){t(".btss-tab-trigger").click(function(){t(".btss-tab-trigger").removeClass("nav-tab-active"),t(this).addClass("nav-tab-active");var s=t(this).data("configuration");t(".blossomthemes-instagram-feed-settings").hide(),t("#blossomthemes-instagram-feed-settings-"+s).show()})});
blossomthemes-instagram-feed.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  /**
4
  * The plugin bootstrap file
5
  *
@@ -16,7 +15,7 @@
16
  * Plugin Name: BlossomThemes Instagram Feed
17
  * Plugin URI: https://wordpress.org/plugins/blossomthemes-instagram-feed
18
  * Description: Show instagram feed on your website using shortcode and widget.
19
- * Version: 1.0.2
20
  * Author: blossomthemes
21
  * Author URI: https://blossomthemes.com
22
  * License: GPL-2.0+
1
  <?php
 
2
  /**
3
  * The plugin bootstrap file
4
  *
15
  * Plugin Name: BlossomThemes Instagram Feed
16
  * Plugin URI: https://wordpress.org/plugins/blossomthemes-instagram-feed
17
  * Description: Show instagram feed on your website using shortcode and widget.
18
+ * Version: 1.0.8
19
  * Author: blossomthemes
20
  * Author URI: https://blossomthemes.com
21
  * License: GPL-2.0+
includes/class-blossomthemes-instagram-feed-settings.php CHANGED
@@ -24,7 +24,7 @@ class BlossomThemes_Instagram_Feed_Settings
24
  <h3><?php _e( 'BlossomThemes Instagram Feed', 'blossomthemes-notification-bars' ); ?></h3>
25
  </div>
26
  <div class="btif-inner-wrap">
27
- <h2 class="nav-tab-wrapper">
28
  <a href="#" class="btss-tab-trigger nav-tab nav-tab-active" data-configuration="general"><?php _e('General','blossomthemes-instagram-feed');?></a>
29
  <a href="#" class="btss-tab-trigger nav-tab" data-configuration="usage"><?php _e('Usage','blossomthemes-instagram-feed');?></a>
30
  </h2>
@@ -34,47 +34,55 @@ class BlossomThemes_Instagram_Feed_Settings
34
  ?>
35
  <div class="blossomthemes-instagram-feed-settings general" id="blossomthemes-instagram-feed-settings-general">
36
  <div class="btif-option-field-wrap">
37
- <label for="blossomthemes_instagram_feed_settings[username]"><?php _e('Username', 'blossomthemes-instagram-feed'); ?></label>
38
- <input id="blossomthemes_instagram_feed_settings[username]" name="blossomthemes_instagram_feed_settings[username]" type="text" value="<?php echo isset( $options['username'] ) ? esc_attr( $options['username'] ):''; ?>">
39
- </div>
40
- <div class="btif-option-field-wrap">
41
- <label for="blossomthemes_instagram_feed_settings[photos]"><?php _e('Number of Photos', 'blossomthemes-instagram-feed'); ?></label>
42
- <input min="1" max="20" id="blossomthemes_instagram_feed_settings[photos]" name="blossomthemes_instagram_feed_settings[photos]" type="number" value="<?php echo isset( $options['photos'] ) ? esc_attr( $options['photos'] ):'10'; ?>">
43
- </div>
44
  <div class="btif-option-field-wrap">
45
  <label for="blossomthemes_instagram_feed_settings[follow_me]"><?php _e('Profile Link Text', 'blossomthemes-instagram-feed'); ?></label>
46
  <input id="blossomthemes_instagram_feed_settings[follow_me]" name="blossomthemes_instagram_feed_settings[follow_me]" type="text" value="<?php echo isset( $options['follow_me'] ) ? esc_attr( $options['follow_me'] ):'Follow Me!'; ?>">
47
  </div>
 
 
 
 
 
 
 
 
48
  </div>
49
  <div class="blossomthemes-instagram-feed-settings usage" id="blossomthemes-instagram-feed-settings-usage">
50
  <?php $custom_id = get_the_ID(); ?>
51
- <h4><?php _e( 'Uses', 'blossomthemes-instagram-feed' ); ?></h4>
52
- <div class="wp-tm-settings-wrapper">
53
- <h4 class="wp-tm-setting-title"><?php _e('Display via Shortcode','blossomthemes-instagram-feed');?></h4>
54
- <div class="wp-tm--option-wrapper">
55
- <div class="wp-tm-option-field">
56
- <label class="wp-tm-plain-label">
57
- <div class="tm-option-side-note"> <?php _e('Copy this Shortcode to display your instagram gallery in pages/posts => ') ?><br>
58
- <input type="text" readonly="readonly" class="shortcode-usage" value="[blossomthemes_instagram_feed]" >
59
- </div>
60
- </label>
61
- </div>
62
- </div>
63
- <h4 class="wp-tm-setting-title"><?php _e('Display via PHP Function','blossomthemes-instagram-feed');?></h4>
64
- <div class="wp-tm--option-wrapper">
65
- <div class="wp-tm-option-field">
66
- <label class="wp-tm-plain-label">
67
- <div class="tm-option-side-note"> <?php _e('Copy the PHP Function below to display your instagram gallery in templates :') ?> <br>
68
- <textarea rows="2" cols="50" name="shortcode-function" readonly="readonly">&lt;?php echo do_shortcode("[blossomthemes_instagram_feed]"); ?&gt; </textarea>
69
- </div>
70
- </label>
71
 
72
- </div>
73
- </div>
74
- </div>
75
  </div>
76
  <?php $nonce = wp_create_nonce( 'blossomthemes-instagram-feed-nonce' ); ?>
77
- <input type="hidden" name="blossomthemes-instagram-feed-nonce" value="<?php echo $nonce; ?>">
78
  <div class="blossomthemes-instagram-feed-settings-submit">
79
  <?php
80
  settings_fields( 'blossomthemes_instagram_feed_settings' );
@@ -84,9 +92,9 @@ class BlossomThemes_Instagram_Feed_Settings
84
  </div>
85
  </form>
86
  </div>
87
- <?php //include(BTIF_BASE_PATH . '/includes/template/backend/sidebar.php'); ?>
88
  </div>
89
  <?php
90
  }
91
  }
92
- new BlossomThemes_Instagram_Feed_Settings;
24
  <h3><?php _e( 'BlossomThemes Instagram Feed', 'blossomthemes-notification-bars' ); ?></h3>
25
  </div>
26
  <div class="btif-inner-wrap">
27
+ <h2 class="nav-tab-wrapper">
28
  <a href="#" class="btss-tab-trigger nav-tab nav-tab-active" data-configuration="general"><?php _e('General','blossomthemes-instagram-feed');?></a>
29
  <a href="#" class="btss-tab-trigger nav-tab" data-configuration="usage"><?php _e('Usage','blossomthemes-instagram-feed');?></a>
30
  </h2>
34
  ?>
35
  <div class="blossomthemes-instagram-feed-settings general" id="blossomthemes-instagram-feed-settings-general">
36
  <div class="btif-option-field-wrap">
37
+ <label for="blossomthemes_instagram_feed_settings[username]"><?php _e('Username', 'blossomthemes-instagram-feed'); ?></label>
38
+ <input id="blossomthemes_instagram_feed_settings[username]" name="blossomthemes_instagram_feed_settings[username]" type="text" value="<?php echo isset( $options['username'] ) ? esc_attr( $options['username'] ):''; ?>">
39
+ </div>
40
+ <div class="btif-option-field-wrap">
41
+ <label for="blossomthemes_instagram_feed_settings[photos]"><?php _e('Number of Photos', 'blossomthemes-instagram-feed'); ?></label>
42
+ <input min="1" max="20" id="blossomthemes_instagram_feed_settings[photos]" name="blossomthemes_instagram_feed_settings[photos]" type="number" value="<?php echo isset( $options['photos'] ) ? esc_attr( $options['photos'] ):'10'; ?>">
43
+ </div>
44
  <div class="btif-option-field-wrap">
45
  <label for="blossomthemes_instagram_feed_settings[follow_me]"><?php _e('Profile Link Text', 'blossomthemes-instagram-feed'); ?></label>
46
  <input id="blossomthemes_instagram_feed_settings[follow_me]" name="blossomthemes_instagram_feed_settings[follow_me]" type="text" value="<?php echo isset( $options['follow_me'] ) ? esc_attr( $options['follow_me'] ):'Follow Me!'; ?>">
47
  </div>
48
+ <div class="btif-option-field-wrap">
49
+ <label for="likes-comments"><?php _e( 'Show Likes/Comments', 'blossomthemes-instagram-feed' ); ?></label>
50
+ <input type="checkbox" value="1" id="likes-comments" name="blossomthemes_instagram_feed_settings[meta]" <?php
51
+ if ( isset( $options['meta'] ) ) {
52
+ checked( $options['meta'], true );
53
+ }
54
+ ?>>
55
+ </div>
56
  </div>
57
  <div class="blossomthemes-instagram-feed-settings usage" id="blossomthemes-instagram-feed-settings-usage">
58
  <?php $custom_id = get_the_ID(); ?>
59
+ <h4><?php _e( 'Uses', 'blossomthemes-instagram-feed' ); ?></h4>
60
+ <div class="wp-tm-settings-wrapper">
61
+ <h4 class="wp-tm-setting-title"><?php _e('Display via Shortcode','blossomthemes-instagram-feed');?></h4>
62
+ <div class="wp-tm--option-wrapper">
63
+ <div class="wp-tm-option-field">
64
+ <label class="wp-tm-plain-label">
65
+ <div class="tm-option-side-note"> <?php _e('Copy this Shortcode to display your instagram gallery in pages/posts => ') ?><br>
66
+ <input type="text" readonly="readonly" class="shortcode-usage" value="[blossomthemes_instagram_feed]" >
67
+ </div>
68
+ </label>
69
+ </div>
70
+ </div>
71
+ <h4 class="wp-tm-setting-title"><?php _e('Display via PHP Function','blossomthemes-instagram-feed');?></h4>
72
+ <div class="wp-tm--option-wrapper">
73
+ <div class="wp-tm-option-field">
74
+ <label class="wp-tm-plain-label">
75
+ <div class="tm-option-side-note"> <?php _e('Copy the PHP Function below to display your instagram gallery in templates :') ?> <br>
76
+ <textarea rows="2" cols="50" name="shortcode-function" readonly="readonly">&lt;?php echo do_shortcode("[blossomthemes_instagram_feed]"); ?&gt; </textarea>
77
+ </div>
78
+ </label>
79
 
80
+ </div>
81
+ </div>
82
+ </div>
83
  </div>
84
  <?php $nonce = wp_create_nonce( 'blossomthemes-instagram-feed-nonce' ); ?>
85
+ <input type="hidden" name="blossomthemes-instagram-feed-nonce" value="<?php echo $nonce; ?>">
86
  <div class="blossomthemes-instagram-feed-settings-submit">
87
  <?php
88
  settings_fields( 'blossomthemes_instagram_feed_settings' );
92
  </div>
93
  </form>
94
  </div>
95
+ <?php include(BTIF_BASE_PATH . '/includes/template/backend/sidebar.php'); ?>
96
  </div>
97
  <?php
98
  }
99
  }
100
+ new BlossomThemes_Instagram_Feed_Settings;
includes/class-blossomthemes-instagram-feed-shortcodes.php CHANGED
@@ -13,85 +13,70 @@ class BlossomThemes_Instagram_Feed_Shortcodes
13
  add_shortcode( 'blossomthemes_instagram_feed', array( $this, 'blossomthemes_instagram_feed_sc' ) );
14
  }
15
 
16
-
17
- function scrape_insta_user_images($username) {
18
- $insta_source = file_get_contents('https://www.instagram.com/'.$username.'/'); // instagram user url'
19
- $shards = explode('window._sharedData = ', $insta_source);
20
- $insta_json = explode(';</script>', $shards[1]);
21
- $insta_array = json_decode($insta_json[0], TRUE);
22
- return $insta_array; // this return a lot things print it and see what else you need
23
- }
24
-
25
-
26
  function blossomthemes_instagram_feed_sc(){
27
  ob_start();
28
  $options = get_option( 'blossomthemes_instagram_feed_settings', true );
 
29
  if( !isset( $options['username'] ) || $options['username'] == '' )
30
  {
31
  return;
32
  }
33
 
34
- $photos = isset( $options['photos'] ) ? esc_attr( $options['photos'] ) :8;
 
35
  $photos_row = isset( $options['photos_row'] ) ? esc_attr( $options['photos_row'] ) :'5';
36
-
37
- $profile_link_text = isset( $options['follow_me'] ) ? esc_attr( $options['follow_me'] ):'Follow Me!';
38
- $username = $options['username'];
39
- $insta_source = file_get_contents('https://www.instagram.com/'.$username.'/'); // instagram user url'
40
- $shards = explode('window._sharedData = ', $insta_source);
41
- $results_array = $this->scrape_insta_user_images($username);
42
-
43
  $instaUrl = 'https://www.instagram.com/';
44
  $instaUrl .= $options['username'];
45
 
46
- $limit = 6; // provide the limit thats important because one page only give some images.
47
- $image_array= array(); // array to store images.
48
- for ($i=0; $i < $limit; $i++) {
49
- //new code to get images from json
50
- if(isset($results_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'][$i])){
51
- $latest_array = $results_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'][$i]['node'];
52
- $image_data = $latest_array['thumbnail_src']; // thumbnail and same sizes
53
- //$image_data = '<img src="'.$latest_array['display_src'].'">'; actual image and different sizes
54
- array_push($image_array, $image_data);
55
- }
56
- }
57
-
58
  echo '<ul class="popup-gallery photos-'.$photos_row.'">';
59
  $i=0;
60
- foreach ($image_array as $image) {
61
- if( $i<$photos )
62
- { ?>
63
- <li><a href="<?php echo strip_tags($image);?>"><img src="<?php echo $image;?>"></a></li>
64
- <?php
 
 
 
 
 
 
 
 
65
  }
66
- $i++;
67
- }
68
- echo '</ul>';
69
- echo
70
- '<script>
71
- jQuery(document).ready(function($){
72
- $(".popup-gallery").magnificPopup({
73
- delegate: "a",
74
- type: "image",
75
- gallery:{
76
- enabled:true
77
- }
78
- });
79
 
80
- $(".popup-modal").magnificPopup({
81
- type: "inline",
82
- preloader: false,
83
- focus: "#username",
84
- modal: true
85
- });
86
- $(document).on("click", ".popup-modal-dismiss", function (e) {
87
- e.preventDefault();
88
- $.magnificPopup.close();
89
- });
90
- });
91
- </script>';
92
- echo '<a class="profile-link" href="'.esc_url($instaUrl).'" target="_blank">'.esc_attr($profile_link_text).'</a>';
93
 
94
- $output = ob_get_clean();
95
- return $output;
 
 
 
 
96
  }
97
  }
13
  add_shortcode( 'blossomthemes_instagram_feed', array( $this, 'blossomthemes_instagram_feed_sc' ) );
14
  }
15
 
 
 
 
 
 
 
 
 
 
 
16
  function blossomthemes_instagram_feed_sc(){
17
  ob_start();
18
  $options = get_option( 'blossomthemes_instagram_feed_settings', true );
19
+
20
  if( !isset( $options['username'] ) || $options['username'] == '' )
21
  {
22
  return;
23
  }
24
 
25
+ $obj = new InstagramSpider;
26
+ $photos = absint($options['photos']);
27
  $photos_row = isset( $options['photos_row'] ) ? esc_attr( $options['photos_row'] ) :'5';
 
 
 
 
 
 
 
28
  $instaUrl = 'https://www.instagram.com/';
29
  $instaUrl .= $options['username'];
30
 
31
+ $instaItems = $obj->getUserItems($options['username']);
32
+ $profile_link_text = isset( $options['follow_me'] ) ? esc_attr( $options['follow_me'] ):'Follow Me!';
 
 
 
 
 
 
 
 
 
 
33
  echo '<ul class="popup-gallery photos-'.$photos_row.'">';
34
  $i=0;
35
+ if($instaItems)
36
+ {
37
+ foreach ($instaItems as $key) {
38
+ if( $i<$photos )
39
+ {
40
+ echo '<li><a href="'.esc_url($key['img_standard']).'"><img src="'.esc_url($key['img_thumb']).'"></a>';
41
+ if( isset( $options['meta'] ) )
42
+ {
43
+ echo '<div class="instagram-meta"><span class="like"><i class="fa fa-heart"></i>'.$key['likes'].'</span>'.'<span class="comment"><i class="fa fa-comment"></i>'.$key['comments'].'</span>'.'</div>';
44
+ }
45
+ echo '</li>';
46
+ }
47
+ $i++;
48
  }
49
+ echo '</ul>';
50
+ echo
51
+ '<script>
52
+ jQuery(document).ready(function($){
53
+ $(".popup-gallery").magnificPopup({
54
+ delegate: "a",
55
+ type: "image",
56
+ gallery:{
57
+ enabled:true
58
+ }
59
+ });
 
 
60
 
61
+ $(".popup-modal").magnificPopup({
62
+ type: "inline",
63
+ preloader: false,
64
+ focus: "#username",
65
+ modal: true
66
+ });
67
+ $(document).on("click", ".popup-modal-dismiss", function (e) {
68
+ e.preventDefault();
69
+ $.magnificPopup.close();
70
+ });
71
+ });
72
+ </script>';
73
+ echo '<a class="profile-link" href="'.esc_url($instaUrl).'" target="_blank">'.esc_attr($profile_link_text).'</a>';
74
 
75
+ $output = ob_get_clean();
76
+ return $output;
77
+ }
78
+ else{
79
+ echo '<b style="color:red;">'.__('Invalid or Private Username Used!','blossomthemes-instagram-feed').'</b>';
80
+ }
81
  }
82
  }
includes/template/backend/sidebar.php CHANGED
@@ -1,18 +1,4 @@
1
  <div class="btss-backend-sidebar">
2
- <div class="thumbnail">
3
- <h4><?php _e('Documentation', 'blossomthemes-instagram-feeds');?></h4>
4
- <div class="doc-thumb"><img src="<?php echo esc_url(BTIF_FILE_URL) ?>\admin\css\images\files.png" style="
5
- max-width: 100%;"></div>
6
- <p class="text-justify"><?php _e( 'Click Below for our full Documentation about BlossomThemes Notification Bars.', 'blossomthemes-instagram-feeds' ); ?> </p>
7
- <p class="text-center"><a href="https://raratheme.com/documentation/blossomthemes-instagram-feeds/" target="_blank" class="button button-primary"><?php _e( 'Get Documentation Here', 'blossomthemes-instagram-feeds' ); ?></a></p>
8
- </div>
9
- <div class="thumbnail">
10
- <h4><?php _e('Help?', 'blossomthemes-instagram-feeds');?></h4>
11
- <div class="support-thumb"><img src="<?php echo esc_url(BTIF_FILE_URL) ?>\admin\css\images\help.png" style="
12
- max-width: 100%;"></div>
13
- <p class="text-justify"><?php _e( 'If you need further assistance, Please feel free to visit our support team.', 'blossomthemes-instagram-feeds' ); ?></p>
14
- <p class="text-center"><a href="https://wordpress.org/support/plugin/blossomthemes-instagram-feeds" target="_blank" class="button button-primary"><?php _e( 'Get Support Here', 'blossomthemes-instagram-feeds' ); ?></a></p>
15
- </div>
16
  <div class="thumbnail">
17
  <h4><?php _e('More WordPress Themes and Plugins?', 'blossomthemes-instagram-feeds');?></h4>
18
  <div class="support-thumb"><img src="<?php echo esc_url(BTIF_FILE_URL) ?>\admin\css\images\rara-logo.png" style="
@@ -22,6 +8,6 @@ max-width: 100%;"></div>
22
  </div>
23
  <div class="thumbnail-review">
24
  <p class="text-justify"><?php _e("Please fill free to leave us a review, if you found this plugin helpful.","blossomthemes-instagram-feeds");?></p>
25
- <p class="text-center"><a href="https://wordpress.org/support/view/plugin-reviews/blossomthemes-instagram-feeds" target="_blank" class="button button-primary"><?php _e( 'Leave a Review', 'blossomthemes-instagram-feeds' ); ?></a></p>
26
  </div>
27
  </div>
1
  <div class="btss-backend-sidebar">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  <div class="thumbnail">
3
  <h4><?php _e('More WordPress Themes and Plugins?', 'blossomthemes-instagram-feeds');?></h4>
4
  <div class="support-thumb"><img src="<?php echo esc_url(BTIF_FILE_URL) ?>\admin\css\images\rara-logo.png" style="
8
  </div>
9
  <div class="thumbnail-review">
10
  <p class="text-justify"><?php _e("Please fill free to leave us a review, if you found this plugin helpful.","blossomthemes-instagram-feeds");?></p>
11
+ <p class="text-center"><a href="https://wordpress.org/support/plugin/blossomthemes-instagram-feed/reviews" target="_blank" class="button button-primary"><?php _e( 'Leave a Review', 'blossomthemes-instagram-feeds' ); ?></a></p>
12
  </div>
13
  </div>
includes/vendor/InstagramSpider.php CHANGED
@@ -3,154 +3,111 @@
3
  /**
4
  * Instagram Spider [MOD : WP - Insta Gallery]
5
  * @author Karan Singh
6
- * @version 1.3.6
7
  * @depends RUSpider
8
  * @description script to get instagram media by using Username and Tag-name. added WP (wp_remote_request) to run in WP.
9
  */
10
 
11
  // loading dependencies
12
-
13
  class InstagramSpider
14
  {
15
-
16
  protected $instagram;
17
-
18
  // handle raw result from server, for further processing in your app
19
  public $instagramResult;
20
-
21
  public $messages;
22
-
23
-
24
  public function __construct()
25
  {
26
  $this->instagram = 'https://www.instagram.com/';
27
  $this->messages = array();
28
  }
29
-
30
  /**
31
  * takes username and return items list array
32
  *
33
- * @param string $username
34
- * @return array
35
  */
36
  public function getUserItems($username = '')
37
  {
38
  $username = urlencode((string) $username); // non-english string support
39
  if (empty($username)) {
40
  $this->messages[] = 'Please provide a valid username';
41
- return;
42
  }
43
 
 
44
  $inURL = $this->instagram . $username . '/?__a=1';
45
  // For next 12 images, use ID of the last item (maxId = media.nodes[11].id) in the max_id param: /{USER_NAME}/?__a=1&max_id={maxId}
46
  $instaRes = $this->igSpider($inURL);
47
  $instaRes = @json_decode($instaRes);
 
48
  $items = array();
49
- if (isset($instaRes->user->media->nodes)) {
50
- $instaItems = $instaRes->user->media->nodes;
51
-
 
52
  if (! empty($instaItems) && is_array($instaItems)) {
53
  foreach ($instaItems as $res) {
 
 
 
 
 
 
 
 
 
 
54
  $items[] = array(
55
- 'img_standard' => $res->display_src,
56
- 'img_low' => $res->thumbnail_resources[4]->src,
57
- 'img_thumb' => $res->thumbnail_resources[0]->src,
58
- 'likes' => $res->likes->count,
59
- 'comments' => $res->comments->count,
60
- 'caption' => isset($res->caption) ? htmlspecialchars($res->caption) : '',
61
- 'code' => $res->code,
 
62
  );
63
  }
64
  }
65
  }
66
 
67
- // if empty, continus with the next API : HTML
68
- if (! empty($items)) {
69
  $inURL = $this->instagram . $username . '/';
70
  $items = $this->getFromHtmlAPI($inURL);
71
  }
72
 
73
- // if empty, continus with the next API
74
- // removed API from Nov 2017
75
- if (empty($items)) {
76
- $inURL = $this->instagram . $username . '/media/';
77
- $instaRes = $this->igSpider($inURL);
78
- $instaRes = @json_decode($instaRes);
79
-
80
- $items = array();
81
- if (isset($instaRes->items)) {
82
- $instaItems = $instaRes->items;
83
-
84
- if (! empty($instaItems) && is_array($instaItems)) {
85
- foreach ($instaItems as $res) {
86
- $items[] = array(
87
- 'img_standard' => $res->images->standard_resolution->url,
88
- 'img_low' => $res->images->low_resolution->url,
89
- 'img_thumb' => $res->images->thumbnail->url,
90
- 'likes' => $res->likes->count,
91
- 'comments' => $res->comments->count,
92
- 'caption' => isset($res->caption->text) ? htmlspecialchars($res->caption->text) : ''
93
- );
94
- }
95
- }
96
- }
97
- }
98
- return $items;
99
  }
100
-
101
  /**
102
  * takes #Tag name and return items list array
103
  *
104
- * @param string $tag
105
  * @param
106
  * boolean get top posts (10 posts)
107
- * @return array
108
  */
109
  public function getTagItems($tag = '', $getTopItems = false)
110
  {
111
  $tag = urlencode((string) $tag);
112
  if (empty($tag)) {
113
  $this->messages[] = 'Please provide a valid # tag';
114
- return;
115
  }
116
  $inURL = $this->instagram . 'explore/tags/' . $tag . '/?__a=1';
117
  $instaRes = $this->igSpider($inURL);
118
  $instaRes = json_decode($instaRes);
119
- $items = array();
120
- if (isset($instaRes->tag->media->nodes)) {
121
-
122
- $instaItems = $instaRes->tag->media->nodes;
123
- if (empty($instaItems) && isset($instaRes->tag->top_posts->nodes)) {
124
- $instaItems = $instaRes->tag->top_posts->nodes;
125
- }
126
-
127
- // get top posts
128
- if ($getTopItems && isset($instaRes->tag->top_posts->nodes)) {
129
- $instaItems = $instaRes->tag->top_posts->nodes;
130
- }
131
-
132
- if (! empty($instaItems) && is_array($instaItems)) {
133
- foreach ($instaItems as $res) {
134
- $items[] = array(
135
- 'img_standard' => $res->display_src,
136
- 'img_low' => $res->thumbnail_src,
137
- 'img_thumb' => str_replace('s640x640', 's150x150', $res->thumbnail_src),
138
- 'likes' => $res->likes->count,
139
- 'comments' => $res->comments->count,
140
- 'caption' => isset($res->caption) ? htmlspecialchars($res->caption) : ''
141
- );
142
- }
143
- }
144
- }
145
 
 
146
  // continue to next API : API updated on Jan 03 17
147
- if (empty($items) && isset($instaRes->graphql->hashtag->edge_hashtag_to_media->edges)) {
148
-
149
- //$instaItems = $instaRes->tag->media->nodes;
150
  $instaItems = $instaRes->graphql->hashtag->edge_hashtag_to_media->edges;
151
- if (empty($instaItems) && isset($instaRes->tag->top_posts->nodes)) {
152
- $instaItems = $instaRes->tag->top_posts->nodes;
153
- }
154
 
155
  // get top posts
156
  if ($getTopItems && isset($instaRes->graphql->hashtag->edge_hashtag_to_top_posts->edges)) {
@@ -159,27 +116,39 @@ class InstagramSpider
159
 
160
  if (! empty($instaItems) && is_array($instaItems)) {
161
  foreach ($instaItems as $res) {
 
 
 
 
 
 
 
 
 
 
162
  $items[] = array(
163
  'img_standard' => $res->node->display_url,
164
  'img_low' => $res->node->thumbnail_src,
165
  'img_thumb' => $res->node->thumbnail_resources[0]->src,
166
  'likes' => $res->node->edge_liked_by->count,
167
  'comments' => $res->node->edge_media_to_comment->count,
168
- 'caption' => isset($res->node->edge_media_to_caption->edges[0]->node->text) ? htmlspecialchars($res->node->edge_media_to_caption->edges[0]->node->text) : '',
169
- 'code' => $res->node->shortcode
 
170
  );
171
  }
172
  }
173
  }
174
 
175
- // if empty, continus with the next API
176
  if (empty($items)) {
177
  $inURL = $this->instagram . 'explore/tags/' . $tag . '/';
178
  $items = $this->getFromHtmlAPI($inURL);
179
  }
180
- return $items;
 
181
  }
182
-
183
  /**
184
  * takes page URL and return items list array
185
  *
@@ -190,47 +159,61 @@ class InstagramSpider
190
  protected function getFromHtmlAPI($inURL = '')
191
  {
192
  $instaRes = $this->igSpider($inURL);
 
193
  $items = array();
 
194
  if (! empty($instaRes)) {
195
  $insta_json = explode('window._sharedData = ', $instaRes);
196
  $insta_json = explode(';</script>', $insta_json[1]);
197
  $instaArray = json_decode($insta_json[0], true);
198
 
199
  $nodes = array();
200
- if (isset($instaArray['entry_data']['ProfilePage'][0]['user']['media']['nodes'])) {
201
- $nodes = $instaArray['entry_data']['ProfilePage'][0]['user']['media']['nodes'];
202
- } else if (isset($instaArray['entry_data']['TagPage'][0]['tag']['media']['nodes'])) {
203
- $nodes = $instaArray['entry_data']['TagPage'][0]['tag']['media']['nodes'];
204
  }
205
  if (! empty($nodes) && is_array($nodes)) {
206
  foreach ($nodes as $node) {
207
- $caption = (! empty($node['caption'])) ? $node['caption'] : '';
 
 
 
 
 
 
 
 
 
 
208
  $items[] = array(
209
- 'img_standard' => $node['display_src'],
210
  'img_low' => $node['thumbnail_src'],
211
  'img_thumb' => $node['thumbnail_resources'][0]['src'],
212
- 'likes' => $node['likes']['count'],
213
- 'comments' => $node['comments']['count'],
214
- 'caption' => $caption,
215
- 'code' => $node['code']
 
216
  );
217
  }
218
  }
219
  }
220
- return $items;
 
221
  }
222
-
223
  /**
224
  * takes URL string and return URL content
225
  *
226
- * @param string $url
227
- * @return string
228
  */
229
  public function igSpider($url = '')
230
  {
231
  if (empty($url) || (! filter_var($url, FILTER_VALIDATE_URL))) {
232
  $this->messages[] = 'Please provide a Valid URL';
233
- return;
234
  }
235
  $instaItems = '';
236
 
@@ -238,21 +221,24 @@ class InstagramSpider
238
  if (function_exists('wp_remote_request')) {
239
  $result = wp_remote_request($url);
240
  if (is_wp_error($result)) {
241
- $this->messages[] = 'WP Error: ' . implode(', ',$result->get_error_messages());
242
  } else {
243
- if (! empty($result['body'])) {
244
- $instaItems = $result['body'];
 
 
 
 
245
  }
246
  }
247
  } else {
248
  $this->messages[] = 'Error: running outside WP.';
249
  }
250
 
251
-
252
  $this->instagramResult = $instaItems;
253
  return $instaItems;
254
  }
255
-
256
  // return messages array
257
  public function getMessages()
258
  {
3
  /**
4
  * Instagram Spider [MOD : WP - Insta Gallery]
5
  * @author Karan Singh
6
+ * @version 1.3.8
7
  * @depends RUSpider
8
  * @description script to get instagram media by using Username and Tag-name. added WP (wp_remote_request) to run in WP.
9
  */
10
 
11
  // loading dependencies
 
12
  class InstagramSpider
13
  {
14
+
15
  protected $instagram;
16
+
17
  // handle raw result from server, for further processing in your app
18
  public $instagramResult;
19
+
20
  public $messages;
21
+
 
22
  public function __construct()
23
  {
24
  $this->instagram = 'https://www.instagram.com/';
25
  $this->messages = array();
26
  }
27
+
28
  /**
29
  * takes username and return items list array
30
  *
31
+ * @param string $username
32
+ * @return array|false
33
  */
34
  public function getUserItems($username = '')
35
  {
36
  $username = urlencode((string) $username); // non-english string support
37
  if (empty($username)) {
38
  $this->messages[] = 'Please provide a valid username';
39
+ return false;
40
  }
41
 
42
+ // $inURL = $this->instagram . $username . '/media/';
43
  $inURL = $this->instagram . $username . '/?__a=1';
44
  // For next 12 images, use ID of the last item (maxId = media.nodes[11].id) in the max_id param: /{USER_NAME}/?__a=1&max_id={maxId}
45
  $instaRes = $this->igSpider($inURL);
46
  $instaRes = @json_decode($instaRes);
47
+
48
  $items = array();
49
+
50
+ // new API update Mar1418
51
+ if (isset($instaRes->graphql->user->edge_owner_to_timeline_media->edges)) {
52
+ $instaItems = $instaRes->graphql->user->edge_owner_to_timeline_media->edges;
53
  if (! empty($instaItems) && is_array($instaItems)) {
54
  foreach ($instaItems as $res) {
55
+
56
+ if (! isset($res->node->display_url)) {
57
+ continue;
58
+ }
59
+
60
+ $type = 'image';
61
+ if (isset($res->node->is_video) && (true === $res->node->is_video)) {
62
+ $type = 'video';
63
+ }
64
+
65
  $items[] = array(
66
+ 'img_standard' => $res->node->display_url,
67
+ 'img_low' => $res->node->thumbnail_src,
68
+ 'img_thumb' => $res->node->thumbnail_resources[0]->src,
69
+ 'likes' => $res->node->edge_liked_by->count,
70
+ 'comments' => $res->node->edge_media_to_comment->count,
71
+ 'caption' => '',
72
+ 'code' => $res->node->shortcode,
73
+ 'type' => $type
74
  );
75
  }
76
  }
77
  }
78
 
79
+ // if empty, continus with the HTML API
80
+ if (empty($items)) {
81
  $inURL = $this->instagram . $username . '/';
82
  $items = $this->getFromHtmlAPI($inURL);
83
  }
84
 
85
+ return empty($items) ? false : $items;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  }
87
+
88
  /**
89
  * takes #Tag name and return items list array
90
  *
91
+ * @param string $tag
92
  * @param
93
  * boolean get top posts (10 posts)
94
+ * @return array|false
95
  */
96
  public function getTagItems($tag = '', $getTopItems = false)
97
  {
98
  $tag = urlencode((string) $tag);
99
  if (empty($tag)) {
100
  $this->messages[] = 'Please provide a valid # tag';
101
+ return false;
102
  }
103
  $inURL = $this->instagram . 'explore/tags/' . $tag . '/?__a=1';
104
  $instaRes = $this->igSpider($inURL);
105
  $instaRes = json_decode($instaRes);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
 
107
+ $items = array();
108
  // continue to next API : API updated on Jan 03 17
109
+ if (isset($instaRes->graphql->hashtag->edge_hashtag_to_media->edges)) {
 
 
110
  $instaItems = $instaRes->graphql->hashtag->edge_hashtag_to_media->edges;
 
 
 
111
 
112
  // get top posts
113
  if ($getTopItems && isset($instaRes->graphql->hashtag->edge_hashtag_to_top_posts->edges)) {
116
 
117
  if (! empty($instaItems) && is_array($instaItems)) {
118
  foreach ($instaItems as $res) {
119
+
120
+ if (! isset($res->node->display_url)) {
121
+ continue;
122
+ }
123
+
124
+ $type = 'image';
125
+ if (isset($res->node->is_video) && (true === $res->node->is_video)) {
126
+ $type = 'video';
127
+ }
128
+
129
  $items[] = array(
130
  'img_standard' => $res->node->display_url,
131
  'img_low' => $res->node->thumbnail_src,
132
  'img_thumb' => $res->node->thumbnail_resources[0]->src,
133
  'likes' => $res->node->edge_liked_by->count,
134
  'comments' => $res->node->edge_media_to_comment->count,
135
+ 'caption' => '',
136
+ 'code' => $res->node->shortcode,
137
+ 'type' => $type
138
  );
139
  }
140
  }
141
  }
142
 
143
+ // if empty, continus with the HTML API
144
  if (empty($items)) {
145
  $inURL = $this->instagram . 'explore/tags/' . $tag . '/';
146
  $items = $this->getFromHtmlAPI($inURL);
147
  }
148
+
149
+ return empty($items) ? false : $items;
150
  }
151
+
152
  /**
153
  * takes page URL and return items list array
154
  *
159
  protected function getFromHtmlAPI($inURL = '')
160
  {
161
  $instaRes = $this->igSpider($inURL);
162
+
163
  $items = array();
164
+
165
  if (! empty($instaRes)) {
166
  $insta_json = explode('window._sharedData = ', $instaRes);
167
  $insta_json = explode(';</script>', $insta_json[1]);
168
  $instaArray = json_decode($insta_json[0], true);
169
 
170
  $nodes = array();
171
+ if (isset($instaArray['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'])) {
172
+ $nodes = $instaArray['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'];
173
+ } else if (isset($instaArray['entry_data']['TagPage'][0]['graphql']['hashtag']['edge_hashtag_to_media']['edges'])) {
174
+ $nodes = $instaArray['entry_data']['TagPage'][0]['graphql']['hashtag']['edge_hashtag_to_media']['edges'];
175
  }
176
  if (! empty($nodes) && is_array($nodes)) {
177
  foreach ($nodes as $node) {
178
+ if (! isset($node['node']['display_url'])) {
179
+ continue;
180
+ }
181
+
182
+ $node = $node['node'];
183
+
184
+ $type = 'image';
185
+ if (isset($node['is_video']) && (true === $node['is_video'])) {
186
+ $type = 'video';
187
+ }
188
+
189
  $items[] = array(
190
+ 'img_standard' => $node['display_url'],
191
  'img_low' => $node['thumbnail_src'],
192
  'img_thumb' => $node['thumbnail_resources'][0]['src'],
193
+ 'likes' => $node['edge_liked_by']['count'],
194
+ 'comments' => $node['edge_media_to_comment']['count'],
195
+ 'caption' => '',
196
+ 'code' => $node['shortcode'],
197
+ 'type' => $type
198
  );
199
  }
200
  }
201
  }
202
+
203
+ return empty($items) ? false : $items;
204
  }
205
+
206
  /**
207
  * takes URL string and return URL content
208
  *
209
+ * @param string $url
210
+ * @return string|boolean
211
  */
212
  public function igSpider($url = '')
213
  {
214
  if (empty($url) || (! filter_var($url, FILTER_VALIDATE_URL))) {
215
  $this->messages[] = 'Please provide a Valid URL';
216
+ return false;
217
  }
218
  $instaItems = '';
219
 
221
  if (function_exists('wp_remote_request')) {
222
  $result = wp_remote_request($url);
223
  if (is_wp_error($result)) {
224
+ $this->messages[] = 'WP Error: ' . implode(', ', $result->get_error_messages());
225
  } else {
226
+ if (200 !== wp_remote_retrieve_response_code($result)) {
227
+ $this->messages[] = 'Invalid response from Instagram.';
228
+ } else {
229
+ if (! empty($result['body'])) {
230
+ $instaItems = $result['body'];
231
+ }
232
  }
233
  }
234
  } else {
235
  $this->messages[] = 'Error: running outside WP.';
236
  }
237
 
 
238
  $this->instagramResult = $instaItems;
239
  return $instaItems;
240
  }
241
+
242
  // return messages array
243
  public function getMessages()
244
  {
includes/widgets/widget-blossomthemes-instagram-feed.php CHANGED
@@ -26,13 +26,7 @@ class BlossomThemes_Instagram_Widget extends WP_Widget {
26
  array( 'description' => __( 'A Instagram Widget that displays your latest Instagram photos.', 'blossomthemes-instagram-feed' ), ) // Args
27
  );
28
  }
29
- function scrape_insta_user_images($username) {
30
- $insta_source = file_get_contents('https://www.instagram.com/'.$username.'/'); // instagram user url'
31
- $shards = explode('window._sharedData = ', $insta_source);
32
- $insta_json = explode(';</script>', $shards[1]);
33
- $insta_array = json_decode($insta_json[0], TRUE);
34
- return $insta_array; // this return a lot things print it and see what else you need
35
- }
36
  /**
37
  * Front-end display of widget.
38
  *
@@ -45,12 +39,13 @@ class BlossomThemes_Instagram_Widget extends WP_Widget {
45
 
46
  $title = empty( $instance['title'] ) ? '' : $instance['title'];
47
  $limit = empty( $instance['number'] ) ? 6 : $instance['number'];
48
- $size = empty( $instance['size'] ) ? 'img_standard' : $instance['size'];
49
  $per_row = empty( $instance['per_row'] ) ? 5 : $instance['per_row'];
50
  $options = get_option( 'blossomthemes_instagram_feed_settings', true );
51
  $username = empty( $instance['username'] ) ? $options['username'] : $instance['username'];
52
  $profile_link = 'https://www.instagram.com/'.$username ;
53
  $profile_link_text = empty( $instance['profile_link_text'] ) ? 'Follow Me!' : $instance['profile_link_text'];
 
54
 
55
  echo $args['before_widget'];
56
 
@@ -58,60 +53,60 @@ class BlossomThemes_Instagram_Widget extends WP_Widget {
58
  if ( $username != '' )
59
  {
60
  $ran = rand(1,100); $ran++;
 
61
  ob_start();
 
62
  $photos_row = isset( $per_row ) ? esc_attr( $per_row ) :'5';
 
63
  add_filter('widget_text','do_shortcode');
64
 
65
- $results_array = $this->scrape_insta_user_images($username);
66
-
67
- $image_array= array(); // array to store images.
68
- for ($i=0; $i < $limit; $i++) {
69
- //new code to get images from json
70
- if(isset($results_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'][$i])){
71
- $latest_array = $results_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'][$i]['node'];
72
- $image_data = $latest_array['thumbnail_src']; // thumbnail and same sizes
73
- //$image_data = '<img src="'.$latest_array['display_src'].'">'; actual image and different sizes
74
- array_push($image_array, $image_data);
75
- }
76
- }
77
-
78
  echo '<ul class="popup-gallery-'.$ran.' photos-'.$photos_row.'">';
79
  $i=0;
80
- foreach ($image_array as $key) {
81
- if( $i<$limit )
82
- { ?>
83
- <li><a href="<?php echo strip_tags($key);?>"><img src="<?php echo $key;?>"></a></li>
84
- <?php
 
 
 
 
 
 
 
 
85
  }
86
- $i++;
87
- }
88
- echo '</ul>';
89
- echo
90
- '<script>
91
- jQuery(document).ready(function($){
92
- $(".popup-gallery-'.$ran.'").magnificPopup({
93
- delegate: "a",
94
- type: "image",
95
- gallery:{
96
- enabled:true
97
- }
98
- });
99
 
100
- $(".popup-modal").magnificPopup({
101
- type: "inline",
102
- preloader: false,
103
- focus: "#username",
104
- modal: true
105
- });
106
- $(document).on("click", ".popup-modal-dismiss", function (e) {
107
- e.preventDefault();
108
- $.magnificPopup.close();
 
109
  });
110
- });
111
- </script>';
112
- echo '<a class="profile-link" href="'.esc_url($profile_link).'" target="_blank">'.esc_attr($profile_link_text).'</a>';
113
- $output = ob_get_clean();
114
- echo $output;
 
 
 
115
  echo $args['after_widget'];
116
  }
117
  }
@@ -139,6 +134,7 @@ class BlossomThemes_Instagram_Widget extends WP_Widget {
139
  $per_row = empty( $instance['per_row'] ) ? 5 : $instance['per_row'];
140
  $profile_link = 'https://www.instagram.com/'.$username;
141
  $profile_link_text = empty( $instance['profile_link_text'] ) ? 'Follow Me!' : $instance['profile_link_text'];
 
142
  ?>
143
  <p>
144
  <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'blossomthemes-instagram-feed' ); ?></label>
@@ -170,8 +166,8 @@ class BlossomThemes_Instagram_Widget extends WP_Widget {
170
  </p>
171
 
172
  <p>
173
- <label for="<?php echo esc_attr( $this->get_field_id( 'meta' ) ); ?>"><?php esc_html_e( 'Display Comments/Likes', 'blossomthemes-instagram-feed' ); ?></label>
174
  <input type="checkbox" value="1" id="<?php echo esc_attr( $this->get_field_id( 'meta' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'meta' ) ); ?>" <?php if ( isset( $meta ) ) { checked( $meta, true );} ?>>
 
175
  </p>
176
 
177
  <p>
@@ -199,9 +195,10 @@ class BlossomThemes_Instagram_Widget extends WP_Widget {
199
  $instance['number'] = ! absint( $new_instance['number'] ) ? 6 : $new_instance['number'];
200
  $instance['size'] = $new_instance['size'];
201
  $instance['per_row'] = ! absint( $new_instance['per_row'] ) ? 5 : $new_instance['per_row'];
 
202
  $instance['profile_link'] = 'https://www.instagram.com/'.$username;
203
  $instance['username'] = $new_instance['username'] ;
204
 
205
  return $instance;
206
  }
207
- }
26
  array( 'description' => __( 'A Instagram Widget that displays your latest Instagram photos.', 'blossomthemes-instagram-feed' ), ) // Args
27
  );
28
  }
29
+
 
 
 
 
 
 
30
  /**
31
  * Front-end display of widget.
32
  *
39
 
40
  $title = empty( $instance['title'] ) ? '' : $instance['title'];
41
  $limit = empty( $instance['number'] ) ? 6 : $instance['number'];
42
+ $size = empty( $instance['size'] ) ? 'img_thumb' : $instance['size'];
43
  $per_row = empty( $instance['per_row'] ) ? 5 : $instance['per_row'];
44
  $options = get_option( 'blossomthemes_instagram_feed_settings', true );
45
  $username = empty( $instance['username'] ) ? $options['username'] : $instance['username'];
46
  $profile_link = 'https://www.instagram.com/'.$username ;
47
  $profile_link_text = empty( $instance['profile_link_text'] ) ? 'Follow Me!' : $instance['profile_link_text'];
48
+ $meta = isset( $instance['meta'] ) ? 'true' : 'false';
49
 
50
  echo $args['before_widget'];
51
 
53
  if ( $username != '' )
54
  {
55
  $ran = rand(1,100); $ran++;
56
+ require_once BTIF_BASE_PATH . '/includes/vendor/InstagramSpider.php';
57
  ob_start();
58
+ $obj = new InstagramSpider;
59
  $photos_row = isset( $per_row ) ? esc_attr( $per_row ) :'5';
60
+ $instaItems = $obj->getUserItems($username);
61
  add_filter('widget_text','do_shortcode');
62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  echo '<ul class="popup-gallery-'.$ran.' photos-'.$photos_row.'">';
64
  $i=0;
65
+ if($instaItems)
66
+ {
67
+ foreach ($instaItems as $key) {
68
+ if( $i<$limit )
69
+ {
70
+ echo '<li><a href="'.esc_url($key['img_standard']).'"><img src="'.esc_url($key[$size]).'"></a>';
71
+ if( isset( $meta ) && $meta == 'true' )
72
+ {
73
+ echo '<div class="instagram-meta"><span class="like"><i class="fa fa-heart"></i>'.$key['likes'].'</span>'.'<span class="comment"><i class="fa fa-comment"></i>'.$key['comments'].'</span>'.'</div>';
74
+ }
75
+ echo '</li>';
76
+ }
77
+ $i++;
78
  }
79
+ echo '</ul>';
80
+ echo
81
+ '<script>
82
+ jQuery(document).ready(function($){
83
+ $(".popup-gallery-'.$ran.'").magnificPopup({
84
+ delegate: "a",
85
+ type: "image",
86
+ gallery:{
87
+ enabled:true
88
+ }
89
+ });
 
 
90
 
91
+ $(".popup-modal").magnificPopup({
92
+ type: "inline",
93
+ preloader: false,
94
+ focus: "#username",
95
+ modal: true
96
+ });
97
+ $(document).on("click", ".popup-modal-dismiss", function (e) {
98
+ e.preventDefault();
99
+ $.magnificPopup.close();
100
+ });
101
  });
102
+ </script>';
103
+ echo '<a class="profile-link" href="'.esc_url($profile_link).'" target="_blank">'.esc_attr($profile_link_text).'</a>';
104
+ $output = ob_get_clean();
105
+ echo $output;
106
+ }
107
+ else{
108
+ echo '<b style="color:red;">'.__('Invalid or Private Username Used!','blossomthemes-instagram-feed').'</b>';
109
+ }
110
  echo $args['after_widget'];
111
  }
112
  }
134
  $per_row = empty( $instance['per_row'] ) ? 5 : $instance['per_row'];
135
  $profile_link = 'https://www.instagram.com/'.$username;
136
  $profile_link_text = empty( $instance['profile_link_text'] ) ? 'Follow Me!' : $instance['profile_link_text'];
137
+ $meta = !isset( $instance['meta'] ) ? '' : $instance['meta'];
138
  ?>
139
  <p>
140
  <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'blossomthemes-instagram-feed' ); ?></label>
166
  </p>
167
 
168
  <p>
 
169
  <input type="checkbox" value="1" id="<?php echo esc_attr( $this->get_field_id( 'meta' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'meta' ) ); ?>" <?php if ( isset( $meta ) ) { checked( $meta, true );} ?>>
170
+ <label for="<?php echo esc_attr( $this->get_field_id( 'meta' ) ); ?>"><?php esc_html_e( 'Display Comments/Likes', 'blossomthemes-instagram-feed' ); ?></label>
171
  </p>
172
 
173
  <p>
195
  $instance['number'] = ! absint( $new_instance['number'] ) ? 6 : $new_instance['number'];
196
  $instance['size'] = $new_instance['size'];
197
  $instance['per_row'] = ! absint( $new_instance['per_row'] ) ? 5 : $new_instance['per_row'];
198
+ $instance['meta'] = $new_instance['meta'];
199
  $instance['profile_link'] = 'https://www.instagram.com/'.$username;
200
  $instance['username'] = $new_instance['username'] ;
201
 
202
  return $instance;
203
  }
204
+ }
languages/blossomthemes-instagram-feed.pot CHANGED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #, fuzzy
2
+ msgid ""
3
+ msgstr ""
4
+ "Project-Id-Version: PACKAGE VERSION\n"
5
+ "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2018-03-19 05:30+0000\n"
7
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
+ "Last-Translator: \n"
9
+ "Language-Team: \n"
10
+ "Language: \n"
11
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Loco https://localise.biz/"
16
+
17
+ #: includes/class-blossomthemes-instagram-feed-settings.php:20
18
+ msgid "Settings updated."
19
+ msgstr ""
20
+
21
+ #: includes/class-blossomthemes-instagram-feed-settings.php:20
22
+ msgid "Dismiss this notice."
23
+ msgstr ""
24
+
25
+ #: includes/class-blossomthemes-instagram-feed-settings.php:28
26
+ msgid "General"
27
+ msgstr ""
28
+
29
+ #: includes/class-blossomthemes-instagram-feed-settings.php:29
30
+ msgid "Usage"
31
+ msgstr ""
32
+
33
+ #: includes/class-blossomthemes-instagram-feed-settings.php:37
34
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:149
35
+ msgid "Username"
36
+ msgstr ""
37
+
38
+ #: includes/class-blossomthemes-instagram-feed-settings.php:41
39
+ msgid "Number of Photos"
40
+ msgstr ""
41
+
42
+ #: includes/class-blossomthemes-instagram-feed-settings.php:45
43
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:178
44
+ msgid "Profile Link Text"
45
+ msgstr ""
46
+
47
+ #: includes/class-blossomthemes-instagram-feed-settings.php:51
48
+ msgid "Uses"
49
+ msgstr ""
50
+
51
+ #: includes/class-blossomthemes-instagram-feed-settings.php:53
52
+ msgid "Display via Shortcode"
53
+ msgstr ""
54
+
55
+ #: includes/class-blossomthemes-instagram-feed-settings.php:63
56
+ msgid "Display via PHP Function"
57
+ msgstr ""
58
+
59
+ #. Base ID
60
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:25
61
+ msgid "BlossomThemes: Instagram"
62
+ msgstr ""
63
+
64
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:26
65
+ msgid "A Instagram Widget that displays your latest Instagram photos."
66
+ msgstr ""
67
+
68
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:128
69
+ msgid "Instagram"
70
+ msgstr ""
71
+
72
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:144
73
+ msgid "Title"
74
+ msgstr ""
75
+
76
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:154
77
+ msgid "Number of photos"
78
+ msgstr ""
79
+
80
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:159
81
+ msgid "Photo size"
82
+ msgstr ""
83
+
84
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:161
85
+ msgid "Thumbnail"
86
+ msgstr ""
87
+
88
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:162
89
+ msgid "Small"
90
+ msgstr ""
91
+
92
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:163
93
+ msgid "Large"
94
+ msgstr ""
95
+
96
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:168
97
+ msgid "Photos Per Row"
98
+ msgstr ""
99
+
100
+ #: includes/widgets/widget-blossomthemes-instagram-feed.php:173
101
+ msgid "Display Comments/Likes"
102
+ msgstr ""
103
+
104
+ #. Name of the plugin
105
+ msgid "BlossomThemes Instagram Feed"
106
+ msgstr ""
107
+
108
+ #. Description of the plugin
109
+ msgid "Show instagram feed on your website using shortcode and widget."
110
+ msgstr ""
111
+
112
+ #. URI of the plugin
113
+ msgid "https://wordpress.org/plugins/blossomthemes-instagram-feed"
114
+ msgstr ""
115
+
116
+ #. Author of the plugin
117
+ msgid "blossomthemes"
118
+ msgstr ""
119
+
120
+ #. Author URI of the plugin
121
+ msgid "https://blossomthemes.com"
122
+ msgstr ""
public/class-blossomthemes-instagram-feed-public.php CHANGED
@@ -73,8 +73,8 @@ class Blossomthemes_Instagram_Feed_Public {
73
  * class.
74
  */
75
 
76
- wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/blossomthemes-instagram-feed-public.css', array(), $this->version, 'all' );
77
- wp_enqueue_style( 'magnific-popup', plugin_dir_url( __FILE__ ) . 'css/magnific-popup.css', array(), $this->version, 'all' );
78
  wp_enqueue_style( 'font-awesome', plugin_dir_url( __FILE__ ) . 'css/font-awesome.css', array(), $this->version, 'all' );
79
  }
80
 
@@ -97,7 +97,7 @@ class Blossomthemes_Instagram_Feed_Public {
97
  * class.
98
  */
99
 
100
- wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/blossomthemes-instagram-feed-public.js', array( 'jquery' ), $this->version, false );
101
  wp_enqueue_script( 'magnific-popup', plugin_dir_url( __FILE__ ) . 'js/jquery.magnific-popup.min.js', array( 'jquery' ), $this->version, false );
102
 
103
  }
73
  * class.
74
  */
75
 
76
+ wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/blossomthemes-instagram-feed-public.min.css', array(), $this->version, 'all' );
77
+ wp_enqueue_style( 'magnific-popup', plugin_dir_url( __FILE__ ) . 'css/magnific-popup.min.css', array(), $this->version, 'all' );
78
  wp_enqueue_style( 'font-awesome', plugin_dir_url( __FILE__ ) . 'css/font-awesome.css', array(), $this->version, 'all' );
79
  }
80
 
97
  * class.
98
  */
99
 
100
+ wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/blossomthemes-instagram-feed-public.min.js', array( 'jquery' ), $this->version, false );
101
  wp_enqueue_script( 'magnific-popup', plugin_dir_url( __FILE__ ) . 'js/jquery.magnific-popup.min.js', array( 'jquery' ), $this->version, false );
102
 
103
  }
public/css/blossomthemes-instagram-feed-public.css DELETED
@@ -1,159 +0,0 @@
1
- /**
2
- * All of the CSS for your public-facing functionality should be
3
- * included in this file.
4
- */
5
- .white-popup-block {
6
- background: #FFF;
7
- padding: 20px 30px;
8
- text-align: left;
9
- max-width: 650px;
10
- margin: 40px auto;
11
- position: relative;
12
- }
13
-
14
- /*.widget_btif_instagram_widget a{
15
- float: right;
16
- margin: 2px 2px;
17
- }*/
18
-
19
- .widget_btif_instagram_widget ul:after{
20
- content: '';
21
- display: block;
22
- clear: both;
23
- }
24
-
25
- .widget_btif_instagram_widget ul{
26
- margin: 0 -1px !important;
27
- }
28
-
29
- .widget_btif_instagram_widget ul li{
30
- float: left;
31
- width: 33.3333%;
32
- padding: 0 1px !important;
33
- margin: 0 0 2px !important;
34
- position: relative;
35
- }
36
-
37
- .widget_btif_instagram_widget ul li{
38
-
39
- }
40
-
41
- .widget_btif_instagram_widget ul li .instagram-meta{
42
- position: absolute;
43
- left: 0;
44
- bottom: 0;
45
- width: 100%;
46
- color: #fff;
47
- padding: 5px 10px;
48
- opacity: 0;
49
- -webkit-transition: linear 0.2s;
50
- -moz-transition: linear 0.2s;
51
- transition: linear 0.2s;
52
- /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#000000+0,000000+100&0+0,0.65+100 */
53
- background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.65) 100%); /* FF3.6-15 */
54
- background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* Chrome10-25,Safari5.1-6 */
55
- background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
56
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#a6000000',GradientType=0 ); /* IE6-9 */
57
- }
58
-
59
- .widget_btif_instagram_widget ul.photos-4 li .instagram-meta,
60
- .widget_btif_instagram_widget ul.photos-5 li .instagram-meta{display: none;}
61
-
62
- .widget_btif_instagram_widget ul li:hover .instagram-meta{
63
- opacity: 1;
64
- }
65
-
66
- .widget_btif_instagram_widget ul li .instagram-meta .fa-comment{float: right;}
67
-
68
- .widget_btif_instagram_widget ul li img{
69
- vertical-align: top;
70
- width: 100%;
71
- }
72
-
73
- .widget_btif_instagram_widget ul.photos-1 li{width: 100%;}
74
-
75
- .widget_btif_instagram_widget ul.photos-2 li{width: 50%;}
76
-
77
- .widget_btif_instagram_widget ul.photos-4 li{width: 25%;}
78
-
79
- .widget_btif_instagram_widget ul.photos-5 li{width: 20%;}
80
-
81
- #primary .post .entry-content .popup-gallery,
82
- #primary .page .entry-content .popup-gallery{
83
- margin: 0 -1px;
84
- padding: 0;
85
- list-style: none;
86
- }
87
-
88
- #primary .post .entry-content .popup-gallery:after,
89
- #primary .page .entry-content .popup-gallery:after{
90
- content: '';
91
- display: block;
92
- clear: both;
93
- }
94
-
95
- #primary .post .entry-content .popup-gallery li,
96
- #primary .page .entry-content .popup-gallery li{
97
- float: left;
98
- width: 33.3333%;
99
- padding: 0 1px;
100
- margin: 0 0 2px;
101
- position: relative;
102
- }
103
-
104
- #primary .post .entry-content .popup-gallery li .instagram-meta,
105
- #primary .page .entry-content .popup-gallery li .instagram-meta{
106
- position: absolute;
107
- left: 0;
108
- bottom: 0;
109
- width: 100%;
110
- color: #fff;
111
- padding: 5px 10px;
112
- opacity: 0;
113
- -webkit-transition: linear 0.2s;
114
- -moz-transition: linear 0.2s;
115
- transition: linear 0.2s;
116
- /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#000000+0,000000+100&0+0,0.65+100 */
117
- background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.65) 100%); /* FF3.6-15 */
118
- background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* Chrome10-25,Safari5.1-6 */
119
- background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
120
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#a6000000',GradientType=0 ); /* IE6-9 */
121
- }
122
-
123
- #primary .post .entry-content .popup-gallery li:hover .instagram-meta,
124
- #primary .page .entry-content .popup-gallery li:hover .instagram-meta{
125
- opacity: 1;
126
- }
127
-
128
- #primary .post .entry-content .popup-gallery li .instagram-meta .fa-comment,
129
- #primary .page .entry-content .popup-gallery li .instagram-meta .fa-comment{float: right;}
130
-
131
- #primary .post .entry-content .popup-gallery li img,
132
- #primary .page .entry-content .popup-gallery li img{
133
- vertical-align: top;
134
- width: 100%;
135
- }
136
-
137
- #primary .post .entry-content .popup-gallery.photos-1 li,
138
- #primary .page .entry-content .popup-gallery.photos-1 li{width: 100%;}
139
-
140
- #primary .post .entry-content .popup-gallery.photos-2 li,
141
- #primary .page .entry-content .popup-gallery.photos-2 li{width: 50%;}
142
-
143
- #primary .post .entry-content .popup-gallery.photos-4 li,
144
- #primary .page .entry-content .popup-gallery.photos-4 li{width: 25%;}
145
-
146
- #primary .post .entry-content .popup-gallery.photos-5 li,
147
- #primary .page .entry-content .popup-gallery.photos-5 li{width: 20%;}
148
-
149
- @media only screen and (max-width: 767px){
150
- .widget_btif_instagram_widget ul.photos-2 li,
151
- .widget_btif_instagram_widget ul.photos-4 li,
152
- .widget_btif_instagram_widget ul.photos-5 li,
153
- #primary .post .entry-content .popup-gallery.photos-2 li,
154
- #primary .page .entry-content .popup-gallery.photos-2 li,
155
- #primary .post .entry-content .popup-gallery.photos-4 li,
156
- #primary .page .entry-content .popup-gallery.photos-4 li,
157
- #primary .post .entry-content .popup-gallery.photos-5 li,
158
- #primary .page .entry-content .popup-gallery.photos-5 li{width: 100%;}
159
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
public/css/blossomthemes-instagram-feed-public.min.css ADDED
@@ -0,0 +1 @@
 
1
+ #primary .page .entry-content .popup-gallery li .instagram-meta,#primary .post .entry-content .popup-gallery li .instagram-meta,.widget_btif_instagram_widget ul li .instagram-meta{left:0;bottom:0;color:#fff;filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#a6000000', GradientType=0 )}.white-popup-block{background:#FFF;padding:20px 30px;text-align:left;max-width:650px;margin:40px auto;position:relative}.widget_btif_instagram_widget ul:after{content:'';display:block;clear:both}.widget_btif_instagram_widget ul{margin:0 -1px!important}.widget_btif_instagram_widget ul li{float:left;width:33.3333%;padding:0 1px!important;margin:0 0 2px!important;position:relative}.widget_btif_instagram_widget ul li .instagram-meta{position:absolute;width:100%;padding:5px 10px;opacity:0;-webkit-transition:linear .2s;-moz-transition:linear .2s;transition:linear .2s;background:-moz-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,.65) 100%);background:-webkit-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,.65) 100%);background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.65) 100%)}.widget_btif_instagram_widget ul.photos-4 li .instagram-meta,.widget_btif_instagram_widget ul.photos-5 li .instagram-meta{display:none}.widget_btif_instagram_widget ul li:hover .instagram-meta{opacity:1}.widget_btif_instagram_widget ul li .instagram-meta .fa-comment{float:right}.widget_btif_instagram_widget ul li img{vertical-align:top;width:100%}.widget_btif_instagram_widget ul.photos-1 li{width:100%}.widget_btif_instagram_widget ul.photos-2 li{width:50%}.widget_btif_instagram_widget ul.photos-4 li{width:25%}.widget_btif_instagram_widget ul.photos-5 li{width:20%}#primary .page .entry-content .popup-gallery,#primary .post .entry-content .popup-gallery{margin:0 -1px;padding:0;list-style:none}#primary .page .entry-content .popup-gallery:after,#primary .post .entry-content .popup-gallery:after{content:'';display:block;clear:both}#primary .page .entry-content .popup-gallery li,#primary .post .entry-content .popup-gallery li{float:left;width:33.3333%;padding:0 1px;margin:0 0 2px;position:relative}#primary .page .entry-content .popup-gallery li .instagram-meta,#primary .post .entry-content .popup-gallery li .instagram-meta{position:absolute;width:100%;padding:5px 10px;opacity:0;-webkit-transition:linear .2s;-moz-transition:linear .2s;transition:linear .2s;background:-moz-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,.65) 100%);background:-webkit-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,.65) 100%);background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.65) 100%)}#primary .page .entry-content .popup-gallery li:hover .instagram-meta,#primary .post .entry-content .popup-gallery li:hover .instagram-meta{opacity:1}#primary .page .entry-content .popup-gallery li .instagram-meta .fa-comment,#primary .post .entry-content .popup-gallery li .instagram-meta .fa-comment{float:right}#primary .page .entry-content .popup-gallery li img,#primary .post .entry-content .popup-gallery li img{vertical-align:top;width:100%}#primary .page .entry-content .popup-gallery.photos-1 li,#primary .post .entry-content .popup-gallery.photos-1 li{width:100%}#primary .page .entry-content .popup-gallery.photos-2 li,#primary .post .entry-content .popup-gallery.photos-2 li{width:50%}#primary .page .entry-content .popup-gallery.photos-4 li,#primary .post .entry-content .popup-gallery.photos-4 li{width:25%}#primary .page .entry-content .popup-gallery.photos-5 li,#primary .post .entry-content .popup-gallery.photos-5 li{width:20%}@media only screen and (max-width:767px){#primary .page .entry-content .popup-gallery.photos-2 li,#primary .page .entry-content .popup-gallery.photos-4 li,#primary .page .entry-content .popup-gallery.photos-5 li,#primary .post .entry-content .popup-gallery.photos-2 li,#primary .post .entry-content .popup-gallery.photos-4 li,#primary .post .entry-content .popup-gallery.photos-5 li,.widget_btif_instagram_widget ul.photos-2 li,.widget_btif_instagram_widget ul.photos-4 li,.widget_btif_instagram_widget ul.photos-5 li{width:100%}}
public/css/magnific-popup.css DELETED
@@ -1,369 +0,0 @@
1
- /* Magnific Popup CSS */
2
- .mfp-bg {
3
- top: 0;
4
- left: 0;
5
- width: 100%;
6
- height: 100%;
7
- z-index: 1042;
8
- overflow: hidden;
9
- position: fixed;
10
- background: #0b0b0b;
11
- opacity: 0.8;
12
- filter: alpha(opacity=80); }
13
-
14
- .mfp-wrap {
15
- top: 0;
16
- left: 0;
17
- width: 100%;
18
- height: 100%;
19
- z-index: 1043;
20
- position: fixed;
21
- outline: none !important;
22
- -webkit-backface-visibility: hidden; }
23
-
24
- .mfp-container {
25
- text-align: center;
26
- position: absolute;
27
- width: 100%;
28
- height: 100%;
29
- left: 0;
30
- top: 0;
31
- padding: 0 8px;
32
- -webkit-box-sizing: border-box;
33
- -moz-box-sizing: border-box;
34
- box-sizing: border-box; }
35
-
36
- .mfp-container:before {
37
- content: '';
38
- display: inline-block;
39
- height: 100%;
40
- vertical-align: middle; }
41
-
42
- .mfp-align-top .mfp-container:before {
43
- display: none; }
44
-
45
- .mfp-content {
46
- position: relative;
47
- display: inline-block;
48
- vertical-align: middle;
49
- margin: 0 auto;
50
- text-align: left;
51
- z-index: 1045; }
52
-
53
- .mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content {
54
- width: 100%;
55
- cursor: auto; }
56
-
57
- .mfp-ajax-cur {
58
- cursor: progress; }
59
-
60
- .mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
61
- cursor: -moz-zoom-out;
62
- cursor: -webkit-zoom-out;
63
- cursor: zoom-out; }
64
-
65
- .mfp-zoom {
66
- cursor: pointer;
67
- cursor: -webkit-zoom-in;
68
- cursor: -moz-zoom-in;
69
- cursor: zoom-in; }
70
-
71
- .mfp-auto-cursor .mfp-content {
72
- cursor: auto; }
73
-
74
- .mfp-close, .mfp-arrow, .mfp-preloader, .mfp-counter {
75
- -webkit-user-select: none;
76
- -moz-user-select: none;
77
- user-select: none; }
78
-
79
- .mfp-loading.mfp-figure {
80
- display: none; }
81
-
82
- .mfp-hide {
83
- display: none !important; }
84
-
85
- .mfp-preloader {
86
- color: #cccccc;
87
- position: absolute;
88
- top: 50%;
89
- width: auto;
90
- text-align: center;
91
- margin-top: -0.8em;
92
- left: 8px;
93
- right: 8px;
94
- z-index: 1044; }
95
- .mfp-preloader a {
96
- color: #cccccc; }
97
- .mfp-preloader a:hover {
98
- color: white; }
99
-
100
- .mfp-s-ready .mfp-preloader {
101
- display: none; }
102
-
103
- .mfp-s-error .mfp-content {
104
- display: none; }
105
-
106
- button.mfp-close, button.mfp-arrow {
107
- overflow: visible;
108
- cursor: pointer;
109
- background: transparent;
110
- border: 0;
111
- -webkit-appearance: none;
112
- display: block;
113
- outline: none;
114
- padding: 0;
115
- z-index: 1046;
116
- -webkit-box-shadow: none;
117
- box-shadow: none; }
118
- button::-moz-focus-inner {
119
- padding: 0;
120
- border: 0; }
121
-
122
- .mfp-close {
123
- width: 44px;
124
- height: 44px;
125
- line-height: 44px;
126
- position: absolute;
127
- right: 0;
128
- top: 0;
129
- text-decoration: none;
130
- text-align: center;
131
- opacity: 0.65;
132
- filter: alpha(opacity=65);
133
- padding: 0 0 18px 10px;
134
- color: white;
135
- font-style: normal;
136
- font-size: 28px;
137
- font-family: Arial, Baskerville, monospace; }
138
- .mfp-close:hover, .mfp-close:focus {
139
- opacity: 1;
140
- filter: alpha(opacity=100); }
141
- .mfp-close:active {
142
- top: 1px; }
143
-
144
- .mfp-close-btn-in .mfp-close {
145
- color: #333333; }
146
-
147
- .mfp-image-holder .mfp-close, .mfp-iframe-holder .mfp-close {
148
- color: white;
149
- right: -6px;
150
- text-align: right;
151
- padding-right: 6px;
152
- width: 100%; }
153
-
154
- .mfp-counter {
155
- position: absolute;
156
- top: 0;
157
- right: 0;
158
- color: #cccccc;
159
- font-size: 12px;
160
- line-height: 18px;
161
- white-space: nowrap; }
162
-
163
- .mfp-arrow {
164
- position: absolute;
165
- opacity: 0.65;
166
- filter: alpha(opacity=65);
167
- margin: 0;
168
- top: 50%;
169
- margin-top: -55px;
170
- padding: 0;
171
- width: 90px;
172
- height: 110px;
173
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
174
- .mfp-arrow:active {
175
- margin-top: -54px; }
176
- .mfp-arrow:hover, .mfp-arrow:focus {
177
- opacity: 1;
178
- filter: alpha(opacity=100); }
179
- .mfp-arrow:before, .mfp-arrow:after, .mfp-arrow .mfp-b, .mfp-arrow .mfp-a {
180
- content: '';
181
- display: block;
182
- width: 0;
183
- height: 0;
184
- position: absolute;
185
- left: 0;
186
- top: 0;
187
- margin-top: 35px;
188
- margin-left: 35px;
189
- border: medium inset transparent; }
190
- .mfp-arrow:after, .mfp-arrow .mfp-a {
191
- border-top-width: 13px;
192
- border-bottom-width: 13px;
193
- top: 8px; }
194
- .mfp-arrow:before, .mfp-arrow .mfp-b {
195
- border-top-width: 21px;
196
- border-bottom-width: 21px;
197
- opacity: 0.7; }
198
-
199
- .mfp-arrow-left {
200
- left: 0; }
201
- .mfp-arrow-left:after, .mfp-arrow-left .mfp-a {
202
- border-right: 17px solid white;
203
- margin-left: 31px; }
204
- .mfp-arrow-left:before, .mfp-arrow-left .mfp-b {
205
- margin-left: 25px;
206
- border-right: 27px solid #3f3f3f; }
207
-
208
- .mfp-arrow-right {
209
- right: 0; }
210
- .mfp-arrow-right:after, .mfp-arrow-right .mfp-a {
211
- border-left: 17px solid white;
212
- margin-left: 39px; }
213
- .mfp-arrow-right:before, .mfp-arrow-right .mfp-b {
214
- border-left: 27px solid #3f3f3f; }
215
-
216
- .mfp-iframe-holder {
217
- padding-top: 40px;
218
- padding-bottom: 40px; }
219
- .mfp-iframe-holder .mfp-content {
220
- line-height: 0;
221
- width: 100%;
222
- max-width: 900px; }
223
- .mfp-iframe-holder .mfp-close {
224
- top: -40px; }
225
-
226
- .mfp-iframe-scaler {
227
- width: 100%;
228
- height: 0;
229
- overflow: hidden;
230
- padding-top: 56.25%; }
231
- .mfp-iframe-scaler iframe {
232
- position: absolute;
233
- display: block;
234
- top: 0;
235
- left: 0;
236
- width: 100%;
237
- height: 100%;
238
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
239
- background: black; }
240
-
241
- /* Main image in popup */
242
- img.mfp-img {
243
- width: auto;
244
- max-width: 100%;
245
- height: auto;
246
- display: block;
247
- line-height: 0;
248
- -webkit-box-sizing: border-box;
249
- -moz-box-sizing: border-box;
250
- box-sizing: border-box;
251
- padding: 40px 0 40px;
252
- margin: 0 auto; }
253
-
254
- /* The shadow behind the image */
255
- .mfp-figure {
256
- line-height: 0; }
257
- .mfp-figure:after {
258
- content: '';
259
- position: absolute;
260
- left: 0;
261
- top: 40px;
262
- bottom: 40px;
263
- display: block;
264
- right: 0;
265
- width: auto;
266
- height: auto;
267
- z-index: -1;
268
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
269
- background: #444444; }
270
- .mfp-figure small {
271
- color: #bdbdbd;
272
- display: block;
273
- font-size: 12px;
274
- line-height: 14px; }
275
- .mfp-figure figure {
276
- margin: 0; }
277
-
278
- .mfp-bottom-bar {
279
- margin-top: -36px;
280
- position: absolute;
281
- top: 100%;
282
- left: 0;
283
- width: 100%;
284
- cursor: auto; }
285
-
286
- .mfp-title {
287
- text-align: left;
288
- line-height: 18px;
289
- color: #f3f3f3;
290
- word-wrap: break-word;
291
- padding-right: 36px; }
292
-
293
- .mfp-image-holder .mfp-content {
294
- max-width: 100%; }
295
-
296
- .mfp-gallery .mfp-image-holder .mfp-figure {
297
- cursor: pointer; }
298
-
299
- @media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
300
- /**
301
- * Remove all paddings around the image on small screen
302
- */
303
- .mfp-img-mobile .mfp-image-holder {
304
- padding-left: 0;
305
- padding-right: 0; }
306
- .mfp-img-mobile img.mfp-img {
307
- padding: 0; }
308
- .mfp-img-mobile .mfp-figure:after {
309
- top: 0;
310
- bottom: 0; }
311
- .mfp-img-mobile .mfp-figure small {
312
- display: inline;
313
- margin-left: 5px; }
314
- .mfp-img-mobile .mfp-bottom-bar {
315
- background: rgba(0, 0, 0, 0.6);
316
- bottom: 0;
317
- margin: 0;
318
- top: auto;
319
- padding: 3px 5px;
320
- position: fixed;
321
- -webkit-box-sizing: border-box;
322
- -moz-box-sizing: border-box;
323
- box-sizing: border-box; }
324
- .mfp-img-mobile .mfp-bottom-bar:empty {
325
- padding: 0; }
326
- .mfp-img-mobile .mfp-counter {
327
- right: 5px;
328
- top: 3px; }
329
- .mfp-img-mobile .mfp-close {
330
- top: 0;
331
- right: 0;
332
- width: 35px;
333
- height: 35px;
334
- line-height: 35px;
335
- background: rgba(0, 0, 0, 0.6);
336
- position: fixed;
337
- text-align: center;
338
- padding: 0; } }
339
-
340
- @media all and (max-width: 900px) {
341
- .mfp-arrow {
342
- -webkit-transform: scale(0.75);
343
- transform: scale(0.75); }
344
- .mfp-arrow-left {
345
- -webkit-transform-origin: 0;
346
- transform-origin: 0; }
347
- .mfp-arrow-right {
348
- -webkit-transform-origin: 100%;
349
- transform-origin: 100%; }
350
- .mfp-container {
351
- padding-left: 6px;
352
- padding-right: 6px; } }
353
-
354
- .mfp-ie7 .mfp-img {
355
- padding: 0; }
356
- .mfp-ie7 .mfp-bottom-bar {
357
- width: 600px;
358
- left: 50%;
359
- margin-left: -300px;
360
- margin-top: 5px;
361
- padding-bottom: 5px; }
362
- .mfp-ie7 .mfp-container {
363
- padding: 0; }
364
- .mfp-ie7 .mfp-content {
365
- padding-top: 44px; }
366
- .mfp-ie7 .mfp-close {
367
- top: 0;
368
- right: 0;
369
- padding-top: 0; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
public/css/magnific-popup.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .mfp-bg,.mfp-wrap{position:fixed;left:0;top:0}.mfp-bg,.mfp-container,.mfp-wrap{height:100%;width:100%}.mfp-container:before,.mfp-figure:after{content:''}.mfp-bg{z-index:1042;overflow:hidden;background:#0b0b0b;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{z-index:1043;outline:0!important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-close,.mfp-preloader{text-align:center;position:absolute}.mfp-ajax-holder .mfp-content,.mfp-inline-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-arrow,.mfp-close,.mfp-counter,.mfp-preloader{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;top:50%;width:auto;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-close,.mfp-preloader a:hover{color:#fff}.mfp-s-error .mfp-content,.mfp-s-ready .mfp-preloader{display:none}button.mfp-arrow,button.mfp-close{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;right:0;top:0;text-decoration:none;opacity:.65;filter:alpha(opacity=65);padding:0 0 18px 10px;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:focus,.mfp-close:hover{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-iframe-holder .mfp-close,.mfp-image-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px;white-space:nowrap}.mfp-figure,img.mfp-img{line-height:0}.mfp-arrow{position:absolute;opacity:.65;filter:alpha(opacity=65);margin:-55px 0 0;top:50%;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:focus,.mfp-arrow:hover{opacity:1;filter:alpha(opacity=100)}.mfp-arrow .mfp-a,.mfp-arrow .mfp-b,.mfp-arrow:after,.mfp-arrow:before{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:inset transparent}.mfp-arrow .mfp-a,.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow .mfp-b,.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left .mfp-a,.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left .mfp-b,.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right .mfp-a,.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right .mfp-b,.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-image-holder .mfp-content,img.mfp-img{max-width:100%}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}.mfp-figure:after,img.mfp-img{width:auto;height:auto;display:block}img.mfp-img{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0;margin:0 auto}.mfp-figure:after{position:absolute;left:0;top:40px;bottom:40px;right:0;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}
public/js/blossomthemes-instagram-feed-public.js DELETED
@@ -1,20 +0,0 @@
1
- jQuery(document).ready(function($){
2
- $('.popup-gallery').magnificPopup({
3
- delegate: 'a',
4
- type: 'image',
5
- gallery:{
6
- enabled:true
7
- }
8
- });
9
-
10
- $('.popup-modal').magnificPopup({
11
- type: 'inline',
12
- preloader: false,
13
- focus: '#username',
14
- modal: true
15
- });
16
- $(document).on('click', '.popup-modal-dismiss', function (e) {
17
- e.preventDefault();
18
- $.magnificPopup.close();
19
- });
20
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
public/js/blossomthemes-instagram-feed-public.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(document).ready(function(e){e(".popup-gallery").magnificPopup({delegate:"a",type:"image",gallery:{enabled:!0}}),e(".popup-modal").magnificPopup({type:"inline",preloader:!1,focus:"#username",modal:!0}),e(document).on("click",".popup-modal-dismiss",function(p){p.preventDefault(),e.magnificPopup.close()})});