Version Description
- 2017-06-26
Download this release
Release Info
Developer | codeinwp |
Plugin | Slider by Nivo – Responsive WordPress Image Slider |
Version | 2.1.0 |
Comparing to | |
See all releases |
Code changes from version 2.0.4 to 2.1.0
- CHANGELOG.md +9 -0
- assets/css/nivo-slider.css +1 -1
- assets/images/logo.png +0 -0
- assets/images/nivo-slider-carousel-integration.jpg +0 -0
- assets/images/nivo-slider-create-slider-from-posts-categories-galleries.jpg +0 -0
- assets/images/nivo-slider-plugin-mobile-friendly.jpg +0 -0
- assets/js/jquery.nivo.slider.pack.js +4 -4
- includes/abstract/class-nivo-model-abstract.php +20 -16
- includes/admin/class-nivo-slider-admin.php +44 -7
- includes/admin/libs/class-nivo-core-admin-edit.php +7 -3
- includes/admin/libs/class-nivo-core-shortcode.php +126 -110
- includes/class-nivo-slider.php +5 -2
- includes/layouts/css/upsell.css +178 -0
- includes/layouts/nivo-upsell.php +59 -0
- key.enc +0 -0
- languages/nivo-slider.pot +204 -25
- nivo-slider-lite.php +7 -2
- readme.md +106 -0
- readme.txt +11 -3
- vendor/autoload.php +1 -1
- vendor/autoload_52.php +1 -1
- vendor/codeinwp/themeisle-sdk/README.md +0 -2
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-deactivate.php +470 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-factory.php +50 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-review.php +185 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback.php +90 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php +96 -46
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-loader.php +25 -23
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php +144 -13
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-notification-manager.php +119 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-product.php +148 -12
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widget-dashboard-blog.php +374 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widget.php +50 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widgets-factory.php +37 -0
- vendor/codeinwp/themeisle-sdk/composer.json +2 -5
- vendor/codeinwp/themeisle-sdk/load.php +35 -0
- vendor/codeinwp/themeisle-sdk/phpcs.xml +0 -34
- vendor/codeinwp/themeisle-sdk/start.php +35 -0
- vendor/composer/autoload_classmap.php +0 -4
- vendor/composer/autoload_files.php +10 -0
- vendor/composer/autoload_real.php +17 -3
- vendor/composer/autoload_real_52.php +5 -3
- vendor/composer/installed.json +9 -13
CHANGELOG.md
CHANGED
@@ -1,4 +1,13 @@
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
### v2.0.4 - 2017-05-12
|
3 |
**Changes:**
|
4 |
- Changed required core style loading
|
1 |
|
2 |
+
### v2.1.0 - 2017-11-16
|
3 |
+
**Changes:**
|
4 |
+
|
5 |
+
### v2.1.0 - 2017-06-26
|
6 |
+
**Changes:**
|
7 |
+
* Added carousel compatibility
|
8 |
+
* Fixed warnings with taxonomy name change.
|
9 |
+
* Added upsell page.
|
10 |
+
|
11 |
### v2.0.4 - 2017-05-12
|
12 |
**Changes:**
|
13 |
- Changed required core style loading
|
assets/css/nivo-slider.css
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
/*
|
2 |
* jQuery Nivo Slider v3.2
|
3 |
* http://nivo.dev7studios.com
|
4 |
-
* Version: 2.0
|
5 |
* Copyright 2012, Dev7studios
|
6 |
* Free to use and abuse under the MIT license.
|
7 |
* http://www.opensource.org/licenses/mit-license.php
|
1 |
/*
|
2 |
* jQuery Nivo Slider v3.2
|
3 |
* http://nivo.dev7studios.com
|
4 |
+
* Version: 2.1.0
|
5 |
* Copyright 2012, Dev7studios
|
6 |
* Free to use and abuse under the MIT license.
|
7 |
* http://www.opensource.org/licenses/mit-license.php
|
assets/images/logo.png
ADDED
Binary file
|
assets/images/nivo-slider-carousel-integration.jpg
ADDED
Binary file
|
assets/images/nivo-slider-create-slider-from-posts-categories-galleries.jpg
ADDED
Binary file
|
assets/images/nivo-slider-plugin-mobile-friendly.jpg
ADDED
Binary file
|
assets/js/jquery.nivo.slider.pack.js
CHANGED
@@ -443,7 +443,7 @@
|
|
443 |
S[w] = [];
|
444 |
y = e(".nivo-box", t);
|
445 |
if (o === "boxRainReverse" || o === "boxRainGrowReverse") {
|
446 |
-
y = e(".nivo-box", t)._reverse()
|
447 |
}
|
448 |
y.each(function () {
|
449 |
S[w][E] = e(this);
|
@@ -501,13 +501,13 @@
|
|
501 |
this.stop = function () {
|
502 |
if (!e(t).data("nivo:vars").stop) {
|
503 |
e(t).data("nivo:vars").stop = true;
|
504 |
-
m("Stop Slider");
|
505 |
}
|
506 |
};
|
507 |
this.start = function () {
|
508 |
if (e(t).data("nivo:vars").stop) {
|
509 |
e(t).data("nivo:vars").stop = false;
|
510 |
-
m("Start Slider");
|
511 |
}
|
512 |
};
|
513 |
r.afterLoad.call(this);
|
@@ -551,4 +551,4 @@
|
|
551 |
}
|
552 |
};
|
553 |
e.fn._reverse = [].reverse;
|
554 |
-
})(jQuery)
|
443 |
S[w] = [];
|
444 |
y = e(".nivo-box", t);
|
445 |
if (o === "boxRainReverse" || o === "boxRainGrowReverse") {
|
446 |
+
y = e(".nivo-box", t)._reverse();
|
447 |
}
|
448 |
y.each(function () {
|
449 |
S[w][E] = e(this);
|
501 |
this.stop = function () {
|
502 |
if (!e(t).data("nivo:vars").stop) {
|
503 |
e(t).data("nivo:vars").stop = true;
|
504 |
+
//m("Stop Slider");
|
505 |
}
|
506 |
};
|
507 |
this.start = function () {
|
508 |
if (e(t).data("nivo:vars").stop) {
|
509 |
e(t).data("nivo:vars").stop = false;
|
510 |
+
//m("Start Slider");
|
511 |
}
|
512 |
};
|
513 |
r.afterLoad.call(this);
|
551 |
}
|
552 |
};
|
553 |
e.fn._reverse = [].reverse;
|
554 |
+
})(jQuery);
|
includes/abstract/class-nivo-model-abstract.php
CHANGED
@@ -53,7 +53,7 @@ abstract class Nivo_Model_Abstract extends Nivo_Core_Settings_Abstract {
|
|
53 |
$labels = array(
|
54 |
'name' => '%2$s',
|
55 |
'singular_name' => '%1$s',
|
56 |
-
'add_new' => __( 'Add
|
57 |
'add_new_item' => __( 'Add New %1$s', 'nivo-slider' ),
|
58 |
'edit_item' => __( 'Edit %1$s', 'nivo-slider' ),
|
59 |
'new_item' => __( 'New %1$s', 'nivo-slider' ),
|
@@ -78,13 +78,7 @@ abstract class Nivo_Model_Abstract extends Nivo_Core_Settings_Abstract {
|
|
78 |
'menu_position' => apply_filters( $defaults['post_type'] . '_post_type_menu_position', 100 ),
|
79 |
'supports' => $supports,
|
80 |
'menu_icon' => apply_filters( $defaults['post_type'] . '_post_type_menu_icon', '' ),
|
81 |
-
|
82 |
-
register_post_type(
|
83 |
-
$this->labels['post_type'],
|
84 |
-
apply_filters(
|
85 |
-
$defaults['post_type'] . '_post_type_args',
|
86 |
-
$post_type_args
|
87 |
-
)
|
88 |
);
|
89 |
register_taxonomy(
|
90 |
$defaults['taxonomy'],
|
@@ -96,6 +90,14 @@ abstract class Nivo_Model_Abstract extends Nivo_Core_Settings_Abstract {
|
|
96 |
'hierarchical' => true,
|
97 |
)
|
98 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
}
|
100 |
|
101 |
/**
|
@@ -123,6 +125,8 @@ abstract class Nivo_Model_Abstract extends Nivo_Core_Settings_Abstract {
|
|
123 |
$settings = $_POST[ $this->labels['post_meta_key'] ];
|
124 |
$settings = apply_filters( $this->labels['post_type'] . '_post_meta_save', $settings );
|
125 |
update_post_meta( $post_id, $this->labels['post_meta_key'], $settings );
|
|
|
|
|
126 |
|
127 |
return true;
|
128 |
}
|
@@ -146,28 +150,28 @@ abstract class Nivo_Model_Abstract extends Nivo_Core_Settings_Abstract {
|
|
146 |
if ( ! is_numeric( $settings['dim_y'] ) || $settings['dim_y'] <= 0 ) {
|
147 |
$settings['dim_y'] = 150;
|
148 |
}
|
149 |
-
if ( ! is_numeric( $settings['slices'] ) || $settings['slices'] <= 0 ) {
|
150 |
$settings['slices'] = 15;
|
151 |
}
|
152 |
-
if ( ! is_numeric( $settings['boxCols'] ) || $settings['boxCols'] <= 0 ) {
|
153 |
$settings['boxCols'] = 8;
|
154 |
}
|
155 |
-
if ( ! is_numeric( $settings['boxRows'] ) || $settings['boxRows'] <= 0 ) {
|
156 |
$settings['boxRows'] = 4;
|
157 |
}
|
158 |
-
if ( ! is_numeric( $settings['animSpeed'] ) || $settings['animSpeed'] <= 0 ) {
|
159 |
$settings['animSpeed'] = 500;
|
160 |
}
|
161 |
-
if ( ! is_numeric( $settings['pauseTime'] ) || $settings['pauseTime'] <= 0 ) {
|
162 |
$settings['pauseTime'] = 3000;
|
163 |
}
|
164 |
-
if ( ! is_numeric( $settings['startSlide'] ) || $settings['startSlide'] < 0 ) {
|
165 |
$settings['startSlide'] = 0;
|
166 |
}
|
167 |
-
if ( ! is_numeric( $settings['thumbSizeWidth'] ) || $settings['thumbSizeWidth'] <= 0 ) {
|
168 |
$settings['thumbSizeWidth'] = 70;
|
169 |
}
|
170 |
-
if ( ! is_numeric( $settings['thumbSizeHeight'] ) || $settings['thumbSizeHeight'] <= 0 ) {
|
171 |
$settings['thumbSizeHeight'] = 50;
|
172 |
}
|
173 |
|
53 |
$labels = array(
|
54 |
'name' => '%2$s',
|
55 |
'singular_name' => '%1$s',
|
56 |
+
'add_new' => __( 'Add new Slider', 'nivo-slider' ),
|
57 |
'add_new_item' => __( 'Add New %1$s', 'nivo-slider' ),
|
58 |
'edit_item' => __( 'Edit %1$s', 'nivo-slider' ),
|
59 |
'new_item' => __( 'New %1$s', 'nivo-slider' ),
|
78 |
'menu_position' => apply_filters( $defaults['post_type'] . '_post_type_menu_position', 100 ),
|
79 |
'supports' => $supports,
|
80 |
'menu_icon' => apply_filters( $defaults['post_type'] . '_post_type_menu_icon', '' ),
|
81 |
+
'taxonomies' => array( $defaults['taxonomy'] ),
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
);
|
83 |
register_taxonomy(
|
84 |
$defaults['taxonomy'],
|
90 |
'hierarchical' => true,
|
91 |
)
|
92 |
);
|
93 |
+
register_post_type(
|
94 |
+
$this->labels['post_type'],
|
95 |
+
apply_filters(
|
96 |
+
$defaults['post_type'] . '_post_type_args',
|
97 |
+
$post_type_args
|
98 |
+
)
|
99 |
+
);
|
100 |
+
|
101 |
}
|
102 |
|
103 |
/**
|
125 |
$settings = $_POST[ $this->labels['post_meta_key'] ];
|
126 |
$settings = apply_filters( $this->labels['post_type'] . '_post_meta_save', $settings );
|
127 |
update_post_meta( $post_id, $this->labels['post_meta_key'], $settings );
|
128 |
+
$taxonomy = ( isset( $_POST['taxonomy'] ) ) ? $_POST['taxonomy'] : 'slider';
|
129 |
+
wp_set_object_terms( $post_id, $taxonomy, $this->labels['taxonomy'] );
|
130 |
|
131 |
return true;
|
132 |
}
|
150 |
if ( ! is_numeric( $settings['dim_y'] ) || $settings['dim_y'] <= 0 ) {
|
151 |
$settings['dim_y'] = 150;
|
152 |
}
|
153 |
+
if ( ! isset( $settings['slices'] ) || ( ! is_numeric( $settings['slices'] ) || $settings['slices'] <= 0 ) ) {
|
154 |
$settings['slices'] = 15;
|
155 |
}
|
156 |
+
if ( ! isset( $settings['boxCols'] ) || ( ! is_numeric( $settings['boxCols'] ) || $settings['boxCols'] <= 0 ) ) {
|
157 |
$settings['boxCols'] = 8;
|
158 |
}
|
159 |
+
if ( ! isset( $settings['boxRows'] ) || ( ! is_numeric( $settings['boxRows'] ) || $settings['boxRows'] <= 0 ) ) {
|
160 |
$settings['boxRows'] = 4;
|
161 |
}
|
162 |
+
if ( ! isset( $settings['animSpeed'] ) || ( ! is_numeric( $settings['animSpeed'] ) || $settings['animSpeed'] <= 0 ) ) {
|
163 |
$settings['animSpeed'] = 500;
|
164 |
}
|
165 |
+
if ( ! isset( $settings['pauseTime'] ) || ( ! is_numeric( $settings['pauseTime'] ) || $settings['pauseTime'] <= 0 ) ) {
|
166 |
$settings['pauseTime'] = 3000;
|
167 |
}
|
168 |
+
if ( ! isset( $settings['startSlide'] ) || ( ! is_numeric( $settings['startSlide'] ) || $settings['startSlide'] < 0 ) ) {
|
169 |
$settings['startSlide'] = 0;
|
170 |
}
|
171 |
+
if ( ! isset( $settings['thumbSizeWidth'] ) || ( ! is_numeric( $settings['thumbSizeWidth'] ) || $settings['thumbSizeWidth'] <= 0 ) ) {
|
172 |
$settings['thumbSizeWidth'] = 70;
|
173 |
}
|
174 |
+
if ( ! isset( $settings['thumbSizeHeight'] ) || ( ! is_numeric( $settings['thumbSizeHeight'] ) || $settings['thumbSizeHeight'] <= 0 ) ) {
|
175 |
$settings['thumbSizeHeight'] = 50;
|
176 |
}
|
177 |
|
includes/admin/class-nivo-slider-admin.php
CHANGED
@@ -74,7 +74,7 @@ class Nivo_Slider_Admin extends Nivo_Core_Abstract {
|
|
74 |
'shortcode' => 'nivoslider',
|
75 |
'function' => 'nivo_slider',
|
76 |
'slug' => 'nivo-slider',
|
77 |
-
'taxonomy' => '
|
78 |
'post_meta_key' => 'nivo_settings',
|
79 |
'options_key' => 'nivoslider_settings',
|
80 |
'source_name' => 'type',
|
@@ -89,6 +89,10 @@ class Nivo_Slider_Admin extends Nivo_Core_Abstract {
|
|
89 |
return false;
|
90 |
}
|
91 |
|
|
|
|
|
|
|
|
|
92 |
/**
|
93 |
* Track the nivo slider usage.
|
94 |
*
|
@@ -213,9 +217,17 @@ class Nivo_Slider_Admin extends Nivo_Core_Abstract {
|
|
213 |
* Adds a new menu item under the plugin post type
|
214 |
*
|
215 |
* @since 2.2.*
|
|
|
216 |
* @access public
|
217 |
*/
|
218 |
public function admin_menu() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
add_submenu_page(
|
220 |
'edit.php?post_type=' . $this->labels['post_type'], 'Settings', 'Settings', 'manage_options', $this->labels['post_type'] . '-settings', array(
|
221 |
$this,
|
@@ -224,6 +236,31 @@ class Nivo_Slider_Admin extends Nivo_Core_Abstract {
|
|
224 |
);
|
225 |
}
|
226 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
/**
|
228 |
* Controls the visibility of the plugin menu. Can be filtered.
|
229 |
*
|
@@ -269,7 +306,7 @@ class Nivo_Slider_Admin extends Nivo_Core_Abstract {
|
|
269 |
<?php do_settings_sections( $this->labels['post_type'] . '-settings' ); ?>
|
270 |
<p class="submit">
|
271 |
<input type="submit" name="submit" id="submit" class="button-primary"
|
272 |
-
|
273 |
</p>
|
274 |
</form>
|
275 |
</div>
|
@@ -331,7 +368,7 @@ class Nivo_Slider_Admin extends Nivo_Core_Abstract {
|
|
331 |
case 'text':
|
332 |
?>
|
333 |
<input type="text" name="<?php echo $element_name; ?>" value="<?php echo $element_value; ?>"
|
334 |
-
|
335 |
<?php
|
336 |
break;
|
337 |
case 'textarea':
|
@@ -339,21 +376,21 @@ class Nivo_Slider_Admin extends Nivo_Core_Abstract {
|
|
339 |
$cols = ( isset( $args['cols'] ) ) ? $args['cols'] : 80;
|
340 |
?>
|
341 |
<textarea class="<?php echo $element_class; ?>" name="<?php echo $element_name; ?>"
|
342 |
-
|
343 |
-
|
344 |
<?php
|
345 |
break;
|
346 |
case 'number':
|
347 |
?>
|
348 |
<input type="number" name="<?php echo $element_name; ?>" value="<?php echo $element_value; ?>"
|
349 |
-
|
350 |
<?php
|
351 |
break;
|
352 |
case 'checkbox':
|
353 |
?>
|
354 |
<input type="hidden" name="<?php echo $element_name; ?>" value="off"/>
|
355 |
<input type="checkbox" name="<?php echo $element_name; ?>"
|
356 |
-
|
357 |
echo ' checked="checked"';
|
358 |
} ?> class="<?php echo $element_class; ?> "/>
|
359 |
<?php
|
74 |
'shortcode' => 'nivoslider',
|
75 |
'function' => 'nivo_slider',
|
76 |
'slug' => 'nivo-slider',
|
77 |
+
'taxonomy' => 'nivo_slider',
|
78 |
'post_meta_key' => 'nivo_settings',
|
79 |
'options_key' => 'nivoslider_settings',
|
80 |
'source_name' => 'type',
|
89 |
return false;
|
90 |
}
|
91 |
|
92 |
+
public function get_nivo_settings() {
|
93 |
+
return $this::get_plugin_settings();
|
94 |
+
}
|
95 |
+
|
96 |
/**
|
97 |
* Track the nivo slider usage.
|
98 |
*
|
217 |
* Adds a new menu item under the plugin post type
|
218 |
*
|
219 |
* @since 2.2.*
|
220 |
+
* @updated 3.0.3
|
221 |
* @access public
|
222 |
*/
|
223 |
public function admin_menu() {
|
224 |
+
if ( ! class_exists( 'Nivo_Slider_PRO_Admin' ) ) {
|
225 |
+
add_submenu_page( 'edit.php?post_type=' . $this->labels['post_type'], __( 'More Features', 'nivo-slider' ), __( 'More Features', 'nivo-slider' ) . '<span class="dashicons
|
226 |
+
dashicons-star-filled more-features-icon" style=" width: 17px; height: 17px; margin-left: 4px; color: #ffca54; font-size: 17px; vertical-align: -3px;"></span>', 'manage_options', 'nivo-slider-admin-menu-pro-upsell', array(
|
227 |
+
$this,
|
228 |
+
'render_upsell',
|
229 |
+
) );
|
230 |
+
}
|
231 |
add_submenu_page(
|
232 |
'edit.php?post_type=' . $this->labels['post_type'], 'Settings', 'Settings', 'manage_options', $this->labels['post_type'] . '-settings', array(
|
233 |
$this,
|
236 |
);
|
237 |
}
|
238 |
|
239 |
+
/**
|
240 |
+
* Method used to render upsell page.
|
241 |
+
*
|
242 |
+
* @since 3.0.3
|
243 |
+
* @access public
|
244 |
+
*/
|
245 |
+
public function render_upsell() {
|
246 |
+
$this->load_layout( 'nivo-upsell' );
|
247 |
+
}
|
248 |
+
|
249 |
+
/**
|
250 |
+
* Method used to render pages
|
251 |
+
*
|
252 |
+
* @since 3.0.3
|
253 |
+
* @access public
|
254 |
+
*
|
255 |
+
* @param string $layout_name The name of the layout.
|
256 |
+
*
|
257 |
+
* @return mixed
|
258 |
+
*/
|
259 |
+
public function load_layout( $layout_name ) {
|
260 |
+
wp_enqueue_style( 'nivo-upsell', NIVO_SLIDER_PLUGIN_URL . '/includes/layouts/css/upsell.css' );
|
261 |
+
include( NIVO_SLIDER_PLUGIN_DIR . '/includes/layouts/' . $layout_name . '.php' );
|
262 |
+
}
|
263 |
+
|
264 |
/**
|
265 |
* Controls the visibility of the plugin menu. Can be filtered.
|
266 |
*
|
306 |
<?php do_settings_sections( $this->labels['post_type'] . '-settings' ); ?>
|
307 |
<p class="submit">
|
308 |
<input type="submit" name="submit" id="submit" class="button-primary"
|
309 |
+
value="<?php _e( 'Save Changes', 'nivo-slider' ); ?>">
|
310 |
</p>
|
311 |
</form>
|
312 |
</div>
|
368 |
case 'text':
|
369 |
?>
|
370 |
<input type="text" name="<?php echo $element_name; ?>" value="<?php echo $element_value; ?>"
|
371 |
+
class="<?php echo $element_class; ?> "/>
|
372 |
<?php
|
373 |
break;
|
374 |
case 'textarea':
|
376 |
$cols = ( isset( $args['cols'] ) ) ? $args['cols'] : 80;
|
377 |
?>
|
378 |
<textarea class="<?php echo $element_class; ?>" name="<?php echo $element_name; ?>"
|
379 |
+
rows="<?php echo $rows; ?>"
|
380 |
+
cols="<?php echo $cols; ?>"><?php echo $element_value; ?></textarea>
|
381 |
<?php
|
382 |
break;
|
383 |
case 'number':
|
384 |
?>
|
385 |
<input type="number" name="<?php echo $element_name; ?>" value="<?php echo $element_value; ?>"
|
386 |
+
class="<?php echo $element_class; ?> "/>
|
387 |
<?php
|
388 |
break;
|
389 |
case 'checkbox':
|
390 |
?>
|
391 |
<input type="hidden" name="<?php echo $element_name; ?>" value="off"/>
|
392 |
<input type="checkbox" name="<?php echo $element_name; ?>"
|
393 |
+
value="on"<?php if ( $element_value == 'on' ) {
|
394 |
echo ' checked="checked"';
|
395 |
} ?> class="<?php echo $element_class; ?> "/>
|
396 |
<?php
|
includes/admin/libs/class-nivo-core-admin-edit.php
CHANGED
@@ -59,7 +59,7 @@ class Nivo_Core_Admin_Edit extends Nivo_Core_Abstract implements Nivo_Library_In
|
|
59 |
*
|
60 |
* @return array
|
61 |
*/
|
62 |
-
public function admin_edit_settings( $settings ) {
|
63 |
$settings = array();
|
64 |
$settings[] = array(
|
65 |
'name' => 'enable_captions',
|
@@ -399,6 +399,7 @@ class Nivo_Core_Admin_Edit extends Nivo_Core_Abstract implements Nivo_Library_In
|
|
399 |
global $post;
|
400 |
$options = get_post_meta( $post->ID, $this->labels['post_meta_key'], true );
|
401 |
wp_nonce_field( $this->labels['plugin_name'], $this->labels['post_type'] . '_noncename' );
|
|
|
402 |
?>
|
403 |
<table id="<?php echo $this->labels['post_type']; ?>-settings" class="form-table">
|
404 |
<tr valign="top">
|
@@ -787,8 +788,11 @@ class Nivo_Core_Admin_Edit extends Nivo_Core_Abstract implements Nivo_Library_In
|
|
787 |
}
|
788 |
break;
|
789 |
case 'type':
|
790 |
-
|
791 |
-
|
|
|
|
|
|
|
792 |
break;
|
793 |
case 'source':
|
794 |
echo isset( $types[ $type ] ) ? $types[ $type ] : 'Manual';
|
59 |
*
|
60 |
* @return array
|
61 |
*/
|
62 |
+
public function admin_edit_settings( $settings = array() ) {
|
63 |
$settings = array();
|
64 |
$settings[] = array(
|
65 |
'name' => 'enable_captions',
|
399 |
global $post;
|
400 |
$options = get_post_meta( $post->ID, $this->labels['post_meta_key'], true );
|
401 |
wp_nonce_field( $this->labels['plugin_name'], $this->labels['post_type'] . '_noncename' );
|
402 |
+
echo '<input type="hidden" name="taxonomy" value="' . ( ( isset( $_GET['taxonomy'] ) ) ? $_GET['taxonomy'] : 'slider' ) . '" />';
|
403 |
?>
|
404 |
<table id="<?php echo $this->labels['post_type']; ?>-settings" class="form-table">
|
405 |
<tr valign="top">
|
788 |
}
|
789 |
break;
|
790 |
case 'type':
|
791 |
+
$taxonomy = wp_get_post_terms( $post->ID, 'nivo_slider', array(
|
792 |
+
'fields' => 'names',
|
793 |
+
) );
|
794 |
+
|
795 |
+
echo ( ! is_wp_error( $taxonomy ) && isset( $taxonomy[0] ) ) ? $taxonomy[0] : 'slider';
|
796 |
break;
|
797 |
case 'source':
|
798 |
echo isset( $types[ $type ] ) ? $types[ $type ] : 'Manual';
|
includes/admin/libs/class-nivo-core-shortcode.php
CHANGED
@@ -256,6 +256,7 @@ class Nivo_Core_Shortcode extends Nivo_Core_Abstract implements Nivo_Library_Int
|
|
256 |
* @access public
|
257 |
*/
|
258 |
public function register_scripts() {
|
|
|
259 |
if ( $this->scripts && count( $this->scripts ) > 0 ) {
|
260 |
$required = array( 'jquery' );
|
261 |
foreach ( $this->scripts as $name => $url ) {
|
@@ -272,6 +273,7 @@ class Nivo_Core_Shortcode extends Nivo_Core_Abstract implements Nivo_Library_Int
|
|
272 |
* @access public
|
273 |
*/
|
274 |
public function register_styles() {
|
|
|
275 |
if ( $this->styles && count( $this->styles ) > 0 ) {
|
276 |
foreach ( $this->styles as $name => $url ) {
|
277 |
wp_register_style( $name, $url, array(), $this->labels['plugin_version'] );
|
@@ -370,134 +372,148 @@ class Nivo_Core_Shortcode extends Nivo_Core_Abstract implements Nivo_Library_Int
|
|
370 |
* @return string
|
371 |
*/
|
372 |
public function shortcode_output( $id, $output, $options, $images, $slider_type ) {
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
if ( isset( $options['theme'] ) && $options['theme'] != '' ) {
|
383 |
-
$output .= ' theme-' . $options['theme'];
|
384 |
-
}
|
385 |
-
if ( isset( $options['controlNavThumbs'] ) && $options['controlNavThumbs'] == 'on' ) {
|
386 |
-
$output .= ' controlnav-thumbs';
|
387 |
-
}
|
388 |
-
$output .= '"><div class="ribbon"></div>';
|
389 |
-
$output .= '<div id="nivoslider-' . $id . '" class="nivoSlider"';
|
390 |
-
if ( $options['sizing'] == 'fixed' ) {
|
391 |
-
$output .= ' style="width:' . $options['dim_x'] . 'px;height:' . $options['dim_y'] . 'px;"';
|
392 |
-
}
|
393 |
-
$output .= '>';
|
394 |
-
$i = 0;
|
395 |
-
foreach ( $images as $image ) {
|
396 |
-
|
397 |
-
$image_link = $this->nivo_default_val( $options, 'imageLink', 'on' );
|
398 |
-
$target_blank = $this->nivo_default_val( $options, 'targetBlank', 'on' );
|
399 |
-
if ( ( isset( $image['post_permalink'] ) && $image['post_permalink'] != '' ) && $image_link == 'on' ) {
|
400 |
-
$target = ( $target_blank == 'on' ) ? ' target="_blank"' : '';
|
401 |
-
$output .= '<a ' . $target . ' href="' . $image['post_permalink'] . '">';
|
402 |
}
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
} else {
|
410 |
-
$output .= '<img src="' . $resized_image['url'] . '" ';
|
411 |
-
}
|
412 |
} else {
|
413 |
-
$
|
414 |
}
|
415 |
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
$
|
420 |
}
|
421 |
-
if ( ( $
|
422 |
-
$
|
423 |
-
|
424 |
-
|
|
|
|
|
|
|
425 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
|
427 |
-
|
428 |
-
|
429 |
-
$output .= 'data-thumb="' . $image['thumbnail'] . '" ';
|
430 |
-
} else {
|
431 |
-
$resized_image = $this->core_images->resize_image( $image['attachment_id'], '', $options['thumbSizeWidth'], $options['thumbSizeHeight'], true );
|
432 |
if ( is_wp_error( $resized_image ) ) {
|
433 |
echo '<p>Error: ' . $resized_image->get_error_message() . '</p>';
|
434 |
-
$output .= '
|
435 |
} else {
|
436 |
-
$output .= '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
}
|
438 |
}
|
439 |
-
}
|
440 |
|
441 |
-
|
442 |
-
|
443 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
444 |
}
|
445 |
-
}
|
446 |
-
$output .= '</div></div>';
|
447 |
-
|
448 |
-
if ( isset( $options['controlNavThumbs'] ) && 'on' == $options['controlNavThumbs'] ) {
|
449 |
-
|
450 |
-
// Get the height and width.
|
451 |
-
$thumbnail_height = $options['thumbSizeHeight'];
|
452 |
-
$thumbnail_width = $options['thumbSizeWidth'];
|
453 |
-
|
454 |
-
// Force the height/width of thumbnails set in slider settings.
|
455 |
-
$output .= "<style type='text/css' media='screen'> \n";
|
456 |
-
$output .= ".theme-default .nivo-controlNav.nivo-thumbs-enabled img, \n";
|
457 |
-
$output .= ".nivo-thumbs-enabled img { \n";
|
458 |
-
$output .= " width: {$thumbnail_width}px !important; \n";
|
459 |
-
$output .= " height: {$thumbnail_height}px !important; \n";
|
460 |
-
$output .= "} \n";
|
461 |
-
$output .= "</style> \n";
|
462 |
-
}
|
463 |
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
484 |
} else {
|
485 |
-
$output .= '
|
|
|
|
|
|
|
|
|
486 |
}
|
487 |
-
$output .= ' directionNav:' . ( ( $options['directionNav'] == 'on' ) ? 'true' : 'false' ) . ',' . "\n";
|
488 |
-
$output .= ' controlNav:' . ( ( $options['controlNav'] == 'on' ) ? 'true' : 'false' ) . ',' . "\n";
|
489 |
-
$output .= ' controlNavThumbs:' . ( ( isset( $options['controlNavThumbs'] ) && $options['controlNavThumbs'] == 'on' ) ? 'true' : 'false' ) . ',' . "\n";
|
490 |
-
$output .= ' pauseOnHover:' . ( ( $options['pauseOnHover'] == 'on' ) ? 'true' : 'false' ) . ',' . "\n";
|
491 |
-
$output .= ' manualAdvance:' . ( ( $options['manualAdvance'] == 'on' ) ? 'true' : 'false' ) . "\n";
|
492 |
-
$output .= ' });' . "\n";
|
493 |
-
$output .= '});' . "\n";
|
494 |
-
$output .= '</script>' . "\n";
|
495 |
-
} else {
|
496 |
-
$output .= '<script type="text/javascript">' . "\n";
|
497 |
-
$output .= 'jQuery(window).load(function(){' . "\n";
|
498 |
-
$output .= ' jQuery("#nivoslider-' . $id . ' img").css("position","relative").show();' . "\n";
|
499 |
-
$output .= '});' . "\n";
|
500 |
-
$output .= '</script>' . "\n";
|
501 |
}
|
502 |
|
503 |
return $output;
|
256 |
* @access public
|
257 |
*/
|
258 |
public function register_scripts() {
|
259 |
+
$this->scripts = apply_filters( 'nivo_external_shortcode_scripts', $this->scripts );
|
260 |
if ( $this->scripts && count( $this->scripts ) > 0 ) {
|
261 |
$required = array( 'jquery' );
|
262 |
foreach ( $this->scripts as $name => $url ) {
|
273 |
* @access public
|
274 |
*/
|
275 |
public function register_styles() {
|
276 |
+
$this->styles = apply_filters( 'nivo_external_shortcode_styles', $this->styles );
|
277 |
if ( $this->styles && count( $this->styles ) > 0 ) {
|
278 |
foreach ( $this->styles as $name => $url ) {
|
279 |
wp_register_style( $name, $url, array(), $this->labels['plugin_version'] );
|
372 |
* @return string
|
373 |
*/
|
374 |
public function shortcode_output( $id, $output, $options, $images, $slider_type ) {
|
375 |
+
$module = false;
|
376 |
+
list( $prefix, $post_id ) = explode( '-', $id );
|
377 |
+
if ( get_post_type( $post_id ) == $this->labels['post_type'] ) {
|
378 |
+
$taxonomy = wp_get_post_terms( $post_id, 'nivo_slider', array(
|
379 |
+
'fields' => 'names',
|
380 |
+
) );
|
381 |
+
if ( isset( $taxonomy[0] ) && in_array( $taxonomy[0], array( 'carousel' ) ) ) {
|
382 |
+
$module = true;
|
383 |
+
$module_name = $taxonomy[0];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
384 |
}
|
385 |
+
}
|
386 |
+
if ( $module && isset( $module_name ) ) {
|
387 |
+
$output = apply_filters( $this->labels['post_type'] . '_' . $module_name, $id, $output, $options, $images, $slider_type );
|
388 |
+
} else {
|
389 |
+
if ( isset( $options[ $this->labels['source_name'] ] ) ) {
|
390 |
+
$type = $options[ $this->labels['source_name'] ];
|
|
|
|
|
|
|
391 |
} else {
|
392 |
+
$type = $options[ $this->labels['type_name'] ]; // backwards compatibility for < v3.0.0
|
393 |
}
|
394 |
|
395 |
+
$captions = array();
|
396 |
+
$output .= '<div class="slider-wrapper';
|
397 |
+
if ( isset( $options['theme'] ) && $options['theme'] != '' ) {
|
398 |
+
$output .= ' theme-' . $options['theme'];
|
399 |
}
|
400 |
+
if ( isset( $options['controlNavThumbs'] ) && $options['controlNavThumbs'] == 'on' ) {
|
401 |
+
$output .= ' controlnav-thumbs';
|
402 |
+
}
|
403 |
+
$output .= '"><div class="ribbon"></div>';
|
404 |
+
$output .= '<div id="nivoslider-' . $id . '" class="nivoSlider"';
|
405 |
+
if ( isset( $options['sizing'] ) && $options['sizing'] == 'fixed' ) {
|
406 |
+
$output .= ' style="width:' . $options['dim_x'] . 'px;height:' . $options['dim_y'] . 'px;"';
|
407 |
}
|
408 |
+
$output .= '>';
|
409 |
+
$i = 0;
|
410 |
+
foreach ( $images as $image ) {
|
411 |
+
|
412 |
+
$image_link = $this->nivo_default_val( $options, 'imageLink', 'on' );
|
413 |
+
$target_blank = $this->nivo_default_val( $options, 'targetBlank', 'on' );
|
414 |
+
if ( ( isset( $image['post_permalink'] ) && $image['post_permalink'] != '' ) && $image_link == 'on' ) {
|
415 |
+
$target = ( $target_blank == 'on' ) ? ' target="_blank"' : '';
|
416 |
+
$output .= '<a ' . $target . ' href="' . $image['post_permalink'] . '">';
|
417 |
+
}
|
418 |
|
419 |
+
if ( isset( $options['sizing'] ) && $options['sizing'] == 'fixed' && isset( $image['attachment_id'] ) ) {
|
420 |
+
$resized_image = $this->core_images->resize_image( $image['attachment_id'], '', $options['dim_x'], $options['dim_y'], true );
|
|
|
|
|
|
|
421 |
if ( is_wp_error( $resized_image ) ) {
|
422 |
echo '<p>Error: ' . $resized_image->get_error_message() . '</p>';
|
423 |
+
$output .= '<img src="" ';
|
424 |
} else {
|
425 |
+
$output .= '<img src="' . $resized_image['url'] . '" ';
|
426 |
+
}
|
427 |
+
} else {
|
428 |
+
$output .= '<img src="' . $image['image_src'] . '" ';
|
429 |
+
}
|
430 |
+
|
431 |
+
if ( ( $type == 'manual' || $type == 'gallery' ) && isset( $image['post_title'] ) && $image['post_title'] != '' ) {
|
432 |
+
$captions[] = $image['post_title'];
|
433 |
+
$output .= 'title="#nivoslider-' . $id . '-caption-' . $i . '" ';
|
434 |
+
$i ++;
|
435 |
+
}
|
436 |
+
if ( ( $type == 'category' || $type == 'sticky' || $type == 'custom' ) && $options['enable_captions'] == 'on' && isset( $image['post_title'] ) && $image['post_title'] != '' ) {
|
437 |
+
$captions[] = $image['post_title'];
|
438 |
+
$output .= 'title="#nivoslider-' . $id . '-caption-' . $i . '" ';
|
439 |
+
$i ++;
|
440 |
+
}
|
441 |
+
|
442 |
+
if ( isset( $options['controlNavThumbs'] ) && $options['controlNavThumbs'] == 'on' ) {
|
443 |
+
if ( isset( $image['thumbnail'] ) ) {
|
444 |
+
$output .= 'data-thumb="' . $image['thumbnail'] . '" ';
|
445 |
+
} else {
|
446 |
+
$resized_image = $this->core_images->resize_image( $image['attachment_id'], '', $options['thumbSizeWidth'], $options['thumbSizeHeight'], true );
|
447 |
+
if ( is_wp_error( $resized_image ) ) {
|
448 |
+
echo '<p>Error: ' . $resized_image->get_error_message() . '</p>';
|
449 |
+
$output .= 'data-thumb="" ';
|
450 |
+
} else {
|
451 |
+
$output .= 'data-thumb="' . $resized_image['url'] . '" ';
|
452 |
+
}
|
453 |
}
|
454 |
}
|
|
|
455 |
|
456 |
+
$output .= 'alt="' . $image['alt_text'] . '" />';
|
457 |
+
if ( isset( $image['post_permalink'] ) && $image['post_permalink'] != '' ) {
|
458 |
+
$output .= '</a>';
|
459 |
+
}
|
460 |
+
}
|
461 |
+
$output .= '</div></div>';
|
462 |
+
|
463 |
+
if ( isset( $options['controlNavThumbs'] ) && 'on' == $options['controlNavThumbs'] ) {
|
464 |
+
|
465 |
+
// Get the height and width.
|
466 |
+
$thumbnail_height = $options['thumbSizeHeight'];
|
467 |
+
$thumbnail_width = $options['thumbSizeWidth'];
|
468 |
+
|
469 |
+
// Force the height/width of thumbnails set in slider settings.
|
470 |
+
$output .= "<style type='text/css' media='screen'> \n";
|
471 |
+
$output .= ".theme-default .nivo-controlNav.nivo-thumbs-enabled img, \n";
|
472 |
+
$output .= ".nivo-thumbs-enabled img { \n";
|
473 |
+
$output .= " width: {$thumbnail_width}px !important; \n";
|
474 |
+
$output .= " height: {$thumbnail_height}px !important; \n";
|
475 |
+
$output .= "} \n";
|
476 |
+
$output .= "</style> \n";
|
477 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
478 |
|
479 |
+
$i = 0;
|
480 |
+
foreach ( $captions as $caption ) {
|
481 |
+
$output .= '<div id="nivoslider-' . $id . '-caption-' . $i . '" class="nivo-html-caption">';
|
482 |
+
$output .= $caption ;
|
483 |
+
$output .= '</div>';
|
484 |
+
$i ++;
|
485 |
+
}
|
486 |
|
487 |
+
if ( count( $images ) > 1 ) {
|
488 |
+
$output .= '<script type="text/javascript">' . "\n";
|
489 |
+
$output .= 'jQuery(window).load(function(){' . "\n";
|
490 |
+
$output .= ' jQuery("#nivoslider-' . $id . '").nivoSlider({' . "\n";
|
491 |
+
$output .= ' effect:"' . $options['effect'] . '",' . "\n";
|
492 |
+
$output .= ' slices:' . $options['slices'] . ',' . "\n";
|
493 |
+
$output .= ' boxCols:' . $options['boxCols'] . ',' . "\n";
|
494 |
+
$output .= ' boxRows:' . $options['boxRows'] . ',' . "\n";
|
495 |
+
$output .= ' animSpeed:' . $options['animSpeed'] . ',' . "\n";
|
496 |
+
$output .= ' pauseTime:' . $options['pauseTime'] . ',' . "\n";
|
497 |
+
if ( isset( $options['randomStart'] ) && $options['randomStart'] == 'on' ) {
|
498 |
+
$output .= ' startSlide:' . floor( rand( 0, count( $images ) ) ) . ',' . "\n";
|
499 |
+
} else {
|
500 |
+
$output .= ' startSlide:' . $options['startSlide'] . ',' . "\n";
|
501 |
+
}
|
502 |
+
$output .= ' directionNav:' . ( ( $options['directionNav'] == 'on' ) ? 'true' : 'false' ) . ',' . "\n";
|
503 |
+
$output .= ' controlNav:' . ( ( $options['controlNav'] == 'on' ) ? 'true' : 'false' ) . ',' . "\n";
|
504 |
+
$output .= ' controlNavThumbs:' . ( ( isset( $options['controlNavThumbs'] ) && $options['controlNavThumbs'] == 'on' ) ? 'true' : 'false' ) . ',' . "\n";
|
505 |
+
$output .= ' pauseOnHover:' . ( ( $options['pauseOnHover'] == 'on' ) ? 'true' : 'false' ) . ',' . "\n";
|
506 |
+
$output .= ' manualAdvance:' . ( ( $options['manualAdvance'] == 'on' ) ? 'true' : 'false' ) . "\n";
|
507 |
+
$output .= ' });' . "\n";
|
508 |
+
$output .= '});' . "\n";
|
509 |
+
$output .= '</script>' . "\n";
|
510 |
} else {
|
511 |
+
$output .= '<script type="text/javascript">' . "\n";
|
512 |
+
$output .= 'jQuery(window).load(function(){' . "\n";
|
513 |
+
$output .= ' jQuery("#nivoslider-' . $id . ' img").css("position","relative").show();' . "\n";
|
514 |
+
$output .= '});' . "\n";
|
515 |
+
$output .= '</script>' . "\n";
|
516 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
517 |
}
|
518 |
|
519 |
return $output;
|
includes/class-nivo-slider.php
CHANGED
@@ -69,7 +69,7 @@ class Nivo_Slider {
|
|
69 |
public function __construct() {
|
70 |
|
71 |
$this->plugin_name = 'nivo-slider';
|
72 |
-
$this->version = '2.0
|
73 |
|
74 |
$this->load_dependencies();
|
75 |
$this->set_locale();
|
@@ -131,7 +131,7 @@ class Nivo_Slider {
|
|
131 |
$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
|
132 |
$this->loader->add_action( 'init', $plugin_admin, 'init_tinymce' );
|
133 |
$this->loader->add_action( 'admin_print_scripts', $plugin_admin, 'admin_print_scripts' );
|
134 |
-
$this->loader->add_action( 'admin_menu', $plugin_admin, 'admin_menu' );
|
135 |
$this->loader->add_action( 'admin_menu', $plugin_admin, 'remove_admin_menu' );
|
136 |
$this->loader->add_action( 'admin_init', $plugin_admin, 'register_settings' );
|
137 |
// Filters Nivo_Slider_Admin
|
@@ -141,6 +141,8 @@ class Nivo_Slider {
|
|
141 |
$this->loader->add_filter( 'plugin_action_links', $plugin_admin, 'plugin_action_links', 10, 2 );
|
142 |
$this->loader->add_filter( 'nivo_field_upsell', $plugin_admin, 'add_upsell', 10, 2 );
|
143 |
$this->loader->add_filter( 'nivo_slider_lite_logger_flag', $plugin_admin, 'check_logger', 10, 2 );
|
|
|
|
|
144 |
|
145 |
$plugin_admin_edit = new Nivo_Core_Admin_Edit();
|
146 |
// Actions Nivo_Core_Admin_Edit
|
@@ -149,6 +151,7 @@ class Nivo_Slider {
|
|
149 |
$this->loader->add_action( 'manage_' . $post_type . '_posts_custom_column', $plugin_admin_edit, 'custom_columns' );
|
150 |
// Filters Nivo_Core_Admin_Edit
|
151 |
$this->loader->add_filter( $post_type . '_admin_edit_settings', $plugin_admin_edit, 'admin_edit_settings' );
|
|
|
152 |
|
153 |
$plugin_admin_ajax = new Nivo_Core_Admin_Ajax();
|
154 |
// Actions Nivo_Core_Admin_Ajax
|
69 |
public function __construct() {
|
70 |
|
71 |
$this->plugin_name = 'nivo-slider';
|
72 |
+
$this->version = '2.1.0';
|
73 |
|
74 |
$this->load_dependencies();
|
75 |
$this->set_locale();
|
131 |
$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
|
132 |
$this->loader->add_action( 'init', $plugin_admin, 'init_tinymce' );
|
133 |
$this->loader->add_action( 'admin_print_scripts', $plugin_admin, 'admin_print_scripts' );
|
134 |
+
$this->loader->add_action( 'admin_menu', $plugin_admin, 'admin_menu', 999 );
|
135 |
$this->loader->add_action( 'admin_menu', $plugin_admin, 'remove_admin_menu' );
|
136 |
$this->loader->add_action( 'admin_init', $plugin_admin, 'register_settings' );
|
137 |
// Filters Nivo_Slider_Admin
|
141 |
$this->loader->add_filter( 'plugin_action_links', $plugin_admin, 'plugin_action_links', 10, 2 );
|
142 |
$this->loader->add_filter( 'nivo_field_upsell', $plugin_admin, 'add_upsell', 10, 2 );
|
143 |
$this->loader->add_filter( 'nivo_slider_lite_logger_flag', $plugin_admin, 'check_logger', 10, 2 );
|
144 |
+
$this->loader->add_filter( 'get_nivo_settings', $plugin_admin, 'get_nivo_settings' );
|
145 |
+
$this->loader->add_filter( 'nivo_default_val', $plugin_admin, 'nivo_default_val', 10, 3 );
|
146 |
|
147 |
$plugin_admin_edit = new Nivo_Core_Admin_Edit();
|
148 |
// Actions Nivo_Core_Admin_Edit
|
151 |
$this->loader->add_action( 'manage_' . $post_type . '_posts_custom_column', $plugin_admin_edit, 'custom_columns' );
|
152 |
// Filters Nivo_Core_Admin_Edit
|
153 |
$this->loader->add_filter( $post_type . '_admin_edit_settings', $plugin_admin_edit, 'admin_edit_settings' );
|
154 |
+
$this->loader->add_filter( 'get_image_source_details', $plugin_admin_edit, 'get_image_source_details', 10, 2 );
|
155 |
|
156 |
$plugin_admin_ajax = new Nivo_Core_Admin_Ajax();
|
157 |
// Actions Nivo_Core_Admin_Ajax
|
includes/layouts/css/upsell.css
ADDED
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* upsell.css
|
3 |
+
* Feedzy RSS Feed Upsell Style
|
4 |
+
*
|
5 |
+
* @since 3.0.12
|
6 |
+
* @package feedzy-rss-feeds
|
7 |
+
*/
|
8 |
+
|
9 |
+
#pro-features .pro-features-header {
|
10 |
+
padding: 20px 10px;
|
11 |
+
border-top: 5px solid #252b37;
|
12 |
+
background: #fff;
|
13 |
+
}
|
14 |
+
|
15 |
+
#pro-features .logo {
|
16 |
+
display: inline-block;
|
17 |
+
margin: 0 0 0 20px;
|
18 |
+
padding: 0 0 0 0;
|
19 |
+
color: #3c3c3c;
|
20 |
+
font-family: "Open Sans", sans-serif;
|
21 |
+
font-size: 2em;
|
22 |
+
font-weight: 700;
|
23 |
+
line-height: 60px;
|
24 |
+
letter-spacing: -1px;
|
25 |
+
}
|
26 |
+
|
27 |
+
#pro-features .slogan {
|
28 |
+
display: inline-block;
|
29 |
+
margin: 0 0 0 5px;
|
30 |
+
padding: 0;
|
31 |
+
color: #858585;
|
32 |
+
font-family: "Open Sans", sans-serif;
|
33 |
+
font-size: 17px;
|
34 |
+
line-height: 3.5;
|
35 |
+
}
|
36 |
+
|
37 |
+
#pro-features .slogan a {
|
38 |
+
color: #858585;
|
39 |
+
font-weight: 600;
|
40 |
+
font-style: italic;
|
41 |
+
text-decoration: none;
|
42 |
+
-webkit-transition: all 0.250s ease-in-out;
|
43 |
+
transition: all 0.250s ease-in-out;
|
44 |
+
}
|
45 |
+
|
46 |
+
#pro-features .slogan a:hover {
|
47 |
+
color: #ff6160;
|
48 |
+
}
|
49 |
+
|
50 |
+
#pro-features .slogan a:focus {
|
51 |
+
outline: none;
|
52 |
+
-webkit-box-shadow: none;
|
53 |
+
box-shadow: none;
|
54 |
+
}
|
55 |
+
|
56 |
+
#pro-features .header-btns {
|
57 |
+
float: right;
|
58 |
+
margin: 7px 20px;
|
59 |
+
text-align: right;
|
60 |
+
}
|
61 |
+
|
62 |
+
#pro-features .header-btns .buy-now {
|
63 |
+
display: inline-block;
|
64 |
+
margin-top: 2px;
|
65 |
+
margin-right: 5px;
|
66 |
+
padding: 15px 25px;
|
67 |
+
border-radius: 3px;
|
68 |
+
border-radius: 3px;
|
69 |
+
color: #fff;
|
70 |
+
background: #e33b3f;
|
71 |
+
font-family: "Open Sans", sans-serif;
|
72 |
+
font-size: 18px;
|
73 |
+
font-weight: bold;
|
74 |
+
text-decoration: none;
|
75 |
+
text-transform: uppercase;
|
76 |
+
-webkit-transition: all 0.250s ease-in-out;
|
77 |
+
transition: all 0.250s ease-in-out;
|
78 |
+
}
|
79 |
+
|
80 |
+
#pro-features .header-btns .buy-now:hover {
|
81 |
+
background: #252b37;
|
82 |
+
}
|
83 |
+
|
84 |
+
#pro-features .header-btns .buy-now .dashicons {
|
85 |
+
padding-right: 3px;
|
86 |
+
}
|
87 |
+
|
88 |
+
#pro-features .pro-features-header,
|
89 |
+
#pro-features .pro-feature {
|
90 |
+
display: block;
|
91 |
+
margin: 30px 15px 0;
|
92 |
+
background-color: #fff;
|
93 |
+
-webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
94 |
+
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
95 |
+
}
|
96 |
+
|
97 |
+
#pro-features .pro-feature .pro-feature-features,
|
98 |
+
#pro-features .pro-feature .pro-feature-image {
|
99 |
+
display: table-cell;
|
100 |
+
margin: 0;
|
101 |
+
vertical-align: middle;
|
102 |
+
}
|
103 |
+
|
104 |
+
#pro-features .pro-feature .pro-feature-features {
|
105 |
+
-webkit-box-sizing: border-box;
|
106 |
+
box-sizing: border-box;
|
107 |
+
padding: 30px;
|
108 |
+
}
|
109 |
+
|
110 |
+
#pro-features .pro-feature .pro-feature-image {
|
111 |
+
width: 470px;
|
112 |
+
}
|
113 |
+
|
114 |
+
#pro-features .pro-feature .pro-feature-features h2 {
|
115 |
+
margin: 0 0 20px;
|
116 |
+
font-size: 28px;
|
117 |
+
}
|
118 |
+
|
119 |
+
#pro-features .pro-feature .pro-feature-features h4 {
|
120 |
+
margin: 0 0 10px;
|
121 |
+
font-size: 20px;
|
122 |
+
}
|
123 |
+
|
124 |
+
#pro-features .pro-feature .pro-feature-features p {
|
125 |
+
margin: 0 0 15px;
|
126 |
+
font-size: 16px;
|
127 |
+
line-height: 1.5;
|
128 |
+
}
|
129 |
+
|
130 |
+
#pro-features .pro-feature .pro-feature-image img {
|
131 |
+
width: 100%;
|
132 |
+
height: auto;
|
133 |
+
padding: 20px 0;
|
134 |
+
}
|
135 |
+
|
136 |
+
#pro-features .subtitle-pro {
|
137 |
+
margin: 0 0 0 20px;
|
138 |
+
padding: 0;
|
139 |
+
color: #858585;
|
140 |
+
font-family: "Open Sans", sans-serif;
|
141 |
+
font-size: 16px;
|
142 |
+
font-size: 17px;
|
143 |
+
line-height: 1.5;
|
144 |
+
}
|
145 |
+
|
146 |
+
@media screen and (max-width: 1200px) {
|
147 |
+
#pro-features .pro-feature .pro-feature-features,
|
148 |
+
#pro-features .pro-feature .pro-feature-image {
|
149 |
+
display: block;
|
150 |
+
}
|
151 |
+
|
152 |
+
#pro-features .pro-feature .pro-feature-image {
|
153 |
+
width: 470px;
|
154 |
+
margin: 0 auto 20px;
|
155 |
+
text-align: center;
|
156 |
+
}
|
157 |
+
|
158 |
+
#pro-features .slogan {
|
159 |
+
display: none;
|
160 |
+
}
|
161 |
+
}
|
162 |
+
|
163 |
+
@media screen and (max-width: 1100px) {
|
164 |
+
#pro-features {
|
165 |
+
text-align: center;
|
166 |
+
}
|
167 |
+
|
168 |
+
#pro-features .logo {
|
169 |
+
margin-left: 0;
|
170 |
+
}
|
171 |
+
|
172 |
+
#pro-features .header-btns {
|
173 |
+
display: block;
|
174 |
+
float: none;
|
175 |
+
margin: 0 0 10px 0;
|
176 |
+
text-align: center;
|
177 |
+
}
|
178 |
+
}
|
includes/layouts/nivo-upsell.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Layout For Upsell Page of Nivo Slider
|
4 |
+
*
|
5 |
+
* @since 3.0.12
|
6 |
+
* @package feedzy-rss-feeds
|
7 |
+
*/
|
8 |
+
?>
|
9 |
+
<div id="pro-features" class="nivo-pro-upsell">
|
10 |
+
|
11 |
+
<div class="pro-features-header">
|
12 |
+
<p class="logo"> Nivo Slider</p>
|
13 |
+
<span class="slogan">by <a
|
14 |
+
href="https://themeisle.com/">ThemeIsle</a></span>
|
15 |
+
<div class="header-btns">
|
16 |
+
|
17 |
+
<a target="_blank" href="<?php echo NIVO_PRO_UPSELL; ?>" class="buy-now"><span
|
18 |
+
class="dashicons dashicons-cart"></span> Buy now</a>
|
19 |
+
</div>
|
20 |
+
<p class="subtitle-pro">Extend your Nivo Slider and add more powerfull features .</p>
|
21 |
+
<div class="clear"></div>
|
22 |
+
</div>
|
23 |
+
|
24 |
+
<div class="pro-feature">
|
25 |
+
<div class="pro-feature-features">
|
26 |
+
<h2>Create sliders from categories or galleries</h2>
|
27 |
+
<p>Besides the classic image sliders, Nivo allows you to choose between Category and Gallery sliders. This
|
28 |
+
allows you to easily showcase your visitors your website’s content</p>
|
29 |
+
</div>
|
30 |
+
<div class="pro-feature-image">
|
31 |
+
<img src="<?php echo NIVO_SLIDER_PLUGIN_URL . '/assets/images/nivo-slider-create-slider-from-posts-categories-galleries.jpg'; ?>"/>
|
32 |
+
</div>
|
33 |
+
<div class="clear"></div>
|
34 |
+
</div>
|
35 |
+
<div class="pro-feature">
|
36 |
+
<div class="pro-feature-image">
|
37 |
+
<img src="<?php echo NIVO_SLIDER_PLUGIN_URL . '/assets/images/nivo-slider-plugin-mobile-friendly.jpg'; ?>"/>
|
38 |
+
</div>
|
39 |
+
<div class="pro-feature-features">
|
40 |
+
<h2>Post types support</h2>
|
41 |
+
<p>Image sliders created with the Nivo Slider plugin are compatible with WordPress post types. Include
|
42 |
+
sliders anywhere in your website, it’s super easy.</p>
|
43 |
+
</div>
|
44 |
+
<div class="clear"></div>
|
45 |
+
</div>
|
46 |
+
<div class="pro-feature">
|
47 |
+
<div class="pro-feature-features">
|
48 |
+
<h2>Carousel support</h2>
|
49 |
+
<p>You can leverage the use of the Nivo and create also powerfull carousels besides the regular sliders
|
50 |
+
which you are already familiar. You can add as many as you want and fetch images from posts, categories
|
51 |
+
or custom post types.</p>
|
52 |
+
</div>
|
53 |
+
<div class="pro-feature-image">
|
54 |
+
<img src="<?php echo NIVO_SLIDER_PLUGIN_URL . '/assets/images/nivo-slider-carousel-integration.jpg'; ?>"/>
|
55 |
+
</div>
|
56 |
+
<div class="clear"></div>
|
57 |
+
</div>
|
58 |
+
<div class="clear"></div>
|
59 |
+
</div>
|
key.enc
ADDED
Binary file
|
languages/nivo-slider.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the no.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Slider by Nivo - Responsive Image Slider 2.0.
|
6 |
"Report-Msgid-Bugs-To: https://github.com/Codeinwp/nivo-slider-lite/issues\n"
|
7 |
-
"POT-Creation-Date: 2017-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -24,356 +24,466 @@ msgstr ""
|
|
24 |
"X-Poedit-Bookmarks: \n"
|
25 |
"X-Textdomain-Support: yes\n"
|
26 |
|
27 |
-
#: includes/abstract/class-nivo-model-abstract.php:56
|
28 |
msgid "Add New"
|
29 |
msgstr ""
|
30 |
|
|
|
31 |
#: includes/abstract/class-nivo-model-abstract.php:57
|
32 |
msgid "Add New %1$s"
|
33 |
msgstr ""
|
34 |
|
|
|
|
|
35 |
#: includes/abstract/class-nivo-model-abstract.php:58
|
36 |
#: includes/admin/libs/class-nivo-core-admin-images.php:59
|
37 |
msgid "Edit %1$s"
|
38 |
msgstr ""
|
39 |
|
|
|
40 |
#: includes/abstract/class-nivo-model-abstract.php:59
|
41 |
msgid "New %1$s"
|
42 |
msgstr ""
|
43 |
|
|
|
44 |
#: includes/abstract/class-nivo-model-abstract.php:60
|
45 |
msgid "All %2$s"
|
46 |
msgstr ""
|
47 |
|
|
|
48 |
#: includes/abstract/class-nivo-model-abstract.php:61
|
49 |
msgid "View %1$s"
|
50 |
msgstr ""
|
51 |
|
|
|
52 |
#: includes/abstract/class-nivo-model-abstract.php:62
|
53 |
msgid "Search %2$s"
|
54 |
msgstr ""
|
55 |
|
|
|
56 |
#: includes/abstract/class-nivo-model-abstract.php:63
|
57 |
msgid "No %2$s found"
|
58 |
msgstr ""
|
59 |
|
|
|
60 |
#: includes/abstract/class-nivo-model-abstract.php:64
|
61 |
msgid "No %2$s found in Trash"
|
62 |
msgstr ""
|
63 |
|
|
|
|
|
|
|
64 |
#: includes/admin/class-nivo-slider-admin.php:83
|
65 |
-
#: includes/admin/class-nivo-slider-admin.php:
|
66 |
#: includes/admin/libs/class-nivo-slider-widget.php:31
|
67 |
msgid "Nivo Slider"
|
68 |
msgstr ""
|
69 |
|
|
|
70 |
#: includes/admin/class-nivo-slider-admin.php:84
|
71 |
msgid "Nivo Sliders"
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: includes/admin/class-nivo-slider-admin.php:272
|
|
|
75 |
msgid "Save Changes"
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: includes/admin/class-nivo-slider-admin.php:300
|
|
|
79 |
msgid "Management Roles"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: includes/admin/class-nivo-slider-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:281
|
84 |
msgid "Settings"
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: includes/admin/class-nivo-slider-admin.php:
|
|
|
88 |
msgid ""
|
89 |
"You can automatically build slider from post galleries, categories and "
|
90 |
"sticky posts using the %1$s FULL%2$s version."
|
91 |
msgstr ""
|
92 |
|
|
|
93 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:68
|
94 |
msgid "Enable Captions"
|
95 |
msgstr ""
|
96 |
|
|
|
97 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:69
|
98 |
msgid "Enable automatic captions from post titles"
|
99 |
msgstr ""
|
100 |
|
|
|
101 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:77
|
102 |
msgid "Number of Images"
|
103 |
msgstr ""
|
104 |
|
|
|
105 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:78
|
106 |
msgid ""
|
107 |
"The number of images to use in the slider. Leave blank for all images. "
|
108 |
"External sources default to 20"
|
109 |
msgstr ""
|
110 |
|
|
|
111 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:87
|
112 |
msgid "Slider Sizing"
|
113 |
msgstr ""
|
114 |
|
|
|
115 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:88
|
116 |
msgid "Responsive sliders will fill the width of the container"
|
117 |
msgstr ""
|
118 |
|
|
|
119 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:90
|
120 |
msgid "Responsive"
|
121 |
msgstr ""
|
122 |
|
|
|
123 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:91
|
124 |
msgid "Fixed Size"
|
125 |
msgstr ""
|
126 |
|
|
|
127 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:98
|
128 |
msgid "Image Size"
|
129 |
msgstr ""
|
130 |
|
|
|
131 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:99
|
132 |
msgid "Select the size of image from the WordPress media library"
|
133 |
msgstr ""
|
134 |
|
|
|
135 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:107
|
136 |
msgid "Slider Size"
|
137 |
msgstr ""
|
138 |
|
|
|
139 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:108
|
140 |
msgid "(Size in px) Images will be cropped to these dimensions (eg 400 x 150)"
|
141 |
msgstr ""
|
142 |
|
|
|
143 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:121
|
144 |
msgid "Slider Theme"
|
145 |
msgstr ""
|
146 |
|
|
|
147 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:122
|
148 |
msgid "Use a pre-built theme or provide your own styles."
|
149 |
msgstr ""
|
150 |
|
|
|
151 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:126
|
152 |
msgid "Random"
|
153 |
msgstr ""
|
154 |
|
|
|
155 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:127
|
156 |
msgid "Fade"
|
157 |
msgstr ""
|
158 |
|
|
|
159 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:128
|
160 |
msgid "Fold"
|
161 |
msgstr ""
|
162 |
|
|
|
163 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:129
|
164 |
msgid "Slice Down"
|
165 |
msgstr ""
|
166 |
|
|
|
167 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:130
|
168 |
msgid "Slice Down (Left)"
|
169 |
msgstr ""
|
170 |
|
|
|
171 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:131
|
172 |
msgid "Slice Up"
|
173 |
msgstr ""
|
174 |
|
|
|
175 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:132
|
176 |
msgid "Slice Up (Left)"
|
177 |
msgstr ""
|
178 |
|
|
|
179 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:133
|
180 |
msgid "Slice Up/Down"
|
181 |
msgstr ""
|
182 |
|
|
|
183 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:134
|
184 |
msgid "Slice Up/Down (Left)"
|
185 |
msgstr ""
|
186 |
|
|
|
187 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:135
|
188 |
msgid "Slide In (Right)"
|
189 |
msgstr ""
|
190 |
|
|
|
191 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:136
|
192 |
msgid "Slide In (Left)"
|
193 |
msgstr ""
|
194 |
|
|
|
195 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:137
|
196 |
msgid "Box Random"
|
197 |
msgstr ""
|
198 |
|
|
|
199 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:138
|
200 |
msgid "Box Rain"
|
201 |
msgstr ""
|
202 |
|
|
|
203 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:139
|
204 |
msgid "Box Rain (Reverse)"
|
205 |
msgstr ""
|
206 |
|
|
|
207 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:140
|
208 |
msgid "Box Rain Grow"
|
209 |
msgstr ""
|
210 |
|
|
|
211 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:141
|
212 |
msgid "Box Rain Grow (Reverse)"
|
213 |
msgstr ""
|
214 |
|
|
|
215 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:147
|
216 |
msgid "Transition Effect"
|
217 |
msgstr ""
|
218 |
|
|
|
219 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:154
|
220 |
msgid "Slices"
|
221 |
msgstr ""
|
222 |
|
|
|
223 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:155
|
224 |
msgid "The number of slices to use in the \"Slice\" transitions (eg 15)"
|
225 |
msgstr ""
|
226 |
|
|
|
227 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:161
|
228 |
msgid "Box (Cols x Rows)"
|
229 |
msgstr ""
|
230 |
|
|
|
231 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:162
|
232 |
msgid "The number of columns and rows to use in the \"Box\" transitions (eg 8 x 4)"
|
233 |
msgstr ""
|
234 |
|
|
|
235 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:169
|
236 |
msgid "Animation Speed"
|
237 |
msgstr ""
|
238 |
|
|
|
239 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:170
|
240 |
msgid "The speed of the transition animation in milliseconds (eg 500)"
|
241 |
msgstr ""
|
242 |
|
|
|
243 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:176
|
244 |
msgid "Enable Thumbnail Navigation"
|
245 |
msgstr ""
|
246 |
|
|
|
247 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:183
|
248 |
msgid "Thumbnail Size"
|
249 |
msgstr ""
|
250 |
|
|
|
251 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:184
|
252 |
msgid "The width and height of the thumbnails"
|
253 |
msgstr ""
|
254 |
|
|
|
255 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:192
|
256 |
msgid "Pause Time"
|
257 |
msgstr ""
|
258 |
|
|
|
259 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:193
|
260 |
msgid "The amount of time to show each slide in milliseconds (eg 3000)"
|
261 |
msgstr ""
|
262 |
|
|
|
263 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:199
|
264 |
msgid "Start Slide"
|
265 |
msgstr ""
|
266 |
|
|
|
267 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:200
|
268 |
msgid "Set which slide the slider starts from (zero based index: usually 0)"
|
269 |
msgstr ""
|
270 |
|
|
|
271 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:206
|
272 |
msgid "Enable Direction Navigation"
|
273 |
msgstr ""
|
274 |
|
|
|
275 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:207
|
276 |
msgid "Prev & Next arrows"
|
277 |
msgstr ""
|
278 |
|
|
|
279 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:213
|
280 |
msgid "Enable Control Navigation"
|
281 |
msgstr ""
|
282 |
|
|
|
283 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:214
|
284 |
msgid "eg 1,2,3..."
|
285 |
msgstr ""
|
286 |
|
|
|
287 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:220
|
288 |
msgid "Enable Images Links"
|
289 |
msgstr ""
|
290 |
|
|
|
291 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:221
|
292 |
msgid ""
|
293 |
"If a link has been added to an image when configuring, the image links to "
|
294 |
"the url."
|
295 |
msgstr ""
|
296 |
|
|
|
297 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:227
|
298 |
msgid "Open Links in New Window"
|
299 |
msgstr ""
|
300 |
|
|
|
301 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:228
|
302 |
msgid "Open the links in a new window."
|
303 |
msgstr ""
|
304 |
|
|
|
305 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:236
|
306 |
msgid "Pause the Slider on Hover"
|
307 |
msgstr ""
|
308 |
|
|
|
309 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:242
|
310 |
msgid "Manual Transitions"
|
311 |
msgstr ""
|
312 |
|
|
|
313 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:243
|
314 |
msgid "Slider is always paused"
|
315 |
msgstr ""
|
316 |
|
|
|
317 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:249
|
318 |
msgid "Random Start Slide"
|
319 |
msgstr ""
|
320 |
|
|
|
321 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:250
|
322 |
msgid "Overrides Start Slide value"
|
323 |
msgstr ""
|
324 |
|
|
|
325 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:275
|
326 |
msgid "%1$s Images"
|
327 |
msgstr ""
|
328 |
|
|
|
329 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:287
|
330 |
msgid "Using this %1$s"
|
331 |
msgstr ""
|
332 |
|
|
|
333 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:294
|
334 |
msgid "Full Version"
|
335 |
msgstr ""
|
336 |
|
|
|
337 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:300
|
338 |
msgid "Contribute to Nivo"
|
339 |
msgstr ""
|
340 |
|
|
|
341 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:317
|
342 |
msgid "To use this %1$s in your posts or pages use the following shortcode:"
|
343 |
msgstr ""
|
344 |
|
|
|
345 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:323
|
346 |
msgid "To use this %1$s in a theme template file use the following code:"
|
347 |
msgstr ""
|
348 |
|
|
|
349 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:340
|
350 |
msgid " Extend Nivo Slider "
|
351 |
msgstr ""
|
352 |
|
|
|
353 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:342
|
354 |
msgid "More slider types"
|
355 |
msgstr ""
|
356 |
|
|
|
357 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:343
|
358 |
msgid "Build carousels"
|
359 |
msgstr ""
|
360 |
|
|
|
361 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:344
|
362 |
msgid "Create lightboxes"
|
363 |
msgstr ""
|
364 |
|
|
|
365 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:345
|
366 |
msgid "Automatic updates"
|
367 |
msgstr ""
|
368 |
|
|
|
369 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:346
|
370 |
msgid "Priority support"
|
371 |
msgstr ""
|
372 |
|
|
|
373 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:364
|
374 |
msgid "Enable Tracking"
|
375 |
msgstr ""
|
376 |
|
|
|
377 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:366
|
378 |
msgid ""
|
379 |
"Allow Nivo to anonymously track how this plugin is used and help us make "
|
@@ -381,205 +491,274 @@ msgid ""
|
|
381 |
"\t\t\t\t\tplugin better. No sensitive data is tracked."
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:405
|
|
|
385 |
msgid " %1$s Type"
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:425
|
|
|
389 |
msgid "No Sources"
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:430
|
|
|
393 |
msgid "Choose to manually upload images or use images from the media library . "
|
394 |
msgstr ""
|
395 |
|
396 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:436
|
|
|
397 |
msgid "Gallery Location"
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:466
|
|
|
401 |
msgid "Select the post gallery you want to use"
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:470
|
|
|
|
|
405 |
#: includes/admin/libs/class-nivo-core-images.php:423
|
406 |
msgid "Category"
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:486
|
|
|
410 |
msgid "Select the category you want to use for post thumbnails"
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:490
|
|
|
|
|
414 |
#: includes/admin/libs/class-nivo-core-images.php:425
|
415 |
msgid "Custom Post Type"
|
416 |
msgstr ""
|
417 |
|
418 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:509
|
|
|
419 |
msgid "Select the custom post type you want to use for post thumbnails"
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:723
|
|
|
|
|
423 |
#: includes/admin/libs/class-nivo-core-admin-images.php:142
|
424 |
msgid "Title"
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:724
|
|
|
428 |
msgid "Shortcode"
|
429 |
msgstr ""
|
430 |
|
431 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:725
|
|
|
432 |
msgid "Source"
|
433 |
msgstr ""
|
434 |
|
435 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:726
|
|
|
436 |
msgid "Type"
|
437 |
msgstr ""
|
438 |
|
439 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:727
|
|
|
440 |
msgid "Images"
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:728
|
|
|
444 |
msgid "Author"
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: includes/admin/libs/class-nivo-core-admin-edit.php:729
|
|
|
448 |
msgid "Date"
|
449 |
msgstr ""
|
450 |
|
|
|
|
|
451 |
#: includes/admin/libs/class-nivo-core-admin-images.php:55
|
452 |
#: includes/admin/libs/class-nivo-core-admin-images.php:56
|
453 |
msgid "Create %1$s"
|
454 |
msgstr ""
|
455 |
|
|
|
|
|
|
|
456 |
#: includes/admin/libs/class-nivo-core-admin-images.php:57
|
457 |
#: includes/admin/libs/class-nivo-core-admin-images.php:58
|
458 |
#: includes/admin/libs/class-nivo-core-admin-images.php:64
|
459 |
msgid "Add to %1$s"
|
460 |
msgstr ""
|
461 |
|
|
|
462 |
#: includes/admin/libs/class-nivo-core-admin-images.php:60
|
463 |
msgid "Save %1$s"
|
464 |
msgstr ""
|
465 |
|
|
|
|
|
466 |
#: includes/admin/libs/class-nivo-core-admin-images.php:61
|
467 |
#: includes/admin/libs/class-nivo-core-admin-images.php:67
|
468 |
msgid "Update %1$s"
|
469 |
msgstr ""
|
470 |
|
|
|
|
|
471 |
#: includes/admin/libs/class-nivo-core-admin-images.php:62
|
472 |
#: includes/admin/libs/class-nivo-core-admin-images.php:90
|
473 |
msgid "Slide Details"
|
474 |
msgstr ""
|
475 |
|
|
|
476 |
#: includes/admin/libs/class-nivo-core-admin-images.php:66
|
477 |
msgid "Add from "
|
478 |
msgstr ""
|
479 |
|
|
|
480 |
#: includes/admin/libs/class-nivo-core-admin-images.php:93
|
481 |
msgid "Saved."
|
482 |
msgstr ""
|
483 |
|
|
|
|
|
484 |
#: includes/admin/libs/class-nivo-core-admin-images.php:111
|
485 |
#: includes/admin/libs/class-nivo-core-admin-images.php:137
|
486 |
msgid "Caption"
|
487 |
msgstr ""
|
488 |
|
|
|
|
|
489 |
#: includes/admin/libs/class-nivo-core-admin-images.php:116
|
490 |
#: includes/admin/libs/class-nivo-core-admin-images.php:147
|
491 |
msgid "Alt Text"
|
492 |
msgstr ""
|
493 |
|
|
|
494 |
#: includes/admin/libs/class-nivo-core-admin-images.php:121
|
495 |
msgid "Link"
|
496 |
msgstr ""
|
497 |
|
|
|
498 |
#: includes/admin/libs/class-nivo-core-images.php:45
|
499 |
msgid "File doesn't exist"
|
500 |
msgstr ""
|
501 |
|
|
|
502 |
#: includes/admin/libs/class-nivo-core-images.php:420
|
503 |
msgid "Manual"
|
504 |
msgstr ""
|
505 |
|
|
|
506 |
#: includes/admin/libs/class-nivo-core-images.php:422
|
507 |
msgid "Gallery"
|
508 |
msgstr ""
|
509 |
|
|
|
510 |
#: includes/admin/libs/class-nivo-core-images.php:424
|
511 |
msgid "Sticky Posts"
|
512 |
msgstr ""
|
513 |
|
|
|
|
|
514 |
#: includes/admin/libs/class-nivo-core-model.php:46
|
515 |
#: includes/admin/libs/class-nivo-core-model.php:49
|
516 |
msgid "%1$s updated."
|
517 |
msgstr ""
|
518 |
|
|
|
519 |
#: includes/admin/libs/class-nivo-core-model.php:47
|
520 |
msgid "Custom field updated."
|
521 |
msgstr ""
|
522 |
|
|
|
523 |
#: includes/admin/libs/class-nivo-core-model.php:48
|
524 |
msgid "Custom field deleted."
|
525 |
msgstr ""
|
526 |
|
|
|
527 |
#: includes/admin/libs/class-nivo-core-model.php:51
|
528 |
msgid "%1$s published."
|
529 |
msgstr ""
|
530 |
|
|
|
531 |
#: includes/admin/libs/class-nivo-core-model.php:52
|
532 |
msgid "%1$s saved."
|
533 |
msgstr ""
|
534 |
|
|
|
535 |
#: includes/admin/libs/class-nivo-core-model.php:53
|
536 |
msgid "%1$s submitted."
|
537 |
msgstr ""
|
538 |
|
|
|
539 |
#: includes/admin/libs/class-nivo-core-model.php:54
|
540 |
msgid ""
|
541 |
"%1$s scheduled for: <strong>%2$s</strong>. <a target=\"_blank\" "
|
542 |
"href=\"%2$s\">Preview %1$s</a>"
|
543 |
msgstr ""
|
544 |
|
|
|
545 |
#: includes/admin/libs/class-nivo-core-model.php:55
|
546 |
msgid "%1$s draft updated."
|
547 |
msgstr ""
|
548 |
|
|
|
549 |
#: includes/admin/libs/class-nivo-core-model.php:60
|
550 |
msgid "M j, Y @ G:i"
|
551 |
msgstr ""
|
552 |
|
|
|
553 |
#: includes/admin/libs/class-nivo-core-model.php:64
|
554 |
msgid "%1$s restored to revision from %2$s"
|
555 |
msgstr ""
|
556 |
|
|
|
557 |
#: includes/admin/libs/class-nivo-core-shortcode.php:114
|
558 |
msgid "Invalid %1$s"
|
559 |
msgstr ""
|
560 |
|
|
|
561 |
#: includes/admin/libs/class-nivo-core-shortcode.php:122
|
562 |
msgid "Invalid %1$s Slug"
|
563 |
msgstr ""
|
564 |
|
|
|
565 |
#: includes/admin/libs/class-nivo-slider-widget.php:33
|
566 |
msgid "Display a Nivo Slider"
|
567 |
msgstr ""
|
568 |
|
|
|
569 |
#: includes/admin/libs/class-nivo-slider-widget.php:104
|
570 |
msgid "Title:"
|
571 |
msgstr ""
|
572 |
|
|
|
573 |
#: includes/admin/libs/class-nivo-slider-widget.php:119
|
574 |
msgid "Select Slider"
|
575 |
msgstr ""
|
576 |
|
577 |
-
#: vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php:453
|
|
|
578 |
msgid ""
|
579 |
"Updating this theme will lose any customizations you have made. Cancel to "
|
580 |
"stop, OK to update."
|
581 |
msgstr ""
|
582 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
583 |
#. Plugin Name of the plugin/theme
|
584 |
msgid "Slider by Nivo - Responsive Image Slider"
|
585 |
msgstr ""
|
2 |
# This file is distributed under the no.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Slider by Nivo - Responsive Image Slider 2.0.3\n"
|
6 |
"Report-Msgid-Bugs-To: https://github.com/Codeinwp/nivo-slider-lite/issues\n"
|
7 |
+
"POT-Creation-Date: 2017-06-26 16:44:33+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
24 |
"X-Poedit-Bookmarks: \n"
|
25 |
"X-Textdomain-Support: yes\n"
|
26 |
|
27 |
+
#: dist/includes/abstract/class-nivo-model-abstract.php:56
|
28 |
msgid "Add New"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: dist/includes/abstract/class-nivo-model-abstract.php:57
|
32 |
#: includes/abstract/class-nivo-model-abstract.php:57
|
33 |
msgid "Add New %1$s"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: dist/includes/abstract/class-nivo-model-abstract.php:58
|
37 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:59
|
38 |
#: includes/abstract/class-nivo-model-abstract.php:58
|
39 |
#: includes/admin/libs/class-nivo-core-admin-images.php:59
|
40 |
msgid "Edit %1$s"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: dist/includes/abstract/class-nivo-model-abstract.php:59
|
44 |
#: includes/abstract/class-nivo-model-abstract.php:59
|
45 |
msgid "New %1$s"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: dist/includes/abstract/class-nivo-model-abstract.php:60
|
49 |
#: includes/abstract/class-nivo-model-abstract.php:60
|
50 |
msgid "All %2$s"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: dist/includes/abstract/class-nivo-model-abstract.php:61
|
54 |
#: includes/abstract/class-nivo-model-abstract.php:61
|
55 |
msgid "View %1$s"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: dist/includes/abstract/class-nivo-model-abstract.php:62
|
59 |
#: includes/abstract/class-nivo-model-abstract.php:62
|
60 |
msgid "Search %2$s"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: dist/includes/abstract/class-nivo-model-abstract.php:63
|
64 |
#: includes/abstract/class-nivo-model-abstract.php:63
|
65 |
msgid "No %2$s found"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: dist/includes/abstract/class-nivo-model-abstract.php:64
|
69 |
#: includes/abstract/class-nivo-model-abstract.php:64
|
70 |
msgid "No %2$s found in Trash"
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:83
|
74 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:206
|
75 |
+
#: dist/includes/admin/libs/class-nivo-slider-widget.php:31
|
76 |
#: includes/admin/class-nivo-slider-admin.php:83
|
77 |
+
#: includes/admin/class-nivo-slider-admin.php:210
|
78 |
#: includes/admin/libs/class-nivo-slider-widget.php:31
|
79 |
msgid "Nivo Slider"
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:84
|
83 |
#: includes/admin/class-nivo-slider-admin.php:84
|
84 |
msgid "Nivo Sliders"
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:272
|
88 |
+
#: includes/admin/class-nivo-slider-admin.php:309
|
89 |
msgid "Save Changes"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:300
|
93 |
+
#: includes/admin/class-nivo-slider-admin.php:337
|
94 |
msgid "Management Roles"
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:504
|
98 |
+
msgid "Active: "
|
99 |
+
msgstr ""
|
100 |
+
|
101 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:506
|
102 |
+
msgid "Deactivate License"
|
103 |
+
msgstr ""
|
104 |
+
|
105 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:511
|
106 |
+
msgid "Activate this license key to enable automatic upgrades"
|
107 |
+
msgstr ""
|
108 |
+
|
109 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:514
|
110 |
+
msgid "Enter a valid license key to enable automatic upgrades"
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:516
|
114 |
+
msgid "Activate License"
|
115 |
+
msgstr ""
|
116 |
+
|
117 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:532
|
118 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:556
|
119 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:281
|
120 |
+
#: includes/admin/class-nivo-slider-admin.php:536
|
121 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:281
|
122 |
msgid "Settings"
|
123 |
msgstr ""
|
124 |
|
125 |
+
#: dist/includes/admin/class-nivo-slider-admin.php:655
|
126 |
+
#: includes/admin/class-nivo-slider-admin.php:615
|
127 |
msgid ""
|
128 |
"You can automatically build slider from post galleries, categories and "
|
129 |
"sticky posts using the %1$s FULL%2$s version."
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:68
|
133 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:68
|
134 |
msgid "Enable Captions"
|
135 |
msgstr ""
|
136 |
|
137 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:69
|
138 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:69
|
139 |
msgid "Enable automatic captions from post titles"
|
140 |
msgstr ""
|
141 |
|
142 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:77
|
143 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:77
|
144 |
msgid "Number of Images"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:78
|
148 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:78
|
149 |
msgid ""
|
150 |
"The number of images to use in the slider. Leave blank for all images. "
|
151 |
"External sources default to 20"
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:87
|
155 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:87
|
156 |
msgid "Slider Sizing"
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:88
|
160 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:88
|
161 |
msgid "Responsive sliders will fill the width of the container"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:90
|
165 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:90
|
166 |
msgid "Responsive"
|
167 |
msgstr ""
|
168 |
|
169 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:91
|
170 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:91
|
171 |
msgid "Fixed Size"
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:98
|
175 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:98
|
176 |
msgid "Image Size"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:99
|
180 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:99
|
181 |
msgid "Select the size of image from the WordPress media library"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:107
|
185 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:107
|
186 |
msgid "Slider Size"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:108
|
190 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:108
|
191 |
msgid "(Size in px) Images will be cropped to these dimensions (eg 400 x 150)"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:121
|
195 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:121
|
196 |
msgid "Slider Theme"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:122
|
200 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:122
|
201 |
msgid "Use a pre-built theme or provide your own styles."
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:126
|
205 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:126
|
206 |
msgid "Random"
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:127
|
210 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:127
|
211 |
msgid "Fade"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:128
|
215 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:128
|
216 |
msgid "Fold"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:129
|
220 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:129
|
221 |
msgid "Slice Down"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:130
|
225 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:130
|
226 |
msgid "Slice Down (Left)"
|
227 |
msgstr ""
|
228 |
|
229 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:131
|
230 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:131
|
231 |
msgid "Slice Up"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:132
|
235 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:132
|
236 |
msgid "Slice Up (Left)"
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:133
|
240 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:133
|
241 |
msgid "Slice Up/Down"
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:134
|
245 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:134
|
246 |
msgid "Slice Up/Down (Left)"
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:135
|
250 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:135
|
251 |
msgid "Slide In (Right)"
|
252 |
msgstr ""
|
253 |
|
254 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:136
|
255 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:136
|
256 |
msgid "Slide In (Left)"
|
257 |
msgstr ""
|
258 |
|
259 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:137
|
260 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:137
|
261 |
msgid "Box Random"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:138
|
265 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:138
|
266 |
msgid "Box Rain"
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:139
|
270 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:139
|
271 |
msgid "Box Rain (Reverse)"
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:140
|
275 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:140
|
276 |
msgid "Box Rain Grow"
|
277 |
msgstr ""
|
278 |
|
279 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:141
|
280 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:141
|
281 |
msgid "Box Rain Grow (Reverse)"
|
282 |
msgstr ""
|
283 |
|
284 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:147
|
285 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:147
|
286 |
msgid "Transition Effect"
|
287 |
msgstr ""
|
288 |
|
289 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:154
|
290 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:154
|
291 |
msgid "Slices"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:155
|
295 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:155
|
296 |
msgid "The number of slices to use in the \"Slice\" transitions (eg 15)"
|
297 |
msgstr ""
|
298 |
|
299 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:161
|
300 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:161
|
301 |
msgid "Box (Cols x Rows)"
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:162
|
305 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:162
|
306 |
msgid "The number of columns and rows to use in the \"Box\" transitions (eg 8 x 4)"
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:169
|
310 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:169
|
311 |
msgid "Animation Speed"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:170
|
315 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:170
|
316 |
msgid "The speed of the transition animation in milliseconds (eg 500)"
|
317 |
msgstr ""
|
318 |
|
319 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:176
|
320 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:176
|
321 |
msgid "Enable Thumbnail Navigation"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:183
|
325 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:183
|
326 |
msgid "Thumbnail Size"
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:184
|
330 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:184
|
331 |
msgid "The width and height of the thumbnails"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:192
|
335 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:192
|
336 |
msgid "Pause Time"
|
337 |
msgstr ""
|
338 |
|
339 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:193
|
340 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:193
|
341 |
msgid "The amount of time to show each slide in milliseconds (eg 3000)"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:199
|
345 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:199
|
346 |
msgid "Start Slide"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:200
|
350 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:200
|
351 |
msgid "Set which slide the slider starts from (zero based index: usually 0)"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:206
|
355 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:206
|
356 |
msgid "Enable Direction Navigation"
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:207
|
360 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:207
|
361 |
msgid "Prev & Next arrows"
|
362 |
msgstr ""
|
363 |
|
364 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:213
|
365 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:213
|
366 |
msgid "Enable Control Navigation"
|
367 |
msgstr ""
|
368 |
|
369 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:214
|
370 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:214
|
371 |
msgid "eg 1,2,3..."
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:220
|
375 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:220
|
376 |
msgid "Enable Images Links"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:221
|
380 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:221
|
381 |
msgid ""
|
382 |
"If a link has been added to an image when configuring, the image links to "
|
383 |
"the url."
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:227
|
387 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:227
|
388 |
msgid "Open Links in New Window"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:228
|
392 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:228
|
393 |
msgid "Open the links in a new window."
|
394 |
msgstr ""
|
395 |
|
396 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:236
|
397 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:236
|
398 |
msgid "Pause the Slider on Hover"
|
399 |
msgstr ""
|
400 |
|
401 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:242
|
402 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:242
|
403 |
msgid "Manual Transitions"
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:243
|
407 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:243
|
408 |
msgid "Slider is always paused"
|
409 |
msgstr ""
|
410 |
|
411 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:249
|
412 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:249
|
413 |
msgid "Random Start Slide"
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:250
|
417 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:250
|
418 |
msgid "Overrides Start Slide value"
|
419 |
msgstr ""
|
420 |
|
421 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:275
|
422 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:275
|
423 |
msgid "%1$s Images"
|
424 |
msgstr ""
|
425 |
|
426 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:287
|
427 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:287
|
428 |
msgid "Using this %1$s"
|
429 |
msgstr ""
|
430 |
|
431 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:294
|
432 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:294
|
433 |
msgid "Full Version"
|
434 |
msgstr ""
|
435 |
|
436 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:300
|
437 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:300
|
438 |
msgid "Contribute to Nivo"
|
439 |
msgstr ""
|
440 |
|
441 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:317
|
442 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:317
|
443 |
msgid "To use this %1$s in your posts or pages use the following shortcode:"
|
444 |
msgstr ""
|
445 |
|
446 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:323
|
447 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:323
|
448 |
msgid "To use this %1$s in a theme template file use the following code:"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:340
|
452 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:340
|
453 |
msgid " Extend Nivo Slider "
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:342
|
457 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:342
|
458 |
msgid "More slider types"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:343
|
462 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:343
|
463 |
msgid "Build carousels"
|
464 |
msgstr ""
|
465 |
|
466 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:344
|
467 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:344
|
468 |
msgid "Create lightboxes"
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:345
|
472 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:345
|
473 |
msgid "Automatic updates"
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:346
|
477 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:346
|
478 |
msgid "Priority support"
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:364
|
482 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:364
|
483 |
msgid "Enable Tracking"
|
484 |
msgstr ""
|
485 |
|
486 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:366
|
487 |
#: includes/admin/libs/class-nivo-core-admin-edit.php:366
|
488 |
msgid ""
|
489 |
"Allow Nivo to anonymously track how this plugin is used and help us make "
|
491 |
"\t\t\t\t\tplugin better. No sensitive data is tracked."
|
492 |
msgstr ""
|
493 |
|
494 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:405
|
495 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:406
|
496 |
msgid " %1$s Type"
|
497 |
msgstr ""
|
498 |
|
499 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:425
|
500 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:426
|
501 |
msgid "No Sources"
|
502 |
msgstr ""
|
503 |
|
504 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:430
|
505 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:431
|
506 |
msgid "Choose to manually upload images or use images from the media library . "
|
507 |
msgstr ""
|
508 |
|
509 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:436
|
510 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:437
|
511 |
msgid "Gallery Location"
|
512 |
msgstr ""
|
513 |
|
514 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:466
|
515 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:467
|
516 |
msgid "Select the post gallery you want to use"
|
517 |
msgstr ""
|
518 |
|
519 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:470
|
520 |
+
#: dist/includes/admin/libs/class-nivo-core-images.php:424
|
521 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:471
|
522 |
#: includes/admin/libs/class-nivo-core-images.php:423
|
523 |
msgid "Category"
|
524 |
msgstr ""
|
525 |
|
526 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:486
|
527 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:487
|
528 |
msgid "Select the category you want to use for post thumbnails"
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:490
|
532 |
+
#: dist/includes/admin/libs/class-nivo-core-images.php:426
|
533 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:491
|
534 |
#: includes/admin/libs/class-nivo-core-images.php:425
|
535 |
msgid "Custom Post Type"
|
536 |
msgstr ""
|
537 |
|
538 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:509
|
539 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:510
|
540 |
msgid "Select the custom post type you want to use for post thumbnails"
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:723
|
544 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:142
|
545 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:724
|
546 |
#: includes/admin/libs/class-nivo-core-admin-images.php:142
|
547 |
msgid "Title"
|
548 |
msgstr ""
|
549 |
|
550 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:724
|
551 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:725
|
552 |
msgid "Shortcode"
|
553 |
msgstr ""
|
554 |
|
555 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:725
|
556 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:726
|
557 |
msgid "Source"
|
558 |
msgstr ""
|
559 |
|
560 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:726
|
561 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:727
|
562 |
msgid "Type"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:727
|
566 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:728
|
567 |
msgid "Images"
|
568 |
msgstr ""
|
569 |
|
570 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:728
|
571 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:729
|
572 |
msgid "Author"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-edit.php:729
|
576 |
+
#: includes/admin/libs/class-nivo-core-admin-edit.php:730
|
577 |
msgid "Date"
|
578 |
msgstr ""
|
579 |
|
580 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:55
|
581 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:56
|
582 |
#: includes/admin/libs/class-nivo-core-admin-images.php:55
|
583 |
#: includes/admin/libs/class-nivo-core-admin-images.php:56
|
584 |
msgid "Create %1$s"
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:57
|
588 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:58
|
589 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:64
|
590 |
#: includes/admin/libs/class-nivo-core-admin-images.php:57
|
591 |
#: includes/admin/libs/class-nivo-core-admin-images.php:58
|
592 |
#: includes/admin/libs/class-nivo-core-admin-images.php:64
|
593 |
msgid "Add to %1$s"
|
594 |
msgstr ""
|
595 |
|
596 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:60
|
597 |
#: includes/admin/libs/class-nivo-core-admin-images.php:60
|
598 |
msgid "Save %1$s"
|
599 |
msgstr ""
|
600 |
|
601 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:61
|
602 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:67
|
603 |
#: includes/admin/libs/class-nivo-core-admin-images.php:61
|
604 |
#: includes/admin/libs/class-nivo-core-admin-images.php:67
|
605 |
msgid "Update %1$s"
|
606 |
msgstr ""
|
607 |
|
608 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:62
|
609 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:90
|
610 |
#: includes/admin/libs/class-nivo-core-admin-images.php:62
|
611 |
#: includes/admin/libs/class-nivo-core-admin-images.php:90
|
612 |
msgid "Slide Details"
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:66
|
616 |
#: includes/admin/libs/class-nivo-core-admin-images.php:66
|
617 |
msgid "Add from "
|
618 |
msgstr ""
|
619 |
|
620 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:93
|
621 |
#: includes/admin/libs/class-nivo-core-admin-images.php:93
|
622 |
msgid "Saved."
|
623 |
msgstr ""
|
624 |
|
625 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:111
|
626 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:137
|
627 |
#: includes/admin/libs/class-nivo-core-admin-images.php:111
|
628 |
#: includes/admin/libs/class-nivo-core-admin-images.php:137
|
629 |
msgid "Caption"
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:116
|
633 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:147
|
634 |
#: includes/admin/libs/class-nivo-core-admin-images.php:116
|
635 |
#: includes/admin/libs/class-nivo-core-admin-images.php:147
|
636 |
msgid "Alt Text"
|
637 |
msgstr ""
|
638 |
|
639 |
+
#: dist/includes/admin/libs/class-nivo-core-admin-images.php:121
|
640 |
#: includes/admin/libs/class-nivo-core-admin-images.php:121
|
641 |
msgid "Link"
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: dist/includes/admin/libs/class-nivo-core-images.php:45
|
645 |
#: includes/admin/libs/class-nivo-core-images.php:45
|
646 |
msgid "File doesn't exist"
|
647 |
msgstr ""
|
648 |
|
649 |
+
#: dist/includes/admin/libs/class-nivo-core-images.php:421
|
650 |
#: includes/admin/libs/class-nivo-core-images.php:420
|
651 |
msgid "Manual"
|
652 |
msgstr ""
|
653 |
|
654 |
+
#: dist/includes/admin/libs/class-nivo-core-images.php:423
|
655 |
#: includes/admin/libs/class-nivo-core-images.php:422
|
656 |
msgid "Gallery"
|
657 |
msgstr ""
|
658 |
|
659 |
+
#: dist/includes/admin/libs/class-nivo-core-images.php:425
|
660 |
#: includes/admin/libs/class-nivo-core-images.php:424
|
661 |
msgid "Sticky Posts"
|
662 |
msgstr ""
|
663 |
|
664 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:46
|
665 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:49
|
666 |
#: includes/admin/libs/class-nivo-core-model.php:46
|
667 |
#: includes/admin/libs/class-nivo-core-model.php:49
|
668 |
msgid "%1$s updated."
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:47
|
672 |
#: includes/admin/libs/class-nivo-core-model.php:47
|
673 |
msgid "Custom field updated."
|
674 |
msgstr ""
|
675 |
|
676 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:48
|
677 |
#: includes/admin/libs/class-nivo-core-model.php:48
|
678 |
msgid "Custom field deleted."
|
679 |
msgstr ""
|
680 |
|
681 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:51
|
682 |
#: includes/admin/libs/class-nivo-core-model.php:51
|
683 |
msgid "%1$s published."
|
684 |
msgstr ""
|
685 |
|
686 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:52
|
687 |
#: includes/admin/libs/class-nivo-core-model.php:52
|
688 |
msgid "%1$s saved."
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:53
|
692 |
#: includes/admin/libs/class-nivo-core-model.php:53
|
693 |
msgid "%1$s submitted."
|
694 |
msgstr ""
|
695 |
|
696 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:54
|
697 |
#: includes/admin/libs/class-nivo-core-model.php:54
|
698 |
msgid ""
|
699 |
"%1$s scheduled for: <strong>%2$s</strong>. <a target=\"_blank\" "
|
700 |
"href=\"%2$s\">Preview %1$s</a>"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:55
|
704 |
#: includes/admin/libs/class-nivo-core-model.php:55
|
705 |
msgid "%1$s draft updated."
|
706 |
msgstr ""
|
707 |
|
708 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:60
|
709 |
#: includes/admin/libs/class-nivo-core-model.php:60
|
710 |
msgid "M j, Y @ G:i"
|
711 |
msgstr ""
|
712 |
|
713 |
+
#: dist/includes/admin/libs/class-nivo-core-model.php:64
|
714 |
#: includes/admin/libs/class-nivo-core-model.php:64
|
715 |
msgid "%1$s restored to revision from %2$s"
|
716 |
msgstr ""
|
717 |
|
718 |
+
#: dist/includes/admin/libs/class-nivo-core-shortcode.php:114
|
719 |
#: includes/admin/libs/class-nivo-core-shortcode.php:114
|
720 |
msgid "Invalid %1$s"
|
721 |
msgstr ""
|
722 |
|
723 |
+
#: dist/includes/admin/libs/class-nivo-core-shortcode.php:122
|
724 |
#: includes/admin/libs/class-nivo-core-shortcode.php:122
|
725 |
msgid "Invalid %1$s Slug"
|
726 |
msgstr ""
|
727 |
|
728 |
+
#: dist/includes/admin/libs/class-nivo-slider-widget.php:33
|
729 |
#: includes/admin/libs/class-nivo-slider-widget.php:33
|
730 |
msgid "Display a Nivo Slider"
|
731 |
msgstr ""
|
732 |
|
733 |
+
#: dist/includes/admin/libs/class-nivo-slider-widget.php:104
|
734 |
#: includes/admin/libs/class-nivo-slider-widget.php:104
|
735 |
msgid "Title:"
|
736 |
msgstr ""
|
737 |
|
738 |
+
#: dist/includes/admin/libs/class-nivo-slider-widget.php:119
|
739 |
#: includes/admin/libs/class-nivo-slider-widget.php:119
|
740 |
msgid "Select Slider"
|
741 |
msgstr ""
|
742 |
|
743 |
+
#: dist/vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php:453
|
744 |
+
#: vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php:476
|
745 |
msgid ""
|
746 |
"Updating this theme will lose any customizations you have made. Cancel to "
|
747 |
"stop, OK to update."
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: includes/abstract/class-nivo-model-abstract.php:56
|
751 |
+
msgid "Add new Slider"
|
752 |
+
msgstr ""
|
753 |
+
|
754 |
+
#: includes/admin/class-nivo-slider-admin.php:225
|
755 |
+
msgid "More Features"
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widget-dashboard-blog.php:197
|
759 |
+
msgid "Install"
|
760 |
+
msgstr ""
|
761 |
+
|
762 |
#. Plugin Name of the plugin/theme
|
763 |
msgid "Slider by Nivo - Responsive Image Slider"
|
764 |
msgstr ""
|
nivo-slider-lite.php
CHANGED
@@ -3,13 +3,14 @@
|
|
3 |
* Plugin Name: Slider by Nivo - Responsive Image Slider
|
4 |
* Plugin URI: https://themeisle.com/plugins/nivo-slider-lite
|
5 |
* Description: Nivo Slider is The Most Popular And Easiest to Use WordPress Slider Plugin.
|
6 |
-
* Version: 2.0
|
7 |
* Author: ThemeIsle
|
8 |
* Author URI: https://themeisle.com/
|
9 |
* Text Domain: nivo-slider
|
10 |
* Domain Path: languages
|
11 |
* WordPress Available: yes
|
12 |
* Requires License: no
|
|
|
13 |
**/
|
14 |
// If this file is called directly, abort.
|
15 |
if ( ! defined( 'WPINC' ) ) {
|
@@ -114,8 +115,12 @@ function run_nivo_slider() {
|
|
114 |
$vendor_file = NIVO_SLIDER_PLUGIN_DIR . '/vendor/autoload_52.php';
|
115 |
if ( is_readable( $vendor_file ) ) {
|
116 |
require_once $vendor_file;
|
117 |
-
ThemeIsle_SDK_Loader::init_product( NIVO_SLIDER_PLUGIN_FILE );
|
118 |
}
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
}
|
121 |
|
3 |
* Plugin Name: Slider by Nivo - Responsive Image Slider
|
4 |
* Plugin URI: https://themeisle.com/plugins/nivo-slider-lite
|
5 |
* Description: Nivo Slider is The Most Popular And Easiest to Use WordPress Slider Plugin.
|
6 |
+
* Version: 2.1.0
|
7 |
* Author: ThemeIsle
|
8 |
* Author URI: https://themeisle.com/
|
9 |
* Text Domain: nivo-slider
|
10 |
* Domain Path: languages
|
11 |
* WordPress Available: yes
|
12 |
* Requires License: no
|
13 |
+
* Pro Slug: nivo-slider
|
14 |
**/
|
15 |
// If this file is called directly, abort.
|
16 |
if ( ! defined( 'WPINC' ) ) {
|
115 |
$vendor_file = NIVO_SLIDER_PLUGIN_DIR . '/vendor/autoload_52.php';
|
116 |
if ( is_readable( $vendor_file ) ) {
|
117 |
require_once $vendor_file;
|
|
|
118 |
}
|
119 |
+
add_filter( 'themeisle_sdk_products', function ( $products ) {
|
120 |
+
$products[] = NIVO_SLIDER_PLUGIN_FILE;
|
121 |
+
|
122 |
+
return $products;
|
123 |
+
} );
|
124 |
|
125 |
}
|
126 |
|
readme.md
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Slider by Nivo - Responsive WordPress Image Slider #
|
2 |
+
**Contributors:** [themeisle](https://profiles.wordpress.org/themeisle), [codeinwp](https://profiles.wordpress.org/codeinwp), [nivoslider](https://profiles.wordpress.org/nivoslider)
|
3 |
+
**Tags:** slider, nivo,slider plugin, slideshow, slideshow plugin, template tag, wordpress gallery, wordpress image slider, wordpress photo gallery
|
4 |
+
**Requires at least:** 3.0
|
5 |
+
**Tested up to:** 4.9
|
6 |
+
**Stable tag:** trunk
|
7 |
+
**License:** GPLv3
|
8 |
+
|
9 |
+
Nivo Slider is The Most Popular And Easiest to Use Responsive WordPress Slider Plugin.
|
10 |
+
|
11 |
+
## Description ##
|
12 |
+
|
13 |
+
The Nivo Slider is the worlds most popular jquery image slider plugin, downloaded over **3,000,000** times since it's inception. This
|
14 |
+
is the "Lite" version of the official [Nivo Slider WordPress plugin](https://themeisle.com/plugins/nivo-slider?utm_source=wordpress.org&utm_medium=web&utm_content=description_link&utm_campaign=nivoslider_lite_plugin)
|
15 |
+
which comes with email support and more features.
|
16 |
+
|
17 |
+
The plugin let's you easily create a post slider, an image carousel or a slideshow, right from your dashboard, without settings that you don't need. Can act as a homepage slider as well and it works great with our [WordPress themes](https://themeisle.com/wordpress-themes/free/).
|
18 |
+
|
19 |
+
Why Choose Nivo Slider?
|
20 |
+
Nivo Slider is the best choice for a WordPress slider plugin because it is fast, intuitive and super easy to use. Is not the most feature-rich plugin on the market (like revolution slider or layer slider), but if you need just a responsive content slider that works, check it out!
|
21 |
+
|
22 |
+
**Get more awesome features by upgrading to the full plugin:**
|
23 |
+
|
24 |
+
* Create sliders from **Galleries, Categories and Sticky Posts**
|
25 |
+
* More custom **themes**
|
26 |
+
* Build carousels.
|
27 |
+
* Upcoming lightboxes support.
|
28 |
+
* Automatic updates.
|
29 |
+
* Priority support.
|
30 |
+
|
31 |
+
**[Click here to purchase the full plugin](https://themeisle.com/plugins/nivo-slider?utm_source=wordpress.org&utm_medium=web&utm_content=purchase_link&utm_campaign=nivoslider_lite_plugin)**
|
32 |
+
|
33 |
+
= See how Nivo can integrate with your website =
|
34 |
+
|
35 |
+
* [ Slider with bar using fading transition ](https://demo.themeisle.com/nivo-slider/slider-bar-fade)
|
36 |
+
* [ Dark slider with slice transition ](https://demo.themeisle.com/nivo-slider/slider-dark-slice/)
|
37 |
+
* [ Light slider with box transition ](https://demo.themeisle.com/nivo-slider/slider-light-box/)
|
38 |
+
* [ Slider with thumbnail navigation ](https://demo.themeisle.com/nivo-slider/slider-thumbnail/)
|
39 |
+
* [ Slider from category ](https://demo.themeisle.com/nivo-slider/slider-category/)
|
40 |
+
* [ Slider from gallery posts ](https://demo.themeisle.com/nivo-slider/slider-gallery/)
|
41 |
+
* [ Circular carousel ](https://demo.themeisle.com/nivo-slider/circular-carousel/)
|
42 |
+
|
43 |
+
## Installation ##
|
44 |
+
|
45 |
+
1. Use WordPress' built-in installer
|
46 |
+
2. Start adding your sliders in the "Nivo Slider" menu that appears
|
47 |
+
|
48 |
+
## Frequently Asked Questions ##
|
49 |
+
|
50 |
+
### How to use Custom Themes with the Nivo Slider ###
|
51 |
+
http://docs.themeisle.com/article/510-using-custom-themes-with-the-nivo-slider
|
52 |
+
|
53 |
+
### How to use Nivo Slider template tag ###
|
54 |
+
http://docs.themeisle.com/article/509-using-the-nivo-slider-template-tag
|
55 |
+
|
56 |
+
|
57 |
+
### I'd like access to more features and support. How can I get them? ###
|
58 |
+
|
59 |
+
You can get access to more features and support by visiting the Themeisle website and
|
60 |
+
[purchasing a license](https://themeisle.com/plugins/nivo-slider?utm_source=wordpress.org&utm_medium=web&utm_content=faq_link&utm_campaign=nivoslider_lite_plugin).
|
61 |
+
Purchasing a license gets you access to the full version of the Nivo Slider WordPress plugin, automatic updates and support.
|
62 |
+
|
63 |
+
## Screenshots ##
|
64 |
+
|
65 |
+
1. Slider list screen
|
66 |
+
2. Edit slider screen
|
67 |
+
3. Configuring images
|
68 |
+
4. The final result
|
69 |
+
|
70 |
+
## Changelog ##
|
71 |
+
### 2.1.0 - 2017-06-26 ###
|
72 |
+
|
73 |
+
* Added carousel compatibility
|
74 |
+
* Fixed warnings with taxonomy name change.
|
75 |
+
* Added upsell page.
|
76 |
+
|
77 |
+
|
78 |
+
|
79 |
+
### 2.0.4 ###
|
80 |
+
* Changed required core style loading.
|
81 |
+
|
82 |
+
### 2.0.3 ###
|
83 |
+
* Improved integration with themes.
|
84 |
+
|
85 |
+
### 2.0.2 ###
|
86 |
+
* Removed redundant code
|
87 |
+
* Added future support for carousels.
|
88 |
+
|
89 |
+
|
90 |
+
### 2.0.0 ###
|
91 |
+
* Added more slider themes.
|
92 |
+
* Added responsive option.
|
93 |
+
* Added more transition effects.
|
94 |
+
* Major code refactor.
|
95 |
+
|
96 |
+
### 1.0.3 ###
|
97 |
+
* Added themeisle as author
|
98 |
+
|
99 |
+
### 1.0.2 ###
|
100 |
+
* Fixed fatal error
|
101 |
+
|
102 |
+
### 1.0.1 ###
|
103 |
+
* Various small bug fixes
|
104 |
+
|
105 |
+
### 1.0.0 ###
|
106 |
+
* Initial release
|
readme.txt
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
=== Slider by Nivo - Responsive WordPress Image Slider ===
|
2 |
Contributors: themeisle, codeinwp, nivoslider
|
3 |
-
Tags:
|
4 |
Requires at least: 3.0
|
5 |
-
Tested up to: 4.
|
6 |
Stable tag: trunk
|
7 |
License: GPLv3
|
8 |
|
@@ -23,7 +23,7 @@ Nivo Slider is the best choice for a WordPress slider plugin because it is fast,
|
|
23 |
|
24 |
* Create sliders from **Galleries, Categories and Sticky Posts**
|
25 |
* More custom **themes**
|
26 |
-
*
|
27 |
* Upcoming lightboxes support.
|
28 |
* Automatic updates.
|
29 |
* Priority support.
|
@@ -38,6 +38,7 @@ Nivo Slider is the best choice for a WordPress slider plugin because it is fast,
|
|
38 |
* [ Slider with thumbnail navigation ](https://demo.themeisle.com/nivo-slider/slider-thumbnail/)
|
39 |
* [ Slider from category ](https://demo.themeisle.com/nivo-slider/slider-category/)
|
40 |
* [ Slider from gallery posts ](https://demo.themeisle.com/nivo-slider/slider-gallery/)
|
|
|
41 |
|
42 |
== Installation ==
|
43 |
|
@@ -67,6 +68,13 @@ Purchasing a license gets you access to the full version of the Nivo Slider Word
|
|
67 |
4. The final result
|
68 |
|
69 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
|
71 |
= 2.0.4 =
|
72 |
* Changed required core style loading.
|
1 |
=== Slider by Nivo - Responsive WordPress Image Slider ===
|
2 |
Contributors: themeisle, codeinwp, nivoslider
|
3 |
+
Tags: slider, nivo,slider plugin, slideshow, slideshow plugin, template tag, wordpress gallery, wordpress image slider, wordpress photo gallery
|
4 |
Requires at least: 3.0
|
5 |
+
Tested up to: 4.9
|
6 |
Stable tag: trunk
|
7 |
License: GPLv3
|
8 |
|
23 |
|
24 |
* Create sliders from **Galleries, Categories and Sticky Posts**
|
25 |
* More custom **themes**
|
26 |
+
* Build carousels.
|
27 |
* Upcoming lightboxes support.
|
28 |
* Automatic updates.
|
29 |
* Priority support.
|
38 |
* [ Slider with thumbnail navigation ](https://demo.themeisle.com/nivo-slider/slider-thumbnail/)
|
39 |
* [ Slider from category ](https://demo.themeisle.com/nivo-slider/slider-category/)
|
40 |
* [ Slider from gallery posts ](https://demo.themeisle.com/nivo-slider/slider-gallery/)
|
41 |
+
* [ Circular carousel ](https://demo.themeisle.com/nivo-slider/circular-carousel/)
|
42 |
|
43 |
== Installation ==
|
44 |
|
68 |
4. The final result
|
69 |
|
70 |
== Changelog ==
|
71 |
+
= 2.1.0 - 2017-06-26 =
|
72 |
+
|
73 |
+
* Added carousel compatibility
|
74 |
+
* Fixed warnings with taxonomy name change.
|
75 |
+
* Added upsell page.
|
76 |
+
|
77 |
+
|
78 |
|
79 |
= 2.0.4 =
|
80 |
* Changed required core style loading.
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit10fe3fd2e8ddae0802151df1d2b0e7cf::getLoader();
|
vendor/autoload_52.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit0fc127e51dc28fab98c5e4f3a39d42f1::getLoader();
|
vendor/codeinwp/themeisle-sdk/README.md
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
# themeisle-sdk
|
2 |
-
ThemeIsle SDK library
|
|
|
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-deactivate.php
ADDED
@@ -0,0 +1,470 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The deactivate feedback model class for ThemeIsle SDK
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @subpackage Feedback
|
7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
9 |
+
* @since 1.0.0
|
10 |
+
*/
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit;
|
14 |
+
}
|
15 |
+
if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
16 |
+
/**
|
17 |
+
* Deactivate feedback model for ThemeIsle SDK.
|
18 |
+
*/
|
19 |
+
class ThemeIsle_SDK_Feedback_Deactivate extends ThemeIsle_SDK_Feedback {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @var array $options_plugin The main options list for plugins.
|
23 |
+
*/
|
24 |
+
private $options_plugin = array(
|
25 |
+
'I only needed the plugin for a short period' => array(
|
26 |
+
'id' => 1,
|
27 |
+
),
|
28 |
+
'The plugin broke my site' => array(
|
29 |
+
'id' => 2,
|
30 |
+
),
|
31 |
+
'I found a better plugin' => array(
|
32 |
+
'id' => 3,
|
33 |
+
'type' => 'text',
|
34 |
+
'placeholder' => 'What\'s the plugin\'s name?',
|
35 |
+
),
|
36 |
+
'The plugin suddenly stopped working' => array(
|
37 |
+
'id' => 4,
|
38 |
+
),
|
39 |
+
'I no longer need the plugin' => array(
|
40 |
+
'id' => 5,
|
41 |
+
'type' => 'textarea',
|
42 |
+
'placeholder' => 'If you could improve one thing about our product, what would it be?',
|
43 |
+
),
|
44 |
+
'It\'s a temporary deactivation. I\'m just debugging an issue.' => array(
|
45 |
+
'id' => 6,
|
46 |
+
),
|
47 |
+
);
|
48 |
+
|
49 |
+
/**
|
50 |
+
* @var array $options_theme The main options list for themes.
|
51 |
+
*/
|
52 |
+
private $options_theme = array(
|
53 |
+
'I don\'t know how to make it look like demo' => array(
|
54 |
+
'id' => 7,
|
55 |
+
),
|
56 |
+
'It lacks options' => array(
|
57 |
+
'id' => 8,
|
58 |
+
),
|
59 |
+
'Is not working with a plugin that I need' => array(
|
60 |
+
'id' => 9,
|
61 |
+
'type' => 'text',
|
62 |
+
'placeholder' => 'What is the name of the plugin',
|
63 |
+
),
|
64 |
+
'I want to try a new design, I don\'t like {theme} style' => array(
|
65 |
+
'id' => 10,
|
66 |
+
),
|
67 |
+
);
|
68 |
+
|
69 |
+
/**
|
70 |
+
* @var array $other The other option
|
71 |
+
*/
|
72 |
+
private $other = array(
|
73 |
+
'Other' => array(
|
74 |
+
'id' => 999,
|
75 |
+
'type' => 'textarea',
|
76 |
+
'placeholder' => 'cmon cmon tell us',
|
77 |
+
),
|
78 |
+
);
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @var string $heading_plugin The heading of the modal
|
82 |
+
*/
|
83 |
+
private $heading_plugin = 'If you have a moment, please let us know why you are deactivating:';
|
84 |
+
|
85 |
+
/**
|
86 |
+
* @var string $heading_theme The heading of the modal
|
87 |
+
*/
|
88 |
+
private $heading_theme = 'Looking to change {theme}, what doesn\'t work for you?';
|
89 |
+
|
90 |
+
/**
|
91 |
+
* @var string $button_submit_before The text of the deactivate button before an option is chosen
|
92 |
+
*/
|
93 |
+
private $button_submit_before = 'Skip & Deactivate';
|
94 |
+
|
95 |
+
/**
|
96 |
+
* @var string $button_submit The text of the deactivate button
|
97 |
+
*/
|
98 |
+
private $button_submit = 'Submit & Deactivate';
|
99 |
+
|
100 |
+
/**
|
101 |
+
* @var string $button_cancel The text of the cancel button
|
102 |
+
*/
|
103 |
+
private $button_cancel = 'Cancel';
|
104 |
+
|
105 |
+
/**
|
106 |
+
* @var int how many seconds before the deactivation window is triggered for themes
|
107 |
+
*/
|
108 |
+
const AUTO_TRIGGER_DEACTIVATE_WINDOW_SECONDS = 3;
|
109 |
+
|
110 |
+
/**
|
111 |
+
* @var int how many days before the deactivation window pops up again for the theme
|
112 |
+
*/
|
113 |
+
const PAUSE_DEACTIVATE_WINDOW_DAYS = 100;
|
114 |
+
|
115 |
+
/**
|
116 |
+
* ThemeIsle_SDK_Feedback_Deactivate constructor.
|
117 |
+
*
|
118 |
+
* @param ThemeIsle_SDK_Product $product_object The product object.
|
119 |
+
*/
|
120 |
+
public function __construct( $product_object ) {
|
121 |
+
parent::__construct( $product_object );
|
122 |
+
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
* Registers the hooks
|
126 |
+
*/
|
127 |
+
public function setup_hooks_child() {
|
128 |
+
global $pagenow;
|
129 |
+
|
130 |
+
if ( ( $this->product->get_type() === 'plugin' && $pagenow === 'plugins.php' ) || ( $this->product->get_type() === 'theme' && $pagenow === 'theme-install.php' ) ) {
|
131 |
+
add_action( 'admin_head', array( $this, 'load_resources' ) );
|
132 |
+
}
|
133 |
+
add_action( 'wp_ajax_' . $this->product->get_key() . __CLASS__, array( $this, 'post_deactivate' ) );
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Loads the additional resources
|
138 |
+
*/
|
139 |
+
function load_resources() {
|
140 |
+
add_thickbox();
|
141 |
+
|
142 |
+
$id = $this->product->get_key() . '_deactivate';
|
143 |
+
|
144 |
+
$this->add_css( $this->product->get_type(), $this->product->get_key() );
|
145 |
+
$this->add_js( $this->product->get_type(), $this->product->get_key(), '#TB_inline?' . apply_filters( $this->product->get_key() . '_feedback_deactivate_attributes', 'width=600&height=550' ) . '&inlineId=' . $id );
|
146 |
+
|
147 |
+
echo '<div id="' . $id . '" style="display:none;" class="themeisle-deactivate-box">' . $this->get_html( $this->product->get_type(), $this->product->get_key() ) . '</div>';
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Loads the css
|
152 |
+
*
|
153 |
+
* @param string $type The type of product.
|
154 |
+
* @param string $key The product key.
|
155 |
+
*/
|
156 |
+
function add_css( $type, $key ) {
|
157 |
+
$suffix = 'theme' === $type ? 'theme-install-php' : 'plugins-php';
|
158 |
+
?>
|
159 |
+
<style type="text/css" id="<?php echo $key; ?>ti-deactivate-css">
|
160 |
+
input[name="ti-deactivate-option"] ~ div {
|
161 |
+
display: none;
|
162 |
+
}
|
163 |
+
|
164 |
+
input[name="ti-deactivate-option"]:checked ~ div {
|
165 |
+
display: block;
|
166 |
+
}
|
167 |
+
|
168 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_window.thickbox-loading:before {
|
169 |
+
background: none !important;
|
170 |
+
}
|
171 |
+
|
172 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_title {
|
173 |
+
font-size: 21px;
|
174 |
+
padding: 20px 0;
|
175 |
+
background-color: #f3f3f3;
|
176 |
+
}
|
177 |
+
|
178 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container div.actions {
|
179 |
+
padding: 20px 0;
|
180 |
+
background-color: #f3f3f3;
|
181 |
+
border-top: 1px solid #dddddd;
|
182 |
+
}
|
183 |
+
|
184 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button.button-primary {
|
185 |
+
margin-right: 20px;
|
186 |
+
}
|
187 |
+
|
188 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button {
|
189 |
+
margin-right: 20px;
|
190 |
+
}
|
191 |
+
|
192 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_ajaxWindowTitle {
|
193 |
+
text-align: left;
|
194 |
+
margin-left: 15px;
|
195 |
+
}
|
196 |
+
|
197 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container div.revive_network-container {
|
198 |
+
background-color: #ffffff;
|
199 |
+
}
|
200 |
+
|
201 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li {
|
202 |
+
font-size: 14px;
|
203 |
+
}
|
204 |
+
|
205 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li label {
|
206 |
+
margin-left: 10px;
|
207 |
+
line-height: 32px;
|
208 |
+
font-size: 16px;
|
209 |
+
}
|
210 |
+
|
211 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_ajaxContent {
|
212 |
+
padding: 10px 20px;
|
213 |
+
}
|
214 |
+
|
215 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container li div textarea {
|
216 |
+
padding: 10px 15px;
|
217 |
+
width: 100%;
|
218 |
+
}
|
219 |
+
|
220 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li div {
|
221 |
+
margin: 10px 30px;
|
222 |
+
}
|
223 |
+
|
224 |
+
.<?php echo $key; ?>-container #TB_title #TB_ajaxWindowTitle {
|
225 |
+
display: block;
|
226 |
+
}
|
227 |
+
|
228 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container .actions {
|
229 |
+
|
230 |
+
width: 100%;
|
231 |
+
display: block;
|
232 |
+
position: absolute;
|
233 |
+
left: 0px;
|
234 |
+
bottom: 0px;
|
235 |
+
text-align: right;
|
236 |
+
}
|
237 |
+
|
238 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_title {
|
239 |
+
|
240 |
+
height: 33px;
|
241 |
+
width: 100%;
|
242 |
+
text-align: center;
|
243 |
+
}
|
244 |
+
|
245 |
+
.theme-install-php .<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon:before {
|
246 |
+
font-size: 32px;
|
247 |
+
}
|
248 |
+
|
249 |
+
.<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon {
|
250 |
+
|
251 |
+
color: #eee;
|
252 |
+
}
|
253 |
+
|
254 |
+
.<?php echo $key; ?>-container #TB_closeWindowButton {
|
255 |
+
left: auto;
|
256 |
+
right: -30px;
|
257 |
+
color: #eee;
|
258 |
+
}
|
259 |
+
|
260 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container {
|
261 |
+
|
262 |
+
margin: auto !important;
|
263 |
+
height: 550px !important;
|
264 |
+
top: 0 !important;
|
265 |
+
left: 0 !important;
|
266 |
+
bottom: 0 !important;
|
267 |
+
right: 0 !important;
|
268 |
+
}
|
269 |
+
</style>
|
270 |
+
<?php
|
271 |
+
}
|
272 |
+
|
273 |
+
/**
|
274 |
+
* Loads the js
|
275 |
+
*
|
276 |
+
* @param string $type The type of product.
|
277 |
+
* @param string $key The product key.
|
278 |
+
* @param string $src The url that will hijack the deactivate button url.
|
279 |
+
*/
|
280 |
+
function add_js( $type, $key, $src ) {
|
281 |
+
$heading = 'plugin' === $type ? $this->heading_plugin : str_replace( '{theme}', $this->product->get_name(), $this->heading_theme );
|
282 |
+
$heading = apply_filters( $this->product->get_key() . '_feedback_deactivate_heading', $heading );
|
283 |
+
?>
|
284 |
+
<script type="text/javascript" id="ti-deactivate-js">
|
285 |
+
(function ($) {
|
286 |
+
$(document).ready(function () {
|
287 |
+
var auto_trigger = false;
|
288 |
+
var target_element = 'tr[data-plugin^="<?php echo $this->product->get_slug(); ?>/"] span.deactivate a';
|
289 |
+
<?php
|
290 |
+
if ( 'theme' === $type ) {
|
291 |
+
?>
|
292 |
+
auto_trigger = true;
|
293 |
+
if ($('a.ti-auto-anchor').length == 0) {
|
294 |
+
$('body').append($('<a class="ti-auto-anchor" href=""></a>'));
|
295 |
+
}
|
296 |
+
target_element = 'a.ti-auto-anchor';
|
297 |
+
<?php
|
298 |
+
}
|
299 |
+
?>
|
300 |
+
|
301 |
+
if (auto_trigger) {
|
302 |
+
setTimeout(function () {
|
303 |
+
$('a.ti-auto-anchor').trigger('click');
|
304 |
+
}, <?php echo self::AUTO_TRIGGER_DEACTIVATE_WINDOW_SECONDS * 1000; ?> );
|
305 |
+
}
|
306 |
+
$( document ).on( 'thickbox:removed', function() {
|
307 |
+
$.ajax({
|
308 |
+
url: ajaxurl,
|
309 |
+
method: 'post',
|
310 |
+
data: {
|
311 |
+
'action' : '<?php echo $key . __CLASS__; ?>',
|
312 |
+
'nonce' : '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
|
313 |
+
'type' : '<?php echo $type; ?>',
|
314 |
+
'key' : '<?php echo $key; ?>'
|
315 |
+
},
|
316 |
+
});
|
317 |
+
});
|
318 |
+
var href = $(target_element).attr('href');
|
319 |
+
$('#<?php echo $key; ?>ti-deactivate-no').on('click', function (e) {
|
320 |
+
e.preventDefault();
|
321 |
+
e.stopPropagation();
|
322 |
+
|
323 |
+
$('body').unbind('thickbox:removed');
|
324 |
+
tb_remove();
|
325 |
+
});
|
326 |
+
|
327 |
+
$('#<?php echo $key; ?> ul.ti-list label, #<?php echo $key; ?> ul.ti-list input[name="ti-deactivate-option"]').on('click', function (e) {
|
328 |
+
$('#<?php echo $key; ?>ti-deactivate-yes').val($('#<?php echo $key; ?>ti-deactivate-yes').attr('data-after-text'));
|
329 |
+
|
330 |
+
var radio = $(this).prop('tagName') === 'LABEL' ? $(this).parent() : $(this);
|
331 |
+
if (radio.parent().find('textarea').length > 0 && radio.parent().find('textarea').val().length === 0) {
|
332 |
+
$('#<?php echo $key; ?>ti-deactivate-yes').attr('disabled', 'disabled');
|
333 |
+
radio.parent().find('textarea').on('keyup', function (ee) {
|
334 |
+
if ($(this).val().length === 0) {
|
335 |
+
$('#<?php echo $key; ?>ti-deactivate-yes').attr('disabled', 'disabled');
|
336 |
+
} else {
|
337 |
+
$('#<?php echo $key; ?>ti-deactivate-yes').removeAttr('disabled');
|
338 |
+
}
|
339 |
+
});
|
340 |
+
} else {
|
341 |
+
$('#<?php echo $key; ?>ti-deactivate-yes').removeAttr('disabled');
|
342 |
+
}
|
343 |
+
});
|
344 |
+
|
345 |
+
$('#<?php echo $key; ?>ti-deactivate-yes').attr('data-ti-action', href).on('click', function (e) {
|
346 |
+
e.preventDefault();
|
347 |
+
e.stopPropagation();
|
348 |
+
$.ajax({
|
349 |
+
url: ajaxurl,
|
350 |
+
method: 'post',
|
351 |
+
data: {
|
352 |
+
'action' : '<?php echo $key . __CLASS__; ?>',
|
353 |
+
'nonce' : '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
|
354 |
+
'id' : $('#<?php echo $key; ?> input[name="ti-deactivate-option"]:checked').parent().attr('ti-option-id'),
|
355 |
+
'msg' : $('#<?php echo $key; ?> input[name="ti-deactivate-option"]:checked').parent().find('textarea').val(),
|
356 |
+
'type' : '<?php echo $type; ?>',
|
357 |
+
'key' : '<?php echo $key; ?>'
|
358 |
+
},
|
359 |
+
});
|
360 |
+
var redirect = $(this).attr('data-ti-action');
|
361 |
+
if (redirect != '') {
|
362 |
+
location.href = redirect;
|
363 |
+
} else {
|
364 |
+
$('body').unbind('thickbox:removed');
|
365 |
+
tb_remove();
|
366 |
+
}
|
367 |
+
});
|
368 |
+
|
369 |
+
$(target_element).attr('name', '<?php echo esc_html( $heading ); ?>').attr('href', '<?php echo $src; ?>').addClass('thickbox');
|
370 |
+
var thicbox_timer;
|
371 |
+
$(target_element).on('click', function () {
|
372 |
+
tiBindThickbox();
|
373 |
+
});
|
374 |
+
|
375 |
+
function tiBindThickbox() {
|
376 |
+
var thicbox_timer = setTimeout(function () {
|
377 |
+
if ($("#<?php echo esc_html( $key ); ?>").is(":visible")) {
|
378 |
+
$("body").trigger('thickbox:iframe:loaded');
|
379 |
+
$("#TB_window").addClass("<?php echo $key; ?>-container");
|
380 |
+
clearTimeout(thicbox_timer);
|
381 |
+
$('body').unbind('thickbox:removed');
|
382 |
+
} else {
|
383 |
+
tiBindThickbox();
|
384 |
+
}
|
385 |
+
}, 100);
|
386 |
+
}
|
387 |
+
});
|
388 |
+
})(jQuery);
|
389 |
+
</script>
|
390 |
+
<?php
|
391 |
+
}
|
392 |
+
|
393 |
+
/**
|
394 |
+
* Generates the HTML
|
395 |
+
*
|
396 |
+
* @param string $type The type of product.
|
397 |
+
* @param string $key The product key.
|
398 |
+
*/
|
399 |
+
function get_html( $type, $key ) {
|
400 |
+
$options = 'plugin' === $type ? $this->options_plugin : $this->options_theme;
|
401 |
+
$button_submit_before = 'plugin' === $type ? $this->button_submit_before : 'Submit';
|
402 |
+
$button_submit = 'plugin' === $type ? $this->button_submit : 'Submit';
|
403 |
+
$options = $this->randomize_options( apply_filters( $this->product->get_key() . '_feedback_deactivate_options', $options ) );
|
404 |
+
$button_submit_before = apply_filters( $this->product->get_key() . '_feedback_deactivate_button_submit_before', $button_submit_before );
|
405 |
+
$button_submit = apply_filters( $this->product->get_key() . '_feedback_deactivate_button_submit', $button_submit );
|
406 |
+
$button_cancel = apply_filters( $this->product->get_key() . '_feedback_deactivate_button_cancel', $this->button_cancel );
|
407 |
+
|
408 |
+
$options += $this->other;
|
409 |
+
|
410 |
+
$list = '';
|
411 |
+
foreach ( $options as $title => $attributes ) {
|
412 |
+
$id = $attributes['id'];
|
413 |
+
$list .= '<li ti-option-id="' . $id . '"><input type="radio" name="ti-deactivate-option" id="' . $key . $id . '"><label for="' . $key . $id . '">' . str_replace( '{theme}', $this->product->get_name(), $title ) . '</label>';
|
414 |
+
if ( array_key_exists( 'type', $attributes ) ) {
|
415 |
+
$list .= '<div>';
|
416 |
+
$placeholder = array_key_exists( 'placeholder', $attributes ) ? $attributes['placeholder'] : '';
|
417 |
+
switch ( $attributes['type'] ) {
|
418 |
+
case 'text':
|
419 |
+
$list .= '<textarea style="width: 100%" rows="1" name="comments" placeholder="' . $placeholder . '"></textarea>';
|
420 |
+
break;
|
421 |
+
case 'textarea':
|
422 |
+
$list .= '<textarea style="width: 100%" rows="2" name="comments" placeholder="' . $placeholder . '"></textarea>';
|
423 |
+
break;
|
424 |
+
}
|
425 |
+
$list .= '</div>';
|
426 |
+
}
|
427 |
+
$list .= '</li>';
|
428 |
+
}
|
429 |
+
|
430 |
+
return '<div id="' . $this->product->get_key() . '">'
|
431 |
+
. '<ul class="ti-list">' . $list . '</ul>'
|
432 |
+
. '<div class="actions">'
|
433 |
+
. get_submit_button(
|
434 |
+
$button_submit_before , 'secondary', $this->product->get_key() . 'ti-deactivate-yes', false, array(
|
435 |
+
'data-after-text' => $button_submit,
|
436 |
+
)
|
437 |
+
)
|
438 |
+
. get_submit_button( $button_cancel, 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
|
439 |
+
. '</div></div>';
|
440 |
+
}
|
441 |
+
|
442 |
+
/**
|
443 |
+
* Called when the deactivate button is clicked
|
444 |
+
*/
|
445 |
+
function post_deactivate() {
|
446 |
+
check_ajax_referer( (string) __CLASS__, 'nonce' );
|
447 |
+
|
448 |
+
if ( ! empty( $_POST['id'] ) ) {
|
449 |
+
$this->call_api(
|
450 |
+
array(
|
451 |
+
'type' => 'deactivate',
|
452 |
+
'id' => $_POST['id'],
|
453 |
+
'comment' => isset( $_POST['msg'] ) ? $_POST['msg'] : '',
|
454 |
+
)
|
455 |
+
);
|
456 |
+
}
|
457 |
+
|
458 |
+
$this->post_deactivate_or_cancel();
|
459 |
+
}
|
460 |
+
|
461 |
+
/**
|
462 |
+
* Called when the deactivate/cancel button is clicked
|
463 |
+
*/
|
464 |
+
private function post_deactivate_or_cancel() {
|
465 |
+
if ( isset( $_POST['type'] ) && isset( $_POST['key'] ) && 'theme' === $_POST['type'] ) {
|
466 |
+
set_transient( 'ti_sdk_pause_' . $_POST['key'], true, PAUSE_DEACTIVATE_WINDOW_DAYS * DAY_IN_SECONDS );
|
467 |
+
}
|
468 |
+
}
|
469 |
+
}
|
470 |
+
endif;
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-factory.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The feedback factory class for ThemeIsle SDK
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @subpackage Feedback
|
7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
9 |
+
* @since 1.0.0
|
10 |
+
*/
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit;
|
14 |
+
}
|
15 |
+
if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Factory' ) ) :
|
16 |
+
/**
|
17 |
+
* Feedback model for ThemeIsle SDK.
|
18 |
+
*/
|
19 |
+
class ThemeIsle_SDK_Feedback_Factory {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @var array $instances collection of the instances that are registered with the factory
|
23 |
+
*/
|
24 |
+
private $_instances = array();
|
25 |
+
|
26 |
+
/**
|
27 |
+
* ThemeIsle_SDK_Feedback_Factory constructor.
|
28 |
+
*
|
29 |
+
* @param ThemeIsle_SDK_Product $product_object Product Object.
|
30 |
+
* @param array $feedback_types the feedback types.
|
31 |
+
*/
|
32 |
+
public function __construct( $product_object, $feedback_types ) {
|
33 |
+
if ( $product_object instanceof ThemeIsle_SDK_Product && $feedback_types && is_array( $feedback_types ) ) {
|
34 |
+
foreach ( $feedback_types as $type ) {
|
35 |
+
$class = 'ThemeIsle_SDK_Feedback_' . ucwords( $type );
|
36 |
+
$instance = new $class( $product_object );
|
37 |
+
$this->_instances[ $type ] = $instance;
|
38 |
+
$instance->setup_hooks();
|
39 |
+
}
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Get the registered instances
|
45 |
+
*/
|
46 |
+
public function get_instances() {
|
47 |
+
return $this->_instances;
|
48 |
+
}
|
49 |
+
}
|
50 |
+
endif;
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-review.php
ADDED
@@ -0,0 +1,185 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The review feedback model class for ThemeIsle SDK
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @subpackage Feedback
|
7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
9 |
+
* @since 1.0.0
|
10 |
+
*/
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit;
|
14 |
+
}
|
15 |
+
if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Review' ) ) :
|
16 |
+
/**
|
17 |
+
* Deactivate feedback model for ThemeIsle SDK.
|
18 |
+
*/
|
19 |
+
class ThemeIsle_SDK_Feedback_Review extends ThemeIsle_SDK_Feedback {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @var string $heading The heading of the modal
|
23 |
+
*/
|
24 |
+
private $heading = 'Hey, it’s great to see you have {product} active for a few days now. How is everything going? If you can spare a few moments to rate it on WordPress.org it would help us a lot (and boost my motivation). Cheers! <br/> <br/>~ {developer}, developer of {product}';
|
25 |
+
|
26 |
+
/**
|
27 |
+
* @var string $button_cancel The text of the cancel button
|
28 |
+
*/
|
29 |
+
private $button_cancel = 'No, thanks.';
|
30 |
+
/**
|
31 |
+
* @var array Developers who work for each type of product for review purpose.
|
32 |
+
*/
|
33 |
+
private $developers = array(
|
34 |
+
'plugin' => array( 'Marius', 'Bogdan' ),
|
35 |
+
'theme' => array( 'Rodica', 'Andrei', 'Bogdan', 'Cristi' ),
|
36 |
+
);
|
37 |
+
/**
|
38 |
+
* @var string $button_already The text of the already did it button
|
39 |
+
*/
|
40 |
+
private $button_do = 'Ok, I will gladly help.';
|
41 |
+
|
42 |
+
/**
|
43 |
+
* ThemeIsle_SDK_Feedback_Deactivate constructor.
|
44 |
+
*
|
45 |
+
* @param ThemeIsle_SDK_Product $product_object The product object.
|
46 |
+
*/
|
47 |
+
public function __construct( $product_object ) {
|
48 |
+
parent::__construct( $product_object );
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Registers the hooks
|
53 |
+
*/
|
54 |
+
public function setup_hooks_child() {
|
55 |
+
add_action( 'wp_ajax_' . $this->product->get_key() . __CLASS__, array( $this, 'dismiss' ) );
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Shows the notification
|
60 |
+
*/
|
61 |
+
function show_notification() {
|
62 |
+
if ( ! $this->product->is_wordpress_available() ) {
|
63 |
+
$this->disable();
|
64 |
+
|
65 |
+
return false;
|
66 |
+
}
|
67 |
+
$show = get_option( $this->product->get_key() . '_review_flag', 'yes' );
|
68 |
+
if ( 'no' === $show ) {
|
69 |
+
return false;
|
70 |
+
}
|
71 |
+
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
|
72 |
+
|
73 |
+
return true;
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Shows the admin notice
|
78 |
+
*/
|
79 |
+
function admin_notices() {
|
80 |
+
$id = $this->product->get_key() . '_review';
|
81 |
+
|
82 |
+
$this->add_css( $this->product->get_key() );
|
83 |
+
$this->add_js( $this->product->get_key() );
|
84 |
+
|
85 |
+
echo '<div class="notice notice-success is-dismissible" id="' . $id . '" ><div class="themeisle-review-box">' . $this->get_html( $this->product->get_key() ) . '</div></div>';
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Loads the css
|
90 |
+
*
|
91 |
+
* @param string $key The product key.
|
92 |
+
*/
|
93 |
+
function add_css( $key ) {
|
94 |
+
?>
|
95 |
+
<style type="text/css" id="<?php echo $key; ?>ti-review-css">
|
96 |
+
#<?php echo $key; ?>-review-notification {
|
97 |
+
padding-bottom: 5px;
|
98 |
+
}
|
99 |
+
|
100 |
+
#<?php echo $key; ?>-review-notification .review-dismiss {
|
101 |
+
margin-left: 5px;
|
102 |
+
}
|
103 |
+
</style>
|
104 |
+
<?php
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Loads the js
|
109 |
+
*
|
110 |
+
* @param string $key The product key.
|
111 |
+
*/
|
112 |
+
function add_js( $key ) {
|
113 |
+
?>
|
114 |
+
<script type="text/javascript" id="<?php echo $key; ?>ti-review-js">
|
115 |
+
(function ($) {
|
116 |
+
$(document).ready(function () {
|
117 |
+
$('#<?php echo $key; ?>_review').on('click', '.notice-dismiss, .review-dismiss', function (e) {
|
118 |
+
|
119 |
+
$.ajax({
|
120 |
+
url: ajaxurl,
|
121 |
+
method: "post",
|
122 |
+
data: {
|
123 |
+
'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
|
124 |
+
'action': '<?php echo $this->product->get_key() . __CLASS__; ?>'
|
125 |
+
},
|
126 |
+
success: function () {
|
127 |
+
$('#<?php echo $key; ?>_review').hide();
|
128 |
+
}
|
129 |
+
});
|
130 |
+
});
|
131 |
+
});
|
132 |
+
})(jQuery);
|
133 |
+
</script>
|
134 |
+
<?php
|
135 |
+
}
|
136 |
+
|
137 |
+
/**
|
138 |
+
* Generates the HTML
|
139 |
+
*
|
140 |
+
* @param string $key The product key.
|
141 |
+
*/
|
142 |
+
function get_html( $key ) {
|
143 |
+
$link = 'https://wordpress.org/support/' . $this->product->get_type() . '/' . $this->product->get_slug() . '/reviews/#wporg-footer';
|
144 |
+
$heading = apply_filters( $this->product->get_key() . '_feedback_review_heading', $this->heading );
|
145 |
+
$heading = str_replace(
|
146 |
+
array( '{product}' ),
|
147 |
+
trim( str_replace( 'Lite', '', $this->product->get_name() ) ), $heading
|
148 |
+
);
|
149 |
+
$heading = str_replace( '{developer}', $this->developers[ $this->product->get_type() ][ rand( 0, ( count( $this->developers[ $this->product->get_type() ] ) - 1 ) ) ], $heading );
|
150 |
+
|
151 |
+
$button_cancel = apply_filters( $this->product->get_key() . '_feedback_review_button_cancel', $this->button_cancel );
|
152 |
+
$button_do = apply_filters( $this->product->get_key() . '_feedback_review_button_do', $this->button_do );
|
153 |
+
|
154 |
+
return '<div id="' . $this->product->get_key() . '-review-notification" class="themeisle-sdk-review-box">'
|
155 |
+
. '<p>' . $heading . '</p>'
|
156 |
+
. '<div class="actions">'
|
157 |
+
. '<a href="' . $link . '" target="_blank" class="button button-primary review-dismiss"> ' . $button_do . '</a>'
|
158 |
+
. get_submit_button( $button_cancel, 'review-dismiss ' . $this->product->get_key() . '-ti-review', $this->product->get_key() . 'ti-review-no', false )
|
159 |
+
. '</div></div>';
|
160 |
+
}
|
161 |
+
|
162 |
+
/**
|
163 |
+
* Called when the either button is clicked
|
164 |
+
*/
|
165 |
+
function dismiss() {
|
166 |
+
check_ajax_referer( (string) __CLASS__, 'nonce' );
|
167 |
+
|
168 |
+
$this->disable();
|
169 |
+
}
|
170 |
+
|
171 |
+
/**
|
172 |
+
* Disables the notification
|
173 |
+
*/
|
174 |
+
protected function disable() {
|
175 |
+
update_option( $this->product->get_key() . '_review_flag', 'no' );
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Enables the notification
|
180 |
+
*/
|
181 |
+
protected function enable() {
|
182 |
+
update_option( $this->product->get_key() . '_review_flag', 'yes' );
|
183 |
+
}
|
184 |
+
}
|
185 |
+
endif;
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback.php
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The feedback model class for ThemeIsle SDK
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @subpackage Feedback
|
7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
9 |
+
* @since 1.0.0
|
10 |
+
*/
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit;
|
14 |
+
}
|
15 |
+
if ( ! class_exists( 'ThemeIsle_SDK_Feedback' ) ) :
|
16 |
+
/**
|
17 |
+
* Feedback model for ThemeIsle SDK.
|
18 |
+
*/
|
19 |
+
abstract class ThemeIsle_SDK_Feedback {
|
20 |
+
/**
|
21 |
+
* @var ThemeIsle_SDK_Product $product Themeisle Product.
|
22 |
+
*/
|
23 |
+
protected $product;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @var string $feedback_url Url where to send the feedback
|
27 |
+
*/
|
28 |
+
private $feedback_url = 'http://feedback.themeisle.com/wordpress/wp-json/__pirate_feedback_/v1/feedback';
|
29 |
+
|
30 |
+
/**
|
31 |
+
* ThemeIsle_SDK_Feedback constructor.
|
32 |
+
*
|
33 |
+
* @param ThemeIsle_SDK_Product $product_object Product Object.
|
34 |
+
*/
|
35 |
+
public function __construct( $product_object ) {
|
36 |
+
if ( $product_object instanceof ThemeIsle_SDK_Product ) {
|
37 |
+
$this->product = $product_object;
|
38 |
+
}
|
39 |
+
$this->setup_hooks();
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Registers the hooks and then delegates to the child
|
44 |
+
*/
|
45 |
+
public function setup_hooks() {
|
46 |
+
$this->setup_hooks_child();
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Calls the API
|
51 |
+
*
|
52 |
+
* @param string $attributes The attributes of the post body.
|
53 |
+
*/
|
54 |
+
protected function call_api( $attributes ) {
|
55 |
+
$slug = $this->product->get_slug();
|
56 |
+
$version = $this->product->get_version();
|
57 |
+
$attributes['slug'] = $slug;
|
58 |
+
$attributes['version'] = $version;
|
59 |
+
|
60 |
+
$response = wp_remote_post(
|
61 |
+
$this->feedback_url, array(
|
62 |
+
'body' => $attributes,
|
63 |
+
)
|
64 |
+
);
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Randomizes the options array
|
69 |
+
*
|
70 |
+
* @param array $options The options array.
|
71 |
+
*/
|
72 |
+
function randomize_options( $options ) {
|
73 |
+
$new = array();
|
74 |
+
$keys = array_keys( $options );
|
75 |
+
shuffle( $keys );
|
76 |
+
|
77 |
+
foreach ( $keys as $key ) {
|
78 |
+
$new[ $key ] = $options[ $key ];
|
79 |
+
}
|
80 |
+
|
81 |
+
return $new;
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Abstract function for delegating to the child
|
86 |
+
*/
|
87 |
+
protected abstract function setup_hooks_child();
|
88 |
+
|
89 |
+
}
|
90 |
+
endif;
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php
CHANGED
@@ -75,6 +75,29 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
75 |
add_action( 'admin_notices', array( $this, 'show_notice' ) );
|
76 |
}
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
/**
|
79 |
* Register the setting for the license of the product
|
80 |
*
|
@@ -105,7 +128,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
105 |
$invalid_string = apply_filters( $this->product->get_key() . '_lc_invalid_string', 'Invalid' );
|
106 |
$license_message = apply_filters( $this->product->get_key() . '_lc_license_message', 'Enter your license from %s purchase history in order to get %s updates' );
|
107 |
|
108 |
-
echo '<p ><input ' . ( ( $status === 'valid' ) ? ( 'style="border:1px solid #7ad03a; "' ) : '' ) . ' type="text" id="' . $this->product->get_key() . '_license" name="' . $this->product->get_key() . '_license" value="' . $value . '" /><a ' . ( ( $status === 'valid' ) ? ( 'style="color:#fff;background: #7ad03a; display: inline-block;text-decoration: none;font-size: 13px;line-height: 26px;height: 26px; margin-left:5px; padding: 0 10px 1px; -webkit-border-radius: 3px;border-radius: 3px; ">' . $valid_string ) : ( 'style="color:#fff;background: #dd3d36; display: inline-block;text-decoration: none;font-size: 13px;line-height: 26px;height: 26px; margin-left:5px; padding: 0 10px 1px; -webkit-border-radius: 3px;border-radius: 3px; ">' . $invalid_string ) ) . ' </a> <button name="' . $this->product->get_key() . '_btn_trigger" ' . ( ( $status === 'valid' ) ? ( ' class="button button-primary">' . $deactivate_string ) : ( ' class="button button-primary" value="yes" type="submit" >' . $activate_string ) ) . ' </button></p><p class="description">' . sprintf( $license_message, '<a href="' . $this->product->get_store_url() . '">' . $this->product->
|
109 |
|
110 |
}
|
111 |
|
@@ -206,25 +229,35 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
206 |
return false;
|
207 |
}
|
208 |
$status = $this->get_license_status();
|
209 |
-
$no_activations_string = apply_filters(
|
|
|
210 |
upgrade your plan in order to use %s on more
|
211 |
websites. Please ask the %s
|
212 |
-
Staff for more details.'
|
213 |
-
|
|
|
|
|
214 |
your license code from your <a href="%s" target="_blank">purchase history</a> and validate it <a
|
215 |
-
href="%s">here</a> '
|
216 |
-
|
217 |
-
|
|
|
|
|
|
|
218 |
$hide_notice_string = apply_filters( $this->product->get_key() . '_lc_hide_notice_string', 'Hide Notice' );
|
219 |
if ( $status != 'valid' ) {
|
220 |
if ( $this->check_activation() ) {
|
221 |
if ( $this->check_hide( 'activation' ) ) {
|
222 |
?>
|
223 |
<div class="error">
|
224 |
-
<p><strong
|
225 |
-
|
226 |
-
|
227 |
-
|
|
|
|
|
|
|
|
|
228 |
href="<?php echo add_query_arg( $this->product->get_key() . '_activation', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
|
229 |
</p>
|
230 |
</div>
|
@@ -236,7 +269,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
236 |
<?php if ( $this->check_hide( 'valid' ) ) : ?>
|
237 |
<div class="error">
|
238 |
<p>
|
239 |
-
<strong><?php echo sprintf( $no_valid_string, $this->product->get_name() . ' ' . $this->product->get_type(), $this->product->
|
240 |
<a
|
241 |
href="<?php echo add_query_arg( $this->product->get_key() . '_hide_valid', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
|
242 |
</p>
|
@@ -249,9 +282,15 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
249 |
?>
|
250 |
<div class="update-nag">
|
251 |
<p>
|
252 |
-
<strong
|
|
|
|
|
|
|
253 |
href="' . $this->renew_url() . '"
|
254 |
-
target="_blank">' . $this->product->get_store_name() . '</a>'
|
|
|
|
|
|
|
255 |
<a
|
256 |
href="<?php echo add_query_arg( $this->product->get_key() . '_hide_expiration', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
|
257 |
</p>
|
@@ -307,14 +346,16 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
307 |
$api_params = array(
|
308 |
'edd_action' => 'check_license',
|
309 |
'license' => $license,
|
310 |
-
'item_name' =>
|
311 |
-
'url' =>
|
312 |
);
|
313 |
// Call the custom API.
|
314 |
-
$response = wp_remote_get(
|
315 |
-
|
316 |
-
|
317 |
-
|
|
|
|
|
318 |
if ( is_wp_error( $response ) ) {
|
319 |
$license_data = new stdClass();
|
320 |
$license_data->license = 'valid';
|
@@ -368,8 +409,8 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
368 |
$license = $_POST[ $this->product->get_key() . '_license' ];
|
369 |
$api_params = array(
|
370 |
'license' => $license,
|
371 |
-
'item_name' =>
|
372 |
-
'url' =>
|
373 |
);
|
374 |
if ( $status != 'valid' ) {
|
375 |
// data to send in our API request
|
@@ -414,10 +455,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
414 |
*/
|
415 |
public function enable() {
|
416 |
if ( $this->product->get_type() == 'plugin' ) {
|
417 |
-
add_filter(
|
418 |
-
|
419 |
-
|
420 |
-
|
|
|
|
|
421 |
add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
|
422 |
add_filter( 'http_request_args', array( $this, 'http_request_args' ), 10, 2 );
|
423 |
}
|
@@ -427,6 +470,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
427 |
add_action( 'load-update-core.php', array( &$this, 'delete_theme_update_transient' ) );
|
428 |
add_action( 'load-themes.php', array( &$this, 'delete_theme_update_transient' ) );
|
429 |
add_action( 'load-themes.php', array( &$this, 'load_themes_screen' ) );
|
|
|
430 |
|
431 |
}
|
432 |
|
@@ -450,10 +494,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
450 |
return;
|
451 |
}
|
452 |
$update_url = wp_nonce_url( 'update.php?action=upgrade-theme&theme=' . urlencode( $this->product->get_slug() ), 'upgrade-theme_' . $this->product->get_slug() );
|
453 |
-
$
|
|
|
454 |
if ( version_compare( $this->product->get_version(), $api_response->new_version, '<' ) ) {
|
455 |
echo '<div id="update-nag">';
|
456 |
-
printf(
|
|
|
457 |
$theme->get( 'Name' ),
|
458 |
$api_response->new_version,
|
459 |
'#TB_inline?width=640&inlineId=' . $this->product->get_version() . '_changelog',
|
@@ -509,13 +555,15 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
509 |
'name' => $this->product->get_name(),
|
510 |
'slug' => $this->product->get_slug(),
|
511 |
'author' => $this->product->get_store_name(),
|
512 |
-
'url' =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
513 |
);
|
514 |
-
$response = wp_remote_post( $this->product->get_store_url(), array(
|
515 |
-
'timeout' => 15,
|
516 |
-
'sslverify' => false,
|
517 |
-
'body' => $api_params,
|
518 |
-
) );
|
519 |
// make sure the response was successful
|
520 |
if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
|
521 |
$failed = true;
|
@@ -583,7 +631,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
583 |
* @uses is_wp_error()
|
584 |
*
|
585 |
* @param string $_action The requested action.
|
586 |
-
* @param array $_data
|
587 |
*
|
588 |
* @return false||object
|
589 |
*/
|
@@ -594,16 +642,18 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
594 |
$api_params = array(
|
595 |
'edd_action' => 'get_version',
|
596 |
'license' => $this->license_key,
|
597 |
-
'name' =>
|
598 |
-
'slug' =>
|
599 |
'author' => $this->product->get_store_name(),
|
600 |
-
'url' =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
601 |
);
|
602 |
-
$request = wp_remote_post( $this->product->get_store_url(), array(
|
603 |
-
'timeout' => 15,
|
604 |
-
'sslverify' => false,
|
605 |
-
'body' => $api_params,
|
606 |
-
) );
|
607 |
if ( ! is_wp_error( $request ) ) :
|
608 |
$request = json_decode( wp_remote_retrieve_body( $request ) );
|
609 |
if ( $request && isset( $request->sections ) ) {
|
@@ -621,9 +671,9 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
621 |
*
|
622 |
* @uses api_request()
|
623 |
*
|
624 |
-
* @param mixed $_data
|
625 |
* @param string $_action Action to send.
|
626 |
-
* @param object $_args
|
627 |
*
|
628 |
* @return object $_data
|
629 |
*/
|
@@ -643,7 +693,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
643 |
* Disable SSL verification in order to prevent download update failures
|
644 |
*
|
645 |
* @param array $args Http args.
|
646 |
-
* @param string $url
|
647 |
*
|
648 |
* @return object $array
|
649 |
*/
|
75 |
add_action( 'admin_notices', array( $this, 'show_notice' ) );
|
76 |
}
|
77 |
|
78 |
+
/**
|
79 |
+
* @param string $r Update payload.
|
80 |
+
* @param string $url The api url.
|
81 |
+
*
|
82 |
+
* @return mixed List of themes to check for update.
|
83 |
+
*/
|
84 |
+
function disable_wporg_update( $r, $url ) {
|
85 |
+
|
86 |
+
if ( 0 !== strpos( $url, 'https://api.wordpress.org/themes/update-check/' ) ) {
|
87 |
+
return $r;
|
88 |
+
}
|
89 |
+
|
90 |
+
// Decode the JSON response
|
91 |
+
$themes = json_decode( $r['body']['themes'] );
|
92 |
+
|
93 |
+
unset( $themes->themes->{$this->product->get_slug()} );
|
94 |
+
|
95 |
+
// Encode the updated JSON response
|
96 |
+
$r['body']['themes'] = json_encode( $themes );
|
97 |
+
|
98 |
+
return $r;
|
99 |
+
}
|
100 |
+
|
101 |
/**
|
102 |
* Register the setting for the license of the product
|
103 |
*
|
128 |
$invalid_string = apply_filters( $this->product->get_key() . '_lc_invalid_string', 'Invalid' );
|
129 |
$license_message = apply_filters( $this->product->get_key() . '_lc_license_message', 'Enter your license from %s purchase history in order to get %s updates' );
|
130 |
|
131 |
+
echo '<p ><input ' . ( ( $status === 'valid' ) ? ( 'style="border:1px solid #7ad03a; "' ) : '' ) . ' type="text" id="' . $this->product->get_key() . '_license" name="' . $this->product->get_key() . '_license" value="' . $value . '" /><a ' . ( ( $status === 'valid' ) ? ( 'style="color:#fff;background: #7ad03a; display: inline-block;text-decoration: none;font-size: 13px;line-height: 26px;height: 26px; margin-left:5px; padding: 0 10px 1px; -webkit-border-radius: 3px;border-radius: 3px; ">' . $valid_string ) : ( 'style="color:#fff;background: #dd3d36; display: inline-block;text-decoration: none;font-size: 13px;line-height: 26px;height: 26px; margin-left:5px; padding: 0 10px 1px; -webkit-border-radius: 3px;border-radius: 3px; ">' . $invalid_string ) ) . ' </a> <button name="' . $this->product->get_key() . '_btn_trigger" ' . ( ( $status === 'valid' ) ? ( ' class="button button-primary">' . $deactivate_string ) : ( ' class="button button-primary" value="yes" type="submit" >' . $activate_string ) ) . ' </button></p><p class="description">' . sprintf( $license_message, '<a href="' . $this->product->get_store_url() . '">' . $this->product->get_store_name() . '</a> ', $this->product->get_type() ) . '</p>';
|
132 |
|
133 |
}
|
134 |
|
229 |
return false;
|
230 |
}
|
231 |
$status = $this->get_license_status();
|
232 |
+
$no_activations_string = apply_filters(
|
233 |
+
$this->product->get_key() . '_lc_no_activations_string', 'No activations left for %s !!!. You need to
|
234 |
upgrade your plan in order to use %s on more
|
235 |
websites. Please ask the %s
|
236 |
+
Staff for more details.'
|
237 |
+
);
|
238 |
+
$no_valid_string = apply_filters(
|
239 |
+
$this->product->get_key() . '_lc_no_valid_string', 'In order to benefit from updates and support for %s , please add
|
240 |
your license code from your <a href="%s" target="_blank">purchase history</a> and validate it <a
|
241 |
+
href="%s">here</a> '
|
242 |
+
);
|
243 |
+
$expiration_string = apply_filters(
|
244 |
+
$this->product->get_key() . '_lc_expiration_string', 'Your license is about to expire
|
245 |
+
for %s. You can go to %s and renew it '
|
246 |
+
);
|
247 |
$hide_notice_string = apply_filters( $this->product->get_key() . '_lc_hide_notice_string', 'Hide Notice' );
|
248 |
if ( $status != 'valid' ) {
|
249 |
if ( $this->check_activation() ) {
|
250 |
if ( $this->check_hide( 'activation' ) ) {
|
251 |
?>
|
252 |
<div class="error">
|
253 |
+
<p><strong>
|
254 |
+
<?php
|
255 |
+
echo sprintf(
|
256 |
+
$no_activations_string, $this->product->get_name(), $this->product->get_name(), '<a href="' . $this->product->get_store_url() . '"
|
257 |
+
target="_blank">' . $this->product->get_store_name() . '</a>'
|
258 |
+
);
|
259 |
+
?>
|
260 |
+
</strong> | <a
|
261 |
href="<?php echo add_query_arg( $this->product->get_key() . '_activation', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
|
262 |
</p>
|
263 |
</div>
|
269 |
<?php if ( $this->check_hide( 'valid' ) ) : ?>
|
270 |
<div class="error">
|
271 |
<p>
|
272 |
+
<strong><?php echo sprintf( $no_valid_string, $this->product->get_name() . ' ' . $this->product->get_type(), $this->product->get_store_url(), admin_url( 'options-general.php' ) . '#' . $this->product->get_key() ); ?> </strong>|
|
273 |
<a
|
274 |
href="<?php echo add_query_arg( $this->product->get_key() . '_hide_valid', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
|
275 |
</p>
|
282 |
?>
|
283 |
<div class="update-nag">
|
284 |
<p>
|
285 |
+
<strong>
|
286 |
+
<?php
|
287 |
+
echo sprintf(
|
288 |
+
$expiration_string, $this->product->get_name() . ' ' . $this->product->get_type(), '<a
|
289 |
href="' . $this->renew_url() . '"
|
290 |
+
target="_blank">' . $this->product->get_store_name() . '</a>'
|
291 |
+
);
|
292 |
+
?>
|
293 |
+
</strong> |
|
294 |
<a
|
295 |
href="<?php echo add_query_arg( $this->product->get_key() . '_hide_expiration', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
|
296 |
</p>
|
346 |
$api_params = array(
|
347 |
'edd_action' => 'check_license',
|
348 |
'license' => $license,
|
349 |
+
'item_name' => rawurlencode( $this->product->get_name() ),
|
350 |
+
'url' => rawurlencode( home_url() ),
|
351 |
);
|
352 |
// Call the custom API.
|
353 |
+
$response = wp_remote_get(
|
354 |
+
add_query_arg( $api_params, $this->product->get_store_url() ), array(
|
355 |
+
'timeout' => 15,
|
356 |
+
'sslverify' => false,
|
357 |
+
)
|
358 |
+
);
|
359 |
if ( is_wp_error( $response ) ) {
|
360 |
$license_data = new stdClass();
|
361 |
$license_data->license = 'valid';
|
409 |
$license = $_POST[ $this->product->get_key() . '_license' ];
|
410 |
$api_params = array(
|
411 |
'license' => $license,
|
412 |
+
'item_name' => rawurlencode( $this->product->get_name() ),
|
413 |
+
'url' => rawurlencode( home_url() ),
|
414 |
);
|
415 |
if ( $status != 'valid' ) {
|
416 |
// data to send in our API request
|
455 |
*/
|
456 |
public function enable() {
|
457 |
if ( $this->product->get_type() == 'plugin' ) {
|
458 |
+
add_filter(
|
459 |
+
'pre_set_site_transient_update_plugins', array(
|
460 |
+
$this,
|
461 |
+
'pre_set_site_transient_update_plugins_filter',
|
462 |
+
)
|
463 |
+
);
|
464 |
add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
|
465 |
add_filter( 'http_request_args', array( $this, 'http_request_args' ), 10, 2 );
|
466 |
}
|
470 |
add_action( 'load-update-core.php', array( &$this, 'delete_theme_update_transient' ) );
|
471 |
add_action( 'load-themes.php', array( &$this, 'delete_theme_update_transient' ) );
|
472 |
add_action( 'load-themes.php', array( &$this, 'load_themes_screen' ) );
|
473 |
+
add_filter( 'http_request_args', array( $this, 'disable_wporg_update' ), 5, 2 );
|
474 |
|
475 |
}
|
476 |
|
494 |
return;
|
495 |
}
|
496 |
$update_url = wp_nonce_url( 'update.php?action=upgrade-theme&theme=' . urlencode( $this->product->get_slug() ), 'upgrade-theme_' . $this->product->get_slug() );
|
497 |
+
$update_message = apply_filters( 'themeisle_sdk_license_update_message', 'Updating this theme will lose any customizations you have made. Cancel to stop, OK to update.' );
|
498 |
+
$update_onclick = ' onclick="if ( confirm(\'' . esc_js( $update_message ) . '\') ) {return true;}return false;"';
|
499 |
if ( version_compare( $this->product->get_version(), $api_response->new_version, '<' ) ) {
|
500 |
echo '<div id="update-nag">';
|
501 |
+
printf(
|
502 |
+
'<strong>%1$s %2$s</strong> is available. <a href="%3$s" class="thickbox" title="%4s">Check out what\'s new</a> or <a href="%5$s"%6$s>update now</a>.',
|
503 |
$theme->get( 'Name' ),
|
504 |
$api_response->new_version,
|
505 |
'#TB_inline?width=640&inlineId=' . $this->product->get_version() . '_changelog',
|
555 |
'name' => $this->product->get_name(),
|
556 |
'slug' => $this->product->get_slug(),
|
557 |
'author' => $this->product->get_store_name(),
|
558 |
+
'url' => rawurlencode( home_url() ),
|
559 |
+
);
|
560 |
+
$response = wp_remote_post(
|
561 |
+
$this->product->get_store_url(), array(
|
562 |
+
'timeout' => 15,
|
563 |
+
'sslverify' => false,
|
564 |
+
'body' => $api_params,
|
565 |
+
)
|
566 |
);
|
|
|
|
|
|
|
|
|
|
|
567 |
// make sure the response was successful
|
568 |
if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
|
569 |
$failed = true;
|
631 |
* @uses is_wp_error()
|
632 |
*
|
633 |
* @param string $_action The requested action.
|
634 |
+
* @param array $_data Parameters for the API action.
|
635 |
*
|
636 |
* @return false||object
|
637 |
*/
|
642 |
$api_params = array(
|
643 |
'edd_action' => 'get_version',
|
644 |
'license' => $this->license_key,
|
645 |
+
'name' => rawurlencode( $this->product->get_name() ),
|
646 |
+
'slug' => rawurlencode( $this->product->get_slug() ),
|
647 |
'author' => $this->product->get_store_name(),
|
648 |
+
'url' => rawurlencode( home_url() ),
|
649 |
+
);
|
650 |
+
$request = wp_remote_post(
|
651 |
+
$this->product->get_store_url(), array(
|
652 |
+
'timeout' => 15,
|
653 |
+
'sslverify' => false,
|
654 |
+
'body' => $api_params,
|
655 |
+
)
|
656 |
);
|
|
|
|
|
|
|
|
|
|
|
657 |
if ( ! is_wp_error( $request ) ) :
|
658 |
$request = json_decode( wp_remote_retrieve_body( $request ) );
|
659 |
if ( $request && isset( $request->sections ) ) {
|
671 |
*
|
672 |
* @uses api_request()
|
673 |
*
|
674 |
+
* @param mixed $_data Plugin data.
|
675 |
* @param string $_action Action to send.
|
676 |
+
* @param object $_args Arguments to use.
|
677 |
*
|
678 |
* @return object $_data
|
679 |
*/
|
693 |
* Disable SSL verification in order to prevent download update failures
|
694 |
*
|
695 |
* @param array $args Http args.
|
696 |
+
* @param string $url Url to check.
|
697 |
*
|
698 |
* @return object $array
|
699 |
*/
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-loader.php
CHANGED
@@ -38,49 +38,51 @@ if ( ! class_exists( 'ThemeIsle_SDK_Loader' ) ) :
|
|
38 |
* @return ThemeIsle_SDK_Loader The singleton object.
|
39 |
*/
|
40 |
public static function init_product( $basefile ) {
|
|
|
41 |
if ( ! isset( self::$instance ) && ! ( self::$instance instanceof ThemeIsle_SDK_Loader ) ) {
|
42 |
self::$instance = new ThemeIsle_SDK_Loader;
|
43 |
-
|
44 |
}
|
45 |
$product_object = new ThemeIsle_SDK_Product( $basefile );
|
46 |
self::$products[ $product_object->get_slug() ] = $product_object;
|
47 |
-
|
|
|
|
|
48 |
if ( ! $product_object->is_wordpress_available() ) {
|
49 |
$licenser = new ThemeIsle_SDK_Licenser( $product_object );
|
50 |
$licenser->enable();
|
51 |
}
|
52 |
-
|
|
|
53 |
if ( $product_object->is_logger_active() ) {
|
54 |
-
$logger = new ThemeIsle_SDK_Logger( $product_object );
|
55 |
$logger->enable();
|
|
|
|
|
56 |
}
|
57 |
|
58 |
-
|
59 |
-
}
|
60 |
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
|
|
67 |
}
|
68 |
|
69 |
/**
|
70 |
-
*
|
71 |
*
|
72 |
-
* @return array
|
73 |
*/
|
74 |
-
function
|
75 |
-
|
76 |
-
$headers[] = 'Requires License';
|
77 |
-
}
|
78 |
-
if ( ! in_array( 'WordPress Available', $headers ) ) {
|
79 |
-
$headers[] = 'WordPress Available';
|
80 |
-
}
|
81 |
-
|
82 |
-
return $headers;
|
83 |
}
|
84 |
|
|
|
85 |
}
|
86 |
endif;
|
38 |
* @return ThemeIsle_SDK_Loader The singleton object.
|
39 |
*/
|
40 |
public static function init_product( $basefile ) {
|
41 |
+
|
42 |
if ( ! isset( self::$instance ) && ! ( self::$instance instanceof ThemeIsle_SDK_Loader ) ) {
|
43 |
self::$instance = new ThemeIsle_SDK_Loader;
|
44 |
+
|
45 |
}
|
46 |
$product_object = new ThemeIsle_SDK_Product( $basefile );
|
47 |
self::$products[ $product_object->get_slug() ] = $product_object;
|
48 |
+
|
49 |
+
$notifications = array();
|
50 |
+
// Based on the WordPress Available file header we enable the logger or not.
|
51 |
if ( ! $product_object->is_wordpress_available() ) {
|
52 |
$licenser = new ThemeIsle_SDK_Licenser( $product_object );
|
53 |
$licenser->enable();
|
54 |
}
|
55 |
+
|
56 |
+
$logger = new ThemeIsle_SDK_Logger( $product_object );
|
57 |
if ( $product_object->is_logger_active() ) {
|
|
|
58 |
$logger->enable();
|
59 |
+
} else {
|
60 |
+
$notifications[] = $logger;
|
61 |
}
|
62 |
|
63 |
+
$feedback = new ThemeIsle_SDK_Feedback_Factory( $product_object, $product_object->get_feedback_types() );
|
|
|
64 |
|
65 |
+
$instances = $feedback->get_instances();
|
66 |
+
if ( array_key_exists( 'review', $instances ) ) {
|
67 |
+
$notifications[] = $instances['review'];
|
68 |
+
}
|
69 |
+
new ThemeIsle_SDK_Notification_Manager( $product_object, $notifications );
|
70 |
+
if ( ! $product_object->is_external_author() ) {
|
71 |
+
new ThemeIsle_SDK_Widgets_Factory( $product_object, $product_object->get_widget_types() );
|
72 |
+
}
|
73 |
+
|
74 |
+
return self::$instance;
|
75 |
}
|
76 |
|
77 |
/**
|
78 |
+
* Get all products using the SDK.
|
79 |
*
|
80 |
+
* @return array Products available.
|
81 |
*/
|
82 |
+
public static function get_products() {
|
83 |
+
return self::$products;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
}
|
85 |
|
86 |
+
|
87 |
}
|
88 |
endif;
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php
CHANGED
@@ -22,7 +22,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
|
|
22 |
/**
|
23 |
* @var string $logging_url Url where to send the logs
|
24 |
*/
|
25 |
-
private $logging_url = 'http://
|
26 |
|
27 |
/**
|
28 |
* @var ThemeIsle_SDK_Product $product Themeisle Product.
|
@@ -34,6 +34,21 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
|
|
34 |
*/
|
35 |
private $product_cron;
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
/**
|
38 |
* ThemeIsle_SDK_Logger constructor.
|
39 |
*
|
@@ -44,6 +59,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
|
|
44 |
$this->product = $product_object;
|
45 |
$this->product_cron = $product_object->get_key() . '_log_activity';
|
46 |
}
|
|
|
47 |
}
|
48 |
|
49 |
|
@@ -61,19 +77,134 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
|
|
61 |
* Send the statistics to the api endpoint
|
62 |
*/
|
63 |
public function send_log() {
|
64 |
-
wp_remote_post(
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
'
|
70 |
-
|
71 |
-
|
72 |
-
'
|
73 |
-
|
74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
),
|
76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
}
|
78 |
|
79 |
}
|
22 |
/**
|
23 |
* @var string $logging_url Url where to send the logs
|
24 |
*/
|
25 |
+
private $logging_url = 'http://log.themeisle.com/wp-json/v1/logs/';
|
26 |
|
27 |
/**
|
28 |
* @var ThemeIsle_SDK_Product $product Themeisle Product.
|
34 |
*/
|
35 |
private $product_cron;
|
36 |
|
37 |
+
/**
|
38 |
+
* @var string $heading The heading of the modal
|
39 |
+
*/
|
40 |
+
private $heading = 'Do you enjoy {product}? Become a contributor by opting in to our anonymous data tracking. We guarantee no sensitive data is collected.';
|
41 |
+
|
42 |
+
/**
|
43 |
+
* @var string $button_submit The text of the submit button
|
44 |
+
*/
|
45 |
+
private $button_submit = 'Sure, I would love to help.';
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @var string $button_cancel The text of the cancel button
|
49 |
+
*/
|
50 |
+
private $button_cancel = 'No, thanks.';
|
51 |
+
|
52 |
/**
|
53 |
* ThemeIsle_SDK_Logger constructor.
|
54 |
*
|
59 |
$this->product = $product_object;
|
60 |
$this->product_cron = $product_object->get_key() . '_log_activity';
|
61 |
}
|
62 |
+
add_action( 'wp_ajax_' . $this->product->get_key() . __CLASS__, array( $this, 'dismiss' ) );
|
63 |
}
|
64 |
|
65 |
|
77 |
* Send the statistics to the api endpoint
|
78 |
*/
|
79 |
public function send_log() {
|
80 |
+
wp_remote_post(
|
81 |
+
$this->logging_url, array(
|
82 |
+
'method' => 'POST',
|
83 |
+
'timeout' => 3,
|
84 |
+
'redirection' => 5,
|
85 |
+
'headers' => array(
|
86 |
+
'X-ThemeIsle-Event' => 'log_site',
|
87 |
+
),
|
88 |
+
'body' => array(
|
89 |
+
'site' => get_site_url(),
|
90 |
+
'slug' => $this->product->get_slug(),
|
91 |
+
'version' => $this->product->get_version(),
|
92 |
+
'data' => apply_filters( $this->product->get_key() . '_logger_data', array() ),
|
93 |
+
),
|
94 |
+
)
|
95 |
+
);
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Dismiss the notification
|
100 |
+
*/
|
101 |
+
function dismiss() {
|
102 |
+
check_ajax_referer( (string) __CLASS__, 'nonce' );
|
103 |
+
|
104 |
+
$flag = intval( $_POST['enable'] ) === 1;
|
105 |
+
update_option( $this->product->logger_option, ( $flag ? 'yes' : 'no' ) );
|
106 |
+
|
107 |
+
if ( true === $flag ) {
|
108 |
+
$this->enable();
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Shows the notification
|
114 |
+
*/
|
115 |
+
function show_notification() {
|
116 |
+
$show = $this->product->is_logger_active();
|
117 |
+
$checked = get_option( $this->product->logger_option, '' );
|
118 |
+
if ( ! $show && $checked == '' ) {
|
119 |
+
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
|
120 |
+
|
121 |
+
return true;
|
122 |
+
}
|
123 |
+
|
124 |
+
return false;
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Shows the admin notice
|
129 |
+
*/
|
130 |
+
function admin_notices() {
|
131 |
+
$id = $this->product->get_key() . '_logger';
|
132 |
+
|
133 |
+
$this->add_media( $this->product->get_key() );
|
134 |
+
|
135 |
+
echo '<div class="notice notice-success is-dismissible " id="' . $this->product->get_key() . '-logger-notification" ><div id="' . $id . '" class="themeisle-logger-box">' . $this->get_html( $this->product->get_key() ) . '</div></div>';
|
136 |
+
}
|
137 |
+
|
138 |
+
/**
|
139 |
+
* Generates the HTML
|
140 |
+
*
|
141 |
+
* @param string $key The product key.
|
142 |
+
*/
|
143 |
+
function get_html( $key ) {
|
144 |
+
$heading = apply_filters( $this->product->get_key() . '_logger_heading', $this->heading );
|
145 |
+
$heading = str_replace(
|
146 |
+
array( '{product}' ), array(
|
147 |
+
trim( str_replace( 'Lite', '', $this->product->get_name() ) ),
|
148 |
),
|
149 |
+
$heading
|
150 |
+
);
|
151 |
+
$button_submit = apply_filters( $this->product->get_key() . '_logger_button_submit', $this->button_submit );
|
152 |
+
$button_cancel = apply_filters( $this->product->get_key() . '_logger_button_cancel', $this->button_cancel );
|
153 |
+
|
154 |
+
return '<div >'
|
155 |
+
. '<p>' . $heading . '</p>'
|
156 |
+
. '<div class="actions">'
|
157 |
+
. get_submit_button(
|
158 |
+
$button_submit, 'primary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-yes', false, array(
|
159 |
+
'data-ti-log-enable' => 1,
|
160 |
+
)
|
161 |
+
)
|
162 |
+
. get_submit_button(
|
163 |
+
$button_cancel, 'secondary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-no', false, array(
|
164 |
+
'data-ti-log-enable' => 0,
|
165 |
+
)
|
166 |
+
)
|
167 |
+
. '</div></div>';
|
168 |
+
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
* Loads the js
|
172 |
+
*
|
173 |
+
* @param string $key The product key.
|
174 |
+
*/
|
175 |
+
function add_media( $key ) {
|
176 |
+
?>
|
177 |
+
<style type="text/css">
|
178 |
+
#<?php echo $key; ?>-logger-notification {
|
179 |
+
padding-bottom: 5px;
|
180 |
+
}
|
181 |
+
|
182 |
+
#<?php echo $key; ?>-logger-notification .button {
|
183 |
+
margin-left: 5px;
|
184 |
+
}
|
185 |
+
</style>
|
186 |
+
<script type="text/javascript" id="<?php echo $key; ?>ti-logger-js">
|
187 |
+
(function ($) {
|
188 |
+
$(document).ready(function () {
|
189 |
+
$('.<?php echo $key; ?>-ti-logger').on('click', function (e) {
|
190 |
+
|
191 |
+
$.ajax({
|
192 |
+
url: ajaxurl,
|
193 |
+
method: "post",
|
194 |
+
data: {
|
195 |
+
'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
|
196 |
+
'action': '<?php echo $this->product->get_key() . __CLASS__; ?>',
|
197 |
+
'enable': $(this).attr('data-ti-log-enable')
|
198 |
+
},
|
199 |
+
success: function () {
|
200 |
+
$('#<?php echo $key; ?>-logger-notification').hide();
|
201 |
+
}
|
202 |
+
});
|
203 |
+
});
|
204 |
+
});
|
205 |
+
})(jQuery);
|
206 |
+
</script>
|
207 |
+
<?php
|
208 |
}
|
209 |
|
210 |
}
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-notification-manager.php
ADDED
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The notification manager class for ThemeIsle SDK
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @subpackage Notification
|
7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
9 |
+
* @since 1.0.0
|
10 |
+
*/
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit;
|
14 |
+
}
|
15 |
+
if ( ! class_exists( 'ThemeIsle_SDK_Notification_Manager' ) ) :
|
16 |
+
/**
|
17 |
+
* Notification manager model for ThemeIsle SDK.
|
18 |
+
*/
|
19 |
+
class ThemeIsle_SDK_Notification_Manager {
|
20 |
+
/**
|
21 |
+
* Time between notifications.
|
22 |
+
*/
|
23 |
+
const NOTIFICATION_INTERVAL_HOURS = 100;
|
24 |
+
/**
|
25 |
+
* @var array Notifications for the current product.
|
26 |
+
*/
|
27 |
+
private $notifications = array();
|
28 |
+
/**
|
29 |
+
* @var ThemeIsle_SDK_Product Current product.
|
30 |
+
*/
|
31 |
+
private $product;
|
32 |
+
/**
|
33 |
+
* @var array ThemeIsle_SDK_Feedback Feedbacks available.
|
34 |
+
*/
|
35 |
+
private $callbacks = array();
|
36 |
+
|
37 |
+
/**
|
38 |
+
* ThemeIsle_SDK_Notification_Manager constructor.
|
39 |
+
*
|
40 |
+
* @param ThemeIsle_SDK_Product $product_object Product Object.
|
41 |
+
* @param array $callbacks the objects that will be called when a notification is due.
|
42 |
+
*/
|
43 |
+
public function __construct( $product_object, $callbacks ) {
|
44 |
+
$this->product = $product_object;
|
45 |
+
$this->callbacks = $callbacks;
|
46 |
+
$this->setup_hooks();
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Setup the notifications.
|
51 |
+
*/
|
52 |
+
function setup_notifications() {
|
53 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
54 |
+
return;
|
55 |
+
}
|
56 |
+
// Load the notifications only if we have it installed after the required interval.
|
57 |
+
if ( ( time() - $this->product->get_install_time() ) > self::NOTIFICATION_INTERVAL_HOURS * HOUR_IN_SECONDS ) {
|
58 |
+
if ( $this->product instanceof ThemeIsle_SDK_Product && $this->callbacks && is_array( $this->callbacks ) ) {
|
59 |
+
foreach ( $this->callbacks as $instance ) {
|
60 |
+
$this->notifications[ $this->product->get_key() . get_class( $instance ) ] = $instance;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
}
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Setup the internal hooks
|
68 |
+
*/
|
69 |
+
private function setup_hooks() {
|
70 |
+
add_action( 'admin_head', array( $this, 'show_notification' ) );
|
71 |
+
add_action( 'admin_init', array( $this, 'setup_notifications' ) );
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Shows the notification
|
76 |
+
*/
|
77 |
+
function show_notification() {
|
78 |
+
|
79 |
+
$hidden = get_option( 'themeisle_sdk_notification_hidden', array() );
|
80 |
+
$instances = $this->notifications;
|
81 |
+
if ( empty( $instances ) ) {
|
82 |
+
return;
|
83 |
+
}
|
84 |
+
|
85 |
+
// Get timestamp of last notification.
|
86 |
+
$old = 0;
|
87 |
+
if ( ! empty( $hidden ) ) {
|
88 |
+
$old = $hidden[ count( $hidden ) - 1 ]['time'];
|
89 |
+
}
|
90 |
+
// Check if the current one is expired.
|
91 |
+
if ( ( time() - $old ) > self::NOTIFICATION_INTERVAL_HOURS * HOUR_IN_SECONDS ) {
|
92 |
+
// Get hidden notifications key.
|
93 |
+
$hidden_ones = wp_list_pluck( $hidden, 'key' );
|
94 |
+
// Get the non-hidden notifications.
|
95 |
+
$available_notifications = array_diff( array_keys( $instances ), $hidden_ones );
|
96 |
+
if ( empty( $available_notifications ) ) {
|
97 |
+
return;
|
98 |
+
}
|
99 |
+
// Get the first notification available.
|
100 |
+
$new_one = reset( $available_notifications );
|
101 |
+
|
102 |
+
$instance = $instances[ $new_one ];
|
103 |
+
$hidden[] = array(
|
104 |
+
'time' => time(),
|
105 |
+
'key' => $new_one,
|
106 |
+
);
|
107 |
+
update_option( 'themeisle_sdk_notification_hidden', $hidden );
|
108 |
+
} else {
|
109 |
+
$key = $hidden[ count( $hidden ) - 1 ]['key'];
|
110 |
+
if ( ! isset( $this->notifications[ $key ] ) ) {
|
111 |
+
return;
|
112 |
+
} else {
|
113 |
+
$instance = $this->notifications[ $key ];
|
114 |
+
}
|
115 |
+
}
|
116 |
+
$instance->show_notification();
|
117 |
+
}
|
118 |
+
}
|
119 |
+
endif;
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-product.php
CHANGED
@@ -41,26 +41,55 @@ if ( ! class_exists( 'ThemeIsle_SDK_Product' ) ) :
|
|
41 |
* @var string $key The product ready key.
|
42 |
*/
|
43 |
private $key;
|
|
|
|
|
|
|
|
|
44 |
/**
|
45 |
* @var string $store_url The store url.
|
46 |
*/
|
47 |
private $store_url;
|
|
|
|
|
|
|
|
|
48 |
/**
|
49 |
* @var string $store_name The store name.
|
50 |
*/
|
51 |
private $store_name;
|
|
|
|
|
|
|
|
|
52 |
/**
|
53 |
* @var bool $requires_license Either user needs to activate it with license.
|
54 |
*/
|
55 |
private $requires_license;
|
56 |
/**
|
57 |
-
* @var bool $wordpress_available Either is available on
|
58 |
*/
|
59 |
private $wordpress_available;
|
60 |
/**
|
61 |
* @var string $version The product version.
|
62 |
*/
|
63 |
private $version;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
/**
|
66 |
* ThemeIsle_SDK_Product constructor.
|
@@ -75,27 +104,72 @@ if ( ! class_exists( 'ThemeIsle_SDK_Product' ) ) :
|
|
75 |
$this->setup_from_fileheaders();
|
76 |
}
|
77 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
/**
|
81 |
* Setup props from fileheaders.
|
82 |
*/
|
83 |
public function setup_from_fileheaders() {
|
84 |
-
$file_headers = array(
|
|
|
|
|
|
|
|
|
|
|
85 |
if ( $this->type == 'plugin' ) {
|
86 |
-
|
87 |
-
$file_headers =
|
|
|
88 |
}
|
89 |
if ( $this->type == 'theme' ) {
|
90 |
-
$file_headers
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
}
|
92 |
-
$this->name = $file_headers['Name'];
|
93 |
-
$this->store_name = $file_headers['AuthorName'];
|
94 |
-
$this->store_url = $file_headers['AuthorURI'];
|
95 |
$this->requires_license = ( $file_headers['Requires License'] == 'yes' ) ? true : false;
|
96 |
$this->wordpress_available = ( $file_headers['WordPress Available'] == 'yes' ) ? true : false;
|
|
|
97 |
$this->version = $file_headers['Version'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
|
|
|
99 |
}
|
100 |
|
101 |
/**
|
@@ -245,20 +319,82 @@ if ( ! class_exists( 'ThemeIsle_SDK_Product' ) ) :
|
|
245 |
return $this->file;
|
246 |
}
|
247 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
/**
|
249 |
* We log the user website and product version.
|
250 |
*
|
251 |
* @return bool Either we log the data or not.
|
252 |
*/
|
253 |
public function is_logger_active() {
|
254 |
-
// If is not available on
|
255 |
if ( ! $this->is_wordpress_available() ) {
|
256 |
return true;
|
257 |
} else {
|
258 |
-
|
259 |
-
|
260 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
}
|
|
|
|
|
262 |
}
|
263 |
|
264 |
}
|
41 |
* @var string $key The product ready key.
|
42 |
*/
|
43 |
private $key;
|
44 |
+
/**
|
45 |
+
* @var string $author_url The url of the author.
|
46 |
+
*/
|
47 |
+
private $author_url;
|
48 |
/**
|
49 |
* @var string $store_url The store url.
|
50 |
*/
|
51 |
private $store_url;
|
52 |
+
/**
|
53 |
+
* @var int $install The date of install.
|
54 |
+
*/
|
55 |
+
private $install;
|
56 |
/**
|
57 |
* @var string $store_name The store name.
|
58 |
*/
|
59 |
private $store_name;
|
60 |
+
/**
|
61 |
+
* @var array $allowed_authors The allowed authors.
|
62 |
+
*/
|
63 |
+
private $allowed_authors = array( 'proteusthemes.com', 'anarieldesign.com' );
|
64 |
/**
|
65 |
* @var bool $requires_license Either user needs to activate it with license.
|
66 |
*/
|
67 |
private $requires_license;
|
68 |
/**
|
69 |
+
* @var bool $wordpress_available Either is available on WordPress or not.
|
70 |
*/
|
71 |
private $wordpress_available;
|
72 |
/**
|
73 |
* @var string $version The product version.
|
74 |
*/
|
75 |
private $version;
|
76 |
+
/**
|
77 |
+
* @var string $logger_option Logger option key.
|
78 |
+
*/
|
79 |
+
public $logger_option;
|
80 |
+
/**
|
81 |
+
* @var string $pro_slug Pro slug, if available.
|
82 |
+
*/
|
83 |
+
public $pro_slug;
|
84 |
+
/**
|
85 |
+
* @var string $feedback_types All the feedback types the product supports
|
86 |
+
*/
|
87 |
+
private $feedback_types = array();
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @var string $widget_types All the widget types the product supports
|
91 |
+
*/
|
92 |
+
private $widget_types = array( 'dashboard_blog' );
|
93 |
|
94 |
/**
|
95 |
* ThemeIsle_SDK_Product constructor.
|
104 |
$this->setup_from_fileheaders();
|
105 |
}
|
106 |
}
|
107 |
+
$install = get_option( $this->get_key() . '_install', 0 );
|
108 |
+
if ( $install === 0 ) {
|
109 |
+
$install = time();
|
110 |
+
update_option( $this->get_key() . '_install', time() );
|
111 |
+
}
|
112 |
+
$this->install = $install;
|
113 |
+
|
114 |
+
$this->logger_option = $this->get_key() . '_logger_flag';
|
115 |
+
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
* Setup props from fileheaders.
|
120 |
*/
|
121 |
public function setup_from_fileheaders() {
|
122 |
+
$file_headers = array(
|
123 |
+
'Requires License' => 'Requires License',
|
124 |
+
'WordPress Available' => 'WordPress Available',
|
125 |
+
'Pro Slug' => 'Pro Slug',
|
126 |
+
'Version' => 'Version',
|
127 |
+
);
|
128 |
if ( $this->type == 'plugin' ) {
|
129 |
+
$file_headers['Name'] = 'Plugin Name';
|
130 |
+
$file_headers['AuthorName'] = 'Author';
|
131 |
+
$file_headers['AuthorURI'] = 'Author URI';
|
132 |
}
|
133 |
if ( $this->type == 'theme' ) {
|
134 |
+
$file_headers['Name'] = 'Theme Name';
|
135 |
+
$file_headers['AuthorName'] = 'Author';
|
136 |
+
$file_headers['AuthorURI'] = 'Author URI';
|
137 |
+
}
|
138 |
+
$file_headers = get_file_data( $this->basefile, $file_headers );
|
139 |
+
|
140 |
+
$this->name = $file_headers['Name'];
|
141 |
+
$this->store_name = $file_headers['AuthorName'];
|
142 |
+
$this->author_url = $file_headers['AuthorURI'];
|
143 |
+
$this->store_url = $file_headers['AuthorURI'];
|
144 |
+
if ( $this->is_external_author() ) {
|
145 |
+
$this->store_url = 'https://themeisle.com';
|
146 |
+
$this->store_name = 'ThemeIsle';
|
147 |
}
|
|
|
|
|
|
|
148 |
$this->requires_license = ( $file_headers['Requires License'] == 'yes' ) ? true : false;
|
149 |
$this->wordpress_available = ( $file_headers['WordPress Available'] == 'yes' ) ? true : false;
|
150 |
+
$this->pro_slug = ! empty( $file_headers['Pro Slug'] ) ? $file_headers['Pro Slug'] : '';
|
151 |
$this->version = $file_headers['Version'];
|
152 |
+
if ( $this->require_uninstall_feedback() ) {
|
153 |
+
$this->feedback_types[] = 'deactivate';
|
154 |
+
}
|
155 |
+
if ( $this->is_wordpress_available() ) {
|
156 |
+
$this->feedback_types[] = 'review';
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Check if the product is by external author or not.
|
162 |
+
*
|
163 |
+
* @return bool Either is external author or no.
|
164 |
+
*/
|
165 |
+
public function is_external_author() {
|
166 |
+
foreach ( $this->allowed_authors as $author ) {
|
167 |
+
if ( strpos( $this->author_url, $author ) !== false ) {
|
168 |
+
return true;
|
169 |
+
}
|
170 |
+
}
|
171 |
|
172 |
+
return false;
|
173 |
}
|
174 |
|
175 |
/**
|
319 |
return $this->file;
|
320 |
}
|
321 |
|
322 |
+
/**
|
323 |
+
* Returns feedback types
|
324 |
+
*
|
325 |
+
* @return array The feedback types.
|
326 |
+
*/
|
327 |
+
public function get_feedback_types() {
|
328 |
+
return apply_filters( $this->get_key() . '_feedback_types', $this->feedback_types );
|
329 |
+
}
|
330 |
+
|
331 |
+
/**
|
332 |
+
* Returns widget types
|
333 |
+
*
|
334 |
+
* @return array The widget types.
|
335 |
+
*/
|
336 |
+
public function get_widget_types() {
|
337 |
+
return apply_filters( $this->get_key() . '_widget_types', $this->widget_types );
|
338 |
+
}
|
339 |
+
|
340 |
/**
|
341 |
* We log the user website and product version.
|
342 |
*
|
343 |
* @return bool Either we log the data or not.
|
344 |
*/
|
345 |
public function is_logger_active() {
|
346 |
+
// If is not available on WordPress log this automatically.
|
347 |
if ( ! $this->is_wordpress_available() ) {
|
348 |
return true;
|
349 |
} else {
|
350 |
+
$pro_slug = $this->get_pro_slug();
|
351 |
+
if ( ! empty( $pro_slug ) ) {
|
352 |
+
|
353 |
+
$all_products = ThemeIsle_SDK_Loader::get_products();
|
354 |
+
if ( isset( $all_products[ $pro_slug ] ) ) {
|
355 |
+
return true;
|
356 |
+
}
|
357 |
+
}
|
358 |
+
|
359 |
+
return ( get_option( $this->get_key() . '_logger_flag', 'no' ) === 'yes' );
|
360 |
+
|
361 |
+
}
|
362 |
+
}
|
363 |
+
|
364 |
+
/**
|
365 |
+
* Returns the pro slug, if available.
|
366 |
+
*
|
367 |
+
* @return string The pro slug.
|
368 |
+
*/
|
369 |
+
public function get_pro_slug() {
|
370 |
+
return $this->pro_slug;
|
371 |
+
}
|
372 |
+
|
373 |
+
/**
|
374 |
+
* Return the install timestamp.
|
375 |
+
*
|
376 |
+
* @return int The install timestamp.
|
377 |
+
*/
|
378 |
+
public function get_install_time() {
|
379 |
+
return $this->install;
|
380 |
+
}
|
381 |
+
|
382 |
+
/**
|
383 |
+
* We require feedback on uninstall.
|
384 |
+
*
|
385 |
+
* @return bool Either we should require feedback on uninstall or not.
|
386 |
+
*/
|
387 |
+
public function require_uninstall_feedback() {
|
388 |
+
if ( $this->get_type() == 'theme' && ! $this->is_external_author() ) {
|
389 |
+
return ! get_transient( 'ti_sdk_pause_' . $this->get_key(), false );
|
390 |
+
}
|
391 |
+
|
392 |
+
if ( $this->get_type() == 'plugin' ) {
|
393 |
+
|
394 |
+
return true;
|
395 |
}
|
396 |
+
|
397 |
+
return false;
|
398 |
}
|
399 |
|
400 |
}
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widget-dashboard-blog.php
ADDED
@@ -0,0 +1,374 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The blog dashboard model class for ThemeIsle SDK
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @subpackage Widgets
|
7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
9 |
+
* @since 1.0.0
|
10 |
+
*/
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit;
|
14 |
+
}
|
15 |
+
if ( ! class_exists( 'ThemeIsle_SDK_Widget_Dashboard_Blog' ) ) :
|
16 |
+
/**
|
17 |
+
* Blog dashboard widget model for ThemeIsle SDK.
|
18 |
+
*/
|
19 |
+
class ThemeIsle_SDK_Widget_Dashboard_Blog extends ThemeIsle_SDK_Widget {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @var array instance The instances.
|
23 |
+
*/
|
24 |
+
protected $product;
|
25 |
+
/**
|
26 |
+
* @var array Feed items.
|
27 |
+
*/
|
28 |
+
private $items = array();
|
29 |
+
|
30 |
+
/**
|
31 |
+
* ThemeIsle_SDK_Widget_Dashboard_Blog constructor.
|
32 |
+
*
|
33 |
+
* @param ThemeIsle_SDK_Product $product_object The product object.
|
34 |
+
*/
|
35 |
+
public function __construct( $product_object ) {
|
36 |
+
$this->product = $product_object;
|
37 |
+
parent::__construct( $product_object );
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Registers the hooks
|
42 |
+
*/
|
43 |
+
public function setup_hooks_child() {
|
44 |
+
$this->setup_vars();
|
45 |
+
add_action( 'wp_dashboard_setup', array( &$this, 'add_widget' ) );
|
46 |
+
add_action( 'wp_network_dashboard_setup', array( &$this, 'add_widget' ) );
|
47 |
+
add_filter( 'themeisle_sdk_recommend_plugin_or_theme', array( &$this, 'recommend_plugin_or_theme' ) );
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Setup class variables
|
52 |
+
*/
|
53 |
+
function setup_vars() {
|
54 |
+
$this->dashboard_name = apply_filters( 'themeisle_sdk_dashboard_widget_name', 'WordPress Guides/Tutorials' );
|
55 |
+
$this->feeds = apply_filters(
|
56 |
+
'themeisle_sdk_dashboard_widget_feeds', array(
|
57 |
+
'https://themeisle.com/blog/feed',
|
58 |
+
)
|
59 |
+
);
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Add widget to the dashboard
|
64 |
+
*
|
65 |
+
* @return string|void
|
66 |
+
*/
|
67 |
+
function add_widget() {
|
68 |
+
global $wp_meta_boxes;
|
69 |
+
if ( isset( $wp_meta_boxes['dashboard']['normal']['core']['themeisle'] ) ) {
|
70 |
+
return;
|
71 |
+
}
|
72 |
+
wp_add_dashboard_widget(
|
73 |
+
'themeisle', $this->dashboard_name, array(
|
74 |
+
&$this,
|
75 |
+
'render_dashboard_widget',
|
76 |
+
)
|
77 |
+
);
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Setup feed items.
|
82 |
+
*/
|
83 |
+
private function setup_feeds() {
|
84 |
+
$items_normalized = array();
|
85 |
+
if ( false === ( $items_normalized = get_transient( 'themeisle_sdk_feed_items' ) ) ) {
|
86 |
+
// Load SimplePie Instance
|
87 |
+
$feed = fetch_feed( $this->feeds );
|
88 |
+
// TODO report error when is an error loading the feed
|
89 |
+
if ( is_wp_error( $feed ) ) {
|
90 |
+
return;
|
91 |
+
}
|
92 |
+
|
93 |
+
$items = $feed->get_items( 0, 5 );
|
94 |
+
foreach ( (array) $items as $item ) {
|
95 |
+
$items_normalized[] = array(
|
96 |
+
'title' => $item->get_title(),
|
97 |
+
'date' => $item->get_date( 'U' ),
|
98 |
+
'link' => $item->get_permalink(),
|
99 |
+
);
|
100 |
+
}
|
101 |
+
set_transient( 'themeisle_sdk_feed_items', $items_normalized, 48 * HOUR_IN_SECONDS );
|
102 |
+
}
|
103 |
+
$this->items = $items_normalized;
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Render widget content
|
108 |
+
*/
|
109 |
+
function render_dashboard_widget() {
|
110 |
+
$this->setup_feeds();
|
111 |
+
?>
|
112 |
+
<style type="text/css">
|
113 |
+
#themeisle ul {
|
114 |
+
margin-bottom: 0px;
|
115 |
+
}
|
116 |
+
|
117 |
+
#themeisle ul li.ti-dw-recommend-item {
|
118 |
+
|
119 |
+
padding-left: 7px;
|
120 |
+
border-top: 1px solid #eee;
|
121 |
+
|
122 |
+
margin-bottom: 0px;
|
123 |
+
padding-top: 6px;
|
124 |
+
}
|
125 |
+
|
126 |
+
#themeisle h2.hndle {
|
127 |
+
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAdCAYAAABWk2cPAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAALfSURBVEhL7VW/ayJBFL7/5ZqziBzIcSCHxUE4hAiCgnAQsBASOAikEAIeCAaCiJAyIBICQURYwoJoEUmxa6MWioWxURu30mq77b57s86acX+oOQhp8sFjdmbfzrfve2/efMI74IP0VTB0gz/th/8iNbQxOt0eOmoN6WgAn78cwJeoYcLf78KrSPVneU3isEQZoz0D3pt03jhDrDTERJXxWM3A5yAOIPmgce/t2IvUGFzjkDa+7C5RTx0gWbxG0v8bBXUG3fLReigk4rh55gtbsAfpGDfhVTS+VA19bYbH7BkqU/56AzNU7nrYpbI7qfbEcxfBkSOHJGO27Vk0htqEYoXvARdS+tsEJyAJY1GRkOxnGTdq2zuaRZOkJ1Wi1+h7ODlJB/l1kYRKZVyKhMwoSmUw5M4uWMhIcl9f1l1qB2m/aMkZQIE2d5BeDTGiSD0VfC4jZPmSKiO+LMJGuoRE1bkiOIW00CAdW3NuxzLmxhD1hyHmug7dbBRD9KdLc4dR6Zfgn0ffXN2EjVSMLIcOrWxuwiyyPhYGI7X0m/agqPeIib5+yit/LWILKYuUlrTa5kbMwjko7J0AXc1RLZwifRF58Us1YXMzYSMV5WQ5ZWsG5VnYaG1BxM7zKBRzOAkHac460gxK9sUnVBqbu9rhKCS9lRaq1/poCeUq7tL6uPnjSLeoBRo9/KXjslqP4Na1gbiQssiULK9gP+VVqPnFQMblnwi+WmTfIji5amLES1mn/mz9yCFVuddZdiFlIJlTK+JtH2/AaPMogzipzrZ+4yQ1qCL1JSaNDL6bf81y1aOb5R6Vhow6G1tPNK9Borl0R2NLRiEaxNEF9Wa3yrHBSarTbeHot7ySqVmYR4AucDYuaJyzkfptZ0e/FeGa03m3jOQPizCAo0QG9W2ktL5HgGt45JRgaBh1x9R1WHY0KCTnLZOW5Kw0miuZq01ITGa6Z18Db9I3xAfpm+IdSIF/du91gSA2+I8AAAAASUVORK5CYII=');
|
128 |
+
background-repeat: no-repeat;
|
129 |
+
background-position: 90% 50%;
|
130 |
+
background-size: 29px;
|
131 |
+
}
|
132 |
+
|
133 |
+
.ti-dw-feed-item {
|
134 |
+
display: flex;
|
135 |
+
align-items: center;
|
136 |
+
}
|
137 |
+
|
138 |
+
.ti-dw-feed-item a {
|
139 |
+
float: left;
|
140 |
+
width: 89.9%;
|
141 |
+
}
|
142 |
+
|
143 |
+
.ti-dw-feed-item .ti-dw-day-container {
|
144 |
+
width: 100%;
|
145 |
+
letter-spacing: 3px;
|
146 |
+
display: block;
|
147 |
+
}
|
148 |
+
|
149 |
+
.ti-dw-feed-item .ti-dw-month-container {
|
150 |
+
|
151 |
+
width: 100%;
|
152 |
+
display: block;
|
153 |
+
font-weight: 600;
|
154 |
+
padding: 0px;
|
155 |
+
margin-top: -6px;
|
156 |
+
text-transform: uppercase;
|
157 |
+
font-size: 10px;
|
158 |
+
letter-spacing: 1px;
|
159 |
+
}
|
160 |
+
|
161 |
+
.ti-dw-feed-item .ti-dw-date-container {
|
162 |
+
float: left;
|
163 |
+
min-height: 30px;
|
164 |
+
margin-right: 0.1%;
|
165 |
+
width: 10%;
|
166 |
+
text-align: center;
|
167 |
+
}
|
168 |
+
|
169 |
+
.ti-dw-recommend-item span {
|
170 |
+
color: #72777c;
|
171 |
+
}
|
172 |
+
|
173 |
+
</style>
|
174 |
+
<ul>
|
175 |
+
<?php
|
176 |
+
foreach ( $this->items as $item ) {
|
177 |
+
?>
|
178 |
+
<li class="ti-dw-feed-item"><span class="ti-dw-date-container"><span
|
179 |
+
class="ti-dw-day-container"><?php echo date( 'd', $item['date'] ); ?></span> <span
|
180 |
+
class="ti-dw-month-container"><?php echo substr( date( 'M', $item['date'] ), 0, 3 ); ?></span></span><a
|
181 |
+
href="
|
182 |
+
<?php
|
183 |
+
echo add_query_arg(
|
184 |
+
array(
|
185 |
+
'utm_campaign' => 'feed',
|
186 |
+
'utm_medium' => 'dashboard_widget',
|
187 |
+
), $item['link']
|
188 |
+
);
|
189 |
+
?>
|
190 |
+
" target="_blank"><?php echo $item['title']; ?></a>
|
191 |
+
<div class="clear"></div>
|
192 |
+
</li>
|
193 |
+
<?php
|
194 |
+
}
|
195 |
+
|
196 |
+
$recommend = apply_filters( 'themeisle_sdk_recommend_plugin_or_theme', array() );
|
197 |
+
if ( is_array( $recommend ) && ! empty( $recommend ) ) {
|
198 |
+
|
199 |
+
$type = $recommend['type'];
|
200 |
+
if ( ( $type == 'theme' && current_user_can( 'install_themes' ) ) || ( $type == 'plugin' && current_user_can( 'install_plugins' ) ) ) {
|
201 |
+
add_thickbox();
|
202 |
+
$url = add_query_arg(
|
203 |
+
array(
|
204 |
+
'theme' => $recommend['slug'],
|
205 |
+
), network_admin_url( 'theme-install.php' )
|
206 |
+
);
|
207 |
+
|
208 |
+
if ( 'plugin' === $type ) {
|
209 |
+
|
210 |
+
$url = add_query_arg(
|
211 |
+
array(
|
212 |
+
'tab' => 'plugin-information',
|
213 |
+
'plugin' => $recommend['slug'],
|
214 |
+
), network_admin_url( 'plugin-install.php' )
|
215 |
+
);
|
216 |
+
}
|
217 |
+
?>
|
218 |
+
<li class="ti-dw-recommend-item ">
|
219 |
+
<span class="ti-dw-recommend"><?php echo apply_filters( 'themeisle_sdk_dashboard_popular_label', sprintf( 'Popular %s', ucwords( $type ) ) ); ?>
|
220 |
+
: </span>
|
221 |
+
<?php
|
222 |
+
echo trim(
|
223 |
+
str_replace(
|
224 |
+
array(
|
225 |
+
'lite',
|
226 |
+
'Lite',
|
227 |
+
), '', $recommend['name']
|
228 |
+
)
|
229 |
+
);
|
230 |
+
?>
|
231 |
+
(<a class="thickbox open-plugin-details-modal"
|
232 |
+
href="<?php echo $url . '&TB_iframe=true&width=600&height=500'; ?>"><?php echo apply_filters( 'themeisle_sdk_dashboard_install_label', 'Install' ); ?></a>)
|
233 |
+
</li>
|
234 |
+
|
235 |
+
<?php
|
236 |
+
}
|
237 |
+
}
|
238 |
+
?>
|
239 |
+
</ul>
|
240 |
+
|
241 |
+
<?php
|
242 |
+
|
243 |
+
}
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Either the current product is installed or not.
|
247 |
+
*
|
248 |
+
* @param array $val The current recommended product.
|
249 |
+
*
|
250 |
+
* @return bool Either we should exclude the plugin or not.
|
251 |
+
*/
|
252 |
+
public function remove_current_products( $val ) {
|
253 |
+
if ( $val['type'] === 'theme' ) {
|
254 |
+
$exist = wp_get_theme( $val['slug'] );
|
255 |
+
|
256 |
+
return ! $exist->exists();
|
257 |
+
} else {
|
258 |
+
$all_plugins = array_keys( get_plugins() );
|
259 |
+
foreach ( $all_plugins as $slug ) {
|
260 |
+
if ( strpos( $slug, $val['slug'] ) !== false ) {
|
261 |
+
return false;
|
262 |
+
}
|
263 |
+
}
|
264 |
+
|
265 |
+
return true;
|
266 |
+
}
|
267 |
+
}
|
268 |
+
|
269 |
+
/**
|
270 |
+
* Fetch themes from wporg api.
|
271 |
+
*
|
272 |
+
* @param string $author The author name.
|
273 |
+
*
|
274 |
+
* @return array The list of themes.
|
275 |
+
*/
|
276 |
+
function get_themes_from_wporg( $author ) {
|
277 |
+
$products = wp_remote_get(
|
278 |
+
'https://api.wordpress.org/themes/info/1.1/?action=query_themes&request[author]=' . $author . '&request[per_page]=30&request[fields][active_installs]=true'
|
279 |
+
);
|
280 |
+
$products = json_decode( wp_remote_retrieve_body( $products ) );
|
281 |
+
if ( is_object( $products ) ) {
|
282 |
+
$products = isset( $products->themes ) ? $products->themes : array();
|
283 |
+
} else {
|
284 |
+
$products = array();
|
285 |
+
}
|
286 |
+
|
287 |
+
return $products;
|
288 |
+
}
|
289 |
+
|
290 |
+
/**
|
291 |
+
* Fetch plugin from wporg api.
|
292 |
+
*
|
293 |
+
* @param string $author The author slug.
|
294 |
+
*
|
295 |
+
* @return array The list of plugins for the selected author.
|
296 |
+
*/
|
297 |
+
function get_plugins_from_wporg( $author ) {
|
298 |
+
$products = wp_remote_get(
|
299 |
+
'https://api.wordpress.org/plugins/info/1.1/?action=query_plugins&request[author]=' . $author . '&request[author]=codeinwp&request[per_page]=20&request[fields][active_installs]=true'
|
300 |
+
);
|
301 |
+
$products = json_decode( wp_remote_retrieve_body( $products ) );
|
302 |
+
if ( is_object( $products ) ) {
|
303 |
+
$products = isset( $products->plugins ) ? $products->plugins : array();
|
304 |
+
} else {
|
305 |
+
$products = array();
|
306 |
+
}
|
307 |
+
|
308 |
+
return $products;
|
309 |
+
}
|
310 |
+
|
311 |
+
/**
|
312 |
+
* Fetch products from the recomended section.
|
313 |
+
*
|
314 |
+
* @return array|mixed The list of products to use in recomended section.
|
315 |
+
*/
|
316 |
+
function get_product_from_api() {
|
317 |
+
if ( false === ( $products = get_transient( 'themeisle_sdk_products' ) ) ) {
|
318 |
+
$products = array();
|
319 |
+
$themeisle_themes = $this->get_themes_from_wporg( 'themeisle' );
|
320 |
+
$codeinwp_themes = $this->get_themes_from_wporg( 'codeinwp' );
|
321 |
+
|
322 |
+
$themeisle_plugins = $this->get_plugins_from_wporg( 'themeisle' );
|
323 |
+
$codeinwp_plugins = $this->get_plugins_from_wporg( 'codeinwp' );
|
324 |
+
|
325 |
+
$all_themes = array_merge( $themeisle_themes, $codeinwp_themes );
|
326 |
+
foreach ( $all_themes as $theme ) {
|
327 |
+
if ( $theme->active_installs < 4999 ) {
|
328 |
+
continue;
|
329 |
+
}
|
330 |
+
$products[] = array(
|
331 |
+
'name' => $theme->name,
|
332 |
+
'type' => 'theme',
|
333 |
+
'slug' => $theme->slug,
|
334 |
+
'installs' => $theme->active_installs,
|
335 |
+
);
|
336 |
+
}
|
337 |
+
$all_plugins = array_merge( $themeisle_plugins, $codeinwp_plugins );
|
338 |
+
foreach ( $all_plugins as $plugin ) {
|
339 |
+
if ( $plugin->active_installs < 5999 ) {
|
340 |
+
continue;
|
341 |
+
}
|
342 |
+
$products[] = array(
|
343 |
+
'name' => $plugin->name,
|
344 |
+
'type' => 'plugin',
|
345 |
+
'slug' => $plugin->slug,
|
346 |
+
'installs' => $plugin->active_installs,
|
347 |
+
);
|
348 |
+
}
|
349 |
+
set_transient( 'themeisle_sdk_products', $products, 6 * HOUR_IN_SECONDS );
|
350 |
+
}
|
351 |
+
|
352 |
+
return $products;
|
353 |
+
}
|
354 |
+
|
355 |
+
/**
|
356 |
+
* Contact the API and fetch the recommended plugins/themes
|
357 |
+
*/
|
358 |
+
function recommend_plugin_or_theme() {
|
359 |
+
$products = $this->get_product_from_api();
|
360 |
+
if ( ! is_array( $products ) ) {
|
361 |
+
$products = array();
|
362 |
+
}
|
363 |
+
$products = array_filter( $products, array( $this, 'remove_current_products' ) );
|
364 |
+
$products = array_merge( $products );
|
365 |
+
if ( count( $products ) > 1 ) {
|
366 |
+
shuffle( $products );
|
367 |
+
$products = array_slice( $products, 0, 1 );
|
368 |
+
}
|
369 |
+
$to_recommend = isset( $products[0] ) ? $products[0] : $products;
|
370 |
+
|
371 |
+
return $to_recommend;
|
372 |
+
}
|
373 |
+
}
|
374 |
+
endif;
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widget.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The widget model class for ThemeIsle SDK
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @subpackage Widgets
|
7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
9 |
+
* @since 1.0.0
|
10 |
+
*/
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit;
|
14 |
+
}
|
15 |
+
if ( ! class_exists( 'ThemeIsle_SDK_Widget' ) ) :
|
16 |
+
/**
|
17 |
+
* Widget model for ThemeIsle SDK.
|
18 |
+
*/
|
19 |
+
abstract class ThemeIsle_SDK_Widget {
|
20 |
+
/**
|
21 |
+
* @var ThemeIsle_SDK_Product $product Themeisle Product.
|
22 |
+
*/
|
23 |
+
protected $product;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* ThemeIsle_SDK_Widget constructor.
|
27 |
+
*
|
28 |
+
* @param ThemeIsle_SDK_Product $product_object Product Object.
|
29 |
+
*/
|
30 |
+
public function __construct( $product_object ) {
|
31 |
+
if ( $product_object instanceof ThemeIsle_SDK_Product ) {
|
32 |
+
$this->product = $product_object;
|
33 |
+
}
|
34 |
+
$this->setup_hooks();
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Registers the hooks and then delegates to the child
|
39 |
+
*/
|
40 |
+
public function setup_hooks() {
|
41 |
+
$this->setup_hooks_child();
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Abstract function for delegating to the child
|
46 |
+
*/
|
47 |
+
protected abstract function setup_hooks_child();
|
48 |
+
|
49 |
+
}
|
50 |
+
endif;
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widgets-factory.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The widgets factory class for ThemeIsle SDK
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @subpackage Widgets
|
7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
9 |
+
* @since 1.0.0
|
10 |
+
*/
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit;
|
14 |
+
}
|
15 |
+
if ( ! class_exists( 'ThemeIsle_SDK_Widgets_Factory' ) ) :
|
16 |
+
/**
|
17 |
+
* Widgets factory model for ThemeIsle SDK.
|
18 |
+
*/
|
19 |
+
class ThemeIsle_SDK_Widgets_Factory {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* ThemeIsle_SDK_Widgets_Factory constructor.
|
23 |
+
*
|
24 |
+
* @param ThemeIsle_SDK_Product $product_object Product Object.
|
25 |
+
* @param array $widgets the widgets.
|
26 |
+
*/
|
27 |
+
public function __construct( $product_object, $widgets ) {
|
28 |
+
if ( $product_object instanceof ThemeIsle_SDK_Product && $widgets && is_array( $widgets ) ) {
|
29 |
+
foreach ( $widgets as $widget ) {
|
30 |
+
$class = 'ThemeIsle_SDK_Widget_' . str_replace( ' ', '_', ucwords( str_replace( '_', ' ', $widget ) ) );
|
31 |
+
$instance = new $class( $product_object );
|
32 |
+
$instance->setup_hooks();
|
33 |
+
}
|
34 |
+
}
|
35 |
+
}
|
36 |
+
}
|
37 |
+
endif;
|
vendor/codeinwp/themeisle-sdk/composer.json
CHANGED
@@ -14,11 +14,8 @@
|
|
14 |
}
|
15 |
],
|
16 |
"autoload": {
|
17 |
-
"
|
18 |
-
"
|
19 |
-
"class-themeisle-sdk-product.php",
|
20 |
-
"class-themeisle-sdk-logger.php",
|
21 |
-
"class-themeisle-sdk-licenser.php"
|
22 |
]
|
23 |
},
|
24 |
"support": {
|
14 |
}
|
15 |
],
|
16 |
"autoload": {
|
17 |
+
"files": [
|
18 |
+
"load.php"
|
|
|
|
|
|
|
19 |
]
|
20 |
},
|
21 |
"support": {
|
vendor/codeinwp/themeisle-sdk/load.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loader for the ThemeIsleSDK
|
4 |
+
*
|
5 |
+
* Logic for loading always the latest SDK from the installed themes/plugins.
|
6 |
+
*
|
7 |
+
* @package ThemeIsleSDK
|
8 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
9 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
10 |
+
* @since 1.1.0
|
11 |
+
*/
|
12 |
+
|
13 |
+
// Current SDK version and path.
|
14 |
+
$themeisle_sdk_version = '1.5.6';
|
15 |
+
$themeisle_sdk_path = dirname( __FILE__ );
|
16 |
+
|
17 |
+
global $themeisle_sdk_max_version;
|
18 |
+
global $themeisle_sdk_max_path;
|
19 |
+
|
20 |
+
if ( version_compare( $themeisle_sdk_version, $themeisle_sdk_max_version ) >= 0 ) {
|
21 |
+
$themeisle_sdk_max_version = $themeisle_sdk_version;
|
22 |
+
$themeisle_sdk_max_path = $themeisle_sdk_path;
|
23 |
+
}
|
24 |
+
|
25 |
+
// load the latest sdk version from the active Themeisle products
|
26 |
+
if ( ! function_exists( 'themeisle_sdk_load_latest' ) ) :
|
27 |
+
/**
|
28 |
+
* Always load the latest sdk version.
|
29 |
+
*/
|
30 |
+
function themeisle_sdk_load_latest() {
|
31 |
+
global $themeisle_sdk_max_path;
|
32 |
+
require_once $themeisle_sdk_max_path . '/start.php';
|
33 |
+
}
|
34 |
+
endif;
|
35 |
+
add_action( 'init', 'themeisle_sdk_load_latest' );
|
vendor/codeinwp/themeisle-sdk/phpcs.xml
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<ruleset name="Themeisle">
|
3 |
-
<description>Themeisle rules for PHP_CodeSnifferr</description>
|
4 |
-
|
5 |
-
<file>.</file>
|
6 |
-
|
7 |
-
<exclude-pattern>node_modules/*</exclude-pattern>
|
8 |
-
<exclude-pattern>vendor/*</exclude-pattern>
|
9 |
-
<exclude-pattern>lib/*</exclude-pattern>
|
10 |
-
<exclude-pattern>old/*</exclude-pattern>
|
11 |
-
<exclude-pattern>*.min.js</exclude-pattern>
|
12 |
-
<exclude-pattern>*.min.css</exclude-pattern>
|
13 |
-
<rule ref="WordPress-Core">
|
14 |
-
<exclude name="Squiz.Commenting.FileComment.SpacingAfterComment"/>
|
15 |
-
<exclude name="Squiz.Commenting.FunctionComment.MissingParamTag"/>
|
16 |
-
<exclude name="Squiz.Commenting.InlineComment.InvalidEndChar"/>
|
17 |
-
<exclude name="Generic.Commenting.DocComment.MissingShort"/>
|
18 |
-
<exclude name="Squiz.Commenting.InlineComment.NotCapital"/>
|
19 |
-
<exclude name="Squiz.Commenting.LongConditionClosingComment.Missing"/>
|
20 |
-
<exclude name="Squiz.Commenting.LongConditionClosingComment.Invalid"/>
|
21 |
-
<exclude name="WordPress.NamingConvention.ValidVariableName.StringNotSnakeCase"/>
|
22 |
-
<exclude name="WordPress.NamingConventions.ValidVariableName.NotSnakeCase"/>
|
23 |
-
<exclude name="WordPress.PHP.YodaConditions.NotYoda"/>
|
24 |
-
<exclude name="Squiz.PHP.DisallowMultipleAssignments" />
|
25 |
-
</rule>
|
26 |
-
<rule ref="WordPress-Docs">
|
27 |
-
|
28 |
-
</rule>
|
29 |
-
|
30 |
-
<rule ref="Squiz.Commenting.FunctionComment.ScalarTypeHintMissing">
|
31 |
-
<severity>0</severity>
|
32 |
-
</rule>
|
33 |
-
|
34 |
-
</ruleset>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/codeinwp/themeisle-sdk/start.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* File responsible for sdk files loading.
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
7 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
8 |
+
* @since 1.1.0
|
9 |
+
*/
|
10 |
+
$products = apply_filters( 'themeisle_sdk_products', array() );
|
11 |
+
$path = dirname( __FILE__ );
|
12 |
+
$files_to_load = array(
|
13 |
+
'class-themeisle-sdk-loader.php',
|
14 |
+
'class-themeisle-sdk-product.php',
|
15 |
+
'class-themeisle-sdk-logger.php',
|
16 |
+
'class-themeisle-sdk-licenser.php',
|
17 |
+
'class-themeisle-sdk-feedback-factory.php',
|
18 |
+
'class-themeisle-sdk-feedback.php',
|
19 |
+
'class-themeisle-sdk-feedback-deactivate.php',
|
20 |
+
'class-themeisle-sdk-feedback-review.php',
|
21 |
+
'class-themeisle-sdk-notification-manager.php',
|
22 |
+
'class-themeisle-sdk-widget.php',
|
23 |
+
'class-themeisle-sdk-widget-dashboard-blog.php',
|
24 |
+
'class-themeisle-sdk-widgets-factory.php',
|
25 |
+
);
|
26 |
+
|
27 |
+
foreach ( $files_to_load as $file ) {
|
28 |
+
$file_path = $path . '/' . $file;
|
29 |
+
if ( is_readable( $file_path ) ) {
|
30 |
+
require_once $file_path;
|
31 |
+
}
|
32 |
+
}
|
33 |
+
foreach ( $products as $product ) {
|
34 |
+
ThemeIsle_SDK_Loader::init_product( $product );
|
35 |
+
}
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -6,8 +6,4 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'ThemeIsle_SDK_Licenser' => $vendorDir . '/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php',
|
10 |
-
'ThemeIsle_SDK_Loader' => $vendorDir . '/codeinwp/themeisle-sdk/class-themeisle-sdk-loader.php',
|
11 |
-
'ThemeIsle_SDK_Logger' => $vendorDir . '/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php',
|
12 |
-
'ThemeIsle_SDK_Product' => $vendorDir . '/codeinwp/themeisle-sdk/class-themeisle-sdk-product.php',
|
13 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
|
|
|
|
|
|
9 |
);
|
vendor/composer/autoload_files.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// autoload_files.php @generated by Composer
|
4 |
+
|
5 |
+
$vendorDir = dirname(dirname(__FILE__));
|
6 |
+
$baseDir = dirname($vendorDir);
|
7 |
+
|
8 |
+
return array(
|
9 |
+
'957c51f8f334b5ea3be310bfb8b3492c' => $vendorDir . '/codeinwp/themeisle-sdk/load.php',
|
10 |
+
);
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitd9bb93e455577b6aba3346f179c8a570
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
foreach ($map as $namespace => $path) {
|
@@ -40,6 +40,20 @@ class ComposerAutoloaderInitd9bb93e455577b6aba3346f179c8a570
|
|
40 |
|
41 |
$loader->register(true);
|
42 |
|
|
|
|
|
|
|
|
|
|
|
43 |
return $loader;
|
44 |
}
|
45 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit10fe3fd2e8ddae0802151df1d2b0e7cf
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit10fe3fd2e8ddae0802151df1d2b0e7cf', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit10fe3fd2e8ddae0802151df1d2b0e7cf', 'loadClassLoader'));
|
25 |
|
26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
foreach ($map as $namespace => $path) {
|
40 |
|
41 |
$loader->register(true);
|
42 |
|
43 |
+
$includeFiles = require __DIR__ . '/autoload_files.php';
|
44 |
+
foreach ($includeFiles as $fileIdentifier => $file) {
|
45 |
+
composerRequire10fe3fd2e8ddae0802151df1d2b0e7cf($fileIdentifier, $file);
|
46 |
+
}
|
47 |
+
|
48 |
return $loader;
|
49 |
}
|
50 |
}
|
51 |
+
|
52 |
+
function composerRequire10fe3fd2e8ddae0802151df1d2b0e7cf($fileIdentifier, $file)
|
53 |
+
{
|
54 |
+
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
55 |
+
require $file;
|
56 |
+
|
57 |
+
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
58 |
+
}
|
59 |
+
}
|
vendor/composer/autoload_real_52.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
-
class
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInita068fc18cd43301bd6e505f325f8155c {
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
@@ -39,6 +39,8 @@ class ComposerAutoloaderInita068fc18cd43301bd6e505f325f8155c {
|
|
39 |
|
40 |
$loader->register(true);
|
41 |
|
|
|
|
|
42 |
return $loader;
|
43 |
}
|
44 |
}
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
+
class ComposerAutoloaderInit0fc127e51dc28fab98c5e4f3a39d42f1 {
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit0fc127e51dc28fab98c5e4f3a39d42f1', 'loadClassLoader'), true /*, true */);
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit0fc127e51dc28fab98c5e4f3a39d42f1', 'loadClassLoader'));
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
39 |
|
40 |
$loader->register(true);
|
41 |
|
42 |
+
require $vendorDir . '/codeinwp/themeisle-sdk/load.php';
|
43 |
+
|
44 |
return $loader;
|
45 |
}
|
46 |
}
|
vendor/composer/installed.json
CHANGED
@@ -38,24 +38,21 @@
|
|
38 |
"version_normalized": "9999999-dev",
|
39 |
"source": {
|
40 |
"type": "git",
|
41 |
-
"url": "
|
42 |
-
"reference": "
|
43 |
},
|
44 |
"dist": {
|
45 |
"type": "zip",
|
46 |
-
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/
|
47 |
-
"reference": "
|
48 |
"shasum": ""
|
49 |
},
|
50 |
-
"time": "2017-
|
51 |
"type": "library",
|
52 |
-
"installation-source": "
|
53 |
"autoload": {
|
54 |
-
"
|
55 |
-
"
|
56 |
-
"class-themeisle-sdk-product.php",
|
57 |
-
"class-themeisle-sdk-logger.php",
|
58 |
-
"class-themeisle-sdk-licenser.php"
|
59 |
]
|
60 |
},
|
61 |
"license": [
|
@@ -74,8 +71,7 @@
|
|
74 |
"wordpress"
|
75 |
],
|
76 |
"support": {
|
77 |
-
"issues": "https://github.com/Codeinwp/themeisle-sdk/issues"
|
78 |
-
"source": "https://github.com/Codeinwp/themeisle-sdk/tree/master"
|
79 |
}
|
80 |
}
|
81 |
]
|
38 |
"version_normalized": "9999999-dev",
|
39 |
"source": {
|
40 |
"type": "git",
|
41 |
+
"url": "git@github.com:Codeinwp/themeisle-sdk.git",
|
42 |
+
"reference": "1fb829fd268e739864b6f1822239c1112d80853f"
|
43 |
},
|
44 |
"dist": {
|
45 |
"type": "zip",
|
46 |
+
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/1fb829fd268e739864b6f1822239c1112d80853f",
|
47 |
+
"reference": "1fb829fd268e739864b6f1822239c1112d80853f",
|
48 |
"shasum": ""
|
49 |
},
|
50 |
+
"time": "2017-08-22 16:09:34",
|
51 |
"type": "library",
|
52 |
+
"installation-source": "dist",
|
53 |
"autoload": {
|
54 |
+
"files": [
|
55 |
+
"load.php"
|
|
|
|
|
|
|
56 |
]
|
57 |
},
|
58 |
"license": [
|
71 |
"wordpress"
|
72 |
],
|
73 |
"support": {
|
74 |
+
"issues": "https://github.com/Codeinwp/themeisle-sdk/issues"
|
|
|
75 |
}
|
76 |
}
|
77 |
]
|