Version Description
- Released 2017-06-03
- Moved client script to footer
- Added warning if settings page does not work
Download this release
Release Info
Developer | mrsztuczkens |
Plugin | jQuery Pin It Button for Images |
Version | 2.3.0 |
Comparing to | |
See all releases |
Code changes from version 2.2.10 to 2.3.0
- includes/admin/jpibfi-admin.php +15 -12
- includes/public/JPIBFI_Client_Helper.php +34 -0
- includes/public/class-jpibfi-client.php +22 -20
- jquery-pin-it-button-for-images.php +2 -2
- js/jpibfi.admin.js +10 -2
- js/jpibfi.client.js +1 -1
- languages/jquery-pin-it-button-for-images.pot +16 -80
- readme.txt +9 -1
includes/admin/jpibfi-admin.php
CHANGED
@@ -161,6 +161,7 @@ class JPIBFI_Admin {
|
|
161 |
<h2><?php _e( 'jQuery Pin It Button For Images Options', 'jquery-pin-it-button-for-images' ); ?></h2>
|
162 |
<div id="icon-plugins" class="icon32"></div>
|
163 |
<jpibfi settings-name="jpibfi_settings"></jpibfi>
|
|
|
164 |
</div>
|
165 |
<?php
|
166 |
}
|
@@ -176,21 +177,23 @@ class JPIBFI_Admin {
|
|
176 |
$module->save_settings( $_POST );
|
177 |
}
|
178 |
|
|
|
179 |
public function show_ad() {
|
180 |
global $hook_suffix;
|
181 |
-
if ( $hook_suffix
|
182 |
-
|
183 |
-
<div class="notice notice-success">
|
184 |
-
<p>
|
185 |
-
<?php printf(
|
186 |
-
__( 'jQuery Pin It Button for Images Pro is available. <a class="button button-primary" href="%1$s" target="_blank">Check it out →</a>', 'jquery-pin-it-button-for-images' ),
|
187 |
-
'https://highfiveplugins.com/downloads/jquery-pin-it-button-for-images-pro/'
|
188 |
-
);
|
189 |
-
?>
|
190 |
-
</p>
|
191 |
-
</div>
|
192 |
-
<?php
|
193 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
}
|
195 |
|
196 |
function show_nags() {
|
161 |
<h2><?php _e( 'jQuery Pin It Button For Images Options', 'jquery-pin-it-button-for-images' ); ?></h2>
|
162 |
<div id="icon-plugins" class="icon32"></div>
|
163 |
<jpibfi settings-name="jpibfi_settings"></jpibfi>
|
164 |
+
<h3 id="jpibfi-error"><?php printf(__('If you cannot see the settings page, <a href="%s" target="_blank">click here</a>', 'jquery-pin-it-button-for-images'), 'https://highfiveplugins.com/jpibfi/jquery-pin-it-button-for-images-documentation/#Empty_settings_page'); ?></h3>
|
165 |
</div>
|
166 |
<?php
|
167 |
}
|
177 |
$module->save_settings( $_POST );
|
178 |
}
|
179 |
|
180 |
+
|
181 |
public function show_ad() {
|
182 |
global $hook_suffix;
|
183 |
+
if ( $hook_suffix !== $this->admin_screen_hook ) {
|
184 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
}
|
186 |
+
?>
|
187 |
+
<div class="notice notice-success">
|
188 |
+
<p>
|
189 |
+
<?php printf(
|
190 |
+
__( 'jQuery Pin It Button for Images Pro is available. <a class="button button-primary" href="%1$s" target="_blank">Check it out →</a>', 'jquery-pin-it-button-for-images' ),
|
191 |
+
'https://highfiveplugins.com/downloads/jquery-pin-it-button-for-images-pro/'
|
192 |
+
);
|
193 |
+
?>
|
194 |
+
</p>
|
195 |
+
</div>
|
196 |
+
<?php
|
197 |
}
|
198 |
|
199 |
function show_nags() {
|
includes/public/JPIBFI_Client_Helper.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class JPIBFI_Client_Helper {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Returns URL address if available in the $css_property_value arg
|
7 |
+
*
|
8 |
+
* @param $css_property_value
|
9 |
+
*
|
10 |
+
* @return string|bool
|
11 |
+
*/
|
12 |
+
static function get_url_from_css_property( $css_property_value ) {
|
13 |
+
$url_pattern = '/(?i)\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'\".,<>?«»“”‘’]))/i';
|
14 |
+
preg_match( $url_pattern, $css_property_value, $url);
|
15 |
+
return count($url) > 0 ? $url[0] : false;
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Returns background url if available
|
20 |
+
*
|
21 |
+
* @param $style_attr_value
|
22 |
+
*
|
23 |
+
* @return bool|string
|
24 |
+
*/
|
25 |
+
static public function get_background_image_url( $style_attr_value ) {
|
26 |
+
$background_attr_pattern = '/(background|background-image)\s*:\s*([^;]+)\s*;?/i';
|
27 |
+
preg_match( $background_attr_pattern, $style_attr_value, $background_attr );
|
28 |
+
if ( count( $background_attr ) == 0 )
|
29 |
+
return false;
|
30 |
+
$property_value = $background_attr[2];
|
31 |
+
return self::get_url_from_css_property( $property_value );
|
32 |
+
}
|
33 |
+
|
34 |
+
}
|
includes/public/class-jpibfi-client.php
CHANGED
@@ -21,6 +21,9 @@ class JPIBFI_Client {
|
|
21 |
add_action( 'wp_enqueue_scripts', array( $this, 'add_plugin_scripts' ) );
|
22 |
add_action( 'wp_head', array( $this, 'print_header_style' ) );
|
23 |
$this->add_conditional_filters();
|
|
|
|
|
|
|
24 |
}
|
25 |
|
26 |
private function add_conditional_filters() {
|
@@ -47,7 +50,7 @@ class JPIBFI_Client {
|
|
47 |
return;
|
48 |
}
|
49 |
|
50 |
-
wp_enqueue_script( 'jpibfi-script', $this->plugin_dir_url . 'js/jpibfi.client.js', array( 'jquery' ), $this->version,
|
51 |
|
52 |
$selection_options = $this->selection_options->get();
|
53 |
|
@@ -92,7 +95,7 @@ class JPIBFI_Client {
|
|
92 |
<?php echo $custom_button_span_css; ?>
|
93 |
}
|
94 |
|
95 |
-
|
96 |
opacity: <?php echo (1 - $visual_options_js['transparency_value']); ?> !important;
|
97 |
filter: alpha(opacity=<?php echo (1 - $visual_options_js['transparency_value']) * 100; ?>) !important;
|
98 |
}
|
@@ -146,22 +149,16 @@ class JPIBFI_Client {
|
|
146 |
}
|
147 |
}
|
148 |
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
}
|
155 |
-
|
156 |
-
if ( $get_caption ) {
|
157 |
-
$new_img .= sprintf( ' data-jpibfi-caption="%s"', esc_attr( $att->post_excerpt ) );
|
158 |
-
}
|
159 |
-
}
|
160 |
-
}
|
161 |
|
162 |
$new_img .= sprintf( ' data-jpibfi-post-excerpt="%s"', esc_attr( wp_kses( $post->post_excerpt, array() ) ) );
|
163 |
$new_img .= sprintf( ' data-jpibfi-post-url="%s"', esc_attr( get_permalink() ) );
|
164 |
$new_img .= sprintf( ' data-jpibfi-post-title="%s"', esc_attr( get_the_title() ) );
|
|
|
165 |
$new_img .= ' >';
|
166 |
$content = str_replace( $img[0], $new_img, $content );
|
167 |
}
|
@@ -184,6 +181,7 @@ class JPIBFI_Client {
|
|
184 |
return '<input class="jpibfi" type="hidden">' . $content . $jscript;
|
185 |
}
|
186 |
|
|
|
187 |
//function gets the id of the image by searching for class with wp-image- prefix, otherwise returns empty string
|
188 |
function get_post_id_from_image_classes( $class_attribute ) {
|
189 |
$classes = preg_split( '/\s+/', $class_attribute, - 1, PREG_SPLIT_NO_EMPTY );
|
@@ -198,15 +196,19 @@ class JPIBFI_Client {
|
|
198 |
return '';
|
199 |
}
|
200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
function get_attachment( $id, $src ) {
|
202 |
$result = is_numeric( $id ) ? get_post( $id ) : null;
|
|
|
|
|
203 |
|
204 |
-
|
205 |
-
|
206 |
-
$result = $id !== 0 ? get_post( $id ) : null;
|
207 |
-
}
|
208 |
-
|
209 |
-
return $result;
|
210 |
}
|
211 |
|
212 |
/**
|
21 |
add_action( 'wp_enqueue_scripts', array( $this, 'add_plugin_scripts' ) );
|
22 |
add_action( 'wp_head', array( $this, 'print_header_style' ) );
|
23 |
$this->add_conditional_filters();
|
24 |
+
|
25 |
+
//load dependency
|
26 |
+
require_once 'JPIBFI_Client_Helper.php';
|
27 |
}
|
28 |
|
29 |
private function add_conditional_filters() {
|
50 |
return;
|
51 |
}
|
52 |
|
53 |
+
wp_enqueue_script( 'jpibfi-script', $this->plugin_dir_url . 'js/jpibfi.client.js', array( 'jquery' ), $this->version, true );
|
54 |
|
55 |
$selection_options = $this->selection_options->get();
|
56 |
|
95 |
<?php echo $custom_button_span_css; ?>
|
96 |
}
|
97 |
|
98 |
+
.pinit-hover {
|
99 |
opacity: <?php echo (1 - $visual_options_js['transparency_value']); ?> !important;
|
100 |
filter: alpha(opacity=<?php echo (1 - $visual_options_js['transparency_value']) * 100; ?>) !important;
|
101 |
}
|
149 |
}
|
150 |
}
|
151 |
|
152 |
+
$att = $get_description || $get_caption ? $this->get_attachment( $id, $src ): null;
|
153 |
+
if ( $att != null ) {
|
154 |
+
$new_img .= $get_description ? sprintf( ' data-jpibfi-description="%s"', esc_attr( $att->post_content ) ): '';
|
155 |
+
$new_img .= $get_caption ? sprintf( ' data-jpibfi-caption="%s"', esc_attr( $att->post_excerpt ) ): '';
|
156 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
|
158 |
$new_img .= sprintf( ' data-jpibfi-post-excerpt="%s"', esc_attr( wp_kses( $post->post_excerpt, array() ) ) );
|
159 |
$new_img .= sprintf( ' data-jpibfi-post-url="%s"', esc_attr( get_permalink() ) );
|
160 |
$new_img .= sprintf( ' data-jpibfi-post-title="%s"', esc_attr( get_the_title() ) );
|
161 |
+
$new_img .= sprintf( ' data-jpibfi-src="%s"', esc_attr( $src ) );
|
162 |
$new_img .= ' >';
|
163 |
$content = str_replace( $img[0], $new_img, $content );
|
164 |
}
|
181 |
return '<input class="jpibfi" type="hidden">' . $content . $jscript;
|
182 |
}
|
183 |
|
184 |
+
|
185 |
//function gets the id of the image by searching for class with wp-image- prefix, otherwise returns empty string
|
186 |
function get_post_id_from_image_classes( $class_attribute ) {
|
187 |
$classes = preg_split( '/\s+/', $class_attribute, - 1, PREG_SPLIT_NO_EMPTY );
|
196 |
return '';
|
197 |
}
|
198 |
|
199 |
+
/**
|
200 |
+
* @param $id
|
201 |
+
* @param $src
|
202 |
+
*
|
203 |
+
* @return array|null|WP_Post
|
204 |
+
*/
|
205 |
function get_attachment( $id, $src ) {
|
206 |
$result = is_numeric( $id ) ? get_post( $id ) : null;
|
207 |
+
if ( $result )
|
208 |
+
return $result;
|
209 |
|
210 |
+
$id = $this->get_attachment_id_by_url( $src );
|
211 |
+
return $id !== 0 ? get_post( $id ) : null;
|
|
|
|
|
|
|
|
|
212 |
}
|
213 |
|
214 |
/**
|
jquery-pin-it-button-for-images.php
CHANGED
@@ -6,7 +6,7 @@ Description: Highlights images on hover and adds a "Pin It" button over them for
|
|
6 |
Text Domain: jquery-pin-it-button-for-images
|
7 |
Domain Path: /languages
|
8 |
Author: Marcin Skrzypiec
|
9 |
-
Version:2.
|
10 |
Author URI: https://highfiveplugins.com/
|
11 |
*/
|
12 |
|
@@ -18,7 +18,7 @@ if ( !class_exists( 'jQuery_Pin_It_Button_For_Images' ) ) {
|
|
18 |
final class jQuery_Pin_It_Button_For_Images {
|
19 |
|
20 |
function __construct() {
|
21 |
-
$version = '2.
|
22 |
require_once plugin_dir_path(__FILE__) . 'includes/jpibfi.php';
|
23 |
new JPIBFI(__FILE__, $version);
|
24 |
}
|
6 |
Text Domain: jquery-pin-it-button-for-images
|
7 |
Domain Path: /languages
|
8 |
Author: Marcin Skrzypiec
|
9 |
+
Version:2.3.0
|
10 |
Author URI: https://highfiveplugins.com/
|
11 |
*/
|
12 |
|
18 |
final class jQuery_Pin_It_Button_For_Images {
|
19 |
|
20 |
function __construct() {
|
21 |
+
$version = '2.3.0';
|
22 |
require_once plugin_dir_path(__FILE__) . 'includes/jpibfi.php';
|
23 |
new JPIBFI(__FILE__, $version);
|
24 |
}
|
js/jpibfi.admin.js
CHANGED
@@ -34,6 +34,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
34 |
|
35 |
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
38 |
|
39 |
var AppController = function () {
|
@@ -50,6 +56,8 @@ var AppController = function () {
|
|
50 |
value: function $onInit() {
|
51 |
this.config = window[this.settingsName];
|
52 |
this.linkService.init(this.config.page);
|
|
|
|
|
53 |
}
|
54 |
}]);
|
55 |
|
@@ -60,7 +68,7 @@ AppController.$inject = ['linkService'];
|
|
60 |
|
61 |
exports.default = AppController;
|
62 |
|
63 |
-
},{}],3:[function(require,module,exports){
|
64 |
'use strict';
|
65 |
|
66 |
Object.defineProperty(exports, "__esModule", {
|
@@ -455,7 +463,7 @@ var SelectComponent = {
|
|
455 |
i18n: '<'
|
456 |
},
|
457 |
controller: _base2.default,
|
458 |
-
template: '\n <h2>{{ $ctrl.i18n.title }}</h2>\n <table class="form-table">\n <tbody>\n <tr>\n <th><label for="image_selector">{{ ::$ctrl.settings.image_selector.label }}</label></th>\n <td>\n <editor-
|
459 |
};
|
460 |
|
461 |
exports.default = SelectComponent;
|
34 |
|
35 |
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
36 |
|
37 |
+
var _angular = require('angular');
|
38 |
+
|
39 |
+
var _angular2 = _interopRequireDefault(_angular);
|
40 |
+
|
41 |
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
42 |
+
|
43 |
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
44 |
|
45 |
var AppController = function () {
|
56 |
value: function $onInit() {
|
57 |
this.config = window[this.settingsName];
|
58 |
this.linkService.init(this.config.page);
|
59 |
+
|
60 |
+
_angular2.default.element('#jpibfi-error').css({ display: 'none' });
|
61 |
}
|
62 |
}]);
|
63 |
|
68 |
|
69 |
exports.default = AppController;
|
70 |
|
71 |
+
},{"angular":42}],3:[function(require,module,exports){
|
72 |
'use strict';
|
73 |
|
74 |
Object.defineProperty(exports, "__esModule", {
|
463 |
i18n: '<'
|
464 |
},
|
465 |
controller: _base2.default,
|
466 |
+
template: '\n <h2>{{ $ctrl.i18n.title }}</h2>\n <table class="form-table">\n <tbody>\n <tr>\n <th><label for="image_selector">{{ ::$ctrl.settings.image_selector.label }}</label></th>\n <td>\n <editor-textarea args="$ctrl.settings.image_selector" on-update="$ctrl.update($event)"></editor-textarea>\n <p class="description" ng-bind-html="$ctrl.settings.image_selector.desc"></p>\n </td>\n </tr>\n <tr>\n <th><label for="disabled_classes">{{ ::$ctrl.settings.disabled_classes.label }}</label></th>\n <td>\n <editor-text args="$ctrl.settings.disabled_classes" on-update="$ctrl.update($event)"></editor-text>\n <p class="description" ng-bind-html="$ctrl.settings.disabled_classes.desc"></p>\n </td>\n </tr>\n <tr>\n <th><label for="enabled_classes">{{ ::$ctrl.settings.enabled_classes.label }}</label></th>\n <td>\n <editor-text args="$ctrl.settings.enabled_classes" on-update="$ctrl.update($event)"></editor-text>\n <p class="description" ng-bind-html="$ctrl.settings.enabled_classes.desc"></p>\n </td>\n </tr>\n <tr>\n <th>{{ ::$ctrl.i18n.image_resolution_label }}</th>\n <td>\n <p>\n <resolution height="$ctrl.settings.min_image_height_small" width="$ctrl.settings.min_image_width_small"\n update="$ctrl.update($event)" template="$ctrl.i18n.min_resolution_template_small">\n </resolution>\n </p>\n <p>\n <resolution height="$ctrl.settings.min_image_height" width="$ctrl.settings.min_image_width"\n update="$ctrl.update($event)" template="$ctrl.i18n.min_resolution_template">\n </resolution>\n </p>\n <p class="description" ng-bind-html="$ctrl.i18n.image_resolution_desc"></p>\n <p class="description" ng-bind-html="$ctrl.i18n.image_resolution_desc_2"></p>\n </td>\n </tr>\n <tr>\n <th>{{ ::$ctrl.i18n.show_on_field_label }}</th>\n <td>\n <p>\n <label for="show_on">{{ ::$ctrl.settings.show_on.label }}:</label><br/>\n <editor-textarea args="$ctrl.settings.show_on" on-update="$ctrl.update($event)"></editor-text>\n </p>\n <p>\n <label for="disable_on">{{ ::$ctrl.settings.disable_on.label }}:</label><br/>\n <editor-textarea args="$ctrl.settings.disable_on" on-update="$ctrl.update($event)"></editor-text>\n </p>\n <p class="description" ng-bind-html="$ctrl.i18n.show_on_field_desc"></p>\n </td>\n </tr>\n </tbody>\n </table>\n '
|
467 |
};
|
468 |
|
469 |
exports.default = SelectComponent;
|
js/jpibfi.client.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function t(e,n,i){function r(a,u){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!u&&s)return s(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};e[a][0].call(c.exports,function(t){var n=e[a][1][t];return r(n?n:t)},c,c.exports,t,e,n,i)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.siteTitle,r=void 0===n?"":n;i(this,t),this.desc_funcs={img_title:function(t){return t.attr("title")},img_alt:function(t){return t.attr("alt")},post_title:function(t){return t.attr("data-jpibfi-post-title")},post_excerpt:function(t){return t.attr("data-jpibfi-post-excerpt")},img_description:function(t){return t.attr("data-jpibfi-description")},img_caption:function(t){return t.attr("data-jpibfi-caption")},site_title:function(){return r}}}return r(t,[{key:"getDescription",value:function(t,e){for(var n="",i=0;i<e.length&&!n;i++)n=this.desc_funcs[e[i]](t);return n||""}}]),t}();n["default"]=o},{}],2:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(){function t(e){var n=this;i(this,t),this.flags={},this.pluginName=e;var r="undefined"!=typeof console&&"undefined"!=typeof console.log,o="undefined"!=typeof JSON&&"function"==typeof JSON.stringify;r?(this.logString=function(t){n.log(t)},this.logObject=o?function(t){n.log(JSON.stringify(t,null,4))}:function(t){return n.simplelogObject(t)}):(this.logString=function(){},this.logObject=function(){});var a=this.getQueryParams(document.location.search);Object.keys(a).forEach(function(t){var i=t.replace(e+"_","");n.setFlag(i,a[t])})}return r(t,[{key:"getFlag",value:function(t){return void 0!==this.flags[t]&&this.flags[t]}},{key:"getQueryParams",value:function(t){t=t.split("+").join(" ");for(var e={},n=void 0,i=/[?&]?([^=]+)=([^&]*)/g;n=i.exec(t);)e[decodeURIComponent(n[1])]=decodeURIComponent(n[2]);return e}},{key:"log",value:function(t){this.getFlag("print")&&console.log(this.pluginName+" debug: "+t)}},{key:"setFlag",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.flags[t]=e}},{key:"simplelogObject",value:function(t){if(this.getFlag("print")){var e=Object.keys(t).filter(function(e){return t.hasOwnPrototype(e)}).map(function(e){return e+": "+t[e]+"\n"}).join();this.log(e)}}}]),t}();n["default"]=o},{}],3:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=t("./link-generator"),u=i(a),s=function(){function t(e,n){r(this,t),this.$=e,this.settings=n,this.linkGenerator=new u["default"](n),this.$element=this.$("<a />",{target:"_blank","class":"pinit-button "+n.pin_image});var i="default"===n.pin_image?"jpibfi-icon-"+n.pin_image_icon:"";this.$element.html('<span class="'+i+'"></span>'),"default"===n.pin_image&&this.$element.addClass("jpibfi-size-"+n.pin_image_size+" jpibfi-button-"+n.pin_image_button),this.size={height:n.pinImageHeight,width:n.pinImageWidth}}return o(t,[{key:"createButton",value:function(t){var e=this.$element.clone(!1);return e.attr("href",this.linkGenerator.generate(t)).click(function(t){t.preventDefault(),t.stopPropagation(),"#"!==t.currentTarget.href.slice(-1)&&window.open(t.currentTarget.href,"mw"+t.timeStamp,"left=20,top=20,width=500,height=500,toolbar=1,resizable=0")}),{$element:e,size:this.size}}}]),t}();n["default"]=s},{"./link-generator":6}],4:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(){function t(e){var n=this;i(this,t),this.settings=e,this.disabledClasses=this.createClassList(e.disabled_classes),this.enabledClasses=this.createClassList(e.enabled_classes),this.updateSizeConstraints(),window.addEventListener("resize",function(){return n.updateSizeConstraints()},!1)}return r(t,[{key:"createClassList",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(";").filter(function(t){return!!t})}},{key:"imageEligible",value:function(t){return(0===this.enabledClasses.length||this.enabledClasses.some(function(e){return t.hasClass(e)}))&&!this.disabledClasses.some(function(e){return t.hasClass(e)})&&this.imageSizeIsOk(t)}},{key:"imageSizeIsOk",value:function(t){var e=t[0].clientWidth,n=t[0].clientHeight;return e>=this.minWidth&&n>=this.minHeight}},{key:"updateSizeConstraints",value:function(){this.minWidth=window.outerWidth<768?this.settings.min_image_width_small:this.settings.min_image_width,this.minHeight=window.outerWidth<768?this.settings.min_image_height_small:this.settings.min_image_height}}]),t}();n["default"]=o},{}],5:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=t("./show-on-hover-strategy"),u=i(a),s=function(){function t(e,n,i){r(this,t),this.settings=n,this.$=e,this.logger=i}return o(t,[{key:"init",value:function(){this.showStrategy=this.getStrategy(),this.showStrategy.start()}},{key:"getStrategy",value:function(){var t=null;return new(t=u["default"])(this.$,this.settings,this.logger)}}]),t}();n["default"]=s},{"./show-on-hover-strategy":8}],6:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=t("./../common/description-helper"),u=i(a),s=function(){function t(e){r(this,t),this.descriptionHelper=new u["default"]({siteTitle:e.siteTitle}),this.pinLinkedImages=e.pinLinkedImages,this.description_option=e.description_option,this.desc_funcs={img_title:function(t){return t.attr("title")},img_alt:function(t){return t.attr("alt")},post_title:function(t){return t.attr("data-jpibfi-post-title")},img_description:function(t){return t.attr("data-jpibfi-description")},img_caption:function(t){return t.attr("data-jpibfi-caption")},site_title:function(){return e.siteTitle}}}return o(t,[{key:"getDescription",value:function(t){return this.descriptionHelper.getDescription(t,this.description_option)}},{key:"getImage",value:function(t){var e=t.prop?t.prop("src"):t.attr("src");if(!this.pinLinkedImages)return e;var n=t.closest("a[href]");if(0===n.length)return e;var i=e.split(".").pop(),r=n.attr("href"),o=r.split(".").pop();return o.toLowerCase()===i.toLowerCase()?r:e}},{key:"getUrl",value:function(t){return t.attr("data-jpibfi-post-url")||window.location.href}},{key:"generate",value:function(t){var e=encodeURIComponent(this.getDescription(t)),n=encodeURIComponent(this.getUrl(t)),i=encodeURIComponent(this.getImage(t));return"http://pinterest.com/pin/create/bookmarklet/?is_video=false&url="+n+"&media="+i+"&description="+e}}]),t}();n["default"]=s},{"./../common/description-helper":1}],7:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(t,e,n,i){return t.top+i.top},a=function(t,e,n,i){return t.left+i.left},u=function(t,e,n,i){return e.top-n.height-i.bottom},s=function(t,e,n,i){return e.left-i.right-n.width},l=function(t,e,n){return t.top+((e.top-t.top)/2-n.height/2)},c=function(t,e,n){return t.left+((e.left-t.left)/2-n.width/2)},f=function(){function t(e,n){i(this,t),this.topF=e,this.leftF=n}return r(t,[{key:"calculate",value:function(t,e,n,i){return{top:this.topF(t,e,n,i),left:this.leftF(t,e,n,i)}}}]),t}(),p=function(){function t(e,n){i(this,t),this.margins=n,this.positionCalculator=this.getPositionCalculator(e)}return r(t,[{key:"getPositionCalculator",value:function(t){switch(t){case"top-left":return new f(o,a);case"top-right":return new f(o,s);case"bottom-left":return new f(u,a);case"bottom-right":return new f(u,s);default:return new f(l,c)}}},{key:"calculatePosition",value:function(t,e,n){return this.positionCalculator.calculate(t,e,n,this.margins)}}]),t}();n["default"]=p},{}],8:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(n,"__esModule",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),s=t("./show-strategy"),l=i(s),c=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return a(e,t),u(e,[{key:"init",value:function(){var t=this,e=function(){return t.$(".jpibfi").closest("div").addClass("jpibfi_container")};e()}},{key:"start",value:function(){var t=this;this.init();var e="data-jpibfi-timeout",n=0,i=function(e){return t.$("a.pinit-button["+t.indexerAttr+'="'+e+'"]')},r=this;r.$(document).delegate(this.settings.image_selector,"mouseenter",function(){var t=r.$(this);if(r.imageFilter.imageEligible(t)){t.addClass("pinit-hover");var o=t.attr(r.indexerAttr);o||(o=n++,t.attr(r.indexerAttr,o));var a=i(o);0===a.length?!function(){var n=r.buttonGenerator.createButton(t),i=n.$element,a=n.size,u=t.offset(),s={top:u.top+t[0].clientHeight,left:u.left+t[0].clientWidth},l=r.positioner.calculatePosition(u,s,a);t.after(i),i.attr(r.indexerAttr,o).css("visibility","hidden").show().offset(l).css("visibility","visible").hover(function(){return clearTimeout(i.attr(e))},function(){return i.attr(e,setTimeout(function(){t.removeClass("pinit-hover"),i.remove()},100))})}():clearTimeout(a.attr(e))}}),r.$(document).delegate(this.settings.image_selector,"mouseleave",function(){if(!r.logger.getFlag("prevent_hide")){var t=r.$(this),n=t.attr(r.indexerAttr);if(n){var o=i(n);o.attr(e,setTimeout(function(){t.removeClass("pinit-hover"),o.remove()},100))}}})}}]),e}(l["default"]);n["default"]=c},{"./show-strategy":9}],9:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=t("./image-filter"),a=i(o),u=t("./button-generator"),s=i(u),l=t("./positioner"),c=i(l),f=function p(t,e,n){r(this,p),this.$=t,this.settings=e,this.logger=n,this.imageFilter=new a["default"](e),this.buttonGenerator=new s["default"](t,e);var i={left:e.button_margin_left,top:e.button_margin_top,right:e.button_margin_right,bottom:e.button_margin_bottom};this.positioner=new c["default"](e.button_position,i),this.indexerAttr="data-jpibfi-indexer"};n["default"]=f},{"./button-generator":3,"./image-filter":4,"./positioner":7}],10:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}var r=t("./settings"),o=i(r),a=t("./debugger"),u=i(a),s=t("./hover"),l=i(s);!function(t){var e=function(){var e=window.jpibfi_options,n=new o["default"](t.extend({pageUrl:document.URL,pageTitle:document.title,pageDescription:t('meta[name="description"]').attr("content")||""},e.hover)),i=new u["default"]("jpibfi");window.jpibfi_debugger=i;var r=new l["default"](t,n,i);r.init()};t(document).ready(e)}(jQuery)},{"./debugger":2,"./hover":5,"./settings":11}],11:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function o(t){var e=this;i(this,o),Object.keys(t).forEach(function(n){e[n]=t[n]}),this.isTouchDevice="ontouchstart"in window||{}.hasOwnProperty.call(navigator,"maxTouchPoints")};n["default"]=r},{}]},{},[10]);
|
1 |
+
!function t(e,n,i){function r(a,u){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!u&&s)return s(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};e[a][0].call(c.exports,function(t){var n=e[a][1][t];return r(n?n:t)},c,c.exports,t,e,n,i)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.siteTitle,r=void 0===n?"":n;i(this,t),this.desc_funcs={img_title:function(t){return t.attr("title")||t.attr("data-jpibfi-title")},img_alt:function(t){return t.attr("alt")||t.attr("data-jpibfi-alt")},post_title:function(t){return t.attr("data-jpibfi-post-title")},post_excerpt:function(t){return t.attr("data-jpibfi-post-excerpt")},img_description:function(t){return t.attr("data-jpibfi-description")},img_caption:function(t){return t.attr("data-jpibfi-caption")},site_title:function(){return r}}}return r(t,[{key:"getDescription",value:function(t,e){for(var n="",i=0;i<e.length&&!n;i++)n=this.desc_funcs[e[i]](t);return n||""}}]),t}();n["default"]=o},{}],2:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(){function t(e){var n=this;i(this,t),this.flags={},this.pluginName=e;var r="undefined"!=typeof console&&"undefined"!=typeof console.log,o="undefined"!=typeof JSON&&"function"==typeof JSON.stringify;r?(this.logString=function(t){n.log(t)},this.logObject=o?function(t){n.log(JSON.stringify(t,null,4))}:function(t){return n.simplelogObject(t)}):(this.logString=function(){},this.logObject=function(){});var a=this.getQueryParams(document.location.search);Object.keys(a).forEach(function(t){var i=t.replace(e+"_","");n.setFlag(i,a[t])})}return r(t,[{key:"getFlag",value:function(t){return void 0!==this.flags[t]&&this.flags[t]}},{key:"getQueryParams",value:function(t){t=t.split("+").join(" ");for(var e={},n=void 0,i=/[?&]?([^=]+)=([^&]*)/g;n=i.exec(t);)e[decodeURIComponent(n[1])]=decodeURIComponent(n[2]);return e}},{key:"log",value:function(t){this.getFlag("print")&&console.log(this.pluginName+" debug: "+t)}},{key:"setFlag",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.flags[t]=e}},{key:"simplelogObject",value:function(t){if(this.getFlag("print")){var e=Object.keys(t).filter(function(e){return t.hasOwnPrototype(e)}).map(function(e){return e+": "+t[e]+"\n"}).join();this.log(e)}}}]),t}();n["default"]=o},{}],3:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=t("./link-generator"),u=i(a),s=function(){function t(e,n){r(this,t),this.$=e,this.settings=n,this.linkGenerator=new u["default"](n),this.$element=this.$("<a />",{target:"_blank","class":"pinit-button "+n.pin_image});var i="default"===n.pin_image?"jpibfi-icon-"+n.pin_image_icon:"";this.$element.html('<span class="'+i+'"></span>'),"default"===n.pin_image&&this.$element.addClass("jpibfi-size-"+n.pin_image_size+" jpibfi-button-"+n.pin_image_button),this.size={height:n.pinImageHeight,width:n.pinImageWidth}}return o(t,[{key:"createButton",value:function(t){var e=this.$element.clone(!1);return e.attr("href",this.linkGenerator.generate(t)).click(function(t){t.preventDefault(),t.stopPropagation(),"#"!==t.currentTarget.href.slice(-1)&&window.open(t.currentTarget.href,"mw"+t.timeStamp,"left=20,top=20,width=500,height=500,toolbar=1,resizable=0")})}},{key:"getSize",value:function(){return this.size}}]),t}();n["default"]=s},{"./link-generator":6}],4:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(){function t(e){var n=this;i(this,t),this.settings=e,this.disabledClasses=this.createClassList(e.disabled_classes),this.enabledClasses=this.createClassList(e.enabled_classes),this.updateSizeConstraints(),window.addEventListener("resize",function(){return n.updateSizeConstraints()},!1)}return r(t,[{key:"createClassList",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(";").filter(function(t){return!!t})}},{key:"imageEligible",value:function(t){return(0===this.enabledClasses.length||this.enabledClasses.some(function(e){return t.hasClass(e)}))&&!this.disabledClasses.some(function(e){return t.hasClass(e)})&&this.imageSizeIsOk(t)}},{key:"imageSizeIsOk",value:function(t){var e=t[0].clientWidth,n=t[0].clientHeight;return e>=this.minWidth&&n>=this.minHeight}},{key:"updateSizeConstraints",value:function(){this.minWidth=window.outerWidth<768?this.settings.min_image_width_small:this.settings.min_image_width,this.minHeight=window.outerWidth<768?this.settings.min_image_height_small:this.settings.min_image_height}}]),t}();n["default"]=o},{}],5:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=t("./show-on-hover-strategy"),u=i(a),s=function(){function t(e,n,i){r(this,t),this.settings=n,this.$=e,this.logger=i}return o(t,[{key:"init",value:function(){this.showStrategy=this.getStrategy(),this.showStrategy.start()}},{key:"getStrategy",value:function(){var t=null;return new(t=u["default"])(this.$,this.settings,this.logger)}}]),t}();n["default"]=s},{"./show-on-hover-strategy":8}],6:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=t("./../common/description-helper"),u=i(a),s=function(){function t(e){r(this,t),this.descriptionHelper=new u["default"]({siteTitle:e.siteTitle}),this.pinLinkedImages=e.pinLinkedImages,this.description_option=e.description_option}return o(t,[{key:"getDescription",value:function(t){return this.descriptionHelper.getDescription(t,this.description_option)}},{key:"getImage",value:function(t){var e=t.attr("data-jpibfi-src")||(t.prop?t.prop("src"):t.attr("src"));if(!this.pinLinkedImages)return e;var n=t.closest("a[href]");if(0===n.length)return e;var i=e.split(".").pop(),r=n.attr("href"),o=r.split(".").pop();return o.toLowerCase()===i.toLowerCase()?r:e}},{key:"getUrl",value:function(t){return t.attr("data-jpibfi-post-url")||window.location.href}},{key:"generate",value:function(t){var e=encodeURIComponent(this.getDescription(t)),n=encodeURIComponent(this.getUrl(t)),i=encodeURIComponent(this.getImage(t));return"http://pinterest.com/pin/create/bookmarklet/?is_video=false&url="+n+"&media="+i+"&description="+e}}]),t}();n["default"]=s},{"./../common/description-helper":1}],7:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(t,e,n,i){return t.top+i.top},a=function(t,e,n,i){return t.left+i.left},u=function(t,e,n,i){return e.top-n.height-i.bottom},s=function(t,e,n,i){return e.left-i.right-n.width},l=function(t,e,n){return t.top+((e.top-t.top)/2-n.height/2)},c=function(t,e,n){return t.left+((e.left-t.left)/2-n.width/2)},f=function(){function t(e,n){i(this,t),this.topF=e,this.leftF=n}return r(t,[{key:"calculate",value:function(t,e,n,i){return{top:this.topF(t,e,n,i),left:this.leftF(t,e,n,i)}}}]),t}(),h=function(){function t(e,n){i(this,t),this.margins=n,this.positionCalculator=this.getPositionCalculator(e)}return r(t,[{key:"getPositionCalculator",value:function(t){switch(t){case"top-left":return new f(o,a);case"top-right":return new f(o,s);case"bottom-left":return new f(u,a);case"bottom-right":return new f(u,s);default:return new f(l,c)}}},{key:"calculatePosition",value:function(t,e,n){return this.positionCalculator.calculate(t,e,n,this.margins)}}]),t}();n["default"]=h},{}],8:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(n,"__esModule",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),s=t("./show-strategy"),l=i(s),c=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return a(e,t),u(e,[{key:"init",value:function(){var t=this,e=function(){return t.$(".jpibfi").closest("div").addClass("jpibfi_container")};e()}},{key:"start",value:function(){var t=this;this.init();var e="data-jpibfi-timeout",n=0,i=function(e){return t.$("a.pinit-button["+t.indexerAttr+'="'+e+'"]')},r=this;r.$(document).delegate(this.settings.image_selector,"mouseenter",function(){var t=r.$(this);if(r.imageFilter.imageEligible(t)){t.addClass("pinit-hover");var o=t.attr(r.indexerAttr);o||(o=n++,t.attr(r.indexerAttr,o));var a=i(o);0===a.length?!function(){var n=r.buttonGenerator.createButton(t),i=r.buttonGenerator.getSize(),a=t.offset(),u={top:a.top+t[0].clientHeight,left:a.left+t[0].clientWidth},s=r.positioner.calculatePosition(a,u,i);t.after(n),n.attr(r.indexerAttr,o).css("visibility","hidden").show().offset(s).css("visibility","visible").hover(function(){return clearTimeout(n.attr(e))},function(){return n.attr(e,setTimeout(function(){t.removeClass("pinit-hover"),n.remove()},100))})}():clearTimeout(a.attr(e))}}),r.$(document).delegate(this.settings.image_selector,"mouseleave",function(){if(!r.logger.getFlag("prevent_hide")){var t=r.$(this),n=t.attr(r.indexerAttr);if(n){var o=i(n);o.attr(e,setTimeout(function(){t.removeClass("pinit-hover"),o.remove()},100))}}})}}]),e}(l["default"]);n["default"]=c},{"./show-strategy":9}],9:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=t("./image-filter"),a=i(o),u=t("./button-generator"),s=i(u),l=t("./positioner"),c=i(l),f=function h(t,e,n){r(this,h),this.$=t,this.settings=e,this.logger=n,this.imageFilter=new a["default"](e),this.buttonGenerator=new s["default"](t,e);var i={left:e.button_margin_left,top:e.button_margin_top,right:e.button_margin_right,bottom:e.button_margin_bottom};this.positioner=new c["default"](e.button_position,i),this.indexerAttr="data-jpibfi-indexer"};n["default"]=f},{"./button-generator":3,"./image-filter":4,"./positioner":7}],10:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}var r=t("./settings"),o=i(r),a=t("./debugger"),u=i(a),s=t("./hover"),l=i(s);!function(t){var e=function(){var e=window.jpibfi_options,n=new o["default"](t.extend({pageUrl:document.URL,pageTitle:document.title,pageDescription:t('meta[name="description"]').attr("content")||""},e.hover)),i=new u["default"]("jpibfi");window.jpibfi_debugger=i;var r=new l["default"](t,n,i);r.init()};t(document).ready(e)}(jQuery)},{"./debugger":2,"./hover":5,"./settings":11}],11:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function o(t){var e=this;i(this,o),Object.keys(t).forEach(function(n){e[n]=t[n]}),this.isTouchDevice="ontouchstart"in window||{}.hasOwnProperty.call(navigator,"maxTouchPoints")};n["default"]=r},{}]},{},[10]);
|
languages/jquery-pin-it-button-for-images.pot
CHANGED
@@ -27,7 +27,7 @@ msgstr ""
|
|
27 |
msgid "Thank you for updating to the latest version! %s helps your readers share your images using Pinterest."
|
28 |
msgstr ""
|
29 |
|
30 |
-
#: includes/admin/JPIBFI_Welcome_Screen.php:91, includes/admin/jpibfi-admin.php:
|
31 |
msgid "Settings"
|
32 |
msgstr ""
|
33 |
|
@@ -115,7 +115,7 @@ msgstr ""
|
|
115 |
msgid "If you're stuck and can't get the plugin to work the way you want it to, get help!"
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: includes/admin/JPIBFI_Welcome_Screen.php:209, includes/admin/jpibfi-admin.php:
|
119 |
msgid "Documentation"
|
120 |
msgstr ""
|
121 |
|
@@ -123,12 +123,12 @@ msgstr ""
|
|
123 |
msgid "If you are having difficulties with some aspects of the plugin, the first place to look for help is <a href=\"%s\" target=\"_blank\">the documentation</a> of the plugin. Chances are you will find what you are looking for there."
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: includes/admin/JPIBFI_Welcome_Screen.php:217, includes/admin/jpibfi-admin.php:
|
127 |
msgid "Support"
|
128 |
msgstr ""
|
129 |
|
130 |
#: includes/admin/JPIBFI_Welcome_Screen.php:221
|
131 |
-
msgid "Users of the
|
132 |
msgstr ""
|
133 |
|
134 |
#: includes/admin/JPIBFI_Welcome_Screen.php:233
|
@@ -136,21 +136,29 @@ msgid "Next steps"
|
|
136 |
msgstr ""
|
137 |
|
138 |
#: includes/admin/JPIBFI_Welcome_Screen.php:237
|
139 |
-
msgid "In most cases, the plugin is ready to go without any configuration.
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: includes/admin/jpibfi-admin.php:
|
143 |
msgid "Save Changes"
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: includes/admin/jpibfi-admin.php:
|
147 |
msgid "Saving changes ..."
|
148 |
msgstr ""
|
149 |
|
150 |
-
#: includes/admin/jpibfi-admin.php:
|
151 |
msgid "jQuery Pin It Button For Images Options"
|
152 |
msgstr ""
|
153 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
#: includes/admin/settings/jpibfi-advanced-settings.php:25
|
155 |
msgid "Filters"
|
156 |
msgstr ""
|
@@ -215,78 +223,6 @@ msgstr ""
|
|
215 |
msgid "Import Settings"
|
216 |
msgstr ""
|
217 |
|
218 |
-
#: includes/admin/settings/jpibfi-license-settings.php:73, includes/admin/settings/jpibfi-license-settings.php:139, includes/admin/settings/jpibfi-license-settings.php:189
|
219 |
-
msgid "An error occurred, please try again."
|
220 |
-
msgstr ""
|
221 |
-
|
222 |
-
#: includes/admin/settings/jpibfi-license-settings.php:97
|
223 |
-
msgid "Your license key expired on %s."
|
224 |
-
msgstr ""
|
225 |
-
|
226 |
-
#: includes/admin/settings/jpibfi-license-settings.php:107
|
227 |
-
msgid "Your license key has been disabled."
|
228 |
-
msgstr ""
|
229 |
-
|
230 |
-
#: includes/admin/settings/jpibfi-license-settings.php:113
|
231 |
-
msgid "Invalid license."
|
232 |
-
msgstr ""
|
233 |
-
|
234 |
-
#: includes/admin/settings/jpibfi-license-settings.php:121
|
235 |
-
msgid "Your license is not active for this URL."
|
236 |
-
msgstr ""
|
237 |
-
|
238 |
-
#: includes/admin/settings/jpibfi-license-settings.php:127
|
239 |
-
msgid "This appears to be an invalid license key for %s."
|
240 |
-
msgstr ""
|
241 |
-
|
242 |
-
#: includes/admin/settings/jpibfi-license-settings.php:133
|
243 |
-
msgid "Your license key has reached its activation limit."
|
244 |
-
msgstr ""
|
245 |
-
|
246 |
-
#: includes/admin/settings/jpibfi-license-settings.php:165
|
247 |
-
msgid "License Activated."
|
248 |
-
msgstr ""
|
249 |
-
|
250 |
-
#: includes/admin/settings/jpibfi-license-settings.php:221
|
251 |
-
msgid "License deactivated."
|
252 |
-
msgstr ""
|
253 |
-
|
254 |
-
#: includes/admin/settings/jpibfi-license-settings.php:225
|
255 |
-
msgid "License deactivation failed."
|
256 |
-
msgstr ""
|
257 |
-
|
258 |
-
#: includes/admin/settings/jpibfi-license-settings.php:277
|
259 |
-
msgid "Plugin License"
|
260 |
-
msgstr ""
|
261 |
-
|
262 |
-
#: includes/admin/settings/jpibfi-license-settings.php:279
|
263 |
-
msgid "Action"
|
264 |
-
msgstr ""
|
265 |
-
|
266 |
-
#: includes/admin/settings/jpibfi-license-settings.php:281
|
267 |
-
msgid "Activate License"
|
268 |
-
msgstr ""
|
269 |
-
|
270 |
-
#: includes/admin/settings/jpibfi-license-settings.php:285
|
271 |
-
msgid "Deactivate License"
|
272 |
-
msgstr ""
|
273 |
-
|
274 |
-
#: includes/admin/settings/jpibfi-license-settings.php:289
|
275 |
-
msgid "License active"
|
276 |
-
msgstr ""
|
277 |
-
|
278 |
-
#: includes/admin/settings/jpibfi-license-settings.php:305
|
279 |
-
msgid "License"
|
280 |
-
msgstr ""
|
281 |
-
|
282 |
-
#: includes/admin/settings/jpibfi-license-settings.php:391
|
283 |
-
msgid "Expires %s"
|
284 |
-
msgstr ""
|
285 |
-
|
286 |
-
#: includes/admin/settings/jpibfi-license-settings.php:407
|
287 |
-
msgid "License Key"
|
288 |
-
msgstr ""
|
289 |
-
|
290 |
#: includes/admin/settings/jpibfi-selection-settings.php:27
|
291 |
msgid "jQuery Pin It Button for Images Settings"
|
292 |
msgstr ""
|
27 |
msgid "Thank you for updating to the latest version! %s helps your readers share your images using Pinterest."
|
28 |
msgstr ""
|
29 |
|
30 |
+
#: includes/admin/JPIBFI_Welcome_Screen.php:91, includes/admin/jpibfi-admin.php:79, includes/admin/settings/jpibfi-visual-settings.php:39
|
31 |
msgid "Settings"
|
32 |
msgstr ""
|
33 |
|
115 |
msgid "If you're stuck and can't get the plugin to work the way you want it to, get help!"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: includes/admin/JPIBFI_Welcome_Screen.php:209, includes/admin/jpibfi-admin.php:211
|
119 |
msgid "Documentation"
|
120 |
msgstr ""
|
121 |
|
123 |
msgid "If you are having difficulties with some aspects of the plugin, the first place to look for help is <a href=\"%s\" target=\"_blank\">the documentation</a> of the plugin. Chances are you will find what you are looking for there."
|
124 |
msgstr ""
|
125 |
|
126 |
+
#: includes/admin/JPIBFI_Welcome_Screen.php:217, includes/admin/jpibfi-admin.php:219
|
127 |
msgid "Support"
|
128 |
msgstr ""
|
129 |
|
130 |
#: includes/admin/JPIBFI_Welcome_Screen.php:221
|
131 |
+
msgid "Users of the free version of the plugin can find support <a href=\"%s\" target=\"_blank\">in the support forum</a>. When posting to the support forum, make sure you include the URL of your website."
|
132 |
msgstr ""
|
133 |
|
134 |
#: includes/admin/JPIBFI_Welcome_Screen.php:233
|
136 |
msgstr ""
|
137 |
|
138 |
#: includes/admin/JPIBFI_Welcome_Screen.php:237
|
139 |
+
msgid "In most cases, the plugin is ready to go without any configuration. If there is anything you would like to change, go to the <a href=\"%s\">Settings panel</a>."
|
140 |
msgstr ""
|
141 |
|
142 |
+
#: includes/admin/jpibfi-admin.php:253, includes/admin/settings/jpibfi-settings-base.php:59
|
143 |
msgid "Save Changes"
|
144 |
msgstr ""
|
145 |
|
146 |
+
#: includes/admin/jpibfi-admin.php:265
|
147 |
msgid "Saving changes ..."
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: includes/admin/jpibfi-admin.php:321
|
151 |
msgid "jQuery Pin It Button For Images Options"
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: includes/admin/jpibfi-admin.php:327
|
155 |
+
msgid "If you cannot see the settings page, <a href=\"%s\" target=\"_blank\">click here</a>"
|
156 |
+
msgstr ""
|
157 |
+
|
158 |
+
#: includes/admin/jpibfi-admin.php:379
|
159 |
+
msgid "jQuery Pin It Button for Images Pro is available. <a class=\"button button-primary\" href=\"%1$s\" target=\"_blank\">Check it out →</a>"
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
#: includes/admin/settings/jpibfi-advanced-settings.php:25
|
163 |
msgid "Filters"
|
164 |
msgstr ""
|
223 |
msgid "Import Settings"
|
224 |
msgstr ""
|
225 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
#: includes/admin/settings/jpibfi-selection-settings.php:27
|
227 |
msgid "jQuery Pin It Button for Images Settings"
|
228 |
msgstr ""
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: mrsztuczkens, redearthdesign, brocheafoin, robertark
|
|
3 |
Tags: pinterest, pin it, button, image, images, pinit, social media, hover, click, photo, photos
|
4 |
Requires at least: 3.3.0
|
5 |
Tested up to: 4.6.1
|
6 |
-
Stable tag: 2.
|
7 |
License: GPLv2 or later
|
8 |
|
9 |
Highlights images on hover and adds a Pinterest "Pin It" button over them for easy pinning.
|
@@ -68,6 +68,11 @@ Please report them in the plugin's support forum on Wordpress.org.
|
|
68 |
|
69 |
== Changelog ==
|
70 |
|
|
|
|
|
|
|
|
|
|
|
71 |
= 2.2.10 =
|
72 |
* Released 2017-04-21
|
73 |
* Minor JavaScript improvements
|
@@ -325,6 +330,9 @@ Please report them in the plugin's support forum on Wordpress.org.
|
|
325 |
|
326 |
== Upgrade Notice ==
|
327 |
|
|
|
|
|
|
|
328 |
= 2.2.10 =
|
329 |
* Minor JavaScript improvements
|
330 |
|
3 |
Tags: pinterest, pin it, button, image, images, pinit, social media, hover, click, photo, photos
|
4 |
Requires at least: 3.3.0
|
5 |
Tested up to: 4.6.1
|
6 |
+
Stable tag: 2.3.0
|
7 |
License: GPLv2 or later
|
8 |
|
9 |
Highlights images on hover and adds a Pinterest "Pin It" button over them for easy pinning.
|
68 |
|
69 |
== Changelog ==
|
70 |
|
71 |
+
= 2.3.0 =
|
72 |
+
* Released 2017-06-03
|
73 |
+
* Moved client script to footer
|
74 |
+
* Added warning if settings page does not work
|
75 |
+
|
76 |
= 2.2.10 =
|
77 |
* Released 2017-04-21
|
78 |
* Minor JavaScript improvements
|
330 |
|
331 |
== Upgrade Notice ==
|
332 |
|
333 |
+
= 2.3.0 =
|
334 |
+
* Moved client script to footer, added warning for settings page error
|
335 |
+
|
336 |
= 2.2.10 =
|
337 |
* Minor JavaScript improvements
|
338 |
|