Version Description
Download this release
Release Info
Developer | blossomthemes |
Plugin | 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 +21 -3
- admin/class-blossomthemes-instagram-feed-admin.php +2 -2
- admin/css/blossomthemes-instagram-feed-admin.css +0 -55
- admin/css/blossomthemes-instagram-feed-admin.min.css +1 -0
- admin/js/blossomthemes-instagram-feed-admin.js +0 -9
- admin/js/blossomthemes-instagram-feed-admin.min.js +1 -0
- blossomthemes-instagram-feed.php +1 -2
- includes/class-blossomthemes-instagram-feed-settings.php +42 -34
- includes/class-blossomthemes-instagram-feed-shortcodes.php +48 -63
- includes/template/backend/sidebar.php +1 -15
- includes/vendor/InstagramSpider.php +96 -110
- includes/widgets/widget-blossomthemes-instagram-feed.php +52 -55
- languages/blossomthemes-instagram-feed.pot +122 -0
- public/class-blossomthemes-instagram-feed-public.php +3 -3
- public/css/blossomthemes-instagram-feed-public.css +0 -159
- public/css/blossomthemes-instagram-feed-public.min.css +1 -0
- public/css/magnific-popup.css +0 -369
- public/css/magnific-popup.min.css +1 -0
- public/js/blossomthemes-instagram-feed-public.js +0 -20
- public/js/blossomthemes-instagram-feed-public.min.js +1 -0
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.
|
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.
|
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 |
-
|
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 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
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 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
</div>
|
76 |
<?php $nonce = wp_create_nonce( 'blossomthemes-instagram-feed-nonce' ); ?>
|
77 |
-
|
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
|
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"><?php echo do_shortcode("[blossomthemes_instagram_feed]"); ?> </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 |
-
$
|
|
|
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 |
-
$
|
47 |
-
$
|
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 |
-
|
61 |
-
|
62 |
-
{
|
63 |
-
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
}
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
}
|
78 |
-
});
|
79 |
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
|
94 |
-
|
95 |
-
|
|
|
|
|
|
|
|
|
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/
|
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.
|
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 |
-
|
50 |
-
|
51 |
-
|
|
|
52 |
if (! empty($instaItems) && is_array($instaItems)) {
|
53 |
foreach ($instaItems as $res) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
$items[] = array(
|
55 |
-
'img_standard' => $res->
|
56 |
-
'img_low' => $res->
|
57 |
-
'img_thumb' => $res->thumbnail_resources[0]->src,
|
58 |
-
'likes' => $res->
|
59 |
-
'comments' => $res->
|
60 |
-
'caption' =>
|
61 |
-
'code' => $res->
|
|
|
62 |
);
|
63 |
}
|
64 |
}
|
65 |
}
|
66 |
|
67 |
-
// if empty, continus with the
|
68 |
-
if (
|
69 |
$inURL = $this->instagram . $username . '/';
|
70 |
$items = $this->getFromHtmlAPI($inURL);
|
71 |
}
|
72 |
|
73 |
-
|
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 (
|
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' =>
|
169 |
-
'code' => $res->node->shortcode
|
|
|
170 |
);
|
171 |
}
|
172 |
}
|
173 |
}
|
174 |
|
175 |
-
// if empty, continus with the
|
176 |
if (empty($items)) {
|
177 |
$inURL = $this->instagram . 'explore/tags/' . $tag . '/';
|
178 |
$items = $this->getFromHtmlAPI($inURL);
|
179 |
}
|
180 |
-
|
|
|
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']['
|
201 |
-
$nodes = $instaArray['entry_data']['ProfilePage'][0]['user']['
|
202 |
-
} else if (isset($instaArray['entry_data']['TagPage'][0]['
|
203 |
-
$nodes = $instaArray['entry_data']['TagPage'][0]['
|
204 |
}
|
205 |
if (! empty($nodes) && is_array($nodes)) {
|
206 |
foreach ($nodes as $node) {
|
207 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
$items[] = array(
|
209 |
-
'img_standard' => $node['
|
210 |
'img_low' => $node['thumbnail_src'],
|
211 |
'img_thumb' => $node['thumbnail_resources'][0]['src'],
|
212 |
-
'likes' => $node['
|
213 |
-
'comments' => $node['
|
214 |
-
'caption' =>
|
215 |
-
'code' => $node['
|
|
|
216 |
);
|
217 |
}
|
218 |
}
|
219 |
}
|
220 |
-
|
|
|
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(', '
|
242 |
} else {
|
243 |
-
if (
|
244 |
-
$
|
|
|
|
|
|
|
|
|
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 |
-
|
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'] ) ? '
|
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 |
-
|
81 |
-
|
82 |
-
{
|
83 |
-
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
}
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
}
|
98 |
-
});
|
99 |
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
|
|
109 |
});
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
|
|
|
|
|
|
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()})});
|