Version Description
- Released 2014-02-16
- Major JavaScript code redesign
Download this release
Release Info
Developer | mrsztuczkens |
Plugin | jQuery Pin It Button for Images |
Version | 1.20 |
Comparing to | |
See all releases |
Code changes from version 1.17 to 1.20
- jquery-pin-it-button-for-images.php +13 -27
- js/script.js +266 -219
- js/script.min.js +1 -1
- readme.txt +8 -1
jquery-pin-it-button-for-images.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: jQuery Pin It Button For Images
|
|
4 |
Plugin URI: http://mrsztuczkens.me/jpibfi/
|
5 |
Description: Highlights images on hover and adds a "Pin It" button over them for easy pinning.
|
6 |
Author: Marcin Skrzypiec
|
7 |
-
Version: 1.
|
8 |
Author URI: http://mrsztuczkens.me/
|
9 |
*/
|
10 |
|
@@ -18,9 +18,10 @@ if ( ! function_exists( 'add_action' ) ) {
|
|
18 |
* CONSTANTS
|
19 |
*
|
20 |
*/
|
21 |
-
define( "JPIBFI_VERSION", "1.
|
22 |
define( "JPIBFI_VERSION_MINOR", "a" );
|
23 |
define( "JPIBFI_METADATA", "jpibfi_meta" );
|
|
|
24 |
define( "JPIBFI_SELECTION_OPTIONS", "jpibfi_selection_options" );
|
25 |
define( "JPIBFI_VISUAL_OPTIONS", "jpibfi_visual_options" );
|
26 |
define( "JPIBFI_ADVANCED_OPTIONS", "jpibfi_advanced_options" );
|
@@ -113,7 +114,8 @@ function jpibfi_add_plugin_scripts() {
|
|
113 |
'button_margin_right' => $visual_options[ 'button_margin_right' ]
|
114 |
);
|
115 |
|
116 |
-
wp_localize_script( 'jquery-pin-it-button-script', 'jpibfi_options',
|
|
|
117 |
}
|
118 |
|
119 |
add_action( 'wp_enqueue_scripts', 'jpibfi_add_plugin_scripts' );
|
@@ -383,7 +385,7 @@ function jpibfi_update_plugin() {
|
|
383 |
if( false == get_option( JPIBFI_ADVANCED_OPTIONS ) )
|
384 |
add_option( JPIBFI_ADVANCED_OPTIONS, jpibfi_default_advanced_options() );
|
385 |
|
386 |
-
} else if ( (float)$version < (float)JPIBFI_VERSION ) { //if the plugins version is older than current, we need to update options with new defaults
|
387 |
|
388 |
$option = get_option( JPIBFI_VISUAL_OPTIONS );
|
389 |
$option['button_position'] = '5' == $option['button_position'] ? '0' : $option['button_position'];
|
@@ -527,10 +529,10 @@ function jpibfi_print_admin_page() {
|
|
527 |
|
528 |
<p>
|
529 |
<?php
|
530 |
-
printf(
|
531 |
-
printf(
|
532 |
-
printf(
|
533 |
-
printf(
|
534 |
?>
|
535 |
</p>
|
536 |
<form method="post" action="options.php" ng-app="jpibfiApp" ng-controller="jpibfiController">
|
@@ -584,7 +586,7 @@ function jpibfi_default_selection_options() {
|
|
584 |
'show_on_blog' => '1'
|
585 |
);
|
586 |
|
587 |
-
return $defaults;
|
588 |
}
|
589 |
|
590 |
/*
|
@@ -882,7 +884,7 @@ function jpibfi_default_visual_options() {
|
|
882 |
'retina_friendly' => '0'
|
883 |
);
|
884 |
|
885 |
-
return $defaults;
|
886 |
}
|
887 |
|
888 |
/*
|
@@ -1225,7 +1227,7 @@ function jpibfi_default_advanced_options() {
|
|
1225 |
'debug' => '0'
|
1226 |
);
|
1227 |
|
1228 |
-
return $defaults;
|
1229 |
}
|
1230 |
|
1231 |
/*
|
@@ -1396,22 +1398,6 @@ function jpibfi_get_options( $name ) {
|
|
1396 |
$options = get_option( $name . '_errors' );
|
1397 |
|
1398 |
return false == $options ? get_option( $name ) : $options;
|
1399 |
-
|
1400 |
-
//the code below is a much better error management solution, but doesn't work in WP 3.3
|
1401 |
-
// if ( JPIBFI_SELECTION_OPTIONS == $name )
|
1402 |
-
// $settings_list = jpibfi_default_selection_options();
|
1403 |
-
// else
|
1404 |
-
// $settings_list = jpibfi_default_visual_options();
|
1405 |
-
//
|
1406 |
-
// $errors = false;
|
1407 |
-
//
|
1408 |
-
// foreach( $settings_list as $key => $value) {
|
1409 |
-
// if ( count( get_settings_errors( $key ) ) > 0 ) {
|
1410 |
-
// $errors = true;
|
1411 |
-
// break;
|
1412 |
-
// }
|
1413 |
-
// }
|
1414 |
-
// return $errors ? get_option( $name . '_errors' ) : get_option( $name );
|
1415 |
}
|
1416 |
|
1417 |
/*
|
4 |
Plugin URI: http://mrsztuczkens.me/jpibfi/
|
5 |
Description: Highlights images on hover and adds a "Pin It" button over them for easy pinning.
|
6 |
Author: Marcin Skrzypiec
|
7 |
+
Version: 1.20
|
8 |
Author URI: http://mrsztuczkens.me/
|
9 |
*/
|
10 |
|
18 |
* CONSTANTS
|
19 |
*
|
20 |
*/
|
21 |
+
define( "JPIBFI_VERSION", "1.20" );
|
22 |
define( "JPIBFI_VERSION_MINOR", "a" );
|
23 |
define( "JPIBFI_METADATA", "jpibfi_meta" );
|
24 |
+
define( "JPIBFI_UPDATE_OPTIONS", "jpibfi_update_options");
|
25 |
define( "JPIBFI_SELECTION_OPTIONS", "jpibfi_selection_options" );
|
26 |
define( "JPIBFI_VISUAL_OPTIONS", "jpibfi_visual_options" );
|
27 |
define( "JPIBFI_ADVANCED_OPTIONS", "jpibfi_advanced_options" );
|
114 |
'button_margin_right' => $visual_options[ 'button_margin_right' ]
|
115 |
);
|
116 |
|
117 |
+
wp_localize_script( 'jquery-pin-it-button-script', 'jpibfi_options',
|
118 |
+
apply_filters('jpibfi_javascript_parameters',$parameters_array, $selection_options, $visual_options, $advanced_options ) );
|
119 |
}
|
120 |
|
121 |
add_action( 'wp_enqueue_scripts', 'jpibfi_add_plugin_scripts' );
|
385 |
if( false == get_option( JPIBFI_ADVANCED_OPTIONS ) )
|
386 |
add_option( JPIBFI_ADVANCED_OPTIONS, jpibfi_default_advanced_options() );
|
387 |
|
388 |
+
} else if ( (float)$version < (float)JPIBFI_VERSION || get_option( JPIBFI_UPDATE_OPTIONS ) ) { //if the plugins version is older than current, we need to update options with new defaults
|
389 |
|
390 |
$option = get_option( JPIBFI_VISUAL_OPTIONS );
|
391 |
$option['button_position'] = '5' == $option['button_position'] ? '0' : $option['button_position'];
|
529 |
|
530 |
<p>
|
531 |
<?php
|
532 |
+
printf( '<a href="http://mrsztuczkens.me/jquery-pin-it-button-for-images-customization/" class="button" target="_blank" rel="nofollow"><b>' . __( 'Plugin Customization', 'jpibfi' ) . '</b></a>' );
|
533 |
+
printf( '<a href="http://bit.ly/Uw2mEP" class="button" target="_blank" rel="nofollow"><b>' . __( 'Donate', 'jpibfi' ) . '</b></a>' );
|
534 |
+
printf( '<a href="http://wordpress.org/support/plugin/jquery-pin-it-button-for-images" class="button" target="_blank" rel="nofollow"><b>' . __( 'Support forum', 'jpibfi' ) . '</b></a>' );
|
535 |
+
printf( '<a href="http://wordpress.org/support/view/plugin-reviews/jquery-pin-it-button-for-images" class="button" target="_blank" rel="nofollow"><b>'. __( 'Leave a review', 'jpibfi' ) . '</b></a>' );
|
536 |
?>
|
537 |
</p>
|
538 |
<form method="post" action="options.php" ng-app="jpibfiApp" ng-controller="jpibfiController">
|
586 |
'show_on_blog' => '1'
|
587 |
);
|
588 |
|
589 |
+
return apply_filters('jpibfi_default_selection_options', $defaults);
|
590 |
}
|
591 |
|
592 |
/*
|
884 |
'retina_friendly' => '0'
|
885 |
);
|
886 |
|
887 |
+
return apply_filters( 'jpibfi_default_visual_options', $defaults );
|
888 |
}
|
889 |
|
890 |
/*
|
1227 |
'debug' => '0'
|
1228 |
);
|
1229 |
|
1230 |
+
return apply_filters( 'jpibfi_default_advanced_options', $defaults );
|
1231 |
}
|
1232 |
|
1233 |
/*
|
1398 |
$options = get_option( $name . '_errors' );
|
1399 |
|
1400 |
return false == $options ? get_option( $name ) : $options;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1401 |
}
|
1402 |
|
1403 |
/*
|
js/script.js
CHANGED
@@ -1,220 +1,215 @@
|
|
1 |
-
|
2 |
"use strict";
|
3 |
|
4 |
-
|
5 |
-
|
6 |
-
$(document).ready( function() {
|
7 |
-
|
8 |
-
var settings = {
|
9 |
-
pageUrl : document.URL,
|
10 |
-
pageTitle : document.title,
|
11 |
-
pageDescription : $('meta[name="description"]').attr('content') || "",
|
12 |
-
siteTitle : jpibfi_options.site_title,
|
13 |
-
imageSelector : jpibfi_options.image_selector,
|
14 |
-
disabledClasses : jpibfi_options.disabled_classes,
|
15 |
-
enabledClasses : jpibfi_options.enabled_classes,
|
16 |
-
descriptionOption : jpibfi_options.description_option,
|
17 |
-
usePostUrl : jpibfi_options.use_post_url == "1",
|
18 |
-
minImageHeight : jpibfi_options.min_image_height,
|
19 |
-
minImageWidth : jpibfi_options.min_image_width,
|
20 |
-
mode : jpibfi_options.mode,
|
21 |
-
buttonPosition : jpibfi_options.button_position
|
22 |
-
}
|
23 |
-
|
24 |
-
var pinButtonDimensions = {
|
25 |
-
height: parseInt( jpibfi_options.pin_image_height ),
|
26 |
-
width: parseInt( jpibfi_options.pin_image_width )
|
27 |
-
}
|
28 |
-
|
29 |
-
var pinButtonMargins = {
|
30 |
-
top: parseInt( jpibfi_options.button_margin_top ),
|
31 |
-
right: parseInt( jpibfi_options.button_margin_right ),
|
32 |
-
bottom: parseInt( jpibfi_options.button_margin_bottom ),
|
33 |
-
left: parseInt( jpibfi_options.button_margin_left )
|
34 |
-
}
|
35 |
|
36 |
-
|
|
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
|
|
41 |
|
42 |
-
var
|
|
|
43 |
|
44 |
-
|
|
|
45 |
|
46 |
-
var
|
47 |
-
//in case of no enabled classes, we need a selector that takes all elements
|
48 |
-
var filterSelector = createSelectorFromList( settings.enabledClasses ) || "*";
|
49 |
|
50 |
-
|
51 |
-
|
52 |
-
jpibfiLog( 'Not selector: ' + notSelector );
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
.filter( filterSelector )
|
58 |
-
.each( function (i) { $( this ).attr('data-jpibfi-indexer', i); imageCount++; } );
|
59 |
-
jpibfiLog( 'Images caught by selectors: ' + imageCount );
|
60 |
|
61 |
-
|
62 |
|
63 |
-
|
|
|
64 |
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
var indexer = $(this).attr("data-jpibfi-indexer");
|
70 |
-
$('.pinit-button[data-jpibfi-indexer="' + indexer + '"]').toggle( hover );
|
71 |
-
$('img[data-jpibfi-indexer="' + indexer + '"]').toggleClass( 'pinit-hover', hover );
|
72 |
-
});
|
73 |
-
|
74 |
-
} else if ( 'dynamic' == settings.mode ) {
|
75 |
-
|
76 |
-
jpibfiLog( 'Adding dynamic mode delegates');
|
77 |
-
|
78 |
-
$( document ).delegate( 'a.pinit-button', 'mouseenter', function() {
|
79 |
-
var $button = $( this );
|
80 |
-
clearTimeout( $button.data('jpibfi-timeoutId') );
|
81 |
-
});
|
82 |
-
|
83 |
-
$( document ).delegate( 'a.pinit-button', 'mouseleave', function() {
|
84 |
-
var $button = $( this );
|
85 |
-
var timeoutId = setTimeout( function(){
|
86 |
-
$button.remove();
|
87 |
-
$('img[data-jpibfi-indexer="' + $button.attr( 'data-jpibfi-indexer' ) + '"]').removeClass( 'pinit-hover' );
|
88 |
-
}, 100 );
|
89 |
-
$button.data('jpibfi-timeoutId', timeoutId);
|
90 |
-
});
|
91 |
|
92 |
-
$(
|
93 |
-
|
94 |
-
|
|
|
95 |
|
96 |
-
|
97 |
-
|
98 |
-
if ( $button.length == 0 ) {
|
99 |
-
//button doesn't exist so we need to create it
|
100 |
-
var $button = jpibfiCreatePinitButton( indexer );
|
101 |
-
var position = $image.offset();
|
102 |
-
var imageDimensions = {
|
103 |
-
width: $image.get(0).clientWidth,
|
104 |
-
height: $image.get(0).clientHeight
|
105 |
-
}
|
106 |
-
|
107 |
-
switch( settings.buttonPosition ){
|
108 |
-
case '0': //top-left
|
109 |
-
position.left += pinButtonMargins.left;
|
110 |
-
position.top += pinButtonMargins.top;
|
111 |
-
break;
|
112 |
-
case '1': //top-right
|
113 |
-
position.top += pinButtonMargins.top;
|
114 |
-
position.left = position.left + imageDimensions.width - pinButtonMargins.right - pinButtonDimensions.width;
|
115 |
-
break;
|
116 |
-
case '2': //bottom-left;
|
117 |
-
position.left += pinButtonMargins.left;
|
118 |
-
position.top = position.top + imageDimensions.height - pinButtonMargins.bottom - pinButtonDimensions.height;
|
119 |
-
break;
|
120 |
-
case '3': //bottom-right
|
121 |
-
position.left = position.left + imageDimensions.width - pinButtonMargins.right - pinButtonDimensions.width;
|
122 |
-
position.top = position.top + imageDimensions.height - pinButtonMargins.bottom - pinButtonDimensions.height;
|
123 |
-
break;
|
124 |
-
case '4': //middle
|
125 |
-
position.left = Math.round( position.left + imageDimensions.width / 2 - pinButtonDimensions.width / 2 );
|
126 |
-
position.top = Math.round( position.top + imageDimensions.height / 2 - pinButtonDimensions.height / 2 );
|
127 |
-
break;
|
128 |
-
}
|
129 |
-
|
130 |
-
$image.after( $button );
|
131 |
-
$button
|
132 |
-
.show()
|
133 |
-
.offset({ left: position.left, top: position.top });
|
134 |
-
} else {
|
135 |
-
//button exists, we need to clear the timeout that has to remove it
|
136 |
-
clearTimeout( $button.data('jpibfi-timeoutId') );
|
137 |
-
}
|
138 |
-
|
139 |
-
$( 'img[data-jpibfi-indexer="' + $button.attr( 'data-jpibfi-indexer' ) + '"]' ).addClass( 'pinit-hover' );
|
140 |
-
});
|
141 |
-
|
142 |
-
$( document).delegate( 'img[data-jpibfi-indexer]', 'mouseleave', function() {
|
143 |
-
var indexer = $(this).attr("data-jpibfi-indexer");
|
144 |
-
var $button = $('a.pinit-button[data-jpibfi-indexer="' + indexer + '"]');
|
145 |
-
|
146 |
-
var timeoutId = setTimeout(function(){
|
147 |
-
$button.remove();
|
148 |
-
$('img[data-jpibfi-indexer="' + $button.attr( 'data-jpibfi-indexer' ) + '"]').removeClass( 'pinit-hover' );
|
149 |
-
}, 100 );
|
150 |
-
$button.data('jpibfi-timeoutId', timeoutId);
|
151 |
-
});
|
152 |
-
|
153 |
-
}
|
154 |
-
|
155 |
-
function jpibfiAddElements() {
|
156 |
-
jpibfiLog( 'Add Elements called' );
|
157 |
|
158 |
var imageCount = 0;
|
159 |
-
$
|
160 |
var $image = $(this);
|
161 |
|
162 |
if ( this.clientWidth < settings.minImageWidth || this.clientHeight < settings.minImageHeight ) {
|
163 |
$image.removeAttr( 'data-jpibfi-indexer' );
|
164 |
return;
|
165 |
}
|
|
|
166 |
if ( settings.mode == 'static' )
|
167 |
jpibfiCreateAndShowOverlayDiv( $image, settings.buttonPosition );
|
168 |
|
169 |
imageCount++;
|
170 |
});
|
171 |
jpibfiLog( 'Images caught after filtering: ' + imageCount );
|
172 |
-
}
|
173 |
|
174 |
-
function
|
175 |
jpibfiLog( 'Remove Elements called' );
|
176 |
$( 'div.pinit-overlay' ).remove();
|
177 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
|
179 |
-
|
|
|
|
|
|
|
180 |
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
|
|
|
|
185 |
|
186 |
-
|
187 |
|
188 |
-
|
189 |
-
|
|
|
190 |
|
191 |
-
var $
|
192 |
|
193 |
-
|
194 |
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
width: $image.get(0).clientWidth + 'px'
|
199 |
-
})
|
200 |
-
.show()
|
201 |
-
.offset({ left: position.left, top: position.top });
|
202 |
|
203 |
-
|
204 |
-
|
205 |
|
206 |
-
|
207 |
-
function jpibfiCreateOverlayDiv( $image, buttonPosition ) {
|
208 |
|
209 |
-
|
210 |
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
|
219 |
function jpibfiCreatePinitButton( indexer ){
|
220 |
|
@@ -227,7 +222,7 @@
|
|
227 |
|
228 |
$anchor.click( function(e) {
|
229 |
jpibfiLog( 'Pin In button clicked' );
|
230 |
-
var index = $(this).
|
231 |
var $image = $('img[data-jpibfi-indexer="' + index+ '"]');
|
232 |
|
233 |
//Bookmark description is created on click because sometimes it's lazy loaded
|
@@ -238,8 +233,8 @@
|
|
238 |
var $inputWithData = $image.closest("div.jpibfi_container").find("input.jpibfi").first();
|
239 |
|
240 |
if ( $inputWithData.length ) {
|
241 |
-
descriptionForUrl = $inputWithData.
|
242 |
-
bookmarkUrl = $inputWithData.
|
243 |
}
|
244 |
}
|
245 |
bookmarkUrl = bookmarkUrl || settings.pageUrl;
|
@@ -251,11 +246,11 @@
|
|
251 |
else if ( settings.descriptionOption == 4 )
|
252 |
bookmarkDescription = settings.siteTitle;
|
253 |
else if ( settings.descriptionOption == 5 )
|
254 |
-
bookmarkDescription = $image.
|
255 |
|
256 |
bookmarkDescription = bookmarkDescription || ( descriptionForUrl || settings.pageTitle );
|
257 |
|
258 |
-
var imageUrl = 'http://pinterest.com/pin/create/bookmarklet/?is_video=' + encodeURIComponent('false') + "&url=" + encodeURIComponent( bookmarkUrl ) + "&media=" + encodeURIComponent(
|
259 |
+ '&description=' + encodeURIComponent( bookmarkDescription );
|
260 |
|
261 |
window.open(imageUrl, 'Pinterest', 'width=632,height=253,status=0,toolbar=0,menubar=0,location=1,scrollbars=1');
|
@@ -265,52 +260,104 @@
|
|
265 |
return $anchor;
|
266 |
}
|
267 |
|
268 |
-
});
|
269 |
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
}
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
|
|
|
|
297 |
}
|
298 |
-
}
|
299 |
|
300 |
-
|
301 |
-
|
302 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
|
304 |
-
|
|
|
305 |
|
306 |
-
|
307 |
-
if ( arrayOfClasses[i] )
|
308 |
-
selector += '.' + arrayOfClasses[i] + ',';
|
309 |
}
|
310 |
|
311 |
-
if
|
312 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
|
314 |
-
return selector;
|
315 |
-
}
|
316 |
})(jQuery);
|
1 |
+
(function($){
|
2 |
"use strict";
|
3 |
|
4 |
+
window.jpibfi = (function(){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
+
/* PRIVATE VARIABLES */
|
7 |
+
var jpibfi_debug = false;
|
8 |
|
9 |
+
/* SETTINGS */
|
10 |
+
var settings = {};
|
11 |
+
var pinButtonDimensions = {};
|
12 |
+
var pinButtonMargins = {};
|
13 |
|
14 |
+
var notSelector = "";
|
15 |
+
var filterSelector = "*";
|
16 |
|
17 |
+
//max index of images with the data-jpibfi-indexer attribute
|
18 |
+
var imageMaxIndex = 0;
|
19 |
|
20 |
+
var jpibfi = {};
|
|
|
|
|
21 |
|
22 |
+
/* FUNCTIONS THAT CAN BE OVERRIDDEN */
|
23 |
+
jpibfi.fn = {};
|
|
|
24 |
|
25 |
+
jpibfi.fn.getImageUrl = function( $elem ) {
|
26 |
+
return $elem.data('media') || $elem.attr('src');
|
27 |
+
};
|
|
|
|
|
|
|
28 |
|
29 |
+
/* FUNCTIONS THAT SHOULDN'T BE OVERRIDDEN */
|
30 |
|
31 |
+
jpibfi.addImages = function( selector ) {
|
32 |
+
jpibfiLog( '>>addImages' );
|
33 |
|
34 |
+
var $elements = $( selector )
|
35 |
+
.not( notSelector )
|
36 |
+
.not( '[data-jpibfi-indexer]' )
|
37 |
+
.filter( filterSelector );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
|
39 |
+
$elements.each( function () { $( this ).attr('data-jpibfi-indexer', imageMaxIndex); imageMaxIndex++; } );
|
40 |
+
jpibfiLog( 'Images caught by selectors: ' + imageMaxIndex );
|
41 |
+
return $elements;
|
42 |
+
};
|
43 |
|
44 |
+
jpibfi.prepareImages = function ( $elements ) {
|
45 |
+
jpibfiLog( '>>Add Elements' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
var imageCount = 0;
|
48 |
+
$elements.each(function () {
|
49 |
var $image = $(this);
|
50 |
|
51 |
if ( this.clientWidth < settings.minImageWidth || this.clientHeight < settings.minImageHeight ) {
|
52 |
$image.removeAttr( 'data-jpibfi-indexer' );
|
53 |
return;
|
54 |
}
|
55 |
+
|
56 |
if ( settings.mode == 'static' )
|
57 |
jpibfiCreateAndShowOverlayDiv( $image, settings.buttonPosition );
|
58 |
|
59 |
imageCount++;
|
60 |
});
|
61 |
jpibfiLog( 'Images caught after filtering: ' + imageCount );
|
62 |
+
};
|
63 |
|
64 |
+
jpibfi.removeAllImages = function () {
|
65 |
jpibfiLog( 'Remove Elements called' );
|
66 |
$( 'div.pinit-overlay' ).remove();
|
67 |
+
};
|
68 |
+
|
69 |
+
/* INITIALIZE */
|
70 |
+
|
71 |
+
jpibfi.init = function( jpibfi_options ) {
|
72 |
+
settings = {
|
73 |
+
pageUrl : document.URL,
|
74 |
+
pageTitle : document.title,
|
75 |
+
pageDescription : $('meta[name="description"]').attr('content') || "",
|
76 |
+
siteTitle : jpibfi_options.site_title,
|
77 |
+
disabledClasses : jpibfi_options.disabled_classes,
|
78 |
+
enabledClasses : jpibfi_options.enabled_classes,
|
79 |
+
descriptionOption : jpibfi_options.description_option,
|
80 |
+
usePostUrl : jpibfi_options.use_post_url == "1",
|
81 |
+
minImageHeight : jpibfi_options.min_image_height,
|
82 |
+
minImageWidth : jpibfi_options.min_image_width,
|
83 |
+
mode : jpibfi_options.mode,
|
84 |
+
buttonPosition : jpibfi_options.button_position
|
85 |
+
}
|
86 |
|
87 |
+
pinButtonDimensions = {
|
88 |
+
height: parseInt( jpibfi_options.pin_image_height ),
|
89 |
+
width: parseInt( jpibfi_options.pin_image_width )
|
90 |
+
}
|
91 |
|
92 |
+
pinButtonMargins = {
|
93 |
+
top: parseInt( jpibfi_options.button_margin_top ),
|
94 |
+
right: parseInt( jpibfi_options.button_margin_right ),
|
95 |
+
bottom: parseInt( jpibfi_options.button_margin_bottom ),
|
96 |
+
left: parseInt( jpibfi_options.button_margin_left )
|
97 |
+
}
|
98 |
|
99 |
+
jpibfi_debug = '1' == jpibfi_options.debug;
|
100 |
|
101 |
+
jpibfiLog( settings );
|
102 |
+
jpibfiLog( pinButtonDimensions );
|
103 |
+
jpibfiLog( pinButtonMargins );
|
104 |
|
105 |
+
var $containers = $('.jpibfi').closest('div').addClass('jpibfi_container');
|
106 |
|
107 |
+
jpibfiLog( 'Number of containers added: ' + $containers.length );
|
108 |
|
109 |
+
//we need to prepare selectors
|
110 |
+
notSelector = createSelectorFromList( settings.disabledClasses );
|
111 |
+
filterSelector = createSelectorFromList( settings.enabledClasses ) || "*";
|
|
|
|
|
|
|
|
|
112 |
|
113 |
+
jpibfiLog( 'Filter selector: ' + filterSelector );
|
114 |
+
jpibfiLog( 'Not selector: ' + notSelector );
|
115 |
|
116 |
+
//EVENT HANDLING - ADDING EVERY NEEDED EVENT
|
|
|
117 |
|
118 |
+
if ( 'static' == settings.mode) {
|
119 |
|
120 |
+
jpibfiLog( 'Adding static mode delegates');
|
121 |
+
|
122 |
+
$( document).delegate( 'div.pinit-overlay', 'hover', function( event ) {
|
123 |
+
var hover = event.type === 'mouseenter';
|
124 |
+
var indexer = $(this).data("jpibfi-indexer");
|
125 |
+
$('.pinit-button[data-jpibfi-indexer="' + indexer + '"]').toggle( hover );
|
126 |
+
$('img[data-jpibfi-indexer="' + indexer + '"]').toggleClass( 'pinit-hover', hover );
|
127 |
+
});
|
128 |
+
|
129 |
+
} else if ( 'dynamic' == settings.mode ) {
|
130 |
+
|
131 |
+
jpibfiLog( 'Adding dynamic mode delegates');
|
132 |
+
|
133 |
+
$( document ).delegate( 'a.pinit-button', 'mouseenter', function() {
|
134 |
+
var $button = $( this );
|
135 |
+
clearTimeout( $button.data('jpibfi-timeoutId') );
|
136 |
+
});
|
137 |
+
|
138 |
+
$( document ).delegate( 'a.pinit-button', 'mouseleave', function() {
|
139 |
+
var $button = $( this );
|
140 |
+
var timeoutId = setTimeout( function(){
|
141 |
+
$button.remove();
|
142 |
+
$('img[data-jpibfi-indexer="' + $button.data( 'jpibfi-indexer' ) + '"]').removeClass( 'pinit-hover' );
|
143 |
+
}, 100 );
|
144 |
+
$button.data('jpibfi-timeoutId', timeoutId);
|
145 |
+
});
|
146 |
+
|
147 |
+
$( document ).delegate( 'img[data-jpibfi-indexer]', 'mouseenter', function() {
|
148 |
+
var $image = $( this );
|
149 |
+
var indexer = $image.data( 'jpibfi-indexer' );
|
150 |
+
|
151 |
+
var $button = $('a.pinit-button[data-jpibfi-indexer="' + indexer + '"]');
|
152 |
+
|
153 |
+
if ( $button.length == 0 ) {
|
154 |
+
//button doesn't exist so we need to create it
|
155 |
+
var $button = jpibfiCreatePinitButton( indexer );
|
156 |
+
var position = $image.offset();
|
157 |
+
var imageDimensions = {
|
158 |
+
width: $image.get(0).clientWidth,
|
159 |
+
height: $image.get(0).clientHeight
|
160 |
+
}
|
161 |
+
|
162 |
+
switch( settings.buttonPosition ){
|
163 |
+
case '0': //top-left
|
164 |
+
position.left += pinButtonMargins.left;
|
165 |
+
position.top += pinButtonMargins.top;
|
166 |
+
break;
|
167 |
+
case '1': //top-right
|
168 |
+
position.top += pinButtonMargins.top;
|
169 |
+
position.left = position.left + imageDimensions.width - pinButtonMargins.right - pinButtonDimensions.width;
|
170 |
+
break;
|
171 |
+
case '2': //bottom-left;
|
172 |
+
position.left += pinButtonMargins.left;
|
173 |
+
position.top = position.top + imageDimensions.height - pinButtonMargins.bottom - pinButtonDimensions.height;
|
174 |
+
break;
|
175 |
+
case '3': //bottom-right
|
176 |
+
position.left = position.left + imageDimensions.width - pinButtonMargins.right - pinButtonDimensions.width;
|
177 |
+
position.top = position.top + imageDimensions.height - pinButtonMargins.bottom - pinButtonDimensions.height;
|
178 |
+
break;
|
179 |
+
case '4': //middle
|
180 |
+
position.left = Math.round( position.left + imageDimensions.width / 2 - pinButtonDimensions.width / 2 );
|
181 |
+
position.top = Math.round( position.top + imageDimensions.height / 2 - pinButtonDimensions.height / 2 );
|
182 |
+
break;
|
183 |
+
}
|
184 |
+
|
185 |
+
$image.after( $button );
|
186 |
+
$button
|
187 |
+
.show()
|
188 |
+
.offset({ left: position.left, top: position.top });
|
189 |
+
} else {
|
190 |
+
//button exists, we need to clear the timeout that has to remove it
|
191 |
+
clearTimeout( $button.data('jpibfi-timeoutId') );
|
192 |
+
}
|
193 |
+
$image.addClass( 'pinit-hover' );
|
194 |
+
});
|
195 |
+
|
196 |
+
$( document).delegate( 'img[data-jpibfi-indexer]', 'mouseleave', function() {
|
197 |
+
var indexer = $(this).data("jpibfi-indexer");
|
198 |
+
var $button = $('a.pinit-button[data-jpibfi-indexer="' + indexer + '"]');
|
199 |
+
|
200 |
+
var timeoutId = setTimeout(function(){
|
201 |
+
$button.remove();
|
202 |
+
$('img[data-jpibfi-indexer="' + $button.data( 'jpibfi-indexer' ) + '"]').removeClass( 'pinit-hover' );
|
203 |
+
}, 100 );
|
204 |
+
$button.data('jpibfi-timeoutId', timeoutId);
|
205 |
+
});
|
206 |
+
|
207 |
+
}
|
208 |
+
};
|
209 |
+
|
210 |
+
return jpibfi;
|
211 |
+
|
212 |
+
/* PRIVATE CREATE ELEMENTS FUNCTIONS */
|
213 |
|
214 |
function jpibfiCreatePinitButton( indexer ){
|
215 |
|
222 |
|
223 |
$anchor.click( function(e) {
|
224 |
jpibfiLog( 'Pin In button clicked' );
|
225 |
+
var index = $(this).data("jpibfi-indexer");
|
226 |
var $image = $('img[data-jpibfi-indexer="' + index+ '"]');
|
227 |
|
228 |
//Bookmark description is created on click because sometimes it's lazy loaded
|
233 |
var $inputWithData = $image.closest("div.jpibfi_container").find("input.jpibfi").first();
|
234 |
|
235 |
if ( $inputWithData.length ) {
|
236 |
+
descriptionForUrl = $inputWithData.data("jpibfi-description")
|
237 |
+
bookmarkUrl = $inputWithData.data("jpibfi-url");
|
238 |
}
|
239 |
}
|
240 |
bookmarkUrl = bookmarkUrl || settings.pageUrl;
|
246 |
else if ( settings.descriptionOption == 4 )
|
247 |
bookmarkDescription = settings.siteTitle;
|
248 |
else if ( settings.descriptionOption == 5 )
|
249 |
+
bookmarkDescription = $image.data( 'jpibfi-description' );
|
250 |
|
251 |
bookmarkDescription = bookmarkDescription || ( descriptionForUrl || settings.pageTitle );
|
252 |
|
253 |
+
var imageUrl = 'http://pinterest.com/pin/create/bookmarklet/?is_video=' + encodeURIComponent('false') + "&url=" + encodeURIComponent( bookmarkUrl ) + "&media=" + encodeURIComponent( jpibfi.fn.getImageUrl( $image ) )
|
254 |
+ '&description=' + encodeURIComponent( bookmarkDescription );
|
255 |
|
256 |
window.open(imageUrl, 'Pinterest', 'width=632,height=253,status=0,toolbar=0,menubar=0,location=1,scrollbars=1');
|
260 |
return $anchor;
|
261 |
}
|
262 |
|
|
|
263 |
|
264 |
+
function jpibfiCreateAndShowOverlayDiv( $image, buttonPosition ) {
|
265 |
+
var position = $image.offset();
|
266 |
+
|
267 |
+
var $overlay = jpibfiCreateOverlayDiv( $image, buttonPosition );
|
268 |
+
|
269 |
+
$image.after( $overlay );
|
270 |
+
|
271 |
+
$overlay
|
272 |
+
.css({
|
273 |
+
height: $image.get(0).clientHeight + 'px',
|
274 |
+
width: $image.get(0).clientWidth + 'px'
|
275 |
+
})
|
276 |
+
.show()
|
277 |
+
.offset({ left: position.left, top: position.top });
|
278 |
+
|
279 |
+
return $overlay;
|
280 |
+
}
|
281 |
+
|
282 |
+
//function creates an overlay div that covers the image
|
283 |
+
function jpibfiCreateOverlayDiv( $image, buttonPosition ) {
|
284 |
+
|
285 |
+
var indexer = $image.data("jpibfi-indexer");
|
286 |
+
|
287 |
+
return jQuery('<div/>', {
|
288 |
+
"class": 'pinit-overlay',
|
289 |
+
"data-jpibfi-indexer": indexer,
|
290 |
+
title: $image.attr( 'title' ) || '',
|
291 |
+
html: jpibfiCreatePinitButton( indexer).addClass( jpibfiButtonPositionToClass( buttonPosition ))
|
292 |
+
})
|
293 |
}
|
294 |
+
|
295 |
+
/* PRIVATE UTILITY FUNCTIONS */
|
296 |
+
|
297 |
+
//returns class name based on given button position
|
298 |
+
function jpibfiButtonPositionToClass( buttonPosition ) {
|
299 |
+
switch( buttonPosition ){
|
300 |
+
case '0': return 'pinit-top-left';
|
301 |
+
case '1': return 'pinit-top-right';
|
302 |
+
case '2': return 'pinit-bottom-left';
|
303 |
+
case '3': return 'pinit-bottom-right';
|
304 |
+
case '4': return 'pinit-middle';
|
305 |
+
default: return '';
|
306 |
+
}
|
307 |
}
|
|
|
308 |
|
309 |
+
//function creates a selector from a list of semicolon separated classes
|
310 |
+
function createSelectorFromList(classes) {
|
311 |
+
var arrayOfClasses = classes.split( ';' );
|
312 |
+
|
313 |
+
var selector = "";
|
314 |
+
|
315 |
+
for (var i = 0; i < arrayOfClasses.length; i++) {
|
316 |
+
if ( arrayOfClasses[i] )
|
317 |
+
selector += '.' + arrayOfClasses[i] + ',';
|
318 |
+
}
|
319 |
|
320 |
+
if (selector)
|
321 |
+
selector = selector.substr(0, selector.length - 1);
|
322 |
|
323 |
+
return selector;
|
|
|
|
|
324 |
}
|
325 |
|
326 |
+
//functions logs a message or object data if plugin runs in debug mode
|
327 |
+
function jpibfiLog( o ) {
|
328 |
+
if ( jpibfi_debug && console && console.log ) {
|
329 |
+
if ( 'string' == typeof o || o instanceof String ) {
|
330 |
+
console.log( 'jpibfi debug: ' + o );
|
331 |
+
} else if ( 'object' == typeof o && typeof JSON !== 'undefined' && typeof JSON.stringify === 'function' ) {
|
332 |
+
console.log( 'jpibfi debug: ' + JSON.stringify( o, null, 4 ) );
|
333 |
+
} else if ( 'object' == typeof o ) {
|
334 |
+
var out = '';
|
335 |
+
for (var p in o)
|
336 |
+
out += p + ': ' + o[p] + '\n';
|
337 |
+
console.log( 'jpibfi debug: ' + out );
|
338 |
+
}
|
339 |
+
}
|
340 |
+
};
|
341 |
+
|
342 |
+
})();
|
343 |
+
|
344 |
+
})(jQuery);
|
345 |
+
|
346 |
+
|
347 |
+
;(function($){
|
348 |
+
"use strict";
|
349 |
+
|
350 |
+
$(document).ready( function() {
|
351 |
+
jpibfi.init( jpibfi_options );
|
352 |
+
|
353 |
+
var $elements = jpibfi.addImages( jpibfi_options.image_selector );
|
354 |
+
|
355 |
+
$(window).load( jpibfi.prepareImages( $elements ) );
|
356 |
+
|
357 |
+
$(window).resize ( function() {
|
358 |
+
jpibfi.removeAllImages();
|
359 |
+
jpibfi.prepareImages( $('img[data-jpibfi-indexer]') );
|
360 |
+
});
|
361 |
+
});
|
362 |
|
|
|
|
|
363 |
})(jQuery);
|
js/script.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
(function(e){"use strict";function
|
1 |
+
(function(e){"use strict";window.jpibfi=function(){function f(t){var r=jQuery("<a/>",{href:"#","class":"pinit-button","data-jpibfi-indexer":t,text:"Pin It"});r.click(function(t){d("Pin In button clicked");var r=e(this).data("jpibfi-indexer");var i=e('img[data-jpibfi-indexer="'+r+'"]');var s="",o="",u="";if(n.usePostUrl){var f=i.closest("div.jpibfi_container").find("input.jpibfi").first();if(f.length){o=f.data("jpibfi-description");u=f.data("jpibfi-url")}}u=u||n.pageUrl;if(n.descriptionOption==3)s=i.attr("title")||i.attr("alt");else if(n.descriptionOption==2)s=o||n.pageDescription;else if(n.descriptionOption==4)s=n.siteTitle;else if(n.descriptionOption==5)s=i.data("jpibfi-description");s=s||o||n.pageTitle;var l="http://pinterest.com/pin/create/bookmarklet/?is_video="+encodeURIComponent("false")+"&url="+encodeURIComponent(u)+"&media="+encodeURIComponent(a.fn.getImageUrl(i))+"&description="+encodeURIComponent(s);window.open(l,"Pinterest","width=632,height=253,status=0,toolbar=0,menubar=0,location=1,scrollbars=1");return false});return r}function l(e,t){var n=e.offset();var r=c(e,t);e.after(r);r.css({height:e.get(0).clientHeight+"px",width:e.get(0).clientWidth+"px"}).show().offset({left:n.left,top:n.top});return r}function c(e,t){var n=e.data("jpibfi-indexer");return jQuery("<div/>",{"class":"pinit-overlay","data-jpibfi-indexer":n,title:e.attr("title")||"",html:f(n).addClass(h(t))})}function h(e){switch(e){case"0":return"pinit-top-left";case"1":return"pinit-top-right";case"2":return"pinit-bottom-left";case"3":return"pinit-bottom-right";case"4":return"pinit-middle";default:return""}}function p(e){var t=e.split(";");var n="";for(var r=0;r<t.length;r++){if(t[r])n+="."+t[r]+","}if(n)n=n.substr(0,n.length-1);return n}function d(e){if(t&&console&&console.log){if("string"==typeof e||e instanceof String){console.log("jpibfi debug: "+e)}else if("object"==typeof e&&typeof JSON!=="undefined"&&typeof JSON.stringify==="function"){console.log("jpibfi debug: "+JSON.stringify(e,null,4))}else if("object"==typeof e){var n="";for(var r in e)n+=r+": "+e[r]+"\n";console.log("jpibfi debug: "+n)}}}var t=false;var n={};var r={};var i={};var s="";var o="*";var u=0;var a={};a.fn={};a.fn.getImageUrl=function(e){return e.data("media")||e.attr("src")};a.addImages=function(t){d(">>addImages");var n=e(t).not(s).not("[data-jpibfi-indexer]").filter(o);n.each(function(){e(this).attr("data-jpibfi-indexer",u);u++});d("Images caught by selectors: "+u);return n};a.prepareImages=function(t){d(">>Add Elements");var r=0;t.each(function(){var t=e(this);if(this.clientWidth<n.minImageWidth||this.clientHeight<n.minImageHeight){t.removeAttr("data-jpibfi-indexer");return}if(n.mode=="static")l(t,n.buttonPosition);r++});d("Images caught after filtering: "+r)};a.removeAllImages=function(){d("Remove Elements called");e("div.pinit-overlay").remove()};a.init=function(u){n={pageUrl:document.URL,pageTitle:document.title,pageDescription:e('meta[name="description"]').attr("content")||"",siteTitle:u.site_title,disabledClasses:u.disabled_classes,enabledClasses:u.enabled_classes,descriptionOption:u.description_option,usePostUrl:u.use_post_url=="1",minImageHeight:u.min_image_height,minImageWidth:u.min_image_width,mode:u.mode,buttonPosition:u.button_position};r={height:parseInt(u.pin_image_height),width:parseInt(u.pin_image_width)};i={top:parseInt(u.button_margin_top),right:parseInt(u.button_margin_right),bottom:parseInt(u.button_margin_bottom),left:parseInt(u.button_margin_left)};t="1"==u.debug;d(n);d(r);d(i);var a=e(".jpibfi").closest("div").addClass("jpibfi_container");d("Number of containers added: "+a.length);s=p(n.disabledClasses);o=p(n.enabledClasses)||"*";d("Filter selector: "+o);d("Not selector: "+s);if("static"==n.mode){d("Adding static mode delegates");e(document).delegate("div.pinit-overlay","hover",function(t){var n=t.type==="mouseenter";var r=e(this).data("jpibfi-indexer");e('.pinit-button[data-jpibfi-indexer="'+r+'"]').toggle(n);e('img[data-jpibfi-indexer="'+r+'"]').toggleClass("pinit-hover",n)})}else if("dynamic"==n.mode){d("Adding dynamic mode delegates");e(document).delegate("a.pinit-button","mouseenter",function(){var t=e(this);clearTimeout(t.data("jpibfi-timeoutId"))});e(document).delegate("a.pinit-button","mouseleave",function(){var t=e(this);var n=setTimeout(function(){t.remove();e('img[data-jpibfi-indexer="'+t.data("jpibfi-indexer")+'"]').removeClass("pinit-hover")},100);t.data("jpibfi-timeoutId",n)});e(document).delegate("img[data-jpibfi-indexer]","mouseenter",function(){var t=e(this);var s=t.data("jpibfi-indexer");var o=e('a.pinit-button[data-jpibfi-indexer="'+s+'"]');if(o.length==0){var o=f(s);var u=t.offset();var a={width:t.get(0).clientWidth,height:t.get(0).clientHeight};switch(n.buttonPosition){case"0":u.left+=i.left;u.top+=i.top;break;case"1":u.top+=i.top;u.left=u.left+a.width-i.right-r.width;break;case"2":u.left+=i.left;u.top=u.top+a.height-i.bottom-r.height;break;case"3":u.left=u.left+a.width-i.right-r.width;u.top=u.top+a.height-i.bottom-r.height;break;case"4":u.left=Math.round(u.left+a.width/2-r.width/2);u.top=Math.round(u.top+a.height/2-r.height/2);break}t.after(o);o.show().offset({left:u.left,top:u.top})}else{clearTimeout(o.data("jpibfi-timeoutId"))}t.addClass("pinit-hover")});e(document).delegate("img[data-jpibfi-indexer]","mouseleave",function(){var t=e(this).data("jpibfi-indexer");var n=e('a.pinit-button[data-jpibfi-indexer="'+t+'"]');var r=setTimeout(function(){n.remove();e('img[data-jpibfi-indexer="'+n.data("jpibfi-indexer")+'"]').removeClass("pinit-hover")},100);n.data("jpibfi-timeoutId",r)})}};return a;}()})(jQuery);(function(e){"use strict";e(document).ready(function(){jpibfi.init(jpibfi_options);var t=jpibfi.addImages(jpibfi_options.image_selector);e(window).load(jpibfi.prepareImages(t));e(window).resize(function(){jpibfi.removeAllImages();jpibfi.prepareImages(e("img[data-jpibfi-indexer]"))})})})(jQuery)
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: http://bit.ly/Uw2mEP
|
|
4 |
Tags: pinterest, pin it, button, image, images, pinit, social media, hover, click, photo, photos
|
5 |
Requires at least: 3.3.0
|
6 |
Tested up to: 3.6.1
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
Highlights images on hover and adds a Pinterest "Pin It" button over them for easy pinning.
|
@@ -76,6 +76,10 @@ Please report them in the plugin's support forum on Wordpress.org.
|
|
76 |
|
77 |
== Changelog ==
|
78 |
|
|
|
|
|
|
|
|
|
79 |
= 1.17 =
|
80 |
* Released 2013-12-10
|
81 |
* Minor bug fix
|
@@ -181,6 +185,9 @@ Please report them in the plugin's support forum on Wordpress.org.
|
|
181 |
|
182 |
== Upgrade Notice ==
|
183 |
|
|
|
|
|
|
|
184 |
= 1.17 =
|
185 |
Minor bug fix and Spanish translation added.
|
186 |
|
4 |
Tags: pinterest, pin it, button, image, images, pinit, social media, hover, click, photo, photos
|
5 |
Requires at least: 3.3.0
|
6 |
Tested up to: 3.6.1
|
7 |
+
Stable tag: 1.20
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
Highlights images on hover and adds a Pinterest "Pin It" button over them for easy pinning.
|
76 |
|
77 |
== Changelog ==
|
78 |
|
79 |
+
= 1.20 =
|
80 |
+
* Released 2014-02-16
|
81 |
+
* Major JavaScript code redesign
|
82 |
+
|
83 |
= 1.17 =
|
84 |
* Released 2013-12-10
|
85 |
* Minor bug fix
|
185 |
|
186 |
== Upgrade Notice ==
|
187 |
|
188 |
+
= 1.20 =
|
189 |
+
Just code redesign.
|
190 |
+
|
191 |
= 1.17 =
|
192 |
Minor bug fix and Spanish translation added.
|
193 |
|