jQuery Pin It Button for Images - Version 1.60

Version Description

  • Release 2016-07-04
  • Added lightbox feature
Download this release

Release Info

Developer mrsztuczkens
Plugin Icon wp plugin jQuery Pin It Button for Images
Version 1.60
Comparing to
See all releases

Code changes from version 1.52 to 1.60

css/colorbox.css ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Colorbox Core Style:
3
+ The following CSS is consistent between example themes and should not be altered.
4
+ */
5
+ #colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden; -webkit-transform: translate3d(0,0,0);}
6
+ #cboxWrapper {max-width:none;}
7
+ #cboxOverlay{position:fixed; width:100%; height:100%;}
8
+ #cboxMiddleLeft, #cboxBottomLeft{clear:left;}
9
+ #cboxContent{position:relative;}
10
+ #cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
11
+ #cboxTitle{margin:0;}
12
+ #cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
13
+ #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
14
+ .cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
15
+ .cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
16
+ #colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
17
+
18
+ /*
19
+ User Style:
20
+ Change the following styles to modify the appearance of Colorbox. They are
21
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
22
+ */
23
+ #cboxOverlay{background:url(images/overlay.png) repeat 0 0;}
24
+ #colorbox{outline:0;}
25
+ #cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px 0;}
26
+ #cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px 0;}
27
+ #cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px -29px;}
28
+ #cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px -29px;}
29
+ #cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;}
30
+ #cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;}
31
+ #cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;}
32
+ #cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;}
33
+ #cboxContent{background:#fff; overflow:hidden;}
34
+ .cboxIframe{background:#fff;}
35
+ #cboxError{padding:50px; border:1px solid #ccc;}
36
+ #cboxLoadedContent{margin-bottom:28px;}
37
+ #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
38
+ #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
39
+ #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
40
+ #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
41
+
42
+ /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
43
+ #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
44
+
45
+ /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
46
+ #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
47
+
48
+ #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
49
+ #cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
50
+ #cboxPrevious:hover{background-position:-75px -25px;}
51
+ #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
52
+ #cboxNext:hover{background-position:-50px -25px;}
53
+ #cboxClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
54
+ #cboxClose:hover{background-position:-25px -25px;}
55
+
56
+ /*
57
+ The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
58
+ when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
59
+ See: http://jacklmoore.com/notes/ie-transparency-problems/
60
+ */
61
+ .cboxIE #cboxTopLeft,
62
+ .cboxIE #cboxTopCenter,
63
+ .cboxIE #cboxTopRight,
64
+ .cboxIE #cboxBottomLeft,
65
+ .cboxIE #cboxBottomCenter,
66
+ .cboxIE #cboxBottomRight,
67
+ .cboxIE #cboxMiddleLeft,
68
+ .cboxIE #cboxMiddleRight {
69
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
70
+ }
css/images/border.png ADDED
Binary file
css/images/controls.png ADDED
Binary file
css/images/loading.gif ADDED
Binary file
css/images/loading_background.png ADDED
Binary file
css/images/overlay.png ADDED
Binary file
includes/admin/class-jpibfi-admin.php CHANGED
@@ -93,6 +93,10 @@ class JPIBFI_Admin {
93
  'import_export' => array(
94
  'settings_name' => 'jpibfi_import_export_options',
95
  'tab_label' => __('Import/Export', 'jquery-pin-it-button-for-images')
 
 
 
 
96
  )
97
  );
98
 
@@ -164,7 +168,7 @@ class JPIBFI_Admin {
164
  $show_close = 'plugins.php' == $hook_suffix;
165
  ?>
166
  <div class="updated jpibfi-pro-notice">
167
- <p><?php echo sprintf(__('jQuery Pin It Button for Images Pro is coming soon. Click <a target="_blank" href="%s">here</a> to learn more.', 'jquery-pin-it-button-for-images'), 'http://mrsztuczkens.me/jpibfi-pro/'); ?></p>
168
  <?php if ($show_close): ?><span id="jpibfi_remove_ad" class="dashicons dashicons-no"></span><?php endif; ?>
169
  </div>
170
  <?php
93
  'import_export' => array(
94
  'settings_name' => 'jpibfi_import_export_options',
95
  'tab_label' => __('Import/Export', 'jquery-pin-it-button-for-images')
96
+ ),
97
+ 'lightbox' => array(
98
+ 'settings_name' => 'jpibfi_lightbox_options',
99
+ 'tab_label' => __('Lightbox', 'jquery-pin-it-button-for-images')
100
  )
101
  );
102
 
168
  $show_close = 'plugins.php' == $hook_suffix;
169
  ?>
170
  <div class="updated jpibfi-pro-notice">
171
+ <p><?php echo sprintf(__('jQuery Pin It Button for Images Pro is available. Click <a target="_blank" href="%s">here</a> to learn more.', 'jquery-pin-it-button-for-images'), 'http://mrsztuczkens.me/jpibfi-pro/'); ?></p>
172
  <?php if ($show_close): ?><span id="jpibfi_remove_ad" class="dashicons dashicons-no"></span><?php endif; ?>
173
  </div>
174
  <?php
includes/admin/class-jpibfi-lightbox-options.php ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class JPIBFI_Lightbox_Options extends JPIBFI_Options {
4
+
5
+ protected static $instance = null;
6
+
7
+ protected $admin_advanced_options = null;
8
+
9
+ private function __construct() {
10
+ add_action( 'admin_init', array( $this, 'init' ) );
11
+ }
12
+
13
+ public static function get_instance() {
14
+ // If the single instance hasn't been set, set it now.
15
+ if ( null == self::$instance ) {
16
+ self::$instance = new self;
17
+ }
18
+
19
+ return self::$instance;
20
+ }
21
+
22
+ function get_default_options(){
23
+ $defaults = array(
24
+ 'enabled' => '0',
25
+ 'description_option' => '1'
26
+ );
27
+
28
+ return apply_filters( 'jpibfi_default_lightbox_options', $defaults );
29
+ }
30
+
31
+ static function get_option_name(){
32
+ return 'jpibfi_lightbox_options';
33
+ }
34
+
35
+ /* Defines selection options section and adds all required fields */
36
+ public function init() {
37
+
38
+ // First, we register a section.
39
+ add_settings_section(
40
+ 'lightbox_options_section',
41
+ __( 'Lightbox Settings', 'jquery-pin-it-button-for-images' ),
42
+ array( $this, 'section_name_callback' ),
43
+ 'jpibfi_lightbox_options'
44
+ );
45
+
46
+ add_settings_field(
47
+ 'enabled',
48
+ __( 'Enabled', 'jquery-pin-it-button-for-images' ),
49
+ array( $this, 'enabled_callback' ),
50
+ 'jpibfi_lightbox_options',
51
+ 'lightbox_options_section',
52
+ array(
53
+ __( 'Activate lightbox in posts', 'jquery-pin-it-button-for-images' )
54
+ )
55
+ );
56
+
57
+ add_settings_field(
58
+ 'description_option',
59
+ __( 'Description source', 'jquery-pin-it-button-for-images' ),
60
+ array( $this, 'description_option_callback' ),
61
+ 'jpibfi_lightbox_options',
62
+ 'lightbox_options_section',
63
+ array(
64
+ __( 'From where the lightbox description should be taken. Please note that "Image description" works properly only for images that were added to your Media Library.', 'jquery-pin-it-button-for-images' ),
65
+ )
66
+ );
67
+
68
+ add_settings_field(
69
+ 'footer',
70
+ '',
71
+ array( $this, 'footer_callback' ),
72
+ 'jpibfi_lightbox_options',
73
+ 'lightbox_options_section',
74
+ array(
75
+ __( 'Lightbox module uses Colorbox. Visit <a href="http://www.jacklmoore.com/colorbox/" target="_blank">this page</a> to learn more about Colorbox.', 'jquery-pin-it-button-for-images' ),
76
+ )
77
+ );
78
+
79
+ register_setting(
80
+ 'jpibfi_lightbox_options',
81
+ 'jpibfi_lightbox_options'
82
+ );
83
+ }
84
+
85
+ public function section_name_callback() {
86
+ echo '<p>' . __('Lightbox settings', 'jquery-pin-it-button-for-images') . '</p>';
87
+ }
88
+
89
+ public function enabled_callback( $args ){
90
+ $options = $this->get_options();
91
+ $enabled = JPIBFI_Admin_Utilities::exists_and_equal_to( $options, 'enabled', '1' );
92
+
93
+ echo '<input type="checkbox" id="debug" name="jpibfi_lightbox_options[enabled]" value="1" ' . checked( "1", $enabled, false ) . '>';
94
+ echo JPIBFI_Admin_Utilities::create_description( $args[0] );
95
+ }
96
+
97
+ public function description_option_callback( $args ) {
98
+ $options = $this->get_options();
99
+
100
+ $description_option = $options[ 'description_option' ];
101
+ ?>
102
+
103
+ <select id="description_option" name="jpibfi_lightbox_options[description_option]">
104
+ <option value="1" <?php selected ( "1", $description_option ); ?>><?php _e( 'Page title', 'jquery-pin-it-button-for-images' ); ?></option>
105
+ <option value="2" <?php selected ( "2", $description_option ); ?>><?php _e( 'Page description (excerpt)', 'jquery-pin-it-button-for-images' ); ?></option>
106
+ <option value="3" <?php selected ( "3", $description_option ); ?>><?php _e( 'Image title or (if title not available) alt attribute', 'jquery-pin-it-button-for-images' ); ?></option>
107
+ <option value="4" <?php selected ( "4", $description_option ); ?>><?php _e( 'Site title (Settings->General)', 'jquery-pin-it-button-for-images' ); ?></option>
108
+ <option value="5" <?php selected ( "5", $description_option ); ?>><?php _e( 'Image description', 'jquery-pin-it-button-for-images' ); ?></option>
109
+ <option value="6" <?php selected ( "6", $description_option ); ?>><?php _e( 'Image alt attribute', 'jquery-pin-it-button-for-images' ); ?></option>
110
+ </select>
111
+
112
+ <?php
113
+ echo JPIBFI_Admin_Utilities::create_description( $args[0] );
114
+ }
115
+
116
+ public function footer_callback($args){
117
+ echo '<span style="font-size: 18px">' . $args[0] . '</span>';
118
+ }
119
+ }
120
+
121
+ add_action( 'plugins_loaded', array( 'JPIBFI_Lightbox_Options', 'get_instance' ) );
includes/admin/class-jpibfi-visual-options.php CHANGED
@@ -215,8 +215,8 @@ class JPIBFI_Visual_Options extends JPIBFI_Options {
215
 
216
  <select id="description_option" name="jpibfi_visual_options[description_option]">
217
  <option value="1" <?php selected ( "1", $description_option ); ?>><?php _e( 'Page title', 'jquery-pin-it-button-for-images' ); ?></option>
218
- <option value="2" <?php selected ( "2", $description_option ); ?>><?php _e( 'Page description', 'jquery-pin-it-button-for-images' ); ?></option>
219
- <option value="3" <?php selected ( "3", $description_option ); ?>><?php _e( 'Picture title or (if title not available) alt attribute', 'jquery-pin-it-button-for-images' ); ?></option>
220
  <option value="4" <?php selected ( "4", $description_option ); ?>><?php _e( 'Site title (Settings->General)', 'jquery-pin-it-button-for-images' ); ?></option>
221
  <option value="5" <?php selected ( "5", $description_option ); ?>><?php _e( 'Image description', 'jquery-pin-it-button-for-images' ); ?></option>
222
  <option value="6" <?php selected ( "6", $description_option ); ?>><?php _e( 'Image alt attribute', 'jquery-pin-it-button-for-images' ); ?></option>
215
 
216
  <select id="description_option" name="jpibfi_visual_options[description_option]">
217
  <option value="1" <?php selected ( "1", $description_option ); ?>><?php _e( 'Page title', 'jquery-pin-it-button-for-images' ); ?></option>
218
+ <option value="2" <?php selected ( "2", $description_option ); ?>><?php _e( 'Page description (excerpt)', 'jquery-pin-it-button-for-images' ); ?></option>
219
+ <option value="3" <?php selected ( "3", $description_option ); ?>><?php _e( 'Image title or (if title not available) alt attribute', 'jquery-pin-it-button-for-images' ); ?></option>
220
  <option value="4" <?php selected ( "4", $description_option ); ?>><?php _e( 'Site title (Settings->General)', 'jquery-pin-it-button-for-images' ); ?></option>
221
  <option value="5" <?php selected ( "5", $description_option ); ?>><?php _e( 'Image description', 'jquery-pin-it-button-for-images' ); ?></option>
222
  <option value="6" <?php selected ( "6", $description_option ); ?>><?php _e( 'Image alt attribute', 'jquery-pin-it-button-for-images' ); ?></option>
includes/consts/jpibfi-description-option.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ abstract class JPIBFIDescriptionOption
4
+ {
5
+ const PageTitle = 1;
6
+ const PageDescription = 2;
7
+ const ImageTitleOrAlt = 3;
8
+ const SiteTitle = 4;
9
+ const ImageDescription = 5;
10
+ const ImageAlt = 6;
11
+ }
includes/public/class-jpibfi-client.php CHANGED
@@ -9,8 +9,13 @@ class JPIBFI_Client {
9
  private function __construct() {
10
  add_action( 'wp_enqueue_scripts', array( $this, 'add_plugin_scripts' ) );
11
  add_action( 'wp_head', array( $this, 'print_header_style' ) );
12
- add_filter( "the_content", array( $this, 'prepare_the_content' ), 9999 );
13
  add_filter( "the_excerpt", array( $this, 'prepare_the_content' ), 9999 );
 
 
 
 
 
 
14
  }
15
 
16
  public static function get_instance() {
@@ -27,10 +32,20 @@ class JPIBFI_Client {
27
  $jpibfi_adanced_options = JPIBFI_Advanced_Options::get_instance()->get_options();
28
  $jpibfi_selection_options = JPIBFI_Selection_Options::get_instance()->get_options();
29
  $jpibfi_visual_options = JPIBFI_Visual_Options::get_instance()->get_options();
 
30
 
31
  if ( ! ( JPIBFI_Client_Utilities::add_jpibfi() ) )
32
  return;
33
- wp_enqueue_script( 'jquery-pin-it-button-script', JPIBFI_Globals::get_plugin_url() . 'js/jpibfi.js', array( 'jquery' ), JPIBFI_Globals::get_file_version(), false );
 
 
 
 
 
 
 
 
 
34
 
35
  $use_custom_image = $jpibfi_visual_options[ 'use_custom_image' ] == "1";
36
 
@@ -56,9 +71,14 @@ class JPIBFI_Client {
56
  'showButton' => $jpibfi_visual_options['show_button'],
57
  'pinLinkedImages' => $jpibfi_visual_options['pinLinkedImages'] == '1',
58
  'pinLinkedImagesExtensions' => $jpibfi_visual_options['pinLinkedImagesExtensions'],
 
 
 
 
59
  );
60
-
61
  wp_localize_script( 'jquery-pin-it-button-script', 'jpibfi_options', apply_filters( 'jpibfi_javascript_parameters', $parameters_array ) );
 
 
62
  }
63
 
64
  public function print_header_style() {
@@ -110,17 +130,16 @@ class JPIBFI_Client {
110
  return $content;
111
 
112
  $jpibfi_visual_options = JPIBFI_Visual_Options::get_instance()->get_options();
 
113
 
114
  global $post;
115
 
116
- $add_attributes = false == is_singular() && '1' == $jpibfi_visual_options[ 'use_post_url' ];
117
-
118
  $attributes_html = '';
119
 
120
  //if we need to add additional attributes to handle use_post_url setting
121
- if ( $add_attributes ){
122
  //if page description should be used as pin description and an excerpt for the post exists
123
- if ( has_excerpt( $post->ID ) && 2 == $jpibfi_visual_options[ 'description_option' ] )
124
  $description = wp_kses( $post->post_excerpt, array() );
125
  else
126
  $description = get_the_title($post->ID);
@@ -132,7 +151,7 @@ class JPIBFI_Client {
132
  $input_html = '<input class="jpibfi" type="hidden" ' . $attributes_html . '>';
133
  $content = $input_html . $content;
134
 
135
- $add_image_descriptions = '5' == $jpibfi_visual_options[ 'description_option' ];
136
 
137
  //if we need to add data-jpibfi-description to each image
138
  if ( $add_image_descriptions ){
@@ -142,6 +161,35 @@ class JPIBFI_Client {
142
  return $content;
143
  }
144
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  /* PRIVATE METHODS */
146
 
147
  /*
9
  private function __construct() {
10
  add_action( 'wp_enqueue_scripts', array( $this, 'add_plugin_scripts' ) );
11
  add_action( 'wp_head', array( $this, 'print_header_style' ) );
 
12
  add_filter( "the_excerpt", array( $this, 'prepare_the_content' ), 9999 );
13
+ add_filter( "the_content", array( $this, 'prepare_the_content' ), 9999 );
14
+
15
+ $lightbox_options = JPIBFI_Lightbox_Options::get_instance()->get_options();
16
+ if ($lightbox_options['enabled'] == '1') {
17
+ add_filter("the_content", array($this, 'add_lightbox'), 9998);
18
+ }
19
  }
20
 
21
  public static function get_instance() {
32
  $jpibfi_adanced_options = JPIBFI_Advanced_Options::get_instance()->get_options();
33
  $jpibfi_selection_options = JPIBFI_Selection_Options::get_instance()->get_options();
34
  $jpibfi_visual_options = JPIBFI_Visual_Options::get_instance()->get_options();
35
+ $lightbox_options = JPIBFI_Lightbox_Options::get_instance()->get_options();
36
 
37
  if ( ! ( JPIBFI_Client_Utilities::add_jpibfi() ) )
38
  return;
39
+
40
+ $deps = array('jquery');
41
+
42
+ if ($lightbox_options['enabled'] == '1') {
43
+ wp_enqueue_script('jquery-colorbox', JPIBFI_Globals::get_plugin_url() . 'js/jquery.colorbox-min.js', array('jquery'), JPIBFI_Globals::get_file_version(), false);
44
+ wp_enqueue_style('jquery-colorbox', JPIBFI_Globals::get_plugin_url() . 'css/colorbox.css', array(), JPIBFI_Globals::get_file_version());
45
+ $deps[] = 'jquery-colorbox';
46
+ }
47
+
48
+ wp_enqueue_script( 'jquery-pin-it-button-script', JPIBFI_Globals::get_plugin_url() . 'js/jpibfi.js', $deps, JPIBFI_Globals::get_file_version(), false );
49
 
50
  $use_custom_image = $jpibfi_visual_options[ 'use_custom_image' ] == "1";
51
 
71
  'showButton' => $jpibfi_visual_options['show_button'],
72
  'pinLinkedImages' => $jpibfi_visual_options['pinLinkedImages'] == '1',
73
  'pinLinkedImagesExtensions' => $jpibfi_visual_options['pinLinkedImagesExtensions'],
74
+ 'lightbox' => array(
75
+ 'enabled' => $lightbox_options['enabled'] == '1',
76
+ 'descriptionOption' => $lightbox_options['description_option']
77
+ )
78
  );
 
79
  wp_localize_script( 'jquery-pin-it-button-script', 'jpibfi_options', apply_filters( 'jpibfi_javascript_parameters', $parameters_array ) );
80
+
81
+
82
  }
83
 
84
  public function print_header_style() {
130
  return $content;
131
 
132
  $jpibfi_visual_options = JPIBFI_Visual_Options::get_instance()->get_options();
133
+ $lightbox_options = JPIBFI_Lightbox_Options::get_instance()->get_options();
134
 
135
  global $post;
136
 
 
 
137
  $attributes_html = '';
138
 
139
  //if we need to add additional attributes to handle use_post_url setting
140
+ if ( !is_singular() && '1' == $jpibfi_visual_options[ 'use_post_url' ] ){
141
  //if page description should be used as pin description and an excerpt for the post exists
142
+ if ( has_excerpt( $post->ID ) && (JPIBFIDescriptionOption::PageDescription == $jpibfi_visual_options[ 'description_option' ] || JPIBFIDescriptionOption::PageDescription == $lightbox_options[ 'description_option' ]))
143
  $description = wp_kses( $post->post_excerpt, array() );
144
  else
145
  $description = get_the_title($post->ID);
151
  $input_html = '<input class="jpibfi" type="hidden" ' . $attributes_html . '>';
152
  $content = $input_html . $content;
153
 
154
+ $add_image_descriptions = JPIBFIDescriptionOption::ImageDescription == $jpibfi_visual_options[ 'description_option' ] || JPIBFIDescriptionOption::ImageDescription == $lightbox_options[ 'description_option' ];
155
 
156
  //if we need to add data-jpibfi-description to each image
157
  if ( $add_image_descriptions ){
161
  return $content;
162
  }
163
 
164
+ public function add_lightbox( $content ){
165
+ if ( ! JPIBFI_Client_Utilities::add_jpibfi() )
166
+ return $content;
167
+
168
+ global $post;
169
+ // universal IMG-Tag pattern matches everything between "<img" and the closing "(/)>"
170
+ // will be used to match all IMG-Tags in Content.
171
+ $imgPattern = "/<img([^\>]*?)>/i";
172
+ if (preg_match_all($imgPattern, $content, $imgTags)) {
173
+ foreach ($imgTags[0] as $imgTag) {
174
+ // only work on imgTags that do not already contain the string "colorbox-"
175
+ if (!preg_match('/jpibfi-group-/i', $imgTag)) {
176
+ if (!preg_match('/class=/i', $imgTag)) {
177
+ // imgTag does not contain class-attribute
178
+ $pattern = $imgPattern;
179
+ $replacement = '<img class="jpibfi-group-' . $post->ID . '" $1>';
180
+ } else {
181
+ // imgTag already contains class-attribute
182
+ $pattern = "/<img(.*?)class=('|\")([A-Za-z0-9 \/_\.\~\:-]*?)('|\")([^\>]*?)>/i";
183
+ $replacement = '<img$1class=$2$3 jpibfi-group-' . $post->ID . '$4$5>';
184
+ }
185
+ $replacedImgTag = preg_replace($pattern, $replacement, $imgTag);
186
+ $content = str_replace($imgTag, $replacedImgTag, $content);
187
+ }
188
+ }
189
+ }
190
+ return $content;
191
+ }
192
+
193
  /* PRIVATE METHODS */
194
 
195
  /*
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:1.52
10
  Author URI: http://mrsztuczkens.me/
11
  */
12
 
@@ -42,14 +42,16 @@ if ( ! class_exists( 'jQuery_Pin_It_Button_For_Images' ) ) :
42
  private function includes() {
43
 
44
  require_once(plugin_dir_path(__FILE__) . 'includes/class-jpibfi-globals.php');
45
- JPIBFI_Globals::init(__FILE__, '1.52', 'a');
46
 
47
  $files = array(
 
48
  'includes/admin/class-jpibfi-admin-utilities.php',
49
  'includes/admin/class-jpibfi-options.php',
50
  'includes/admin/class-jpibfi-selection-options.php',
51
  'includes/admin/class-jpibfi-advanced-options.php',
52
  'includes/admin/class-jpibfi-visual-options.php',
 
53
  'includes/admin/class-jpibfi-admin.php',
54
  'includes/admin/class-jpibfi-import-export.php',
55
  'includes/public/class-jpibfi-client-utilities.php',
6
  Text Domain: jquery-pin-it-button-for-images
7
  Domain Path: /languages
8
  Author: Marcin Skrzypiec
9
+ Version:1.60
10
  Author URI: http://mrsztuczkens.me/
11
  */
12
 
42
  private function includes() {
43
 
44
  require_once(plugin_dir_path(__FILE__) . 'includes/class-jpibfi-globals.php');
45
+ JPIBFI_Globals::init(__FILE__, '1.60', 'a');
46
 
47
  $files = array(
48
+ 'includes/consts/jpibfi-description-option.php',
49
  'includes/admin/class-jpibfi-admin-utilities.php',
50
  'includes/admin/class-jpibfi-options.php',
51
  'includes/admin/class-jpibfi-selection-options.php',
52
  'includes/admin/class-jpibfi-advanced-options.php',
53
  'includes/admin/class-jpibfi-visual-options.php',
54
+ 'includes/admin/class-jpibfi-lightbox-options.php',
55
  'includes/admin/class-jpibfi-admin.php',
56
  'includes/admin/class-jpibfi-import-export.php',
57
  'includes/public/class-jpibfi-client-utilities.php',
js/jpibfi.js CHANGED
@@ -1 +1 @@
1
- var jpibfi;!function(jpibfi){!function(ButtonPosition){ButtonPosition[ButtonPosition.TopLeft=0]="TopLeft",ButtonPosition[ButtonPosition.TopRight=1]="TopRight",ButtonPosition[ButtonPosition.BottomLeft=2]="BottomLeft",ButtonPosition[ButtonPosition.BottomRight=3]="BottomRight",ButtonPosition[ButtonPosition.Middle=4]="Middle"}(jpibfi.ButtonPosition||(jpibfi.ButtonPosition={}));jpibfi.ButtonPosition;!function(ShowButton){ShowButton[ShowButton.Hover=0]="Hover",ShowButton[ShowButton.AlwaysTouch=1]="AlwaysTouch",ShowButton[ShowButton.Always=2]="Always"}(jpibfi.ShowButton||(jpibfi.ShowButton={}));jpibfi.ShowButton}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){var PinButtonGenerator=function(){function PinButtonGenerator($,settings,logger){this.$=$,this.settings=settings,this.logger=logger}return PinButtonGenerator.prototype.cancelHide=function($button){clearTimeout($button.data("jpibfi-timeoutId"))},PinButtonGenerator.prototype.hide=function($button,callback){void 0===callback&&(callback=function(){});var timeoutId=($button.data("jpibfi-indexer"),setTimeout(function(){$button.remove(),callback.call(null,null)},100));$button.data("jpibfi-timeoutId",timeoutId)},PinButtonGenerator.prototype.generateForImage=function($image){var indexer=$image.data("jpibfi-indexer"),$anchor=this.$("<a/>",{href:"#","class":"pinit-button","data-jpibfi-indexer":indexer,text:""}),that=this;$anchor.click(function(){var $this=that.$(this);that.logger.logString("Pin In button clicked");var index=that.$(this).data("jpibfi-indexer"),$image=that.$('img[data-jpibfi-indexer="'+index+'"]'),bookmarkDescription="",descriptionForUrl="",bookmarkUrl="";if(that.settings.usePostUrl){var $inputWithData=$image.closest(".jpibfi_container").find("input.jpibfi").first();$inputWithData.length&&(descriptionForUrl=$inputWithData.data("jpibfi-description"),bookmarkUrl=$inputWithData.data("jpibfi-url"))}bookmarkUrl=bookmarkUrl||that.settings.pageUrl,3==that.settings.descriptionOption?bookmarkDescription=$image.attr("title")||$image.attr("alt"):2==that.settings.descriptionOption?bookmarkDescription=descriptionForUrl||that.settings.pageDescription:4==that.settings.descriptionOption?bookmarkDescription=that.settings.siteTitle:5==that.settings.descriptionOption?bookmarkDescription=$image.data("jpibfi-description"):6==that.settings.descriptionOption&&(bookmarkDescription=$image.attr("alt")),bookmarkDescription=bookmarkDescription||descriptionForUrl||that.settings.pageTitle;var imageUrl="http://pinterest.com/pin/create/bookmarklet/?is_video="+encodeURIComponent("false")+"&url="+encodeURIComponent(bookmarkUrl)+"&media="+encodeURIComponent(that.getImageUrl($image))+"&description="+encodeURIComponent(bookmarkDescription);return that.settings.isTouchDevice?($this.attr("href",imageUrl).attr("target","_blank"),!0):(window.open(imageUrl,"_blank","width=632,height=253,status=0,toolbar=0,menubar=0,location=1,scrollbars=1"),!1)});var position=that.calculateButtonPosition($image);return $image.after($anchor),$anchor.css("visibility","hidden").show().offset({left:position.left,top:position.top}).css("visibility","visible"),$anchor},PinButtonGenerator.prototype.getImageUrl=function($elem){var defaultUrl=this.$.fn.prop&&$elem.prop("src")||$elem.attr("src");return this.settings.pinLinkedImages?this.getLinkedImageUrl($elem)||defaultUrl:defaultUrl},PinButtonGenerator.prototype.getLinkedImageUrl=function($element){var $parent=$element.parents("a").first();if($parent.length){var href=$parent.attr("href"),useUrl=!!href&&this.fileExtensionAllowed(this.getFileExtension(href),this.settings.pinLinkedImagesExtensions);if(useUrl)return href}return null},PinButtonGenerator.prototype.getFileExtension=function(url){var parts=url.split(".");return 1==parts.length?"":parts.pop().split(/\#|\?/)[0]},PinButtonGenerator.prototype.fileExtensionAllowed=function(extension,listOfExtensions){if(!listOfExtensions.length)return!0;for(var extensions=listOfExtensions.split(","),i=0;i<extensions.length;i++)if(extensions[i]==extension)return!0;return!1},PinButtonGenerator.prototype.urlInCurrentDomain=function(url){var currentDomain=document.domain.replace(/^www./,"");return-1!=url.indexOf(currentDomain)},PinButtonGenerator.prototype.calculateButtonPosition=function($image){var position=$image.offset(),imageDimensions={width:$image.get(0).clientWidth,height:$image.get(0).clientHeight};switch(this.settings.buttonPosition){case jpibfi.ButtonPosition.TopLeft:position.left+=this.settings.buttonMarginLeft,position.top+=this.settings.buttonMarginTop;break;case jpibfi.ButtonPosition.TopRight:position.top+=this.settings.buttonMarginTop,position.left=position.left+imageDimensions.width-this.settings.buttonMarginRight-this.settings.pinImageWidth;break;case jpibfi.ButtonPosition.BottomLeft:position.left+=this.settings.buttonMarginLeft,position.top=position.top+imageDimensions.height-this.settings.buttonMarginBottom-this.settings.pinImageHeight;break;case jpibfi.ButtonPosition.BottomRight:position.left=position.left+imageDimensions.width-this.settings.buttonMarginRight-this.settings.pinImageWidth,position.top=position.top+imageDimensions.height-this.settings.buttonMarginBottom-this.settings.pinImageHeight;break;case jpibfi.ButtonPosition.Middle:position.left=Math.round(position.left+imageDimensions.width/2-this.settings.pinImageWidth/2),position.top=Math.round(position.top+imageDimensions.height/2-this.settings.pinImageHeight/2)}return position},PinButtonGenerator}();jpibfi.PinButtonGenerator=PinButtonGenerator}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){var Logger=function(){function Logger(printLog){this._printLog=printLog&&"undefined"!=typeof console&&"undefined"!=typeof console.log,this._jsonStringifyExists="undefined"!=typeof JSON&&"function"==typeof JSON.stringify}return Logger.prototype._logObject=function(obj){var out="";for(var p in obj)out+=p+": "+obj[p]+"\n";console.log("jpibfi debug: "+out)},Logger.prototype.logString=function(message){this._printLog&&console.log("jpibfi debug: "+message)},Logger.prototype.logObject=function(obj){this._printLog&&(this._jsonStringifyExists?console.log("jpibfi debugz: "+JSON.stringify(obj,null,4)):this._logObject(obj))},Logger}();jpibfi.Logger=Logger}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){var Settings=function(){function Settings(settings){this.filterSelector="*",this.notSelector="",this.buttonMarginTop=parseInt(settings.buttonMarginTop),this.buttonMarginRight=parseInt(settings.buttonMarginRight),this.buttonMarginBottom=parseInt(settings.buttonMarginBottom),this.buttonMarginLeft=parseInt(settings.buttonMarginLeft),this.buttonPosition=settings.hasOwnProperty("buttonPosition")?parseInt(settings.buttonPosition):4,this.debug=settings.hasOwnProperty("debug")?"1"==settings.debug:!1,this.descriptionOption=settings.hasOwnProperty("descriptionOption")?parseInt(settings.descriptionOption):1,this.imageSelector=settings.imageSelector,this.isTouchDevice="ontouchstart"in window||navigator.hasOwnProperty("maxTouchPoints"),this.minImageWidth=settings.hasOwnProperty("minImageWidth")?parseInt(settings.minImageWidth):0,this.minImageHeight=settings.hasOwnProperty("minImageHeight")?parseInt(settings.minImageHeight):0,this.showButton=settings.hasOwnProperty("showButton")?this.parseShowButtonSettings(settings.showButton):jpibfi.ShowButton.Hover,this.pageDescription=settings.pageDescription,this.pageTitle=settings.pageTitle,this.pageUrl=settings.pageUrl,this.pinImageHeight=parseInt(settings.pinImageHeight),this.pinImageWidth=parseInt(settings.pinImageWidth),this.pinLinkedImages=1==settings.pinLinkedImages,this.pinLinkedImagesExtensions=settings.pinLinkedImagesExtensions,this.retinaFriendly=settings.hasOwnProperty("retinaFriendly")?1==settings.retinaFriendly:!1,this.siteTitle=settings.siteTitle,this.usePostUrl=settings.hasOwnProperty("usePostUrl")?settings.usePostUrl:!0,this.containerSelector=settings.containerSelector,this.notSelector=settings.hasOwnProperty("disabledClasses")?this.createSelectorFromList(settings.disabledClasses):"",this.filterSelector=settings.hasOwnProperty("enabledClasses")?this.createSelectorFromList(settings.enabledClasses)||"*":"*",this.adjustPinImageSize()}return Settings.prototype.adjustPinImageSize=function(){this.retinaFriendly&&(this.pinImageHeight=Math.ceil(this.pinImageHeight/2),this.pinImageWidth=Math.ceil(this.pinImageWidth/2))},Settings.prototype.createSelectorFromList=function(classes){for(var arrayOfClasses=classes.split(";"),selector="",i=0;i<arrayOfClasses.length;i++)arrayOfClasses[i]&&(selector+="."+arrayOfClasses[i]+",");return selector?selector.substr(0,selector.length-1):selector},Settings.prototype.parseShowButtonSettings=function(showButton){switch(showButton){case"always":return jpibfi.ShowButton.Always;case"always_touch":return jpibfi.ShowButton.AlwaysTouch;case"hover":default:return jpibfi.ShowButton.Hover}},Settings}();jpibfi.Settings=Settings}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){"use strict";var Hover=function(){function Hover($,settings,logger,buttonGenerator){this.$=$,this.settings=settings,this.logger=logger,this.buttonGenerator=buttonGenerator,this._indexer=0,this.ignoreAttributeName="data-jpibfi-ignore",this.ignoreAttributeSelector="["+this.ignoreAttributeName+"]",this.indexerAttributeName="data-jpibfi-indexer",this.indexerAttributeSelector="["+this.indexerAttributeName+"]"}return Hover.prototype.init=function(){var that=this;this.$(document).delegate(that.settings.imageSelector,"mouseenter",function(){var $image=that.$(this);if(!$image.is(that.ignoreAttributeSelector)){var ignoreImage=$image.is(that.settings.notSelector)||$image.is(that.settings.filterSelector)===!1||$image[0].clientWidth<that.settings.minImageWidth||$image[0].clientHeight<that.settings.minImageHeight;if(ignoreImage)return $image.attr(that.ignoreAttributeName,1..toString());var indexer=$image.attr(that.indexerAttributeName);indexer||(indexer=(that._indexer++).toString(),$image.attr(that.indexerAttributeName,indexer));var $button=that.$('a.pinit-button[data-jpibfi-indexer="'+indexer+'"]');if(1==$button.length)that.buttonGenerator.cancelHide($button);else{var $anchor=that.buttonGenerator.generateForImage($image);null!=$anchor&&($anchor.mouseenter(function(){that.buttonGenerator.cancelHide(that.$(this))}),$anchor.mouseleave(function(){that.buttonGenerator.hide(that.$(this),function(){$image.removeClass("pinit-hover")})}),$image.addClass("pinit-hover"))}}}),that.$(document).delegate(that.settings.imageSelector,"mouseleave",function(){var $image=that.$(this),indexer=$image.attr(that.indexerAttributeName);if(indexer){var $button=that.$('a.pinit-button[data-jpibfi-indexer="'+indexer+'"]');that.buttonGenerator.hide($button,function(){$image.removeClass("pinit-hover")})}})},Hover}();jpibfi.Hover=Hover}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){"use strict";var Plugin=function(){function Plugin($,options){this.$=$,this.settings=new jpibfi.Settings(this.$.extend({pageUrl:document.URL,pageTitle:document.title,pageDescription:$('meta[name="description"]').attr("content")||""},options)),this.logger=new jpibfi.Logger(this.settings.debug),this.logger.logObject(this.settings),this.buttonGenerator=new jpibfi.PinButtonGenerator(this.$,this.settings,this.logger)}return Plugin.prototype.init=function(){var _this=this;this.addContainers(),this.$(document).scroll(function(){return _this.addContainers()}),this.$(document).ajaxSuccess(function(){return _this.addContainers()});var hover=new jpibfi.Hover(this.$,this.settings,this.logger,this.buttonGenerator);hover.init()},Plugin.prototype.addContainers=function(){var $containers=this.$(".jpibfi").not(".jpibfi-ignore");0!=$containers.length&&($containers.closest(this.settings.containerSelector).addClass("jpibfi_container"),$containers.addClass("jpibfi-ignore"))},Plugin}();!function($){$(document).ready(function(){var plugin=new Plugin($,jpibfi_options);plugin.init()})}(jQuery)}(jpibfi||(jpibfi={}));
1
+ var jpibfi;!function(jpibfi){!function(ButtonPosition){ButtonPosition[ButtonPosition.TopLeft=0]="TopLeft",ButtonPosition[ButtonPosition.TopRight=1]="TopRight",ButtonPosition[ButtonPosition.BottomLeft=2]="BottomLeft",ButtonPosition[ButtonPosition.BottomRight=3]="BottomRight",ButtonPosition[ButtonPosition.Middle=4]="Middle"}(jpibfi.ButtonPosition||(jpibfi.ButtonPosition={}));jpibfi.ButtonPosition;!function(ShowButton){ShowButton[ShowButton.Hover=0]="Hover",ShowButton[ShowButton.AlwaysTouch=1]="AlwaysTouch",ShowButton[ShowButton.Always=2]="Always"}(jpibfi.ShowButton||(jpibfi.ShowButton={}));jpibfi.ShowButton}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){var PinButtonGenerator=function(){function PinButtonGenerator($,settings,logger){this.$=$,this.settings=settings,this.logger=logger}return PinButtonGenerator.prototype.cancelHide=function($button){clearTimeout($button.data("jpibfi-timeoutId"))},PinButtonGenerator.prototype.hide=function($button,callback){void 0===callback&&(callback=function(){});var timeoutId=($button.data("jpibfi-indexer"),setTimeout(function(){$button.remove(),callback.call(null,null)},100));$button.data("jpibfi-timeoutId",timeoutId)},PinButtonGenerator.prototype.generateForImage=function($image){var indexer=$image.data("jpibfi-indexer"),$anchor=this.$("<a/>",{href:"#","class":"pinit-button","data-jpibfi-indexer":indexer,text:""}),that=this;$anchor.click(function(){var $this=that.$(this);that.logger.logString("Pin In button clicked");var index=that.$(this).data("jpibfi-indexer"),$image=that.$('img[data-jpibfi-indexer="'+index+'"]'),descriptionForUrl="",bookmarkUrl="";if(that.settings.usePostUrl){var $inputWithData=$image.closest(".jpibfi_container").find("input.jpibfi").first();$inputWithData.length&&(descriptionForUrl=$inputWithData.data("jpibfi-description"),bookmarkUrl=$inputWithData.data("jpibfi-url"))}bookmarkUrl=bookmarkUrl||that.settings.pageUrl;var bookmarkDescription=jpibfi.Utils.getDescription($image,that.settings.descriptionOption,that.settings.pageTitle,that.settings.pageDescription,that.settings.siteTitle),imageUrl="http://pinterest.com/pin/create/bookmarklet/?is_video="+encodeURIComponent("false")+"&url="+encodeURIComponent(bookmarkUrl)+"&media="+encodeURIComponent(that.getImageUrl($image))+"&description="+encodeURIComponent(bookmarkDescription);return that.settings.isTouchDevice?($this.attr("href",imageUrl).attr("target","_blank"),!0):(window.open(imageUrl,"_blank","width=632,height=253,status=0,toolbar=0,menubar=0,location=1,scrollbars=1"),!1)});var position=that.calculateButtonPosition($image);return $image.after($anchor),$anchor.css("visibility","hidden").show().offset({left:position.left,top:position.top}).css("visibility","visible"),$anchor},PinButtonGenerator.prototype.getImageUrl=function($elem){var defaultUrl=this.$.fn.prop&&$elem.prop("src")||$elem.attr("src");return this.settings.pinLinkedImages?this.getLinkedImageUrl($elem)||defaultUrl:defaultUrl},PinButtonGenerator.prototype.getLinkedImageUrl=function($element){var $parent=$element.parents("a").first();if($parent.length){var href=$parent.attr("href"),useUrl=!!href&&this.fileExtensionAllowed(this.getFileExtension(href),this.settings.pinLinkedImagesExtensions);if(useUrl)return href}return null},PinButtonGenerator.prototype.getFileExtension=function(url){var parts=url.split(".");return 1==parts.length?"":parts.pop().split(/\#|\?/)[0]},PinButtonGenerator.prototype.fileExtensionAllowed=function(extension,listOfExtensions){if(!listOfExtensions.length)return!0;for(var extensions=listOfExtensions.split(","),i=0;i<extensions.length;i++)if(extensions[i]==extension)return!0;return!1},PinButtonGenerator.prototype.urlInCurrentDomain=function(url){var currentDomain=document.domain.replace(/^www./,"");return-1!=url.indexOf(currentDomain)},PinButtonGenerator.prototype.calculateButtonPosition=function($image){var position=$image.offset(),imageDimensions={width:$image.get(0).clientWidth,height:$image.get(0).clientHeight};switch(this.settings.buttonPosition){case jpibfi.ButtonPosition.TopLeft:position.left+=this.settings.buttonMarginLeft,position.top+=this.settings.buttonMarginTop;break;case jpibfi.ButtonPosition.TopRight:position.top+=this.settings.buttonMarginTop,position.left=position.left+imageDimensions.width-this.settings.buttonMarginRight-this.settings.pinImageWidth;break;case jpibfi.ButtonPosition.BottomLeft:position.left+=this.settings.buttonMarginLeft,position.top=position.top+imageDimensions.height-this.settings.buttonMarginBottom-this.settings.pinImageHeight;break;case jpibfi.ButtonPosition.BottomRight:position.left=position.left+imageDimensions.width-this.settings.buttonMarginRight-this.settings.pinImageWidth,position.top=position.top+imageDimensions.height-this.settings.buttonMarginBottom-this.settings.pinImageHeight;break;case jpibfi.ButtonPosition.Middle:position.left=Math.round(position.left+imageDimensions.width/2-this.settings.pinImageWidth/2),position.top=Math.round(position.top+imageDimensions.height/2-this.settings.pinImageHeight/2)}return position},PinButtonGenerator}();jpibfi.PinButtonGenerator=PinButtonGenerator}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){var Logger=function(){function Logger(printLog){this._printLog=printLog&&"undefined"!=typeof console&&"undefined"!=typeof console.log,this._jsonStringifyExists="undefined"!=typeof JSON&&"function"==typeof JSON.stringify}return Logger.prototype._logObject=function(obj){var out="";for(var p in obj)out+=p+": "+obj[p]+"\n";console.log("jpibfi debug: "+out)},Logger.prototype.logString=function(message){this._printLog&&console.log("jpibfi debug: "+message)},Logger.prototype.logObject=function(obj){this._printLog&&(this._jsonStringifyExists?console.log("jpibfi debugz: "+JSON.stringify(obj,null,4)):this._logObject(obj))},Logger}();jpibfi.Logger=Logger}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){var Settings=function(){function Settings(settings){this.filterSelector="*",this.notSelector="",this.buttonMarginTop=parseInt(settings.buttonMarginTop),this.buttonMarginRight=parseInt(settings.buttonMarginRight),this.buttonMarginBottom=parseInt(settings.buttonMarginBottom),this.buttonMarginLeft=parseInt(settings.buttonMarginLeft),this.buttonPosition=settings.hasOwnProperty("buttonPosition")?parseInt(settings.buttonPosition):4,this.debug=settings.hasOwnProperty("debug")?"1"==settings.debug:!1,this.descriptionOption=settings.hasOwnProperty("descriptionOption")?parseInt(settings.descriptionOption):1,this.imageSelector=this.createImageSelector(settings.imageSelector),this.isTouchDevice="ontouchstart"in window||navigator.hasOwnProperty("maxTouchPoints"),this.minImageWidth=settings.hasOwnProperty("minImageWidth")?parseInt(settings.minImageWidth):0,this.minImageHeight=settings.hasOwnProperty("minImageHeight")?parseInt(settings.minImageHeight):0,this.showButton=settings.hasOwnProperty("showButton")?this.parseShowButtonSettings(settings.showButton):jpibfi.ShowButton.Hover,this.pageDescription=settings.pageDescription,this.pageTitle=settings.pageTitle,this.pageUrl=settings.pageUrl,this.pinImageHeight=parseInt(settings.pinImageHeight),this.pinImageWidth=parseInt(settings.pinImageWidth),this.pinLinkedImages=1==settings.pinLinkedImages,this.pinLinkedImagesExtensions=settings.pinLinkedImagesExtensions,this.retinaFriendly=settings.hasOwnProperty("retinaFriendly")?1==settings.retinaFriendly:!1,this.siteTitle=settings.siteTitle,this.usePostUrl=settings.hasOwnProperty("usePostUrl")?settings.usePostUrl:!0,this.containerSelector=settings.containerSelector,this.notSelector=settings.hasOwnProperty("disabledClasses")?this.createSelectorFromList(settings.disabledClasses):"",this.filterSelector=settings.hasOwnProperty("enabledClasses")?this.createSelectorFromList(settings.enabledClasses)||"*":"*",this.lightbox=new LightboxSettings(settings.lightbox),this.adjustPinImageSize()}return Settings.prototype.adjustPinImageSize=function(){this.retinaFriendly&&(this.pinImageHeight=Math.ceil(this.pinImageHeight/2),this.pinImageWidth=Math.ceil(this.pinImageWidth/2))},Settings.prototype.createImageSelector=function(selector){return selector+",.jpibfi-lightbox img"},Settings.prototype.createSelectorFromList=function(classes){for(var arrayOfClasses=classes.split(";"),selector="",i=0;i<arrayOfClasses.length;i++)arrayOfClasses[i]&&(selector+="."+arrayOfClasses[i]+",");return selector?selector.substr(0,selector.length-1):selector},Settings.prototype.parseShowButtonSettings=function(showButton){switch(showButton){case"always":return jpibfi.ShowButton.Always;case"always_touch":return jpibfi.ShowButton.AlwaysTouch;case"hover":default:return jpibfi.ShowButton.Hover}},Settings}();jpibfi.Settings=Settings;var LightboxSettings=function(){function LightboxSettings(settings){this.descriptionOption=parseInt(settings.descriptionOption),this.enabled=settings.enabled}return LightboxSettings}();jpibfi.LightboxSettings=LightboxSettings}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){var Utils=function(){function Utils(){}return Utils.getDescription=function($image,descriptionOption,pageTitle,pageDescription,siteTitle){return this.getDescriptionValue($image,descriptionOption,pageTitle,pageDescription,siteTitle)||pageTitle},Utils.getDescriptionValue=function($image,descriptionOption,pageTitle,pageDescription,siteTitle){switch(descriptionOption){case 1:return pageTitle;case 2:var $inputWithData=$image.closest(".jpibfi_container").find("input.jpibfi").first(),descriptionForUrl=$inputWithData.data("jpibfi-description");return descriptionForUrl||pageDescription;case 3:return $image.attr("title")||$image.attr("alt");case 4:return siteTitle;case 5:return $image.data("jpibfi-description");case 6:return $image.attr("alt")}},Utils}();jpibfi.Utils=Utils}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){"use strict";var Hover=function(){function Hover($,settings,logger,buttonGenerator){this.$=$,this.settings=settings,this.logger=logger,this.buttonGenerator=buttonGenerator,this._indexer=0,this.ignoreAttributeName="data-jpibfi-ignore",this.ignoreAttributeSelector="["+this.ignoreAttributeName+"]",this.indexerAttributeName="data-jpibfi-indexer",this.indexerAttributeSelector="["+this.indexerAttributeName+"]"}return Hover.prototype.init=function(){var that=this;this.$(document).delegate(that.settings.imageSelector,"mouseenter",function(){var $image=that.$(this);if(!$image.is(that.ignoreAttributeSelector)){var ignoreImage=$image.is(that.settings.notSelector)||$image.is(that.settings.filterSelector)===!1||$image[0].clientWidth<that.settings.minImageWidth||$image[0].clientHeight<that.settings.minImageHeight;if(ignoreImage)return $image.attr(that.ignoreAttributeName,1..toString());var indexer=$image.attr(that.indexerAttributeName);indexer||(indexer=(that._indexer++).toString(),$image.attr(that.indexerAttributeName,indexer));var $button=that.$('a.pinit-button[data-jpibfi-indexer="'+indexer+'"]');if(1==$button.length)that.buttonGenerator.cancelHide($button);else{var $anchor=that.buttonGenerator.generateForImage($image);null!=$anchor&&($anchor.mouseenter(function(){that.buttonGenerator.cancelHide(that.$(this))}),$anchor.mouseleave(function(){that.buttonGenerator.hide(that.$(this),function(){$image.removeClass("pinit-hover")})}),$image.addClass("pinit-hover"))}}}),that.$(document).delegate(that.settings.imageSelector,"mouseleave",function(){var $image=that.$(this),indexer=$image.attr(that.indexerAttributeName);if(indexer){var $button=that.$('a.pinit-button[data-jpibfi-indexer="'+indexer+'"]');that.buttonGenerator.hide($button,function(){$image.removeClass("pinit-hover")})}})},Hover}();jpibfi.Hover=Hover}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){"use strict";var Lightbox=function(){function Lightbox($,settings){this.$=$,this.settings=settings,this.groupClass="jpibfi-group-"}return Lightbox.prototype.init=function(){var that=this;this.$("a:has(img[class*=jpibfi-group-])").each(function(){var $img=that.$(this).find("img"),rel=$img.attr("class").match("jpibfi-group-[0-9]+"),title=jpibfi.Utils.getDescription($img,that.settings.lightbox.descriptionOption,that.settings.pageTitle,that.settings.pageDescription,that.settings.siteTitle);that.$(this).colorbox({className:"jpibfi-lightbox",rel:rel[0],title:title,maxWidth:"95%",maxHeight:"95%",onComplete:function(){that.$(window).trigger("jpibfi-refresh-scroll"),that.$("#cboxTitle").hide(),that.$("#cboxLoadedContent").append(that.$("#cboxTitle").html()).css({color:that.$("#cboxTitle").css("color")}),that.$.fn.colorbox.resize()}})})},Lightbox}();jpibfi.Lightbox=Lightbox}(jpibfi||(jpibfi={}));var jpibfi;!function(jpibfi){"use strict";var Plugin=function(){function Plugin($,options){this.$=$,this.settings=new jpibfi.Settings(this.$.extend({pageUrl:document.URL,pageTitle:document.title,pageDescription:$('meta[name="description"]').attr("content")||""},options)),this.logger=new jpibfi.Logger(this.settings.debug),this.logger.logObject(this.settings),this.buttonGenerator=new jpibfi.PinButtonGenerator(this.$,this.settings,this.logger)}return Plugin.prototype.init=function(){var _this=this;this.addContainers(),this.$(document).scroll(function(){return _this.addContainers()}),this.$(document).ajaxSuccess(function(){return _this.addContainers()});var hover=new jpibfi.Hover(this.$,this.settings,this.logger,this.buttonGenerator);if(hover.init(),this.settings.lightbox.enabled){var lightbox=new jpibfi.Lightbox(this.$,this.settings);lightbox.init()}},Plugin.prototype.addContainers=function(){var $containers=this.$(".jpibfi").not(".jpibfi-ignore");0!=$containers.length&&($containers.closest(this.settings.containerSelector).addClass("jpibfi_container"),$containers.addClass("jpibfi-ignore"))},Plugin}();!function($){$(document).ready(function(){var plugin=new Plugin($,jpibfi_options);plugin.init()})}(jQuery)}(jpibfi||(jpibfi={}));
js/jquery.colorbox-min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /*!
2
+ Colorbox 1.6.4
3
+ license: MIT
4
+ http://www.jacklmoore.com/colorbox
5
+ */
6
+ (function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(A+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in x[0]&&!x[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),x.focus())}function c(t){c.str!==t&&(x.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){A=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),A=W.index(_.el),-1===A&&(W=W.add(_.el),A=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!U){U=$=!0,c(_.get("className")),x.css({visibility:"hidden",display:"block",opacity:""}),I=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(I),j=T.height()+k.height()+b.outerHeight(!0)-b.height(),D=C.width()+H.width()+b.outerWidth(!0)-b.width(),N=I.outerHeight(!0),z=I.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=Math.max((l!==!1?Math.min(h,a(l,"x")):h)-z-D,0),_.h=Math.max((f!==!1?Math.min(s,a(f,"y")):s)-N-j,0),I.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(F).hide(),x.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}var p=parseFloat(_.get("opacity"));v.css({opacity:p===p?p:"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}function p(){x||(V=!1,E=t(i),x=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),L=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),y=n(se,"Wrapper"),b=n(se,"Content").append(F=n(se,"Title"),R=n(se,"Current"),P=t('<button type="button"/>').attr({id:Z+"Previous"}),K=t('<button type="button"/>').attr({id:Z+"Next"}),S=t('<button type="button"/>').attr({id:Z+"Slideshow"}),L),B=t('<button type="button"/>').attr({id:Z+"Close"}),y.append(n(se).append(n(se,"TopLeft"),T=n(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").append(C=n(se,"MiddleLeft"),b,H=n(se,"MiddleRight")),n(se,!1,"clear:left").append(n(se,"BottomLeft"),k=n(se,"BottomCenter"),n(se,"BottomRight"))).find("div div").css({"float":"left"}),M=n(se,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),O=K.add(P).add(R).add(S)),e.body&&!x.parent().length&&t(e.body).append(v,x.append(y,M))}function m(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),f(this))}return x?(V||(V=!0,K.click(function(){J.next()}),P.click(function(){J.prev()}),B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&&J.close()}),t(e).bind("keydown."+Z,function(t){var e=t.keyCode;U&&_.get("escKey")&&27===e&&(t.preventDefault(),J.close()),U&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37===e?(t.preventDefault(),P.click()):39===e&&(t.preventDefault(),K.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),!0):!1}function w(){var e,o,r,h=J.prep,d=++le;if($=!0,q=!1,u(he),u(ie),_.get("onLoad"),_.h=_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.get("innerHeight"),"y"),_.w=_.get("width")?a(_.get("width"),"x")-z-D:_.get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=_.w,_.mh=_.h,_.get("maxWidth")&&(_.mw=a(_.get("maxWidth"),"x")-z-D,_.mw=_.w&&_.w<_.mw?_.w:_.mw),_.get("maxHeight")&&(_.mh=a(_.get("maxHeight"),"y")-N-j,_.mh=_.h&&_.h<_.mh?_.h:_.mh),e=_.get("href"),Q=setTimeout(function(){L.show()},100),_.get("inline")){var c=t(e).eq(0);r=t("<div>").hide().insertBefore(c),ae.one(he,function(){r.replaceWith(c)}),h(c)}else _.get("iframe")?h(" "):_.get("html")?h(_.get("html")):s(_,e)?(e=l(_,e),q=_.get("createImg"),t(q).addClass(Z+"Photo").bind("error."+Z,function(){h(n(se,"Error").html(_.get("imgError")))}).one("load",function(){d===le&&setTimeout(function(){var e;_.get("retinaImage")&&i.devicePixelRatio>1&&(q.height=q.height/i.devicePixelRatio,q.width=q.width/i.devicePixelRatio),_.get("scalePhotos")&&(o=function(){q.height-=q.height*e,q.width-=q.width*e},_.mw&&q.width>_.mw&&(e=(q.width-_.mw)/q.width,o()),_.mh&&q.height>_.mh&&(e=(q.height-_.mh)/q.height,o())),_.h&&(q.style.marginTop=Math.max(_.mh-q.height,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(q.style.cursor="pointer",t(q).bind("click."+Z,function(){J.next()})),q.style.width=q.width+"px",q.style.height=q.height+"px",h(q)},1)}),q.src=e):e&&M.load(e,_.get("data"),function(e,i){d===le&&h("error"===i?n(se,"Error").html(_.get("xhrError")):t(this).contents())})}var v,x,y,b,T,C,H,k,W,E,I,M,L,F,R,S,K,P,B,O,_,j,D,N,z,A,q,U,$,G,Q,J,V,X={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return this.title},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},Y="colorbox",Z="cbox",te=Z+"Element",ee=Z+"_open",ie=Z+"_load",ne=Z+"_complete",oe=Z+"_cleanup",re=Z+"_closed",he=Z+"_purge",ae=t("<a/>"),se="div",le=0,de={},ce=function(){function t(){clearTimeout(h)}function e(){(_.get("loop")||W[A+1])&&(t(),h=setTimeout(J.next,_.get("slideshowSpeed")))}function i(){S.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(ie,t),x.removeClass(a+"off").addClass(a+"on")}function n(){t(),ae.unbind(ne,e).unbind(ie,t),S.html(_.get("slideshowStart")).unbind(s).one(s,function(){J.next(),i()}),x.removeClass(a+"on").addClass(a+"off")}function o(){r=!1,S.hide(),t(),ae.unbind(ne,e).unbind(ie,t),x.removeClass(a+"off "+a+"on")}var r,h,a=Z+"Slideshow_",s="click."+Z;return function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")&&W[1]&&(r=!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),S.show())}}();t[Y]||(t(p),J=t.fn[Y]=t[Y]=function(e,i){var n,o=this;return e=e||{},t.isFunction(o)&&(o=t("<a/>"),e.open=!0),o[0]?(p(),m()&&(i&&(e.onComplete=i),o.each(function(){var i=t.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=new r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=function(e,i){function n(){T[0].style.width=k[0].style.width=b[0].style.width=parseInt(x[0].style.width,10)-D+"px",b[0].style.height=C[0].style.height=H[0].style.height=parseInt(x[0].style.height,10)-j+"px"}var r,h,s,l=0,d=0,c=x.offset();if(E.unbind("resize."+Z),x.css({top:-9e4,left:-9e4}),h=E.scrollTop(),s=E.scrollLeft(),_.get("fixed")?(c.top-=h,c.left-=s,x.css({position:"fixed"})):(l=h,d=s,x.css({position:"absolute"})),d+=_.get("right")!==!1?Math.max(E.width()-_.w-z-D-a(_.get("right"),"x"),0):_.get("left")!==!1?a(_.get("left"),"x"):Math.round(Math.max(E.width()-_.w-z-D,0)/2),l+=_.get("bottom")!==!1?Math.max(o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!==!1?a(_.get("top"),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),x.css({top:c.top,left:c.left,visibility:"visible"}),y[0].style.width=y[0].style.height="9999px",r={width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var g=0;t.each(r,function(t){return r[t]!==de[t]?(g=e,void 0):void 0}),e=g}de=r,e||x.css(r),x.dequeue().animate(r,{duration:e||0,complete:function(){n(),$=!1,y[0].style.width=_.w+z+D+"px",y[0].style.height=_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=function(t){var e;U&&(t=t||{},t.width&&(_.w=a(t.width,"x")-z-D),t.innerWidth&&(_.w=a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=a(t.height,"y")-N-j),t.innerHeight&&(_.h=a(t.innerHeight,"y")),t.innerHeight||t.height||(e=I.scrollTop(),I.css({height:"auto"}),_.h=I.height()),I.css({height:_.h}),e&&I.scrollTop(e),J.position("none"===_.get("transition")?0:_.get("speed")))},J.prep=function(i){function o(){return _.w=_.w||I.width(),_.w=_.mw&&_.mw<_.w?_.mw:_.w,_.w}function a(){return _.h=_.h||I.height(),_.h=_.mh&&_.mh<_.h?_.mh:_.h,_.h}if(U){var d,g="none"===_.get("transition")?0:_.get("speed");I.remove(),I=n(se,"LoadedContent").append(i),I.hide().appendTo(M.show()).css({width:o(),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prependTo(b),M.hide(),t(q).css({"float":"none"}),c(_.get("className")),d=function(){function i(){t.support.opacity===!1&&x[0].style.removeAttribute("filter")}var n,o,a=W.length;U&&(o=function(){clearTimeout(Q),L.hide(),u(ne),_.get("onComplete")},F.html(_.get("title")).show(),I.show(),a>1?("string"==typeof _.get("current")&&R.html(_.get("current").replace("{current}",A+1).replace("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(),_.get("preloading")&&t.each([h(-1),h(1)],function(){var i,n=W[this],o=new r(n,t.data(n,Y)),h=o.get("href");h&&s(o,h)&&(h=l(o,h),i=e.createElement("img"),i.src=h)})):O.hide(),_.get("iframe")?(n=_.get("createIframe"),_.get("scrolling")||(n.scrolling="no"),t(n).attr({src:_.get("href"),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.src="//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fade"===_.get("transition")?x.fadeTo(g,1,i):i())},"fade"===_.get("transition")?x.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)}},J.next=function(){!$&&W[1]&&(_.get("loop")||W[A+1])&&(A=h(1),f(W[A]))},J.prev=function(){!$&&W[1]&&(_.get("loop")||A)&&(A=h(-1),f(W[A]))},J.close=function(){U&&!G&&(G=!0,U=!1,u(oe),_.get("onCleanup"),E.unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),x.stop().fadeTo(_.get("fadeOut")||0,0,function(){x.hide(),v.hide(),u(he),I.remove(),setTimeout(function(){G=!1,u(re),_.get("onClosed")},1)}))},J.remove=function(){x&&(x.stop(),t[Y].close(),x.stop(!1,!0).remove(),v.remove(),G=!1,x=null,t("."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keydown."+Z))},J.element=function(){return t(_.el)},J.settings=X)})(jQuery,document,window);
languages/jquery-pin-it-button-for-images.pot CHANGED
@@ -31,16 +31,20 @@ msgstr ""
31
  msgid "Import/Export"
32
  msgstr ""
33
 
34
- #: includes/admin/class-jpibfi-admin.php:227, jquery-pin-it-button-for-images.php:133
 
 
 
 
35
  msgid "Settings"
36
  msgstr ""
37
 
38
- #: includes/admin/class-jpibfi-admin.php:263
39
  msgid "Disable \"Pin it\" button for this post (works only on single pages/posts)"
40
  msgstr ""
41
 
42
- #: includes/admin/class-jpibfi-admin.php:333
43
- msgid "jQuery Pin It Button for Images Pro is coming soon. Click <a target=\"_blank\" href=\"%s\">here</a> to learn more."
44
  msgstr ""
45
 
46
  #: includes/admin/class-jpibfi-advanced-options.php:81
@@ -107,6 +111,58 @@ msgstr ""
107
  msgid "Choose a JSON (.json) file to upload, then click Upload file and import."
108
  msgstr ""
109
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  #: includes/admin/class-jpibfi-selection-options.php:137
111
  msgid "Image selector"
112
  msgstr ""
@@ -215,10 +271,6 @@ msgstr ""
215
  msgid "When the \"Pin it\" button should be visible."
216
  msgstr ""
217
 
218
- #: includes/admin/class-jpibfi-visual-options.php:183
219
- msgid "Description source"
220
- msgstr ""
221
-
222
  #: includes/admin/class-jpibfi-visual-options.php:193
223
  msgid "From where the Pinterest message should be taken. Please note that \"Image description\" works properly only for images that were added to your Media Library."
224
  msgstr ""
@@ -307,30 +359,6 @@ msgstr ""
307
  msgid "This feature is disabled in this version of the plugin. Consider buying <a target=\"_blank\" href=\"%s\">the PRO version</a>."
308
  msgstr ""
309
 
310
- #: includes/admin/class-jpibfi-visual-options.php:433
311
- msgid "Page title"
312
- msgstr ""
313
-
314
- #: includes/admin/class-jpibfi-visual-options.php:435
315
- msgid "Page description"
316
- msgstr ""
317
-
318
- #: includes/admin/class-jpibfi-visual-options.php:437
319
- msgid "Picture title or (if title not available) alt attribute"
320
- msgstr ""
321
-
322
- #: includes/admin/class-jpibfi-visual-options.php:439
323
- msgid "Site title (Settings->General)"
324
- msgstr ""
325
-
326
- #: includes/admin/class-jpibfi-visual-options.php:441
327
- msgid "Image description"
328
- msgstr ""
329
-
330
- #: includes/admin/class-jpibfi-visual-options.php:443
331
- msgid "Image alt attribute"
332
- msgstr ""
333
-
334
  #: includes/admin/class-jpibfi-visual-options.php:469
335
  msgid "Always link to individual post page"
336
  msgstr ""
31
  msgid "Import/Export"
32
  msgstr ""
33
 
34
+ #: includes/admin/class-jpibfi-admin.php:197
35
+ msgid "Lightbox"
36
+ msgstr ""
37
+
38
+ #: includes/admin/class-jpibfi-admin.php:235, jquery-pin-it-button-for-images.php:137
39
  msgid "Settings"
40
  msgstr ""
41
 
42
+ #: includes/admin/class-jpibfi-admin.php:271
43
  msgid "Disable \"Pin it\" button for this post (works only on single pages/posts)"
44
  msgstr ""
45
 
46
+ #: includes/admin/class-jpibfi-admin.php:341
47
+ msgid "jQuery Pin It Button for Images Pro is available. Click <a target=\"_blank\" href=\"%s\">here</a> to learn more."
48
  msgstr ""
49
 
50
  #: includes/admin/class-jpibfi-advanced-options.php:81
111
  msgid "Choose a JSON (.json) file to upload, then click Upload file and import."
112
  msgstr ""
113
 
114
+ #: includes/admin/class-jpibfi-lightbox-options.php:81
115
+ msgid "Lightbox Settings"
116
+ msgstr ""
117
+
118
+ #: includes/admin/class-jpibfi-lightbox-options.php:95
119
+ msgid "Enabled"
120
+ msgstr ""
121
+
122
+ #: includes/admin/class-jpibfi-lightbox-options.php:105
123
+ msgid "Activate lightbox in posts"
124
+ msgstr ""
125
+
126
+ #: includes/admin/class-jpibfi-lightbox-options.php:117, includes/admin/class-jpibfi-visual-options.php:183
127
+ msgid "Description source"
128
+ msgstr ""
129
+
130
+ #: includes/admin/class-jpibfi-lightbox-options.php:127
131
+ msgid "From where the lightbox description should be taken. Please note that \"Image description\" works properly only for images that were added to your Media Library."
132
+ msgstr ""
133
+
134
+ #: includes/admin/class-jpibfi-lightbox-options.php:149
135
+ msgid "Lightbox module uses Colorbox. Visit <a href=\"http://www.jacklmoore.com/colorbox/\" target=\"_blank\">this page</a> to learn more about Colorbox."
136
+ msgstr ""
137
+
138
+ #: includes/admin/class-jpibfi-lightbox-options.php:171
139
+ msgid "Lightbox settings"
140
+ msgstr ""
141
+
142
+ #: includes/admin/class-jpibfi-lightbox-options.php:207, includes/admin/class-jpibfi-visual-options.php:433
143
+ msgid "Page title"
144
+ msgstr ""
145
+
146
+ #: includes/admin/class-jpibfi-lightbox-options.php:209, includes/admin/class-jpibfi-visual-options.php:435
147
+ msgid "Page description (excerpt)"
148
+ msgstr ""
149
+
150
+ #: includes/admin/class-jpibfi-lightbox-options.php:211, includes/admin/class-jpibfi-visual-options.php:437
151
+ msgid "Image title or (if title not available) alt attribute"
152
+ msgstr ""
153
+
154
+ #: includes/admin/class-jpibfi-lightbox-options.php:213, includes/admin/class-jpibfi-visual-options.php:439
155
+ msgid "Site title (Settings->General)"
156
+ msgstr ""
157
+
158
+ #: includes/admin/class-jpibfi-lightbox-options.php:215, includes/admin/class-jpibfi-visual-options.php:441
159
+ msgid "Image description"
160
+ msgstr ""
161
+
162
+ #: includes/admin/class-jpibfi-lightbox-options.php:217, includes/admin/class-jpibfi-visual-options.php:443
163
+ msgid "Image alt attribute"
164
+ msgstr ""
165
+
166
  #: includes/admin/class-jpibfi-selection-options.php:137
167
  msgid "Image selector"
168
  msgstr ""
271
  msgid "When the \"Pin it\" button should be visible."
272
  msgstr ""
273
 
 
 
 
 
274
  #: includes/admin/class-jpibfi-visual-options.php:193
275
  msgid "From where the Pinterest message should be taken. Please note that \"Image description\" works properly only for images that were added to your Media Library."
276
  msgstr ""
359
  msgid "This feature is disabled in this version of the plugin. Consider buying <a target=\"_blank\" href=\"%s\">the PRO version</a>."
360
  msgstr ""
361
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
362
  #: includes/admin/class-jpibfi-visual-options.php:469
363
  msgid "Always link to individual post page"
364
  msgstr ""
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  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.4.2
6
- Stable tag: 1.52
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,10 @@ Please report them in the plugin's support forum on Wordpress.org.
68
 
69
  == Changelog ==
70
 
 
 
 
 
71
  = 1.52 =
72
  * Release 2016-05-05
73
  * Added import/export settings feature
@@ -240,6 +244,9 @@ Please report them in the plugin's support forum on Wordpress.org.
240
 
241
  == Upgrade Notice ==
242
 
 
 
 
243
  = 1.52 =
244
  * Added import/export settings feature
245
 
2
  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.5.3
6
+ Stable tag: 1.60
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
+ = 1.60 =
72
+ * Release 2016-07-04
73
+ * Added lightbox feature
74
+
75
  = 1.52 =
76
  * Release 2016-05-05
77
  * Added import/export settings feature
244
 
245
  == Upgrade Notice ==
246
 
247
+ = 1.60 =
248
+ * Added lightbox feature
249
+
250
  = 1.52 =
251
  * Added import/export settings feature
252
 
uninstall.php CHANGED
@@ -10,6 +10,7 @@ delete_option( 'jpibfi_selection_options' );
10
  delete_option( 'jpibfi_visual_options' );
11
  delete_option( 'jpibfi_advanced_options' );
12
  delete_option( 'jpibfi_version' );
 
13
 
14
  //delete added metadata from all posts
15
  delete_post_meta_by_key( 'jpibfi_meta' );
10
  delete_option( 'jpibfi_visual_options' );
11
  delete_option( 'jpibfi_advanced_options' );
12
  delete_option( 'jpibfi_version' );
13
+ delete_option( 'jpibfi_lightbox_options' );
14
 
15
  //delete added metadata from all posts
16
  delete_post_meta_by_key( 'jpibfi_meta' );