Version Description
- Added: Compatibility with WooCommerce 2.5 RC
- Updated: Change ajax call fron admin-ajax to wc-ajax
- Updated: Plugin template compare.php
- Updated: Plugin Core
Download this release
Release Info
Developer | yithemes |
Plugin | YITH WooCommerce Compare |
Version | 2.0.6 |
Comparing to | |
See all releases |
Code changes from version 2.0.5 to 2.0.6
- README.txt +14 -5
- assets/js/woocompare.js +4 -7
- includes/class.yith-woocompare-frontend.php +27 -27
- init.php +3 -3
- plugin-fw/assets/css/metaboxes.css +21 -0
- plugin-fw/assets/css/overcast/jquery-ui-1.8.9.custom.css +308 -52
- plugin-fw/assets/css/yit-plugin-panel.css +4 -0
- plugin-fw/assets/js/yit-plugin-panel.js +10 -0
- plugin-fw/assets/js/yit-plugin-panel.min.js +10 -1
- plugin-fw/init.php +13 -15
- plugin-fw/languages/yith-plugin-fw-it_IT.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-it_IT.po +223 -133
- plugin-fw/languages/yith-plugin-fw.pot +148 -108
- plugin-fw/lib/yit-plugin-panel-wc.php +15 -5
- plugin-fw/lib/yit-plugin-panel.php +23 -14
- plugin-fw/lib/yit-plugin-subpanel.php +12 -9
- plugin-fw/lib/yit-upgrade.php +31 -38
- plugin-fw/licence/assets/css/yit-licence.css +112 -23
- plugin-fw/licence/assets/js/yit-licence.js +82 -25
- plugin-fw/licence/lib/yit-licence.php +201 -54
- plugin-fw/licence/lib/yit-plugin-licence.php +17 -15
- plugin-fw/licence/lib/yit-theme-licence.php +61 -24
- plugin-fw/licence/templates/panel/activation/activation-panel.php +127 -54
- plugin-fw/templates/metaboxes/types/number.php +14 -1
- plugin-fw/templates/panel/types/upload.php +2 -1
- plugin-fw/yit-functions.php +261 -236
- templates/compare.php +4 -6
- widgets/class.yith-woocompare-widget.php +2 -1
README.txt
CHANGED
@@ -3,13 +3,13 @@
|
|
3 |
Contributors: yithemes
|
4 |
Tags: wc, shop, woocommerce, compare, compare products, product compare, widget, comparison, product comparison, compare table
|
5 |
Requires at least: 3.5.1
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 2.0.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
YITH WooCommerce Compare allows you to compare more products of your shop in one complete table.
|
12 |
-
WooCommerce Compatible up to 2.
|
13 |
|
14 |
|
15 |
== Description ==
|
@@ -72,6 +72,13 @@ yith-woocommerce-compare-<WORDPRESS LOCALE >.mo
|
|
72 |
|
73 |
== Changelog ==
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
= 2.0.5 =
|
76 |
|
77 |
* Fixed: After you remove product from compare, you can re-add it without reload page
|
@@ -204,7 +211,9 @@ Full documentation is available [here](http://yithemes.com/docs-plugins/yith-woo
|
|
204 |
|
205 |
== Upgrade notice ==
|
206 |
|
207 |
-
= 2.0.
|
208 |
|
209 |
-
*
|
|
|
|
|
210 |
* Updated: Plugin Core
|
3 |
Contributors: yithemes
|
4 |
Tags: wc, shop, woocommerce, compare, compare products, product compare, widget, comparison, product comparison, compare table
|
5 |
Requires at least: 3.5.1
|
6 |
+
Tested up to: 4.4
|
7 |
+
Stable tag: 2.0.6
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
YITH WooCommerce Compare allows you to compare more products of your shop in one complete table.
|
12 |
+
WooCommerce Compatible up to 2.5 RC
|
13 |
|
14 |
|
15 |
== Description ==
|
72 |
|
73 |
== Changelog ==
|
74 |
|
75 |
+
= 2.0.6 =
|
76 |
+
|
77 |
+
* Added: Compatibility with WooCommerce 2.5 RC
|
78 |
+
* Updated: Change ajax call fron admin-ajax to wc-ajax
|
79 |
+
* Updated: Plugin template compare.php
|
80 |
+
* Updated: Plugin Core
|
81 |
+
|
82 |
= 2.0.5 =
|
83 |
|
84 |
* Fixed: After you remove product from compare, you can re-add it without reload page
|
211 |
|
212 |
== Upgrade notice ==
|
213 |
|
214 |
+
= 2.0.6 =
|
215 |
|
216 |
+
* Added: Compatibility with WooCommerce 2.5 RC
|
217 |
+
* Updated: Change ajax call fron admin-ajax to wc-ajax
|
218 |
+
* Updated: Plugin template compare.php
|
219 |
* Updated: Plugin Core
|
assets/js/woocompare.js
CHANGED
@@ -6,7 +6,6 @@ jQuery(document).ready(function($) {
|
|
6 |
|
7 |
var button = $(this),
|
8 |
data = {
|
9 |
-
_yitnonce_ajax: yith_woocompare.nonceadd,
|
10 |
action: yith_woocompare.actionadd,
|
11 |
id: button.data('product_id'),
|
12 |
context: 'frontend'
|
@@ -21,7 +20,7 @@ jQuery(document).ready(function($) {
|
|
21 |
|
22 |
$.ajax({
|
23 |
type: 'post',
|
24 |
-
url: yith_woocompare.ajaxurl,
|
25 |
data: data,
|
26 |
dataType: 'json',
|
27 |
success: function(response){
|
@@ -81,7 +80,7 @@ jQuery(document).ready(function($) {
|
|
81 |
|
82 |
$.ajax({
|
83 |
type: 'post',
|
84 |
-
url: yith_woocompare.ajaxurl,
|
85 |
data: data,
|
86 |
success: function(response){
|
87 |
// add the product in the widget
|
@@ -125,7 +124,6 @@ jQuery(document).ready(function($) {
|
|
125 |
|
126 |
var button = $(this),
|
127 |
data = {
|
128 |
-
_yitnonce_ajax: yith_woocompare.nonceremove,
|
129 |
action: yith_woocompare.actionremove,
|
130 |
id: button.data('product_id'),
|
131 |
context: 'frontend'
|
@@ -146,7 +144,7 @@ jQuery(document).ready(function($) {
|
|
146 |
|
147 |
$.ajax({
|
148 |
type: 'post',
|
149 |
-
url: yith_woocompare.ajaxurl,
|
150 |
data: data,
|
151 |
dataType:'html',
|
152 |
success: function(response){
|
@@ -191,7 +189,6 @@ jQuery(document).ready(function($) {
|
|
191 |
|
192 |
var button = $(this),
|
193 |
data = {
|
194 |
-
_yitnonce_ajax: yith_woocompare.nonceremove,
|
195 |
action: yith_woocompare.actionremove,
|
196 |
id: button.data('product_id'),
|
197 |
context: 'frontend',
|
@@ -213,7 +210,7 @@ jQuery(document).ready(function($) {
|
|
213 |
|
214 |
$.ajax({
|
215 |
type: 'post',
|
216 |
-
url: yith_woocompare.ajaxurl,
|
217 |
data: data,
|
218 |
dataType: 'html',
|
219 |
success: function (response) {
|
6 |
|
7 |
var button = $(this),
|
8 |
data = {
|
|
|
9 |
action: yith_woocompare.actionadd,
|
10 |
id: button.data('product_id'),
|
11 |
context: 'frontend'
|
20 |
|
21 |
$.ajax({
|
22 |
type: 'post',
|
23 |
+
url: yith_woocompare.ajaxurl.toString().replace( '%%endpoint%%', yith_woocompare.actionadd ),
|
24 |
data: data,
|
25 |
dataType: 'json',
|
26 |
success: function(response){
|
80 |
|
81 |
$.ajax({
|
82 |
type: 'post',
|
83 |
+
url: yith_woocompare.ajaxurl.toString().replace( '%%endpoint%%', yith_woocompare.actionview ),
|
84 |
data: data,
|
85 |
success: function(response){
|
86 |
// add the product in the widget
|
124 |
|
125 |
var button = $(this),
|
126 |
data = {
|
|
|
127 |
action: yith_woocompare.actionremove,
|
128 |
id: button.data('product_id'),
|
129 |
context: 'frontend'
|
144 |
|
145 |
$.ajax({
|
146 |
type: 'post',
|
147 |
+
url: yith_woocompare.ajaxurl.toString().replace( '%%endpoint%%', yith_woocompare.actionremove ),
|
148 |
data: data,
|
149 |
dataType:'html',
|
150 |
success: function(response){
|
189 |
|
190 |
var button = $(this),
|
191 |
data = {
|
|
|
192 |
action: yith_woocompare.actionremove,
|
193 |
id: button.data('product_id'),
|
194 |
context: 'frontend',
|
210 |
|
211 |
$.ajax({
|
212 |
type: 'post',
|
213 |
+
url: yith_woocompare.ajaxurl.toString().replace( '%%endpoint%%', yith_woocompare.actionremove ),
|
214 |
data: data,
|
215 |
dataType: 'html',
|
216 |
success: function (response) {
|
includes/class.yith-woocompare-frontend.php
CHANGED
@@ -112,14 +112,9 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
112 |
add_shortcode( 'yith_compare_button', array( $this, 'compare_button_sc' ) );
|
113 |
|
114 |
// AJAX
|
115 |
-
add_action( '
|
116 |
-
add_action( '
|
117 |
-
|
118 |
-
add_action( 'wp_ajax_' . $this->action_remove, array( $this, 'remove_product_from_compare_ajax' ) );
|
119 |
-
add_action( 'wp_ajax_nopriv_' . $this->action_remove, array( $this, 'remove_product_from_compare_ajax' ) );
|
120 |
-
|
121 |
-
add_action( 'wp_ajax_' . $this->action_view, array( $this, 'refresh_widget_list_ajax' ) );
|
122 |
-
add_action( 'wp_ajax_nopriv_' . $this->action_view, array( $this, 'refresh_widget_list_ajax' ) );
|
123 |
|
124 |
return $this;
|
125 |
}
|
@@ -132,10 +127,7 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
132 |
// scripts
|
133 |
wp_enqueue_script( 'yith-woocompare-main', YITH_WOOCOMPARE_ASSETS_URL . '/js/woocompare.js', array('jquery'), $this->version, true );
|
134 |
wp_localize_script( 'yith-woocompare-main', 'yith_woocompare', array(
|
135 |
-
'
|
136 |
-
'nonceremove' => wp_create_nonce( $this->action_remove ),
|
137 |
-
'nonceview' => wp_create_nonce( $this->action_view ),
|
138 |
-
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
139 |
'actionadd' => $this->action_add,
|
140 |
'actionremove' => $this->action_remove,
|
141 |
'actionview' => $this->action_view,
|
@@ -317,7 +309,7 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
317 |
'action' => $this->action_add,
|
318 |
'id' => $product_id
|
319 |
);
|
320 |
-
return apply_filters( 'yith_woocompare_add_product_url',
|
321 |
}
|
322 |
|
323 |
/**
|
@@ -331,7 +323,7 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
331 |
'action' => $this->action_remove,
|
332 |
'id' => $product_id
|
333 |
);
|
334 |
-
return apply_filters( 'yith_woocompare_remove_product_url',
|
335 |
}
|
336 |
|
337 |
/**
|
@@ -353,7 +345,8 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
353 |
|
354 |
if ( ! isset( $button_text ) || $button_text == 'default' ) {
|
355 |
$button_text = get_option( 'yith_woocompare_button_text', __( 'Compare', 'yith-woocommerce-compare' ) );
|
356 |
-
|
|
|
357 |
}
|
358 |
|
359 |
printf( '<a href="%s" class="%s" data-product_id="%d" rel="nofollow">%s</a>', $this->add_product_url( $product_id ), 'compare' . ( $is_button == 'button' ? ' button' : '' ), $product_id, $button_text );
|
@@ -408,10 +401,9 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
408 |
* The action called by the query string
|
409 |
*/
|
410 |
public function add_product_to_compare_action() {
|
411 |
-
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ||
|
412 |
-
( !isset( $_REQUEST['_wpnonce'] ) || !wp_verify_nonce( $_REQUEST['_wpnonce'], $this->action_add ) ) &&
|
413 |
-
( ! isset( $_REQUEST['action'] ) || $_REQUEST['action'] != $this->action_add ) )
|
414 |
return;
|
|
|
415 |
|
416 |
$product_id = intval( $_REQUEST['id'] );
|
417 |
$product = $this->wc_get_product( $product_id );
|
@@ -421,7 +413,7 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
421 |
$this->add_product_to_compare( $product_id );
|
422 |
}
|
423 |
|
424 |
-
wp_redirect( esc_url( remove_query_arg( array( 'id', 'action'
|
425 |
exit();
|
426 |
}
|
427 |
|
@@ -429,7 +421,10 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
429 |
* The action called by AJAX
|
430 |
*/
|
431 |
public function add_product_to_compare_ajax() {
|
432 |
-
|
|
|
|
|
|
|
433 |
|
434 |
$product_id = intval( $_REQUEST['id'] );
|
435 |
$product = $this->wc_get_product( $product_id );
|
@@ -467,10 +462,9 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
467 |
* The action called by the query string
|
468 |
*/
|
469 |
public function remove_product_from_compare_action() {
|
470 |
-
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ||
|
471 |
-
( !isset( $_REQUEST['_wpnonce'] ) || !wp_verify_nonce( $_REQUEST['_wpnonce'], $this->action_remove ) ) &&
|
472 |
-
( ! isset( $_REQUEST['action'] ) || $_REQUEST['action'] != $this->action_remove ) )
|
473 |
return;
|
|
|
474 |
|
475 |
if ( $_REQUEST['id'] == 'all' ) {
|
476 |
$products = $this->products_list;
|
@@ -482,7 +476,7 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
482 |
}
|
483 |
|
484 |
// redirect
|
485 |
-
$redirect = esc_url( remove_query_arg( array( 'id', 'action'
|
486 |
|
487 |
if ( isset( $_REQUEST['redirect'] ) && $_REQUEST['redirect'] == 'view' )
|
488 |
$redirect = esc_url( remove_query_arg( 'redirect', add_query_arg( 'action', $this->action_view, $redirect ) ) );
|
@@ -495,11 +489,12 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
495 |
* The action called by AJAX
|
496 |
*/
|
497 |
public function remove_product_from_compare_ajax() {
|
498 |
-
check_ajax_referer( $this->action_remove, '_yitnonce_ajax' );
|
499 |
|
500 |
-
$
|
|
|
|
|
501 |
|
502 |
-
|
503 |
|
504 |
if ( $_REQUEST['id'] == 'all' ) {
|
505 |
$products = $this->products_list;
|
@@ -527,6 +522,11 @@ if( !class_exists( 'YITH_Woocompare_Frontend' ) ) {
|
|
527 |
* Return the list of widget table, used in AJAX
|
528 |
*/
|
529 |
public function refresh_widget_list_ajax() {
|
|
|
|
|
|
|
|
|
|
|
530 |
echo $this->list_products_html();
|
531 |
die();
|
532 |
}
|
112 |
add_shortcode( 'yith_compare_button', array( $this, 'compare_button_sc' ) );
|
113 |
|
114 |
// AJAX
|
115 |
+
add_action( 'wc_ajax_' . $this->action_add, array( $this, 'add_product_to_compare_ajax' ) );
|
116 |
+
add_action( 'wc_ajax_' . $this->action_remove, array( $this, 'remove_product_from_compare_ajax' ) );
|
117 |
+
add_action( 'wc_ajax_' . $this->action_view, array( $this, 'refresh_widget_list_ajax' ) );
|
|
|
|
|
|
|
|
|
|
|
118 |
|
119 |
return $this;
|
120 |
}
|
127 |
// scripts
|
128 |
wp_enqueue_script( 'yith-woocompare-main', YITH_WOOCOMPARE_ASSETS_URL . '/js/woocompare.js', array('jquery'), $this->version, true );
|
129 |
wp_localize_script( 'yith-woocompare-main', 'yith_woocompare', array(
|
130 |
+
'ajaxurl' => WC_AJAX::get_endpoint( "%%endpoint%%" ),
|
|
|
|
|
|
|
131 |
'actionadd' => $this->action_add,
|
132 |
'actionremove' => $this->action_remove,
|
133 |
'actionview' => $this->action_view,
|
309 |
'action' => $this->action_add,
|
310 |
'id' => $product_id
|
311 |
);
|
312 |
+
return apply_filters( 'yith_woocompare_add_product_url', esc_url_raw( add_query_arg( $url_args ) ), $this->action_add );
|
313 |
}
|
314 |
|
315 |
/**
|
323 |
'action' => $this->action_remove,
|
324 |
'id' => $product_id
|
325 |
);
|
326 |
+
return apply_filters( 'yith_woocompare_remove_product_url', esc_url_raw( add_query_arg( $url_args ) ), $this->action_remove );
|
327 |
}
|
328 |
|
329 |
/**
|
345 |
|
346 |
if ( ! isset( $button_text ) || $button_text == 'default' ) {
|
347 |
$button_text = get_option( 'yith_woocompare_button_text', __( 'Compare', 'yith-woocommerce-compare' ) );
|
348 |
+
yit_wpml_register_string( 'Plugins', 'plugin_yit_compare_button_text', $button_text );
|
349 |
+
$button_text = yit_wpml_string_translate( 'Plugins', 'plugin_yit_compare_button_text', $button_text );
|
350 |
}
|
351 |
|
352 |
printf( '<a href="%s" class="%s" data-product_id="%d" rel="nofollow">%s</a>', $this->add_product_url( $product_id ), 'compare' . ( $is_button == 'button' ? ' button' : '' ), $product_id, $button_text );
|
401 |
* The action called by the query string
|
402 |
*/
|
403 |
public function add_product_to_compare_action() {
|
404 |
+
if ( defined( 'DOING_AJAX' ) && DOING_AJAX || ! isset( $_REQUEST['action'] ) || $_REQUEST['action'] != $this->action_add ) {
|
|
|
|
|
405 |
return;
|
406 |
+
}
|
407 |
|
408 |
$product_id = intval( $_REQUEST['id'] );
|
409 |
$product = $this->wc_get_product( $product_id );
|
413 |
$this->add_product_to_compare( $product_id );
|
414 |
}
|
415 |
|
416 |
+
wp_redirect( esc_url( remove_query_arg( array( 'id', 'action' ) ) ) );
|
417 |
exit();
|
418 |
}
|
419 |
|
421 |
* The action called by AJAX
|
422 |
*/
|
423 |
public function add_product_to_compare_ajax() {
|
424 |
+
|
425 |
+
if( ! isset( $_REQUEST['id'] ) || ! isset( $_REQUEST['action'] ) || $_REQUEST['action'] != $this->action_add ){
|
426 |
+
die();
|
427 |
+
}
|
428 |
|
429 |
$product_id = intval( $_REQUEST['id'] );
|
430 |
$product = $this->wc_get_product( $product_id );
|
462 |
* The action called by the query string
|
463 |
*/
|
464 |
public function remove_product_from_compare_action() {
|
465 |
+
if ( defined( 'DOING_AJAX' ) && DOING_AJAX || ! isset( $_REQUEST['action'] ) || $_REQUEST['action'] != $this->action_remove ) {
|
|
|
|
|
466 |
return;
|
467 |
+
}
|
468 |
|
469 |
if ( $_REQUEST['id'] == 'all' ) {
|
470 |
$products = $this->products_list;
|
476 |
}
|
477 |
|
478 |
// redirect
|
479 |
+
$redirect = esc_url( remove_query_arg( array( 'id', 'action' ) ) );
|
480 |
|
481 |
if ( isset( $_REQUEST['redirect'] ) && $_REQUEST['redirect'] == 'view' )
|
482 |
$redirect = esc_url( remove_query_arg( 'redirect', add_query_arg( 'action', $this->action_view, $redirect ) ) );
|
489 |
* The action called by AJAX
|
490 |
*/
|
491 |
public function remove_product_from_compare_ajax() {
|
|
|
492 |
|
493 |
+
if ( ! isset( $_REQUEST['id'] ) || ! isset( $_REQUEST['action'] ) || $_REQUEST['action'] != $this->action_remove ){
|
494 |
+
die();
|
495 |
+
}
|
496 |
|
497 |
+
$lang = isset( $_REQUEST['lang'] ) ? $_REQUEST['lang'] : false;
|
498 |
|
499 |
if ( $_REQUEST['id'] == 'all' ) {
|
500 |
$products = $this->products_list;
|
522 |
* Return the list of widget table, used in AJAX
|
523 |
*/
|
524 |
public function refresh_widget_list_ajax() {
|
525 |
+
|
526 |
+
if ( ! isset( $_REQUEST['action'] ) || $_REQUEST['action'] != $this->action_view ){
|
527 |
+
die();
|
528 |
+
}
|
529 |
+
|
530 |
echo $this->list_products_html();
|
531 |
die();
|
532 |
}
|
init.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: YITH WooCommerce Compare
|
4 |
* Plugin URI: https://yithemes.com/
|
5 |
* Description: YITH WooCommerce Compare allows you to compare more products with WooCommerce plugin, through product attributes.
|
6 |
-
* Version: 2.0.
|
7 |
* Author: Yithemes
|
8 |
* Author URI: http://yithemes.com/
|
9 |
* Text Domain: yith-woocommerce-compare
|
@@ -11,7 +11,7 @@
|
|
11 |
*
|
12 |
* @author Yithemes
|
13 |
* @package YITH WooCommerce Compare
|
14 |
-
* @version 2.0.
|
15 |
*/
|
16 |
/* Copyright 2013 Your Inspiration Themes (email : plugins@yithemes.com)
|
17 |
|
@@ -56,7 +56,7 @@ if ( ! function_exists( 'yith_plugin_registration_hook' ) ) {
|
|
56 |
register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
|
57 |
|
58 |
if ( ! defined( 'YITH_WOOCOMPARE_VERSION' ) ){
|
59 |
-
define( 'YITH_WOOCOMPARE_VERSION', '2.0.
|
60 |
}
|
61 |
if ( ! defined( 'YITH_WOOCOMPARE_FREE_INIT' ) ) {
|
62 |
define( 'YITH_WOOCOMPARE_FREE_INIT', plugin_basename( __FILE__ ) );
|
3 |
* Plugin Name: YITH WooCommerce Compare
|
4 |
* Plugin URI: https://yithemes.com/
|
5 |
* Description: YITH WooCommerce Compare allows you to compare more products with WooCommerce plugin, through product attributes.
|
6 |
+
* Version: 2.0.6
|
7 |
* Author: Yithemes
|
8 |
* Author URI: http://yithemes.com/
|
9 |
* Text Domain: yith-woocommerce-compare
|
11 |
*
|
12 |
* @author Yithemes
|
13 |
* @package YITH WooCommerce Compare
|
14 |
+
* @version 2.0.6
|
15 |
*/
|
16 |
/* Copyright 2013 Your Inspiration Themes (email : plugins@yithemes.com)
|
17 |
|
56 |
register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
|
57 |
|
58 |
if ( ! defined( 'YITH_WOOCOMPARE_VERSION' ) ){
|
59 |
+
define( 'YITH_WOOCOMPARE_VERSION', '2.0.6' );
|
60 |
}
|
61 |
if ( ! defined( 'YITH_WOOCOMPARE_FREE_INIT' ) ) {
|
62 |
define( 'YITH_WOOCOMPARE_FREE_INIT', plugin_basename( __FILE__ ) );
|
plugin-fw/assets/css/metaboxes.css
CHANGED
@@ -237,6 +237,27 @@
|
|
237 |
.chosen .select_wrapper .chosen-container .chosen-drop .chosen-search input{
|
238 |
width: 100%!important;
|
239 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
240 |
|
241 |
/* typography */
|
242 |
.the-metabox.typography .select_wrapper.font-family { width:200px; }
|
237 |
.chosen .select_wrapper .chosen-container .chosen-drop .chosen-search input{
|
238 |
width: 100%!important;
|
239 |
}
|
240 |
+
.select_wrapper span {
|
241 |
+
height: 26px;
|
242 |
+
line-height: 26px;
|
243 |
+
padding-left: 6px;
|
244 |
+
position: absolute;
|
245 |
+
z-index: 2;
|
246 |
+
overflow: hidden;
|
247 |
+
}
|
248 |
+
|
249 |
+
.the-metabox .select_wrapper select {
|
250 |
+
cursor: pointer;
|
251 |
+
height: 28px;
|
252 |
+
margin: 0;
|
253 |
+
opacity: 0;
|
254 |
+
padding: 0;
|
255 |
+
position: relative;
|
256 |
+
width: inherit;
|
257 |
+
z-index: 4;
|
258 |
+
background-color: #FAFAFA;
|
259 |
+
}
|
260 |
+
|
261 |
|
262 |
/* typography */
|
263 |
.the-metabox.typography .select_wrapper.font-family { width:200px; }
|
plugin-fw/assets/css/overcast/jquery-ui-1.8.9.custom.css
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
/*
|
2 |
-
* jQuery UI CSS Framework 1.8.
|
3 |
*
|
4 |
-
* Copyright
|
5 |
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6 |
* http://jquery.org/license
|
7 |
*
|
@@ -42,65 +42,64 @@
|
|
42 |
|
43 |
|
44 |
/*
|
45 |
-
* jQuery UI CSS Framework 1.8.
|
46 |
*
|
47 |
-
* Copyright
|
48 |
* Dual licensed under the MIT or GPL Version 2 licenses.
|
49 |
* http://jquery.org/license
|
50 |
*
|
51 |
* http://docs.jquery.com/UI/Theming/API
|
52 |
*
|
53 |
-
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%
|
54 |
*/
|
55 |
|
56 |
|
57 |
/* Component containers
|
58 |
----------------------------------*/
|
59 |
-
.ui-widget { font-family: Trebuchet MS,
|
60 |
.ui-widget .ui-widget { font-size: 1em; }
|
61 |
-
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS,
|
62 |
-
.ui-widget-content { border: 1px solid #
|
63 |
.ui-widget-content a { color: #333333; }
|
64 |
-
.ui-widget-header { border: 1px solid #
|
65 |
-
.ui-widget-header a { color: #
|
66 |
|
67 |
/* Interaction states
|
68 |
----------------------------------*/
|
69 |
-
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #
|
70 |
-
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #
|
71 |
-
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #
|
72 |
-
.ui-state-hover a, .ui-state-hover a:hover { color: #
|
73 |
-
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #
|
74 |
-
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #
|
75 |
.ui-widget :active { outline: none; }
|
76 |
|
77 |
/* Interaction Cues
|
78 |
----------------------------------*/
|
79 |
-
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #
|
80 |
-
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #
|
81 |
-
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #
|
82 |
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
|
83 |
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
|
84 |
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
85 |
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
86 |
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
87 |
-
.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; }
|
88 |
-
.ui-sortable-placeholder * { visibility: hidden; }
|
89 |
|
90 |
/* Icons
|
91 |
----------------------------------*/
|
92 |
|
93 |
/* states and images */
|
94 |
-
|
95 |
-
.ui-widget-
|
96 |
-
.ui-
|
97 |
-
|
98 |
-
.ui-state-
|
99 |
-
.ui-state-
|
100 |
-
.ui-state-
|
|
|
101 |
|
102 |
/* positioning */
|
103 |
-
|
104 |
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
105 |
.ui-icon-carat-1-e { background-position: -32px 0; }
|
106 |
.ui-icon-carat-1-se { background-position: -48px 0; }
|
@@ -204,11 +203,11 @@
|
|
204 |
.ui-icon-heart { background-position: -208px -112px; }
|
205 |
.ui-icon-star { background-position: -224px -112px; }
|
206 |
.ui-icon-link { background-position: -240px -112px; }
|
207 |
-
.ui-icon-cancel { background-position: 0 -128px; }
|
208 |
-
.ui-icon-plus { background-position: -16px -128px; }
|
|
|
209 |
.ui-icon-minus { background-position: -48px -128px; }
|
210 |
.ui-icon-minusthick { background-position: -64px -128px; }
|
211 |
-
/*.ui-icon-plusthick { background-position: -32px -128px; }
|
212 |
.ui-icon-close { background-position: -80px -128px; }
|
213 |
.ui-icon-closethick { background-position: -96px -128px; }
|
214 |
.ui-icon-key { background-position: -112px -128px; }
|
@@ -235,9 +234,9 @@
|
|
235 |
.ui-icon-seek-next { background-position: -32px -160px; }
|
236 |
.ui-icon-seek-prev { background-position: -48px -160px; }
|
237 |
.ui-icon-seek-end { background-position: -64px -160px; }
|
238 |
-
.ui-icon-seek-start { background-position: -80px -160px; }
|
239 |
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
240 |
-
|
241 |
.ui-icon-stop { background-position: -96px -160px; }
|
242 |
.ui-icon-eject { background-position: -112px -160px; }
|
243 |
.ui-icon-volume-off { background-position: -128px -160px; }
|
@@ -274,40 +273,202 @@
|
|
274 |
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
275 |
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
276 |
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
277 |
-
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
278 |
|
279 |
|
280 |
/* Misc visuals
|
281 |
----------------------------------*/
|
282 |
|
283 |
/* Corner radius */
|
284 |
-
.ui-corner-tl { -moz-border-radius-topleft:
|
285 |
-
.ui-corner-tr { -moz-border-radius-topright:
|
286 |
-
.ui-corner-bl { -moz-border-radius-bottomleft:
|
287 |
-
.ui-corner-br { -moz-border-radius-bottomright:
|
288 |
-
.ui-corner-top { -moz-border-radius-topleft:
|
289 |
-
.ui-corner-bottom { -moz-border-radius-bottomleft:
|
290 |
-
.ui-corner-right { -moz-border-radius-topright:
|
291 |
-
.ui-corner-left { -moz-border-radius-topleft:
|
292 |
-
.ui-corner-all { -moz-border-radius:
|
293 |
|
294 |
/* Overlays */
|
295 |
-
.ui-widget-overlay { background: #
|
296 |
-
.ui-widget-shadow { margin: -
|
297 |
-
* jQuery UI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
298 |
*
|
299 |
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
300 |
* Dual licensed under the MIT or GPL Version 2 licenses.
|
301 |
* http://jquery.org/license
|
302 |
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
* http://docs.jquery.com/UI/Slider#theming
|
304 |
*/
|
305 |
-
.ui-slider { position: relative; text-align: left;
|
306 |
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
307 |
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
|
308 |
-
.ui-slider .minCaption { float: left }
|
309 |
-
.ui-slider .maxCaption { float: right }
|
310 |
-
.ui-slider .feedback { text-align:center; width:100%; display:block }
|
311 |
|
312 |
.ui-slider-horizontal { height: .8em; }
|
313 |
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
@@ -319,4 +480,99 @@
|
|
319 |
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
320 |
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
321 |
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
322 |
-
.ui-slider-vertical .ui-slider-range-max { top: 0; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
/*
|
2 |
+
* jQuery UI CSS Framework 1.8.13
|
3 |
*
|
4 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
5 |
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6 |
* http://jquery.org/license
|
7 |
*
|
42 |
|
43 |
|
44 |
/*
|
45 |
+
* jQuery UI CSS Framework 1.8.13
|
46 |
*
|
47 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
48 |
* Dual licensed under the MIT or GPL Version 2 licenses.
|
49 |
* http://jquery.org/license
|
50 |
*
|
51 |
* http://docs.jquery.com/UI/Theming/API
|
52 |
*
|
53 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
|
54 |
*/
|
55 |
|
56 |
|
57 |
/* Component containers
|
58 |
----------------------------------*/
|
59 |
+
.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
|
60 |
.ui-widget .ui-widget { font-size: 1em; }
|
61 |
+
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
|
62 |
+
.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(../images/jquery_ui/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
|
63 |
.ui-widget-content a { color: #333333; }
|
64 |
+
.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(../images/jquery_ui/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
|
65 |
+
.ui-widget-header a { color: #ffffff; }
|
66 |
|
67 |
/* Interaction states
|
68 |
----------------------------------*/
|
69 |
+
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(../images/jquery_ui/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
|
70 |
+
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
|
71 |
+
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(../images/jquery_ui/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
|
72 |
+
.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
|
73 |
+
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(../images/jquery_ui/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
|
74 |
+
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
|
75 |
.ui-widget :active { outline: none; }
|
76 |
|
77 |
/* Interaction Cues
|
78 |
----------------------------------*/
|
79 |
+
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(../images/jquery_ui/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
|
80 |
+
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
81 |
+
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(../images/jquery_ui/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
|
82 |
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
|
83 |
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
|
84 |
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
85 |
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
86 |
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
|
|
|
|
87 |
|
88 |
/* Icons
|
89 |
----------------------------------*/
|
90 |
|
91 |
/* states and images */
|
92 |
+
.ui-icon { width: 16px; height: 16px; background-image: url(../images/jquery_ui/ui-icons_222222_256x240.png); }
|
93 |
+
.ui-widget-content .ui-icon {background-image: url(../images/jquery_ui/ui-icons_222222_256x240.png); }
|
94 |
+
.ui-widget-header .ui-icon {background-image: url(../images/jquery_ui/ui-icons_ffffff_256x240.png); }
|
95 |
+
.ui-state-default .ui-icon { background-image: url(../images/jquery_ui/ui-icons_ef8c08_256x240.png); }
|
96 |
+
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../images/jquery_ui/ui-icons_ef8c08_256x240.png); }
|
97 |
+
.ui-state-active .ui-icon {background-image: url(../images/jquery_ui/ui-icons_ef8c08_256x240.png); }
|
98 |
+
.ui-state-highlight .ui-icon {background-image: url(../images/jquery_ui/ui-icons_228ef1_256x240.png); }
|
99 |
+
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/jquery_ui/ui-icons_ffd27a_256x240.png); }
|
100 |
|
101 |
/* positioning */
|
102 |
+
.ui-icon-carat-1-n { background-position: 0 0; }
|
103 |
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
104 |
.ui-icon-carat-1-e { background-position: -32px 0; }
|
105 |
.ui-icon-carat-1-se { background-position: -48px 0; }
|
203 |
.ui-icon-heart { background-position: -208px -112px; }
|
204 |
.ui-icon-star { background-position: -224px -112px; }
|
205 |
.ui-icon-link { background-position: -240px -112px; }
|
206 |
+
.ui-icon-cancel { background-position: 0 -128px; }
|
207 |
+
.ui-icon-plus { background-position: -16px -128px; }
|
208 |
+
.ui-icon-plusthick { background-position: -32px -128px; }
|
209 |
.ui-icon-minus { background-position: -48px -128px; }
|
210 |
.ui-icon-minusthick { background-position: -64px -128px; }
|
|
|
211 |
.ui-icon-close { background-position: -80px -128px; }
|
212 |
.ui-icon-closethick { background-position: -96px -128px; }
|
213 |
.ui-icon-key { background-position: -112px -128px; }
|
234 |
.ui-icon-seek-next { background-position: -32px -160px; }
|
235 |
.ui-icon-seek-prev { background-position: -48px -160px; }
|
236 |
.ui-icon-seek-end { background-position: -64px -160px; }
|
237 |
+
.ui-icon-seek-start { background-position: -80px -160px; }
|
238 |
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
239 |
+
.ui-icon-seek-first { background-position: -80px -160px; }
|
240 |
.ui-icon-stop { background-position: -96px -160px; }
|
241 |
.ui-icon-eject { background-position: -112px -160px; }
|
242 |
.ui-icon-volume-off { background-position: -128px -160px; }
|
273 |
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
274 |
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
275 |
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
276 |
+
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
277 |
|
278 |
|
279 |
/* Misc visuals
|
280 |
----------------------------------*/
|
281 |
|
282 |
/* Corner radius */
|
283 |
+
.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
284 |
+
.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
285 |
+
.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
286 |
+
.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
287 |
+
.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
288 |
+
.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
289 |
+
.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
290 |
+
.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
291 |
+
.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
|
292 |
|
293 |
/* Overlays */
|
294 |
+
.ui-widget-overlay { background: #666666 url(../images/jquery_ui/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
|
295 |
+
.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(../images/jquery_ui/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
|
296 |
+
* jQuery UI Resizable 1.8.13
|
297 |
+
*
|
298 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
299 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
300 |
+
* http://jquery.org/license
|
301 |
+
*
|
302 |
+
* http://docs.jquery.com/UI/Resizable#theming
|
303 |
+
*/
|
304 |
+
.ui-resizable { position: relative;}
|
305 |
+
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;
|
306 |
+
/* http://bugs.jqueryui.com/ticket/7233
|
307 |
+
- Resizable: resizable handles fail to work in IE if transparent and content overlaps
|
308 |
+
*/
|
309 |
+
background-image:url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=);
|
310 |
+
}
|
311 |
+
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
312 |
+
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
313 |
+
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
314 |
+
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
315 |
+
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
316 |
+
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
317 |
+
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
318 |
+
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
319 |
+
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
|
320 |
+
* jQuery UI Selectable 1.8.13
|
321 |
+
*
|
322 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
323 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
324 |
+
* http://jquery.org/license
|
325 |
+
*
|
326 |
+
* http://docs.jquery.com/UI/Selectable#theming
|
327 |
+
*/
|
328 |
+
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
|
329 |
+
/*
|
330 |
+
* jQuery UI Accordion 1.8.13
|
331 |
+
*
|
332 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
333 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
334 |
+
* http://jquery.org/license
|
335 |
+
*
|
336 |
+
* http://docs.jquery.com/UI/Accordion#theming
|
337 |
+
*/
|
338 |
+
/* IE/Win - Fix animation bug - #4615 */
|
339 |
+
.ui-accordion { width: 100%; }
|
340 |
+
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
341 |
+
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
342 |
+
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
343 |
+
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
|
344 |
+
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
|
345 |
+
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
346 |
+
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
|
347 |
+
.ui-accordion .ui-accordion-content-active { display: block; }
|
348 |
+
/*
|
349 |
+
* jQuery UI Autocomplete 1.8.13
|
350 |
+
*
|
351 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
352 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
353 |
+
* http://jquery.org/license
|
354 |
+
*
|
355 |
+
* http://docs.jquery.com/UI/Autocomplete#theming
|
356 |
+
*/
|
357 |
+
.ui-autocomplete { position: absolute; cursor: default; }
|
358 |
+
|
359 |
+
/* workarounds */
|
360 |
+
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
|
361 |
+
|
362 |
+
/*
|
363 |
+
* jQuery UI Menu 1.8.13
|
364 |
*
|
365 |
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
366 |
* Dual licensed under the MIT or GPL Version 2 licenses.
|
367 |
* http://jquery.org/license
|
368 |
*
|
369 |
+
* http://docs.jquery.com/UI/Menu#theming
|
370 |
+
*/
|
371 |
+
.ui-menu {
|
372 |
+
list-style:none;
|
373 |
+
padding: 2px;
|
374 |
+
margin: 0;
|
375 |
+
display:block;
|
376 |
+
float: left;
|
377 |
+
}
|
378 |
+
.ui-menu .ui-menu {
|
379 |
+
margin-top: -3px;
|
380 |
+
}
|
381 |
+
.ui-menu .ui-menu-item {
|
382 |
+
margin:0;
|
383 |
+
padding: 0;
|
384 |
+
zoom: 1;
|
385 |
+
float: left;
|
386 |
+
clear: left;
|
387 |
+
width: 100%;
|
388 |
+
}
|
389 |
+
.ui-menu .ui-menu-item a {
|
390 |
+
text-decoration:none;
|
391 |
+
display:block;
|
392 |
+
padding:.2em .4em;
|
393 |
+
line-height:1.5;
|
394 |
+
zoom:1;
|
395 |
+
}
|
396 |
+
.ui-menu .ui-menu-item a.ui-state-hover,
|
397 |
+
.ui-menu .ui-menu-item a.ui-state-active {
|
398 |
+
font-weight: normal;
|
399 |
+
margin: -1px;
|
400 |
+
}
|
401 |
+
/*
|
402 |
+
* jQuery UI Button 1.8.13
|
403 |
+
*
|
404 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
405 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
406 |
+
* http://jquery.org/license
|
407 |
+
*
|
408 |
+
* http://docs.jquery.com/UI/Button#theming
|
409 |
+
*/
|
410 |
+
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
|
411 |
+
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
|
412 |
+
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
|
413 |
+
.ui-button-icons-only { width: 3.4em; }
|
414 |
+
button.ui-button-icons-only { width: 3.7em; }
|
415 |
+
|
416 |
+
/*button text element */
|
417 |
+
.ui-button .ui-button-text { display: block; line-height: 1.4; }
|
418 |
+
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
|
419 |
+
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
|
420 |
+
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
|
421 |
+
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
|
422 |
+
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
|
423 |
+
/* no icon support for input elements, provide padding by default */
|
424 |
+
input.ui-button { padding: .4em 1em; }
|
425 |
+
|
426 |
+
/*button icon element(s) */
|
427 |
+
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
|
428 |
+
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
|
429 |
+
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
|
430 |
+
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
431 |
+
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
432 |
+
|
433 |
+
/*button sets*/
|
434 |
+
.ui-buttonset { margin-right: 7px; }
|
435 |
+
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
|
436 |
+
|
437 |
+
/* workarounds */
|
438 |
+
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
|
439 |
+
/*
|
440 |
+
* jQuery UI Dialog 1.8.13
|
441 |
+
*
|
442 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
443 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
444 |
+
* http://jquery.org/license
|
445 |
+
*
|
446 |
+
* http://docs.jquery.com/UI/Dialog#theming
|
447 |
+
*/
|
448 |
+
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
|
449 |
+
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
|
450 |
+
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
|
451 |
+
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
452 |
+
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
453 |
+
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
454 |
+
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
455 |
+
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
|
456 |
+
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
|
457 |
+
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
|
458 |
+
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
459 |
+
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
460 |
+
/*
|
461 |
+
* jQuery UI Slider 1.8.13
|
462 |
+
*
|
463 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
464 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
465 |
+
* http://jquery.org/license
|
466 |
+
*
|
467 |
* http://docs.jquery.com/UI/Slider#theming
|
468 |
*/
|
469 |
+
.ui-slider { position: relative; text-align: left; }
|
470 |
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
471 |
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
|
|
|
|
|
|
|
472 |
|
473 |
.ui-slider-horizontal { height: .8em; }
|
474 |
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
480 |
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
481 |
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
482 |
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
483 |
+
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
|
484 |
+
* jQuery UI Tabs 1.8.13
|
485 |
+
*
|
486 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
487 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
488 |
+
* http://jquery.org/license
|
489 |
+
*
|
490 |
+
* http://docs.jquery.com/UI/Tabs#theming
|
491 |
+
*/
|
492 |
+
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
493 |
+
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
|
494 |
+
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
|
495 |
+
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
|
496 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
|
497 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
498 |
+
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
499 |
+
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
|
500 |
+
.ui-tabs .ui-tabs-hide { display: none !important; }
|
501 |
+
/*
|
502 |
+
* jQuery UI Datepicker 1.8.13
|
503 |
+
*
|
504 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
505 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
506 |
+
* http://jquery.org/license
|
507 |
+
*
|
508 |
+
* http://docs.jquery.com/UI/Datepicker#theming
|
509 |
+
*/
|
510 |
+
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
|
511 |
+
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
512 |
+
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
513 |
+
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
514 |
+
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
515 |
+
.ui-datepicker .ui-datepicker-next { right:2px; }
|
516 |
+
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
517 |
+
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
518 |
+
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
519 |
+
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
520 |
+
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
|
521 |
+
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
522 |
+
.ui-datepicker select.ui-datepicker-month,
|
523 |
+
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
524 |
+
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
525 |
+
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
526 |
+
.ui-datepicker td { border: 0; padding: 1px; }
|
527 |
+
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
528 |
+
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
529 |
+
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
530 |
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
531 |
+
|
532 |
+
/* with multiple calendars */
|
533 |
+
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
534 |
+
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
535 |
+
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
536 |
+
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
537 |
+
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
538 |
+
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
539 |
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
540 |
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
541 |
+
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
542 |
+
.ui-datepicker-row-break { clear:both; width:100%; }
|
543 |
+
|
544 |
+
/* RTL support */
|
545 |
+
.ui-datepicker-rtl { direction: rtl; }
|
546 |
+
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
547 |
+
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
548 |
+
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
549 |
+
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
550 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
551 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
552 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
553 |
+
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
554 |
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
555 |
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
556 |
+
|
557 |
+
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
558 |
+
.ui-datepicker-cover {
|
559 |
+
display: none; /*sorry for IE5*/
|
560 |
+
display/**/: block; /*sorry for IE5*/
|
561 |
+
position: absolute; /*must have*/
|
562 |
+
z-index: -1; /*must have*/
|
563 |
+
filter: mask(); /*must have*/
|
564 |
+
top: -4px; /*must have*/
|
565 |
+
left: -4px; /*must have*/
|
566 |
+
width: 200px; /*must have*/
|
567 |
+
height: 200px; /*must have*/
|
568 |
+
}/*
|
569 |
+
* jQuery UI Progressbar 1.8.13
|
570 |
+
*
|
571 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
572 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
573 |
+
* http://jquery.org/license
|
574 |
+
*
|
575 |
+
* http://docs.jquery.com/UI/Progressbar#theming
|
576 |
+
*/
|
577 |
+
.ui-progressbar { height:2em; text-align: left; }
|
578 |
+
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
|
plugin-fw/assets/css/yit-plugin-panel.css
CHANGED
@@ -631,6 +631,10 @@
|
|
631 |
width: 6em;
|
632 |
}
|
633 |
|
|
|
|
|
|
|
|
|
634 |
/* === YIT FRAMEWORK === */
|
635 |
.plugin-card .plugin-icon img {
|
636 |
max-width: 100%;
|
631 |
width: 6em;
|
632 |
}
|
633 |
|
634 |
+
#wpwrap h2.nav-tab-wrapper {
|
635 |
+
border-bottom: 1px solid #ccc;
|
636 |
+
}
|
637 |
+
|
638 |
/* === YIT FRAMEWORK === */
|
639 |
.plugin-card .plugin-icon img {
|
640 |
max-width: 100%;
|
plugin-fw/assets/js/yit-plugin-panel.js
CHANGED
@@ -177,6 +177,16 @@
|
|
177 |
//Open the uploader dialog
|
178 |
custom_uploader.open();
|
179 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
}
|
181 |
|
182 |
$('.plugin-option .add_media').on('click', function () {
|
177 |
//Open the uploader dialog
|
178 |
custom_uploader.open();
|
179 |
});
|
180 |
+
|
181 |
+
$( document).on( 'click', '.plugin-option .upload_button_reset', function(e){
|
182 |
+
var t = $(this),
|
183 |
+
id = t.attr('id'),
|
184 |
+
input_id = t.attr('id').replace(/-button_reset$/, ''),
|
185 |
+
default_value = $('#' + id).data('default');
|
186 |
+
|
187 |
+
$("#" + input_id).val( default_value );
|
188 |
+
$('.plugin-option .upload_img_url').trigger('change');
|
189 |
+
} );
|
190 |
}
|
191 |
|
192 |
$('.plugin-option .add_media').on('click', function () {
|
plugin-fw/assets/js/yit-plugin-panel.min.js
CHANGED
@@ -1 +1,10 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function(a){var l=function(){var b="";a(this).attr("multiple")?(a(this).children("option:selected").each(function(c,d){0!=c&&(b+=", ");b+=a(d).text()}),""==b&&a(this).children().children("option:selected").each(function(c,d){0!=c&&(b+=", ");b+=a(d).text()})):(b=a(this).children("option:selected").text(),""==b&&(b=a(this).children().children("option:selected").text()));0>=a(this).parent().find("span").length&&a(this).before("<span></span>");a(this).parent().children("span").replaceWith("<span>"+b+
|
2 |
+
"</span>")};a(".plugin-option .select_wrapper select").not(".chosen").each(l).change(l);a(".plugin-option .select_wrapper").click(function(b){b.stopPropagation();a(this).find("select[multiple]").not(".chosen").toggle()});a(".plugin-option .select_wrapper select[multiple]").not(".chosen").click(function(a){a.stopPropagation()});a(window).click(function(){a(".plugin-option .select_wrapper select[multiple]").not(".chosen").hide()});a(".plugin-option .chosen .select_wrapper select").chosen();a(".plugin-option .on_off_container span").on("click",
|
3 |
+
function(){var b=a(this).prev("input");b.prop("checked")?b.prop("checked",!1).attr("value","no").removeClass("onoffchecked"):b.prop("checked",!0).attr("value","yes").addClass("onoffchecked");b.change()});a(".plugin-option .slider_container .ui-slider-horizontal").each(function(){var b=a(this).data("val"),c=a(this).data("min"),d=a(this).data("max"),e=a(this).data("step"),f=a(this).data("labels");a(this).slider({value:b,min:c,max:d,range:"min",step:e,slide:function(b,c){a(this).find("input").val(c.value);
|
4 |
+
a(this).siblings(".feedback").find("strong").text(c.value+f)}})});"undefined"!==typeof wp&&"undefined"!==typeof wp.media&&(a(".plugin-option .upload_img_url").change(function(){var b=a(this).val(),c=a(this).parents().siblings(".upload_img_preview");/(http|ftp|https):\/\/[a-zA-Z0-9@?^=%&:/~+#-_.]*.(gif|jpg|jpeg|png|ico)/.test(b)?c.html('<img src="'+b+'" style="max-width:600px; max-height:300px;" />'):c.html("")}).trigger("change"),a(document).on("click",".plugin-option .upload_button",function(b){b.preventDefault();
|
5 |
+
var c,d=a(this).attr("id").replace(/-button$/,"");c||(b=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})],c=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:b}),c.on("select",function(){var b=c.state().get("selection").first().toJSON();a("#"+d).val(b.url);a("#"+d+"-yith-attachment-id")&&a("#"+d+"-yith-attachment-id").val(b.id);a(".plugin-option .upload_img_url").trigger("change")}));
|
6 |
+
c.open()}),a(document).on("click",".plugin-option .upload_button_reset",function(b){var c=a(this);b=c.attr("id");c=c.attr("id").replace(/-button_reset$/,"");b=a("#"+b).data("default");a("#"+c).val(b);a(".plugin-option .upload_img_url").trigger("change")}));a(".plugin-option .add_media").on("click",function(){});a("[data-field]").each(function(){var b=a(this),c="#"+b.data("field"),d="#"+b.data("dep"),e=b.data("value");a(d).on("change",function(){var b=d,g=e.toString(),h=!0;if("string"==typeof b){":radio"==
|
7 |
+
b.substr(0,6)&&(b+=":checked");for(var g=g.split(","),k=0;k<g.length;k++)if(a(b).val()!=g[k])h=!1;else{h=!0;break}}h?a(c+"-container").closest("tr").show():a(c+"-container").closest("tr").hide()}).change()});a(".rm_connectedlist").each(function(){var b=a(this).find("ul"),c=a(this).find(":hidden");b.sortable({connectWith:b,update:function(d,e){var f={};b.each(function(){var b={};a(this).children().each(function(){b[a(this).data("option")]=a(this).text()});f[a(this).data("list")]=b});c.val(JSON.stringify(f).replace(/[\\"']/g,
|
8 |
+
"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()});a(document).ready(function(){a(".yith-video-link").click(function(b){b.preventDefault();b=a(this).data("video-id");a("."+b).dialog({dialogClass:"wp-dialog yit-dialog yit-video-dialog",modal:!0,closeOnEscape:!0,width:"auto",resizable:!1,draggable:!1,create:function(b,d){a(this).css("maxWidth","853px")},open:function(b,d){a(".ui-widget-overlay").bind("click",function(){a(this).siblings(".ui-dialog").find(".ui-dialog-content").dialog("close")})}});
|
9 |
+
a(".ui-dialog :button").blur()})});a(document).ready(function(){a(".codemirror").each(function(b,c){var d=CodeMirror.fromTextArea(c,{lineNumbers:1,mode:"javascript",showCursorWhenSelecting:!0});a(c).data("codemirrorInstance",d)})});a(document).ready(function(){a(".google-analytic-generate").click(function(){var b=a("#"+a(this).data("textarea")).data("codemirrorInstance"),c=a("#"+a(this).data("input")).val(),d=a(this).data("basename"),e;e="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\nm=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n";
|
10 |
+
e+="})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n";e+="ga('create', '"+c+"', '"+d+"');\n";e+="ga('send', 'pageview');\n";b.replaceRange(e,b.getCursor("start"),b.getCursor("end"))})})})(jQuery);
|
plugin-fw/init.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Framework Name: YIT Plugin Framework
|
4 |
-
* Version: 2.
|
5 |
* Author: Yithemes
|
6 |
* Text Domain: yith-plugin-fw
|
7 |
* Domain Path: /languages/
|
@@ -20,20 +20,20 @@
|
|
20 |
*/
|
21 |
|
22 |
|
23 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
24 |
exit;
|
25 |
} // Exit if accessed directly
|
26 |
|
27 |
-
if ( ! function_exists( 'yit_maybe_plugin_fw_loader' ) ) {
|
28 |
/**
|
29 |
* YITH WooCommerce Ajax Navigation
|
30 |
*
|
31 |
* @since 1.0.0
|
32 |
*/
|
33 |
-
function yit_maybe_plugin_fw_loader( $plugin_path ) {
|
34 |
global $plugin_fw_data;
|
35 |
|
36 |
-
$default_headers = array(
|
37 |
'Name' => 'Framework Name',
|
38 |
'Version' => 'Version',
|
39 |
'Author' => 'Author',
|
@@ -41,19 +41,17 @@ if ( ! function_exists( 'yit_maybe_plugin_fw_loader' ) ) {
|
|
41 |
'DomainPath' => 'Domain Path',
|
42 |
);
|
43 |
|
44 |
-
$framework_data
|
45 |
-
$plugin_fw_main_file
|
46 |
|
47 |
-
if( ! empty( $plugin_fw_data ) ){
|
48 |
-
foreach( $plugin_fw_data as $version => $path ){
|
49 |
-
if( version_compare( $version, $framework_data['Version'], '<' ) ){
|
50 |
-
$plugin_fw_data = array( $framework_data['Version'] => $plugin_fw_main_file );
|
51 |
}
|
52 |
}
|
53 |
-
}
|
54 |
-
|
55 |
-
else {
|
56 |
-
$plugin_fw_data = array( $framework_data['Version'] => $plugin_fw_main_file );
|
57 |
}
|
58 |
}
|
59 |
}
|
1 |
<?php
|
2 |
/**
|
3 |
* Framework Name: YIT Plugin Framework
|
4 |
+
* Version: 2.9.8
|
5 |
* Author: Yithemes
|
6 |
* Text Domain: yith-plugin-fw
|
7 |
* Domain Path: /languages/
|
20 |
*/
|
21 |
|
22 |
|
23 |
+
if ( ! defined ( 'ABSPATH' ) ) {
|
24 |
exit;
|
25 |
} // Exit if accessed directly
|
26 |
|
27 |
+
if ( ! function_exists ( 'yit_maybe_plugin_fw_loader' ) ) {
|
28 |
/**
|
29 |
* YITH WooCommerce Ajax Navigation
|
30 |
*
|
31 |
* @since 1.0.0
|
32 |
*/
|
33 |
+
function yit_maybe_plugin_fw_loader ( $plugin_path ) {
|
34 |
global $plugin_fw_data;
|
35 |
|
36 |
+
$default_headers = array (
|
37 |
'Name' => 'Framework Name',
|
38 |
'Version' => 'Version',
|
39 |
'Author' => 'Author',
|
41 |
'DomainPath' => 'Domain Path',
|
42 |
);
|
43 |
|
44 |
+
$framework_data = get_file_data ( trailingslashit ( $plugin_path ) . 'plugin-fw/init.php', $default_headers );
|
45 |
+
$plugin_fw_main_file = trailingslashit ( $plugin_path ) . 'plugin-fw/yit-plugin.php';
|
46 |
|
47 |
+
if ( ! empty( $plugin_fw_data ) ) {
|
48 |
+
foreach ( $plugin_fw_data as $version => $path ) {
|
49 |
+
if ( version_compare ( $version, $framework_data[ 'Version' ], '<' ) ) {
|
50 |
+
$plugin_fw_data = array ( $framework_data[ 'Version' ] => $plugin_fw_main_file );
|
51 |
}
|
52 |
}
|
53 |
+
} else {
|
54 |
+
$plugin_fw_data = array ( $framework_data[ 'Version' ] => $plugin_fw_main_file );
|
|
|
|
|
55 |
}
|
56 |
}
|
57 |
}
|
plugin-fw/languages/yith-plugin-fw-it_IT.mo
CHANGED
Binary file
|
plugin-fw/languages/yith-plugin-fw-it_IT.po
CHANGED
@@ -4,15 +4,15 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
|
6 |
"Report-Msgid-Bugs-To: Your Inspiration Themes <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2015-
|
8 |
-
"PO-Revision-Date: 2015-
|
9 |
"Last-Translator: \n"
|
10 |
-
"Language-Team:
|
11 |
-
"Language:
|
12 |
"MIME-Version: 1.0\n"
|
13 |
-
"Content-Type: text/plain; charset=
|
14 |
"Content-Transfer-Encoding: 8bit\n"
|
15 |
-
"X-Generator: Poedit 1.8\n"
|
16 |
"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
|
17 |
"_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
|
18 |
"esc_html_x:1,2c\n"
|
@@ -136,8 +136,9 @@ msgid "Type"
|
|
136 |
msgstr "Tipologia"
|
137 |
|
138 |
#: lib/yit-cpt-unlimited.php:1052
|
139 |
-
|
140 |
-
|
|
|
141 |
|
142 |
#: lib/yit-cpt-unlimited.php:1058
|
143 |
msgid "Rewrite"
|
@@ -220,10 +221,10 @@ msgid "Add %s from images"
|
|
220 |
msgstr "Aggiungi %s dalla immagini"
|
221 |
|
222 |
#: lib/yit-cpt-unlimited.php:1633
|
223 |
-
msgid "
|
224 |
-
msgstr "
|
225 |
|
226 |
-
#: lib/yit-plugin-panel-wc.php:
|
227 |
msgid "The changes you have made will be lost if you leave this page."
|
228 |
msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
|
229 |
|
@@ -231,71 +232,71 @@ msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
|
|
231 |
msgid "Plugin Settings"
|
232 |
msgstr "Impostazioni plugin"
|
233 |
|
234 |
-
#: lib/yit-plugin-panel.php:
|
235 |
msgid "YIT Plugins"
|
236 |
msgstr "YIT Plugins"
|
237 |
|
238 |
-
#: lib/yit-plugin-panel.php:
|
239 |
#: templates/panel/woocommerce/woocommerce-form.php:5
|
240 |
msgid "Save Changes"
|
241 |
msgstr "Salva modifiche"
|
242 |
|
243 |
-
#: lib/yit-plugin-panel.php:
|
244 |
msgid "If you continue with this action, you will reset all options in this page."
|
245 |
msgstr ""
|
246 |
"Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
|
247 |
"reimpostate."
|
248 |
|
249 |
-
#: lib/yit-plugin-panel.php:
|
250 |
-
msgid "Reset to
|
251 |
-
msgstr "
|
252 |
|
253 |
-
#: lib/yit-plugin-panel.php:
|
254 |
-
#: templates/panel/woocommerce/woocommerce-form.php:
|
255 |
msgid "Are you sure?"
|
256 |
msgstr "Sei sicuro?"
|
257 |
|
258 |
-
#: lib/yit-plugin-panel.php:
|
259 |
msgid "The element you have entered already exists. Please, enter another name."
|
260 |
msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
|
261 |
|
262 |
-
#: lib/yit-plugin-panel.php:
|
263 |
msgid "Settings saved"
|
264 |
msgstr "Impostazioni salvate"
|
265 |
|
266 |
-
#: lib/yit-plugin-panel.php:
|
267 |
msgid "Settings reset"
|
268 |
msgstr "Impostazioni azzerate"
|
269 |
|
270 |
-
#: lib/yit-plugin-panel.php:
|
271 |
msgid "Element deleted correctly."
|
272 |
msgstr "Elemento rimosso correttamente."
|
273 |
|
274 |
-
#: lib/yit-plugin-panel.php:
|
275 |
msgid "Element updated correctly."
|
276 |
msgstr "Elemento aggiornato correttamente."
|
277 |
|
278 |
-
#: lib/yit-plugin-panel.php:
|
279 |
msgid "Database imported correctly."
|
280 |
msgstr "Database importato correttamente."
|
281 |
|
282 |
-
#: lib/yit-plugin-panel.php:
|
283 |
msgid "An error has occurred during import. Please try again."
|
284 |
msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
|
285 |
|
286 |
-
#: lib/yit-plugin-panel.php:
|
287 |
msgid "The added file is not valid."
|
288 |
msgstr "Il file aggiunto non è valido."
|
289 |
|
290 |
-
#: lib/yit-plugin-panel.php:
|
291 |
msgid "Sorry, import is disabled."
|
292 |
msgstr "Ci dispiace, l'importazione è disabilitata."
|
293 |
|
294 |
-
#: lib/yit-plugin-panel.php:
|
295 |
msgid "Sorting successful."
|
296 |
msgstr "Ordinamento effettuato con successo."
|
297 |
|
298 |
-
#: lib/yit-plugin-subpanel.php:
|
299 |
msgid ""
|
300 |
"If you continue with this action, you will reset all the options in this page."
|
301 |
msgstr ""
|
@@ -367,19 +368,19 @@ msgstr ""
|
|
367 |
msgid "Update now."
|
368 |
msgstr "Aggiorna adesso."
|
369 |
|
370 |
-
#: lib/yit-upgrade.php:
|
371 |
msgid "Yithemes Repository"
|
372 |
msgstr "Repository YIThemes"
|
373 |
|
374 |
-
#: lib/yit-upgrade.php:
|
375 |
msgid "Invalid URL Provided."
|
376 |
msgstr "L'URL inserito non è valido."
|
377 |
|
378 |
-
#: lib/yit-upgrade.php:
|
379 |
msgid "Could not create Temporary file."
|
380 |
msgstr "Non è stato possibile creare il file temporaneo."
|
381 |
|
382 |
-
#: lib/yit-upgrade.php:
|
383 |
#, php-format
|
384 |
msgid ""
|
385 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
@@ -388,7 +389,7 @@ msgstr ""
|
|
388 |
"È disponibile una nuova versione di %1$s. <a href=\"%2$s\" class=\"thickbox yit-"
|
389 |
"changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</a>."
|
390 |
|
391 |
-
#: lib/yit-upgrade.php:
|
392 |
#, php-format
|
393 |
msgid ""
|
394 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
@@ -401,21 +402,16 @@ msgstr ""
|
|
401 |
"<em>Per poter usufruire degli aggiornamenti automatici è necessario attivare il "
|
402 |
"plugin su un solo sito.</em>"
|
403 |
|
404 |
-
#: lib/yit-upgrade.php:
|
405 |
#, php-format
|
406 |
msgid ""
|
407 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
408 |
"changelog-button\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic "
|
409 |
-
"update is unavailable for this plugin, please <a href=\"%5$s\" title=\"
|
410 |
"activation\">activate</a> your copy of %6s.</em>"
|
411 |
msgstr ""
|
412 |
-
"È disponibile una nuova versioni di %1$s. <a href=\"%2$s\" class=\"thickbox yit-"
|
413 |
-
"changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</a>. "
|
414 |
-
"<em>Gli aggiornamenti automatici non sono disponibili per questo plugi, per "
|
415 |
-
"favore, <a href=\"%5$s\" title=\"Licence activation\">attiva</a> la tua copia di "
|
416 |
-
"%6s.</em>"
|
417 |
|
418 |
-
#: lib/yit-upgrade.php:
|
419 |
#, php-format
|
420 |
msgid ""
|
421 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
@@ -426,83 +422,111 @@ msgstr ""
|
|
426 |
"changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</a> "
|
427 |
"oppure <a href=\"%5$s\">aggiorna adesso</a>."
|
428 |
|
429 |
-
#: lib/yit-upgrade.php:
|
430 |
msgid "You can't update the plugins for this site."
|
431 |
msgstr "Non è possibile aggiornare i plugin per questo sito."
|
432 |
|
433 |
-
#: lib/yit-upgrade.php:
|
434 |
msgid "You do not have sufficient permissions to update the plugins for this site."
|
435 |
msgstr ""
|
436 |
"Non sei in possesso delle autorizzazioni necessarie per aggiornare i plugin in "
|
437 |
"questo sito."
|
438 |
|
439 |
-
#: lib/yit-upgrade.php:
|
440 |
msgid "Update Plugin"
|
441 |
msgstr "Aggiorna plugin"
|
442 |
|
443 |
-
#: licence/lib/yit-licence.php:
|
444 |
#, php-format
|
445 |
msgctxt "%s = field name"
|
446 |
msgid "%s field cannot be empty"
|
447 |
msgstr "Il campo %s non può essere vuoto"
|
448 |
|
449 |
-
#: licence/lib/yit-licence.php:
|
450 |
#, php-format
|
451 |
msgid "%s and %s fields cannot be empty"
|
452 |
msgstr "I campi %s e %s non possono essere vuoti"
|
453 |
|
454 |
-
#: licence/lib/yit-licence.php:
|
455 |
msgid "Unable to contact the remote server, please try again later. Thanks!"
|
456 |
msgstr "Impossibile contattare il server remoto, prova più tardi. Grazie!"
|
457 |
|
458 |
-
#: licence/lib/yit-licence.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
459 |
msgid "Invalid Request"
|
460 |
msgstr "Richiesta non valida"
|
461 |
|
462 |
-
#: licence/lib/yit-licence.php:
|
463 |
-
msgid "Invalid
|
464 |
-
msgstr "
|
465 |
|
466 |
-
#: licence/lib/yit-licence.php:
|
467 |
msgid "Software has been deactivated"
|
468 |
msgstr "Il software è stato disattivato"
|
469 |
|
470 |
-
#: licence/lib/yit-licence.php:
|
471 |
msgid "Maximum number of activations exceeded"
|
472 |
msgstr "Hai raggiunto il numero massimo di attivazioni"
|
473 |
|
474 |
-
#: licence/lib/yit-licence.php:
|
475 |
msgid "Invalid instance ID"
|
476 |
msgstr "Istanza ID non valida"
|
477 |
|
478 |
-
#: licence/lib/yit-licence.php:
|
479 |
msgid "Invalid security key"
|
480 |
msgstr "Chiave di sicurezza non valida"
|
481 |
|
482 |
-
#: licence/lib/yit-licence.php:
|
483 |
-
msgid "
|
484 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
485 |
|
486 |
-
#: licence/lib/yit-licence.php:
|
487 |
-
msgid "
|
488 |
-
msgstr "
|
489 |
|
490 |
-
#: licence/lib/yit-plugin-licence.php:
|
491 |
-
#: licence/lib/yit-theme-licence.php:
|
492 |
-
#: licence/lib/yit-theme-licence.php:
|
493 |
-
msgid "
|
494 |
-
msgstr "
|
495 |
|
496 |
-
#: licence/lib/yit-theme-licence.php:
|
497 |
#, php-format
|
498 |
msgid "%s"
|
499 |
msgstr "%s"
|
500 |
|
501 |
-
#: licence/
|
502 |
-
msgid "Yithemes Licence Activation"
|
503 |
-
msgstr "Attivazione licenza YIThemes"
|
504 |
-
|
505 |
-
#: licence/templates/panel/activation/activation-panel.php:23
|
506 |
msgid ""
|
507 |
"I cannot find the license key for activating the theme I have bought some time "
|
508 |
"ago. Where can I find it?"
|
@@ -510,30 +534,25 @@ msgstr ""
|
|
510 |
"Non riesco a trovare la chiave di licenza per l'attivazione del tema che ho "
|
511 |
"acquistato diverso tempo fa. Dove posso trovarla?"
|
512 |
|
513 |
-
#: licence/
|
514 |
msgid ""
|
515 |
"If you have purchased one of our products before 27 January 2015, you can benefit "
|
516 |
"from support and updates (the services offered with the license)\n"
|
517 |
-
"
|
518 |
-
"a new license key, because, before this date, your license used to be
|
519 |
-
"automatically by our system.\n"
|
520 |
-
"
|
521 |
-
"and updates you have to buy a new license and activate it through the
|
522 |
-
"you will be\n"
|
523 |
-
"
|
524 |
-
"section \"My licenses\"."
|
525 |
-
msgstr ""
|
526 |
-
|
527 |
-
|
528 |
-
"
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
"degli aggiornamenti dovrai riacquistare il prodotto e\n"
|
533 |
-
"attivarlo con la chiave di licenza che ti sarà fornita e che puoi trovare sul tuo "
|
534 |
-
"account YIThemes, alla voce \"Le mie licenze\"."
|
535 |
-
|
536 |
-
#: licence/templates/panel/activation/activation-panel.php:37
|
537 |
msgid ""
|
538 |
"Have you updated your licenses? Have you asked for an extension? Update "
|
539 |
"information concerning your products."
|
@@ -541,71 +560,75 @@ msgstr ""
|
|
541 |
"Hai aggiornato la tua licenza? Hai richiesto un'estensione? Aggiorna le "
|
542 |
"informazioni dei tuoi prodotti."
|
543 |
|
544 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
545 |
-
msgid "Update
|
546 |
-
msgstr "
|
547 |
|
548 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
549 |
-
msgid "
|
550 |
-
|
|
|
|
|
551 |
|
552 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
553 |
msgid "Activate"
|
554 |
msgstr "Attiva"
|
555 |
|
556 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
557 |
msgid "Activated"
|
558 |
msgstr "Attivato"
|
559 |
|
560 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
561 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
562 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
563 |
msgid "Product Name"
|
564 |
msgstr "Nome prodotto"
|
565 |
|
566 |
-
#: licence/templates/panel/activation/activation-panel.php:92
|
567 |
-
#: licence/templates/panel/activation/activation-panel.php:124
|
568 |
-
#: licence/templates/panel/activation/activation-panel.php:148
|
569 |
-
#: templates/metaboxes/types/contactform.php:148
|
570 |
-
#: templates/metaboxes/types/contactform.php:340
|
571 |
-
msgid "Email"
|
572 |
-
msgstr "Email"
|
573 |
-
|
574 |
#: licence/templates/panel/activation/activation-panel.php:93
|
575 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
576 |
-
#: licence/templates/panel/activation/activation-panel.php:149
|
577 |
-
msgid "Licence Key"
|
578 |
-
msgstr "Chiave di licenza"
|
579 |
-
|
580 |
-
#: licence/templates/panel/activation/activation-panel.php:94
|
581 |
-
#: licence/templates/panel/activation/activation-panel.php:150
|
582 |
msgid "Expires"
|
583 |
msgstr "Scadenza"
|
584 |
|
585 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
586 |
msgid "Remaining"
|
587 |
msgstr "Tempo rimanente"
|
588 |
|
589 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
590 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
591 |
-
|
592 |
-
|
593 |
-
msgid "Renew"
|
594 |
-
msgstr "Rinnova"
|
595 |
|
596 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
|
|
|
|
|
|
|
|
597 |
#, php-format
|
598 |
msgid "%1s out of %2s"
|
599 |
msgstr "%1s di %2s"
|
600 |
|
601 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
602 |
msgid "Banned"
|
603 |
msgstr "Bloccato"
|
604 |
|
605 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
606 |
msgid "Expired"
|
607 |
msgstr "Non più valido"
|
608 |
|
|
|
|
|
|
|
|
|
609 |
#: templates/metaboxes/types/ajax-products.php:23
|
610 |
msgid "Search for a product"
|
611 |
msgstr "Cerca un prodotto"
|
@@ -802,7 +825,7 @@ msgstr "Icona"
|
|
802 |
#: templates/metaboxes/types/icon-list.php:69
|
803 |
#: templates/metaboxes/types/select-icon.php:33
|
804 |
#: templates/metaboxes/types/upload.php:21 templates/panel/types/upload.php:31
|
805 |
-
#: templates/panel/woocommerce/woocommerce-upload.php:
|
806 |
msgid "Upload"
|
807 |
msgstr "Carica"
|
808 |
|
@@ -970,10 +993,77 @@ msgstr "Corsivo"
|
|
970 |
msgid "Italic bold"
|
971 |
msgstr "Grassetto corsivo"
|
972 |
|
973 |
-
#: templates/panel/woocommerce/woocommerce-form.php:
|
974 |
msgid "Reset Defaults"
|
975 |
msgstr "Ripristina impostazioni iniziali"
|
976 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
977 |
#~ msgid "%field_1% and %field_2% fields cannot be empty"
|
978 |
#~ msgstr "I campi %field_1% e %field_2% non possono essere vuoti"
|
979 |
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
|
6 |
"Report-Msgid-Bugs-To: Your Inspiration Themes <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2015-11-16 12:23+0100\n"
|
8 |
+
"PO-Revision-Date: 2015-11-16 12:24+0100\n"
|
9 |
"Last-Translator: \n"
|
10 |
+
"Language-Team: YIThemes <plugins@yithemes.com>\n"
|
11 |
+
"Language: it_IT\n"
|
12 |
"MIME-Version: 1.0\n"
|
13 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
"Content-Transfer-Encoding: 8bit\n"
|
15 |
+
"X-Generator: Poedit 1.8.1\n"
|
16 |
"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
|
17 |
"_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
|
18 |
"esc_html_x:1,2c\n"
|
136 |
msgstr "Tipologia"
|
137 |
|
138 |
#: lib/yit-cpt-unlimited.php:1052
|
139 |
+
#, php-format
|
140 |
+
msgid "Layout for this %s"
|
141 |
+
msgstr ""
|
142 |
|
143 |
#: lib/yit-cpt-unlimited.php:1058
|
144 |
msgid "Rewrite"
|
221 |
msgstr "Aggiungi %s dalla immagini"
|
222 |
|
223 |
#: lib/yit-cpt-unlimited.php:1633
|
224 |
+
msgid "Upload multiple files"
|
225 |
+
msgstr ""
|
226 |
|
227 |
+
#: lib/yit-plugin-panel-wc.php:336
|
228 |
msgid "The changes you have made will be lost if you leave this page."
|
229 |
msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
|
230 |
|
232 |
msgid "Plugin Settings"
|
233 |
msgstr "Impostazioni plugin"
|
234 |
|
235 |
+
#: lib/yit-plugin-panel.php:96 lib/yit-plugin-subpanel.php:101
|
236 |
msgid "YIT Plugins"
|
237 |
msgstr "YIT Plugins"
|
238 |
|
239 |
+
#: lib/yit-plugin-panel.php:288 lib/yit-plugin-subpanel.php:143
|
240 |
#: templates/panel/woocommerce/woocommerce-form.php:5
|
241 |
msgid "Save Changes"
|
242 |
msgstr "Salva modifiche"
|
243 |
|
244 |
+
#: lib/yit-plugin-panel.php:291 templates/panel/woocommerce/woocommerce-form.php:8
|
245 |
msgid "If you continue with this action, you will reset all options in this page."
|
246 |
msgstr ""
|
247 |
"Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
|
248 |
"reimpostate."
|
249 |
|
250 |
+
#: lib/yit-plugin-panel.php:293 lib/yit-plugin-subpanel.php:148
|
251 |
+
msgid "Reset to default"
|
252 |
+
msgstr ""
|
253 |
|
254 |
+
#: lib/yit-plugin-panel.php:293 lib/yit-plugin-subpanel.php:148
|
255 |
+
#: templates/panel/woocommerce/woocommerce-form.php:11
|
256 |
msgid "Are you sure?"
|
257 |
msgstr "Sei sicuro?"
|
258 |
|
259 |
+
#: lib/yit-plugin-panel.php:427
|
260 |
msgid "The element you have entered already exists. Please, enter another name."
|
261 |
msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
|
262 |
|
263 |
+
#: lib/yit-plugin-panel.php:428
|
264 |
msgid "Settings saved"
|
265 |
msgstr "Impostazioni salvate"
|
266 |
|
267 |
+
#: lib/yit-plugin-panel.php:429
|
268 |
msgid "Settings reset"
|
269 |
msgstr "Impostazioni azzerate"
|
270 |
|
271 |
+
#: lib/yit-plugin-panel.php:430
|
272 |
msgid "Element deleted correctly."
|
273 |
msgstr "Elemento rimosso correttamente."
|
274 |
|
275 |
+
#: lib/yit-plugin-panel.php:431 lib/yit-plugin-panel.php:432
|
276 |
msgid "Element updated correctly."
|
277 |
msgstr "Elemento aggiornato correttamente."
|
278 |
|
279 |
+
#: lib/yit-plugin-panel.php:433
|
280 |
msgid "Database imported correctly."
|
281 |
msgstr "Database importato correttamente."
|
282 |
|
283 |
+
#: lib/yit-plugin-panel.php:434
|
284 |
msgid "An error has occurred during import. Please try again."
|
285 |
msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
|
286 |
|
287 |
+
#: lib/yit-plugin-panel.php:435
|
288 |
msgid "The added file is not valid."
|
289 |
msgstr "Il file aggiunto non è valido."
|
290 |
|
291 |
+
#: lib/yit-plugin-panel.php:436
|
292 |
msgid "Sorry, import is disabled."
|
293 |
msgstr "Ci dispiace, l'importazione è disabilitata."
|
294 |
|
295 |
+
#: lib/yit-plugin-panel.php:437
|
296 |
msgid "Sorting successful."
|
297 |
msgstr "Ordinamento effettuato con successo."
|
298 |
|
299 |
+
#: lib/yit-plugin-subpanel.php:146
|
300 |
msgid ""
|
301 |
"If you continue with this action, you will reset all the options in this page."
|
302 |
msgstr ""
|
368 |
msgid "Update now."
|
369 |
msgstr "Aggiorna adesso."
|
370 |
|
371 |
+
#: lib/yit-upgrade.php:250
|
372 |
msgid "Yithemes Repository"
|
373 |
msgstr "Repository YIThemes"
|
374 |
|
375 |
+
#: lib/yit-upgrade.php:284
|
376 |
msgid "Invalid URL Provided."
|
377 |
msgstr "L'URL inserito non è valido."
|
378 |
|
379 |
+
#: lib/yit-upgrade.php:297
|
380 |
msgid "Could not create Temporary file."
|
381 |
msgstr "Non è stato possibile creare il file temporaneo."
|
382 |
|
383 |
+
#: lib/yit-upgrade.php:439
|
384 |
#, php-format
|
385 |
msgid ""
|
386 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
389 |
"È disponibile una nuova versione di %1$s. <a href=\"%2$s\" class=\"thickbox yit-"
|
390 |
"changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</a>."
|
391 |
|
392 |
+
#: lib/yit-upgrade.php:441
|
393 |
#, php-format
|
394 |
msgid ""
|
395 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
402 |
"<em>Per poter usufruire degli aggiornamenti automatici è necessario attivare il "
|
403 |
"plugin su un solo sito.</em>"
|
404 |
|
405 |
+
#: lib/yit-upgrade.php:443
|
406 |
#, php-format
|
407 |
msgid ""
|
408 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
409 |
"changelog-button\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic "
|
410 |
+
"update is unavailable for this plugin, please <a href=\"%5$s\" title=\"License "
|
411 |
"activation\">activate</a> your copy of %6s.</em>"
|
412 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
413 |
|
414 |
+
#: lib/yit-upgrade.php:445
|
415 |
#, php-format
|
416 |
msgid ""
|
417 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
422 |
"changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</a> "
|
423 |
"oppure <a href=\"%5$s\">aggiorna adesso</a>."
|
424 |
|
425 |
+
#: lib/yit-upgrade.php:518
|
426 |
msgid "You can't update the plugins for this site."
|
427 |
msgstr "Non è possibile aggiornare i plugin per questo sito."
|
428 |
|
429 |
+
#: lib/yit-upgrade.php:522
|
430 |
msgid "You do not have sufficient permissions to update the plugins for this site."
|
431 |
msgstr ""
|
432 |
"Non sei in possesso delle autorizzazioni necessarie per aggiornare i plugin in "
|
433 |
"questo sito."
|
434 |
|
435 |
+
#: lib/yit-upgrade.php:529
|
436 |
msgid "Update Plugin"
|
437 |
msgstr "Aggiorna plugin"
|
438 |
|
439 |
+
#: licence/lib/yit-licence.php:170
|
440 |
#, php-format
|
441 |
msgctxt "%s = field name"
|
442 |
msgid "%s field cannot be empty"
|
443 |
msgstr "Il campo %s non può essere vuoto"
|
444 |
|
445 |
+
#: licence/lib/yit-licence.php:171
|
446 |
#, php-format
|
447 |
msgid "%s and %s fields cannot be empty"
|
448 |
msgstr "I campi %s e %s non possono essere vuoti"
|
449 |
|
450 |
+
#: licence/lib/yit-licence.php:172
|
451 |
msgid "Unable to contact the remote server, please try again later. Thanks!"
|
452 |
msgstr "Impossibile contattare il server remoto, prova più tardi. Grazie!"
|
453 |
|
454 |
+
#: licence/lib/yit-licence.php:173
|
455 |
+
#: licence/templates/panel/activation/activation-panel.php:89
|
456 |
+
#: licence/templates/panel/activation/activation-panel.php:164
|
457 |
+
#: licence/templates/panel/activation/activation-panel.php:195
|
458 |
+
#: templates/metaboxes/types/contactform.php:148
|
459 |
+
#: templates/metaboxes/types/contactform.php:340
|
460 |
+
msgid "Email"
|
461 |
+
msgstr "Email"
|
462 |
+
|
463 |
+
#: licence/lib/yit-licence.php:174
|
464 |
+
#: licence/templates/panel/activation/activation-panel.php:90
|
465 |
+
#: licence/templates/panel/activation/activation-panel.php:165
|
466 |
+
#: licence/templates/panel/activation/activation-panel.php:196
|
467 |
+
msgid "License Key"
|
468 |
+
msgstr ""
|
469 |
+
|
470 |
+
#: licence/lib/yit-licence.php:175
|
471 |
+
msgid "Are you sure you want to deactivate the license for current site?"
|
472 |
+
msgstr ""
|
473 |
+
|
474 |
+
#: licence/lib/yit-licence.php:638
|
475 |
msgid "Invalid Request"
|
476 |
msgstr "Richiesta non valida"
|
477 |
|
478 |
+
#: licence/lib/yit-licence.php:639
|
479 |
+
msgid "Invalid license key"
|
480 |
+
msgstr ""
|
481 |
|
482 |
+
#: licence/lib/yit-licence.php:640
|
483 |
msgid "Software has been deactivated"
|
484 |
msgstr "Il software è stato disattivato"
|
485 |
|
486 |
+
#: licence/lib/yit-licence.php:641
|
487 |
msgid "Maximum number of activations exceeded"
|
488 |
msgstr "Hai raggiunto il numero massimo di attivazioni"
|
489 |
|
490 |
+
#: licence/lib/yit-licence.php:642
|
491 |
msgid "Invalid instance ID"
|
492 |
msgstr "Istanza ID non valida"
|
493 |
|
494 |
+
#: licence/lib/yit-licence.php:643
|
495 |
msgid "Invalid security key"
|
496 |
msgstr "Chiave di sicurezza non valida"
|
497 |
|
498 |
+
#: licence/lib/yit-licence.php:644
|
499 |
+
msgid "License key has expired"
|
500 |
+
msgstr ""
|
501 |
+
|
502 |
+
#: licence/lib/yit-licence.php:645
|
503 |
+
msgid "License key has been banned"
|
504 |
+
msgstr ""
|
505 |
+
|
506 |
+
#: licence/lib/yit-licence.php:646
|
507 |
+
msgid "Great"
|
508 |
+
msgstr ""
|
509 |
+
|
510 |
+
#: licence/lib/yit-licence.php:646
|
511 |
+
msgid "License successfully activated"
|
512 |
+
msgstr ""
|
513 |
|
514 |
+
#: licence/lib/yit-licence.php:647
|
515 |
+
msgid "License key deactivated for website"
|
516 |
+
msgstr ""
|
517 |
|
518 |
+
#: licence/lib/yit-plugin-licence.php:68 licence/lib/yit-plugin-licence.php:69
|
519 |
+
#: licence/lib/yit-theme-licence.php:70 licence/lib/yit-theme-licence.php:71
|
520 |
+
#: licence/lib/yit-theme-licence.php:110 licence/lib/yit-theme-licence.php:111
|
521 |
+
msgid "License Activation"
|
522 |
+
msgstr ""
|
523 |
|
524 |
+
#: licence/lib/yit-theme-licence.php:118 licence/lib/yit-theme-licence.php:119
|
525 |
#, php-format
|
526 |
msgid "%s"
|
527 |
msgstr "%s"
|
528 |
|
529 |
+
#: licence/lib/yit-theme-licence.php:160
|
|
|
|
|
|
|
|
|
530 |
msgid ""
|
531 |
"I cannot find the license key for activating the theme I have bought some time "
|
532 |
"ago. Where can I find it?"
|
534 |
"Non riesco a trovare la chiave di licenza per l'attivazione del tema che ho "
|
535 |
"acquistato diverso tempo fa. Dove posso trovarla?"
|
536 |
|
537 |
+
#: licence/lib/yit-theme-licence.php:163
|
538 |
msgid ""
|
539 |
"If you have purchased one of our products before 27 January 2015, you can benefit "
|
540 |
"from support and updates (the services offered with the license)\n"
|
541 |
+
" until 27 January 2016 and you do not have to purchase it again "
|
542 |
+
"to get a new license key, because, before this date, your license used to be "
|
543 |
+
"activated automatically by our system.\n"
|
544 |
+
" After 27 January 2016, instead, if you want to benefit from "
|
545 |
+
"support and updates you have to buy a new license and activate it through the "
|
546 |
+
"license key you will be\n"
|
547 |
+
" provided with and that you can find in your YIThemes account, "
|
548 |
+
"in section \"My licenses\"."
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: licence/templates/panel/activation/activation-panel.php:22
|
552 |
+
msgid "Yithemes License Activation"
|
553 |
+
msgstr ""
|
554 |
+
|
555 |
+
#: licence/templates/panel/activation/activation-panel.php:28
|
|
|
|
|
|
|
|
|
|
|
556 |
msgid ""
|
557 |
"Have you updated your licenses? Have you asked for an extension? Update "
|
558 |
"information concerning your products."
|
560 |
"Hai aggiornato la tua licenza? Hai richiesto un'estensione? Aggiorna le "
|
561 |
"informazioni dei tuoi prodotti."
|
562 |
|
563 |
+
#: licence/templates/panel/activation/activation-panel.php:30
|
564 |
+
msgid "Update license information"
|
565 |
+
msgstr ""
|
566 |
|
567 |
+
#: licence/templates/panel/activation/activation-panel.php:43
|
568 |
+
msgid "Product to activate"
|
569 |
+
msgid_plural "Products to activate"
|
570 |
+
msgstr[0] ""
|
571 |
+
msgstr[1] ""
|
572 |
|
573 |
+
#: licence/templates/panel/activation/activation-panel.php:62
|
574 |
msgid "Activate"
|
575 |
msgstr "Attiva"
|
576 |
|
577 |
+
#: licence/templates/panel/activation/activation-panel.php:81
|
578 |
msgid "Activated"
|
579 |
msgstr "Attivato"
|
580 |
|
581 |
+
#: licence/templates/panel/activation/activation-panel.php:87
|
582 |
+
#: licence/templates/panel/activation/activation-panel.php:162
|
583 |
+
#: licence/templates/panel/activation/activation-panel.php:192
|
584 |
msgid "Product Name"
|
585 |
msgstr "Nome prodotto"
|
586 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
587 |
#: licence/templates/panel/activation/activation-panel.php:93
|
588 |
+
#: licence/templates/panel/activation/activation-panel.php:199
|
|
|
|
|
|
|
|
|
|
|
|
|
589 |
msgid "Expires"
|
590 |
msgstr "Scadenza"
|
591 |
|
592 |
+
#: licence/templates/panel/activation/activation-panel.php:96
|
593 |
msgid "Remaining"
|
594 |
msgstr "Tempo rimanente"
|
595 |
|
596 |
+
#: licence/templates/panel/activation/activation-panel.php:97
|
597 |
+
#: licence/templates/panel/activation/activation-panel.php:223
|
598 |
+
msgid "Membership"
|
599 |
+
msgstr ""
|
|
|
|
|
600 |
|
601 |
+
#: licence/templates/panel/activation/activation-panel.php:100
|
602 |
+
msgid "License Actions"
|
603 |
+
msgstr ""
|
604 |
+
|
605 |
+
#: licence/templates/panel/activation/activation-panel.php:125
|
606 |
#, php-format
|
607 |
msgid "%1s out of %2s"
|
608 |
msgstr "%1s di %2s"
|
609 |
|
610 |
+
#: licence/templates/panel/activation/activation-panel.php:140
|
611 |
+
msgid "Deactivate"
|
612 |
+
msgstr ""
|
613 |
+
|
614 |
+
#: licence/templates/panel/activation/activation-panel.php:145
|
615 |
+
#: licence/templates/panel/activation/activation-panel.php:202
|
616 |
+
#: licence/templates/panel/activation/activation-panel.php:223
|
617 |
+
msgid "Renew"
|
618 |
+
msgstr "Rinnova"
|
619 |
+
|
620 |
+
#: licence/templates/panel/activation/activation-panel.php:158
|
621 |
msgid "Banned"
|
622 |
msgstr "Bloccato"
|
623 |
|
624 |
+
#: licence/templates/panel/activation/activation-panel.php:188
|
625 |
msgid "Expired"
|
626 |
msgstr "Non più valido"
|
627 |
|
628 |
+
#: licence/templates/panel/activation/activation-panel.php:223
|
629 |
+
msgid "License"
|
630 |
+
msgstr ""
|
631 |
+
|
632 |
#: templates/metaboxes/types/ajax-products.php:23
|
633 |
msgid "Search for a product"
|
634 |
msgstr "Cerca un prodotto"
|
825 |
#: templates/metaboxes/types/icon-list.php:69
|
826 |
#: templates/metaboxes/types/select-icon.php:33
|
827 |
#: templates/metaboxes/types/upload.php:21 templates/panel/types/upload.php:31
|
828 |
+
#: templates/panel/woocommerce/woocommerce-upload.php:40
|
829 |
msgid "Upload"
|
830 |
msgstr "Carica"
|
831 |
|
993 |
msgid "Italic bold"
|
994 |
msgstr "Grassetto corsivo"
|
995 |
|
996 |
+
#: templates/panel/woocommerce/woocommerce-form.php:11
|
997 |
msgid "Reset Defaults"
|
998 |
msgstr "Ripristina impostazioni iniziali"
|
999 |
|
1000 |
+
#~ msgid "Layout for this "
|
1001 |
+
#~ msgstr "Layout per questo"
|
1002 |
+
|
1003 |
+
#~ msgid "Add with multiupload"
|
1004 |
+
#~ msgstr "Aggiungi con caricamento multiplo"
|
1005 |
+
|
1006 |
+
#~ msgid "Reset to Default"
|
1007 |
+
#~ msgstr "Ripristina impostazioni iniziali"
|
1008 |
+
|
1009 |
+
#~ msgid ""
|
1010 |
+
#~ "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
1011 |
+
#~ "changelog-button\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic "
|
1012 |
+
#~ "update is unavailable for this plugin, please <a href=\"%5$s\" title=\"Licence "
|
1013 |
+
#~ "activation\">activate</a> your copy of %6s.</em>"
|
1014 |
+
#~ msgstr ""
|
1015 |
+
#~ "È disponibile una nuova versioni di %1$s. <a href=\"%2$s\" class=\"thickbox yit-"
|
1016 |
+
#~ "changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</"
|
1017 |
+
#~ "a>. <em>Gli aggiornamenti automatici non sono disponibili per questo plugi, per "
|
1018 |
+
#~ "favore, <a href=\"%5$s\" title=\"Licence activation\">attiva</a> la tua copia "
|
1019 |
+
#~ "di %6s.</em>"
|
1020 |
+
|
1021 |
+
#~ msgid "Invalid licence key"
|
1022 |
+
#~ msgstr "Chiave di licenza non valida"
|
1023 |
+
|
1024 |
+
#~ msgid "Licence key has expired"
|
1025 |
+
#~ msgstr "Questa chiave di licenza è scaduta"
|
1026 |
+
|
1027 |
+
#~ msgid "Licence key has been banned"
|
1028 |
+
#~ msgstr "Questa chiave di licenza è stata bloccata"
|
1029 |
+
|
1030 |
+
#~ msgid "Licence Activation"
|
1031 |
+
#~ msgstr "Attivazione licenza"
|
1032 |
+
|
1033 |
+
#~ msgid "Yithemes Licence Activation"
|
1034 |
+
#~ msgstr "Attivazione licenza YIThemes"
|
1035 |
+
|
1036 |
+
#~ msgid ""
|
1037 |
+
#~ "If you have purchased one of our products before 27 January 2015, you can "
|
1038 |
+
#~ "benefit from support and updates (the services offered with the license)\n"
|
1039 |
+
#~ " until 27 January 2016 and you do not have to purchase it again to "
|
1040 |
+
#~ "get a new license key, because, before this date, your license used to be "
|
1041 |
+
#~ "activated automatically by our system.\n"
|
1042 |
+
#~ " After 27 January 2016, instead, if you want to benefit from support "
|
1043 |
+
#~ "and updates you have to buy a new license and activate it through the license "
|
1044 |
+
#~ "key you will be\n"
|
1045 |
+
#~ " provided with and that you can find in your YIThemes account, in "
|
1046 |
+
#~ "section \"My licenses\"."
|
1047 |
+
#~ msgstr ""
|
1048 |
+
#~ "Se hai acquistato un nostro prodotto prima del 27 gennaio 2015 potrai accedere "
|
1049 |
+
#~ "al supporto e scaricare gli aggiornamenti fino al 27 gennaio 2016 e non avrai "
|
1050 |
+
#~ "bisogno di una chiave di licenza,\n"
|
1051 |
+
#~ "in quanto la tua licenza prima di questa data veniva attivata in modo "
|
1052 |
+
#~ "automatico dal nostro sistema.\n"
|
1053 |
+
#~ "Dopo il 27 gennaio 2016, invece, per poter usufruire del servizio di supporto e "
|
1054 |
+
#~ "degli aggiornamenti dovrai riacquistare il prodotto e\n"
|
1055 |
+
#~ "attivarlo con la chiave di licenza che ti sarà fornita e che puoi trovare sul "
|
1056 |
+
#~ "tuo account YIThemes, alla voce \"Le mie licenze\"."
|
1057 |
+
|
1058 |
+
#~ msgid "Update licence information"
|
1059 |
+
#~ msgstr "Aggiorna le informazioni di licenza"
|
1060 |
+
|
1061 |
+
#~ msgid "Products to be activated"
|
1062 |
+
#~ msgstr "Prodotti da attivare"
|
1063 |
+
|
1064 |
+
#~ msgid "Licence Key"
|
1065 |
+
#~ msgstr "Chiave di licenza"
|
1066 |
+
|
1067 |
#~ msgid "%field_1% and %field_2% fields cannot be empty"
|
1068 |
#~ msgstr "I campi %field_1% e %field_2% non possono essere vuoti"
|
1069 |
|
plugin-fw/languages/yith-plugin-fw.pot
CHANGED
@@ -1,10 +1,11 @@
|
|
1 |
# Copyright (C) 2015 YIThemes
|
2 |
# This file is distributed under the same license as the YITH Plugin Starter package.
|
|
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
|
6 |
"Report-Msgid-Bugs-To: Your Inspiration Themes <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2015-
|
8 |
"PO-Revision-Date: 2015-05-05 10:38+0100\n"
|
9 |
"Last-Translator: \n"
|
10 |
"Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
|
@@ -12,7 +13,7 @@ msgstr ""
|
|
12 |
"MIME-Version: 1.0\n"
|
13 |
"Content-Type: text/plain; charset=utf-8\n"
|
14 |
"Content-Transfer-Encoding: 8bit\n"
|
15 |
-
"X-Generator: Poedit 1.
|
16 |
"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
|
17 |
"_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
|
18 |
"esc_html_x:1,2c\n"
|
@@ -136,7 +137,8 @@ msgid "Type"
|
|
136 |
msgstr ""
|
137 |
|
138 |
#: lib/yit-cpt-unlimited.php:1052
|
139 |
-
|
|
|
140 |
msgstr ""
|
141 |
|
142 |
#: lib/yit-cpt-unlimited.php:1058
|
@@ -215,10 +217,10 @@ msgid "Add %s from images"
|
|
215 |
msgstr ""
|
216 |
|
217 |
#: lib/yit-cpt-unlimited.php:1633
|
218 |
-
msgid "
|
219 |
msgstr ""
|
220 |
|
221 |
-
#: lib/yit-plugin-panel-wc.php:
|
222 |
msgid "The changes you have made will be lost if you leave this page."
|
223 |
msgstr ""
|
224 |
|
@@ -226,69 +228,69 @@ msgstr ""
|
|
226 |
msgid "Plugin Settings"
|
227 |
msgstr ""
|
228 |
|
229 |
-
#: lib/yit-plugin-panel.php:
|
230 |
msgid "YIT Plugins"
|
231 |
msgstr ""
|
232 |
|
233 |
-
#: lib/yit-plugin-panel.php:
|
234 |
#: templates/panel/woocommerce/woocommerce-form.php:5
|
235 |
msgid "Save Changes"
|
236 |
msgstr ""
|
237 |
|
238 |
-
#: lib/yit-plugin-panel.php:
|
239 |
msgid "If you continue with this action, you will reset all options in this page."
|
240 |
msgstr ""
|
241 |
|
242 |
-
#: lib/yit-plugin-panel.php:
|
243 |
-
msgid "Reset to
|
244 |
msgstr ""
|
245 |
|
246 |
-
#: lib/yit-plugin-panel.php:
|
247 |
-
#: templates/panel/woocommerce/woocommerce-form.php:
|
248 |
msgid "Are you sure?"
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: lib/yit-plugin-panel.php:
|
252 |
msgid "The element you have entered already exists. Please, enter another name."
|
253 |
msgstr ""
|
254 |
|
255 |
-
#: lib/yit-plugin-panel.php:
|
256 |
msgid "Settings saved"
|
257 |
msgstr ""
|
258 |
|
259 |
-
#: lib/yit-plugin-panel.php:
|
260 |
msgid "Settings reset"
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: lib/yit-plugin-panel.php:
|
264 |
msgid "Element deleted correctly."
|
265 |
msgstr ""
|
266 |
|
267 |
-
#: lib/yit-plugin-panel.php:
|
268 |
msgid "Element updated correctly."
|
269 |
msgstr ""
|
270 |
|
271 |
-
#: lib/yit-plugin-panel.php:
|
272 |
msgid "Database imported correctly."
|
273 |
msgstr ""
|
274 |
|
275 |
-
#: lib/yit-plugin-panel.php:
|
276 |
msgid "An error has occurred during import. Please try again."
|
277 |
msgstr ""
|
278 |
|
279 |
-
#: lib/yit-plugin-panel.php:
|
280 |
msgid "The added file is not valid."
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: lib/yit-plugin-panel.php:
|
284 |
msgid "Sorry, import is disabled."
|
285 |
msgstr ""
|
286 |
|
287 |
-
#: lib/yit-plugin-panel.php:
|
288 |
msgid "Sorting successful."
|
289 |
msgstr ""
|
290 |
|
291 |
-
#: lib/yit-plugin-subpanel.php:
|
292 |
msgid ""
|
293 |
"If you continue with this action, you will reset all the options in this page."
|
294 |
msgstr ""
|
@@ -347,26 +349,26 @@ msgstr ""
|
|
347 |
msgid "Update now."
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: lib/yit-upgrade.php:
|
351 |
msgid "Yithemes Repository"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: lib/yit-upgrade.php:
|
355 |
msgid "Invalid URL Provided."
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: lib/yit-upgrade.php:
|
359 |
msgid "Could not create Temporary file."
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: lib/yit-upgrade.php:
|
363 |
#, php-format
|
364 |
msgid ""
|
365 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
366 |
"changelog-button\" title=\"%3$s\">View version %4$s details</a>."
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: lib/yit-upgrade.php:
|
370 |
#, php-format
|
371 |
msgid ""
|
372 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
@@ -375,16 +377,16 @@ msgid ""
|
|
375 |
"updates.</em>"
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: lib/yit-upgrade.php:
|
379 |
#, php-format
|
380 |
msgid ""
|
381 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
382 |
"changelog-button\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic "
|
383 |
-
"update is unavailable for this plugin, please <a href=\"%5$s\" title=\"
|
384 |
"activation\">activate</a> your copy of %6s.</em>"
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: lib/yit-upgrade.php:
|
388 |
#, php-format
|
389 |
msgid ""
|
390 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
@@ -392,169 +394,207 @@ msgid ""
|
|
392 |
"\">update now</a>."
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: lib/yit-upgrade.php:
|
396 |
msgid "You can't update the plugins for this site."
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: lib/yit-upgrade.php:
|
400 |
msgid "You do not have sufficient permissions to update the plugins for this site."
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: lib/yit-upgrade.php:
|
404 |
msgid "Update Plugin"
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: licence/lib/yit-licence.php:
|
408 |
#, php-format
|
409 |
-
|
|
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: licence/lib/yit-licence.php:
|
413 |
-
|
|
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: licence/lib/yit-licence.php:
|
417 |
msgid "Unable to contact the remote server, please try again later. Thanks!"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: licence/lib/yit-licence.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
421 |
msgid "Invalid Request"
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: licence/lib/yit-licence.php:
|
425 |
-
msgid "Invalid
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: licence/lib/yit-licence.php:
|
429 |
msgid "Software has been deactivated"
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: licence/lib/yit-licence.php:
|
433 |
msgid "Maximum number of activations exceeded"
|
434 |
msgstr ""
|
435 |
|
436 |
-
#: licence/lib/yit-licence.php:
|
437 |
msgid "Invalid instance ID"
|
438 |
msgstr ""
|
439 |
|
440 |
-
#: licence/lib/yit-licence.php:
|
441 |
msgid "Invalid security key"
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: licence/lib/yit-licence.php:
|
445 |
-
msgid "
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: licence/lib/yit-licence.php:
|
449 |
-
msgid "
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: licence/lib/yit-
|
453 |
-
|
454 |
-
#: licence/lib/yit-theme-licence.php:107 licence/lib/yit-theme-licence.php:108
|
455 |
-
msgid "Licence Activation"
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: licence/lib/yit-
|
459 |
-
|
460 |
-
msgid "%s"
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: licence/
|
464 |
-
msgid "
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: licence/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
468 |
msgid ""
|
469 |
"I cannot find the license key for activating the theme I have bought some time "
|
470 |
"ago. Where can I find it?"
|
471 |
msgstr ""
|
472 |
|
473 |
-
#: licence/
|
474 |
msgid ""
|
475 |
"If you have purchased one of our products before 27 January 2015, you can benefit "
|
476 |
"from support and updates (the services offered with the license)\n"
|
477 |
-
"
|
478 |
-
"a new license key, because, before this date, your license used to be
|
479 |
-
"automatically by our system.\n"
|
480 |
-
"
|
481 |
-
"and updates you have to buy a new license and activate it through the
|
482 |
-
"you will be\n"
|
483 |
-
"
|
484 |
-
"section \"My licenses\"."
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
|
|
|
|
|
|
|
|
488 |
msgid ""
|
489 |
"Have you updated your licenses? Have you asked for an extension? Update "
|
490 |
"information concerning your products."
|
491 |
msgstr ""
|
492 |
|
493 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
494 |
-
msgid "Update
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
498 |
-
msgid "
|
499 |
-
|
|
|
|
|
500 |
|
501 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
502 |
msgid "Activate"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
506 |
msgid "Activated"
|
507 |
msgstr ""
|
508 |
|
509 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
510 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
511 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
512 |
msgid "Product Name"
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: licence/templates/panel/activation/activation-panel.php:92
|
516 |
-
#: licence/templates/panel/activation/activation-panel.php:124
|
517 |
-
#: licence/templates/panel/activation/activation-panel.php:148
|
518 |
-
#: templates/metaboxes/types/contactform.php:148
|
519 |
-
#: templates/metaboxes/types/contactform.php:340
|
520 |
-
msgid "Email"
|
521 |
-
msgstr ""
|
522 |
-
|
523 |
#: licence/templates/panel/activation/activation-panel.php:93
|
524 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
525 |
-
#: licence/templates/panel/activation/activation-panel.php:149
|
526 |
-
msgid "Licence Key"
|
527 |
-
msgstr ""
|
528 |
-
|
529 |
-
#: licence/templates/panel/activation/activation-panel.php:94
|
530 |
-
#: licence/templates/panel/activation/activation-panel.php:150
|
531 |
msgid "Expires"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
535 |
msgid "Remaining"
|
536 |
msgstr ""
|
537 |
|
538 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
539 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
540 |
-
|
541 |
-
|
542 |
-
|
|
|
|
|
543 |
msgstr ""
|
544 |
|
545 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
546 |
#, php-format
|
547 |
msgid "%1s out of %2s"
|
548 |
msgstr ""
|
549 |
|
550 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
551 |
msgid "Banned"
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: licence/templates/panel/activation/activation-panel.php:
|
555 |
msgid "Expired"
|
556 |
msgstr ""
|
557 |
|
|
|
|
|
|
|
|
|
558 |
#: templates/metaboxes/types/ajax-products.php:23
|
559 |
msgid "Search for a product"
|
560 |
msgstr ""
|
@@ -630,7 +670,7 @@ msgstr ""
|
|
630 |
|
631 |
#: templates/metaboxes/types/contactform.php:77
|
632 |
#: templates/metaboxes/types/contactform.php:269
|
633 |
-
msgid "Title
|
634 |
msgstr ""
|
635 |
|
636 |
#: templates/metaboxes/types/contactform.php:81
|
@@ -652,7 +692,7 @@ msgstr ""
|
|
652 |
|
653 |
#: templates/metaboxes/types/contactform.php:95
|
654 |
#: templates/metaboxes/types/contactform.php:287
|
655 |
-
msgid "Type
|
656 |
msgstr ""
|
657 |
|
658 |
#: templates/metaboxes/types/contactform.php:103
|
@@ -747,7 +787,7 @@ msgstr ""
|
|
747 |
#: templates/metaboxes/types/icon-list.php:69
|
748 |
#: templates/metaboxes/types/select-icon.php:33
|
749 |
#: templates/metaboxes/types/upload.php:21 templates/panel/types/upload.php:31
|
750 |
-
#: templates/panel/woocommerce/woocommerce-upload.php:
|
751 |
msgid "Upload"
|
752 |
msgstr ""
|
753 |
|
@@ -915,6 +955,6 @@ msgstr ""
|
|
915 |
msgid "Italic bold"
|
916 |
msgstr ""
|
917 |
|
918 |
-
#: templates/panel/woocommerce/woocommerce-form.php:
|
919 |
msgid "Reset Defaults"
|
920 |
msgstr ""
|
1 |
# Copyright (C) 2015 YIThemes
|
2 |
# This file is distributed under the same license as the YITH Plugin Starter package.
|
3 |
+
#, fuzzy
|
4 |
msgid ""
|
5 |
msgstr ""
|
6 |
"Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
|
7 |
"Report-Msgid-Bugs-To: Your Inspiration Themes <plugins@yithemes.com>\n"
|
8 |
+
"POT-Creation-Date: 2015-11-16 12:23+0100\n"
|
9 |
"PO-Revision-Date: 2015-05-05 10:38+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
|
13 |
"MIME-Version: 1.0\n"
|
14 |
"Content-Type: text/plain; charset=utf-8\n"
|
15 |
"Content-Transfer-Encoding: 8bit\n"
|
16 |
+
"X-Generator: Poedit 1.8.1\n"
|
17 |
"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
|
18 |
"_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
|
19 |
"esc_html_x:1,2c\n"
|
137 |
msgstr ""
|
138 |
|
139 |
#: lib/yit-cpt-unlimited.php:1052
|
140 |
+
#, php-format
|
141 |
+
msgid "Layout for this %s"
|
142 |
msgstr ""
|
143 |
|
144 |
#: lib/yit-cpt-unlimited.php:1058
|
217 |
msgstr ""
|
218 |
|
219 |
#: lib/yit-cpt-unlimited.php:1633
|
220 |
+
msgid "Upload multiple files"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: lib/yit-plugin-panel-wc.php:336
|
224 |
msgid "The changes you have made will be lost if you leave this page."
|
225 |
msgstr ""
|
226 |
|
228 |
msgid "Plugin Settings"
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: lib/yit-plugin-panel.php:96 lib/yit-plugin-subpanel.php:101
|
232 |
msgid "YIT Plugins"
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: lib/yit-plugin-panel.php:288 lib/yit-plugin-subpanel.php:143
|
236 |
#: templates/panel/woocommerce/woocommerce-form.php:5
|
237 |
msgid "Save Changes"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: lib/yit-plugin-panel.php:291 templates/panel/woocommerce/woocommerce-form.php:8
|
241 |
msgid "If you continue with this action, you will reset all options in this page."
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: lib/yit-plugin-panel.php:293 lib/yit-plugin-subpanel.php:148
|
245 |
+
msgid "Reset to default"
|
246 |
msgstr ""
|
247 |
|
248 |
+
#: lib/yit-plugin-panel.php:293 lib/yit-plugin-subpanel.php:148
|
249 |
+
#: templates/panel/woocommerce/woocommerce-form.php:11
|
250 |
msgid "Are you sure?"
|
251 |
msgstr ""
|
252 |
|
253 |
+
#: lib/yit-plugin-panel.php:427
|
254 |
msgid "The element you have entered already exists. Please, enter another name."
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: lib/yit-plugin-panel.php:428
|
258 |
msgid "Settings saved"
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: lib/yit-plugin-panel.php:429
|
262 |
msgid "Settings reset"
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: lib/yit-plugin-panel.php:430
|
266 |
msgid "Element deleted correctly."
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: lib/yit-plugin-panel.php:431 lib/yit-plugin-panel.php:432
|
270 |
msgid "Element updated correctly."
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: lib/yit-plugin-panel.php:433
|
274 |
msgid "Database imported correctly."
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: lib/yit-plugin-panel.php:434
|
278 |
msgid "An error has occurred during import. Please try again."
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: lib/yit-plugin-panel.php:435
|
282 |
msgid "The added file is not valid."
|
283 |
msgstr ""
|
284 |
|
285 |
+
#: lib/yit-plugin-panel.php:436
|
286 |
msgid "Sorry, import is disabled."
|
287 |
msgstr ""
|
288 |
|
289 |
+
#: lib/yit-plugin-panel.php:437
|
290 |
msgid "Sorting successful."
|
291 |
msgstr ""
|
292 |
|
293 |
+
#: lib/yit-plugin-subpanel.php:146
|
294 |
msgid ""
|
295 |
"If you continue with this action, you will reset all the options in this page."
|
296 |
msgstr ""
|
349 |
msgid "Update now."
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: lib/yit-upgrade.php:250
|
353 |
msgid "Yithemes Repository"
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: lib/yit-upgrade.php:284
|
357 |
msgid "Invalid URL Provided."
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: lib/yit-upgrade.php:297
|
361 |
msgid "Could not create Temporary file."
|
362 |
msgstr ""
|
363 |
|
364 |
+
#: lib/yit-upgrade.php:439
|
365 |
#, php-format
|
366 |
msgid ""
|
367 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
368 |
"changelog-button\" title=\"%3$s\">View version %4$s details</a>."
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: lib/yit-upgrade.php:441
|
372 |
#, php-format
|
373 |
msgid ""
|
374 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
377 |
"updates.</em>"
|
378 |
msgstr ""
|
379 |
|
380 |
+
#: lib/yit-upgrade.php:443
|
381 |
#, php-format
|
382 |
msgid ""
|
383 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
384 |
"changelog-button\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic "
|
385 |
+
"update is unavailable for this plugin, please <a href=\"%5$s\" title=\"License "
|
386 |
"activation\">activate</a> your copy of %6s.</em>"
|
387 |
msgstr ""
|
388 |
|
389 |
+
#: lib/yit-upgrade.php:445
|
390 |
#, php-format
|
391 |
msgid ""
|
392 |
"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
|
394 |
"\">update now</a>."
|
395 |
msgstr ""
|
396 |
|
397 |
+
#: lib/yit-upgrade.php:518
|
398 |
msgid "You can't update the plugins for this site."
|
399 |
msgstr ""
|
400 |
|
401 |
+
#: lib/yit-upgrade.php:522
|
402 |
msgid "You do not have sufficient permissions to update the plugins for this site."
|
403 |
msgstr ""
|
404 |
|
405 |
+
#: lib/yit-upgrade.php:529
|
406 |
msgid "Update Plugin"
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: licence/lib/yit-licence.php:170
|
410 |
#, php-format
|
411 |
+
msgctxt "%s = field name"
|
412 |
+
msgid "%s field cannot be empty"
|
413 |
msgstr ""
|
414 |
|
415 |
+
#: licence/lib/yit-licence.php:171
|
416 |
+
#, php-format
|
417 |
+
msgid "%s and %s fields cannot be empty"
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: licence/lib/yit-licence.php:172
|
421 |
msgid "Unable to contact the remote server, please try again later. Thanks!"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: licence/lib/yit-licence.php:173
|
425 |
+
#: licence/templates/panel/activation/activation-panel.php:89
|
426 |
+
#: licence/templates/panel/activation/activation-panel.php:164
|
427 |
+
#: licence/templates/panel/activation/activation-panel.php:195
|
428 |
+
#: templates/metaboxes/types/contactform.php:148
|
429 |
+
#: templates/metaboxes/types/contactform.php:340
|
430 |
+
msgid "Email"
|
431 |
+
msgstr ""
|
432 |
+
|
433 |
+
#: licence/lib/yit-licence.php:174
|
434 |
+
#: licence/templates/panel/activation/activation-panel.php:90
|
435 |
+
#: licence/templates/panel/activation/activation-panel.php:165
|
436 |
+
#: licence/templates/panel/activation/activation-panel.php:196
|
437 |
+
msgid "License Key"
|
438 |
+
msgstr ""
|
439 |
+
|
440 |
+
#: licence/lib/yit-licence.php:175
|
441 |
+
msgid "Are you sure you want to deactivate the license for current site?"
|
442 |
+
msgstr ""
|
443 |
+
|
444 |
+
#: licence/lib/yit-licence.php:638
|
445 |
msgid "Invalid Request"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: licence/lib/yit-licence.php:639
|
449 |
+
msgid "Invalid license key"
|
450 |
msgstr ""
|
451 |
|
452 |
+
#: licence/lib/yit-licence.php:640
|
453 |
msgid "Software has been deactivated"
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: licence/lib/yit-licence.php:641
|
457 |
msgid "Maximum number of activations exceeded"
|
458 |
msgstr ""
|
459 |
|
460 |
+
#: licence/lib/yit-licence.php:642
|
461 |
msgid "Invalid instance ID"
|
462 |
msgstr ""
|
463 |
|
464 |
+
#: licence/lib/yit-licence.php:643
|
465 |
msgid "Invalid security key"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: licence/lib/yit-licence.php:644
|
469 |
+
msgid "License key has expired"
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: licence/lib/yit-licence.php:645
|
473 |
+
msgid "License key has been banned"
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: licence/lib/yit-licence.php:646
|
477 |
+
msgid "Great"
|
|
|
|
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: licence/lib/yit-licence.php:646
|
481 |
+
msgid "License successfully activated"
|
|
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: licence/lib/yit-licence.php:647
|
485 |
+
msgid "License key deactivated for website"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: licence/lib/yit-plugin-licence.php:68 licence/lib/yit-plugin-licence.php:69
|
489 |
+
#: licence/lib/yit-theme-licence.php:70 licence/lib/yit-theme-licence.php:71
|
490 |
+
#: licence/lib/yit-theme-licence.php:110 licence/lib/yit-theme-licence.php:111
|
491 |
+
msgid "License Activation"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: licence/lib/yit-theme-licence.php:118 licence/lib/yit-theme-licence.php:119
|
495 |
+
#, php-format
|
496 |
+
msgid "%s"
|
497 |
+
msgstr ""
|
498 |
+
|
499 |
+
#: licence/lib/yit-theme-licence.php:160
|
500 |
msgid ""
|
501 |
"I cannot find the license key for activating the theme I have bought some time "
|
502 |
"ago. Where can I find it?"
|
503 |
msgstr ""
|
504 |
|
505 |
+
#: licence/lib/yit-theme-licence.php:163
|
506 |
msgid ""
|
507 |
"If you have purchased one of our products before 27 January 2015, you can benefit "
|
508 |
"from support and updates (the services offered with the license)\n"
|
509 |
+
" until 27 January 2016 and you do not have to purchase it again "
|
510 |
+
"to get a new license key, because, before this date, your license used to be "
|
511 |
+
"activated automatically by our system.\n"
|
512 |
+
" After 27 January 2016, instead, if you want to benefit from "
|
513 |
+
"support and updates you have to buy a new license and activate it through the "
|
514 |
+
"license key you will be\n"
|
515 |
+
" provided with and that you can find in your YIThemes account, "
|
516 |
+
"in section \"My licenses\"."
|
517 |
msgstr ""
|
518 |
|
519 |
+
#: licence/templates/panel/activation/activation-panel.php:22
|
520 |
+
msgid "Yithemes License Activation"
|
521 |
+
msgstr ""
|
522 |
+
|
523 |
+
#: licence/templates/panel/activation/activation-panel.php:28
|
524 |
msgid ""
|
525 |
"Have you updated your licenses? Have you asked for an extension? Update "
|
526 |
"information concerning your products."
|
527 |
msgstr ""
|
528 |
|
529 |
+
#: licence/templates/panel/activation/activation-panel.php:30
|
530 |
+
msgid "Update license information"
|
531 |
msgstr ""
|
532 |
|
533 |
+
#: licence/templates/panel/activation/activation-panel.php:43
|
534 |
+
msgid "Product to activate"
|
535 |
+
msgid_plural "Products to activate"
|
536 |
+
msgstr[0] ""
|
537 |
+
msgstr[1] ""
|
538 |
|
539 |
+
#: licence/templates/panel/activation/activation-panel.php:62
|
540 |
msgid "Activate"
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: licence/templates/panel/activation/activation-panel.php:81
|
544 |
msgid "Activated"
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: licence/templates/panel/activation/activation-panel.php:87
|
548 |
+
#: licence/templates/panel/activation/activation-panel.php:162
|
549 |
+
#: licence/templates/panel/activation/activation-panel.php:192
|
550 |
msgid "Product Name"
|
551 |
msgstr ""
|
552 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
553 |
#: licence/templates/panel/activation/activation-panel.php:93
|
554 |
+
#: licence/templates/panel/activation/activation-panel.php:199
|
|
|
|
|
|
|
|
|
|
|
|
|
555 |
msgid "Expires"
|
556 |
msgstr ""
|
557 |
|
558 |
+
#: licence/templates/panel/activation/activation-panel.php:96
|
559 |
msgid "Remaining"
|
560 |
msgstr ""
|
561 |
|
562 |
+
#: licence/templates/panel/activation/activation-panel.php:97
|
563 |
+
#: licence/templates/panel/activation/activation-panel.php:223
|
564 |
+
msgid "Membership"
|
565 |
+
msgstr ""
|
566 |
+
|
567 |
+
#: licence/templates/panel/activation/activation-panel.php:100
|
568 |
+
msgid "License Actions"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: licence/templates/panel/activation/activation-panel.php:125
|
572 |
#, php-format
|
573 |
msgid "%1s out of %2s"
|
574 |
msgstr ""
|
575 |
|
576 |
+
#: licence/templates/panel/activation/activation-panel.php:140
|
577 |
+
msgid "Deactivate"
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: licence/templates/panel/activation/activation-panel.php:145
|
581 |
+
#: licence/templates/panel/activation/activation-panel.php:202
|
582 |
+
#: licence/templates/panel/activation/activation-panel.php:223
|
583 |
+
msgid "Renew"
|
584 |
+
msgstr ""
|
585 |
+
|
586 |
+
#: licence/templates/panel/activation/activation-panel.php:158
|
587 |
msgid "Banned"
|
588 |
msgstr ""
|
589 |
|
590 |
+
#: licence/templates/panel/activation/activation-panel.php:188
|
591 |
msgid "Expired"
|
592 |
msgstr ""
|
593 |
|
594 |
+
#: licence/templates/panel/activation/activation-panel.php:223
|
595 |
+
msgid "License"
|
596 |
+
msgstr ""
|
597 |
+
|
598 |
#: templates/metaboxes/types/ajax-products.php:23
|
599 |
msgid "Search for a product"
|
600 |
msgstr ""
|
670 |
|
671 |
#: templates/metaboxes/types/contactform.php:77
|
672 |
#: templates/metaboxes/types/contactform.php:269
|
673 |
+
msgid "Field Title"
|
674 |
msgstr ""
|
675 |
|
676 |
#: templates/metaboxes/types/contactform.php:81
|
692 |
|
693 |
#: templates/metaboxes/types/contactform.php:95
|
694 |
#: templates/metaboxes/types/contactform.php:287
|
695 |
+
msgid "Field Type"
|
696 |
msgstr ""
|
697 |
|
698 |
#: templates/metaboxes/types/contactform.php:103
|
787 |
#: templates/metaboxes/types/icon-list.php:69
|
788 |
#: templates/metaboxes/types/select-icon.php:33
|
789 |
#: templates/metaboxes/types/upload.php:21 templates/panel/types/upload.php:31
|
790 |
+
#: templates/panel/woocommerce/woocommerce-upload.php:40
|
791 |
msgid "Upload"
|
792 |
msgstr ""
|
793 |
|
955 |
msgid "Italic bold"
|
956 |
msgstr ""
|
957 |
|
958 |
+
#: templates/panel/woocommerce/woocommerce-form.php:11
|
959 |
msgid "Reset Defaults"
|
960 |
msgstr ""
|
plugin-fw/lib/yit-plugin-panel-wc.php
CHANGED
@@ -280,7 +280,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
|
|
280 |
|
281 |
foreach($_POST as $name => $value) {
|
282 |
|
283 |
-
// Check if current POST var
|
284 |
$attachment_id_needle = "-yith-attachment-id";
|
285 |
$is_hidden_input = (($temp = strlen($name) - strlen($attachment_id_needle)) >= 0 && strpos($name, $attachment_id_needle, $temp) !== FALSE);
|
286 |
if ($is_hidden_input){
|
@@ -319,22 +319,32 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
|
|
319 |
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
320 |
*/
|
321 |
public function admin_enqueue_scripts() {
|
322 |
-
global $woocommerce;
|
323 |
|
324 |
wp_enqueue_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:400,500,600,700,800,100,200,300,900' );
|
325 |
|
326 |
wp_enqueue_media();
|
327 |
wp_enqueue_style( 'woocommerce_admin_styles', $woocommerce->plugin_url() . '/assets/css/admin.css', array(), $woocommerce->version );
|
328 |
-
|
329 |
-
|
|
|
|
|
|
|
|
|
|
|
330 |
|
331 |
wp_enqueue_style( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/css/chosen/chosen.css' );
|
332 |
wp_enqueue_script( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/js/chosen/chosen.jquery.js', array( 'jquery' ), '1.1.0', true );
|
333 |
wp_enqueue_script( 'woocommerce_settings', $woocommerce->plugin_url() . '/assets/js/admin/settings.min.js', array( 'jquery', 'jquery-ui-datepicker','jquery-ui-dialog', 'jquery-ui-sortable', 'iris', 'chosen' ), $woocommerce->version, true );
|
334 |
-
|
335 |
wp_localize_script( 'woocommerce_settings', 'woocommerce_settings_params', array(
|
336 |
'i18n_nav_warning' => __( 'The changes you have made will be lost if you leave this page.', 'yith-plugin-fw' )
|
337 |
) );
|
|
|
|
|
|
|
|
|
|
|
338 |
}
|
339 |
|
340 |
/**
|
280 |
|
281 |
foreach($_POST as $name => $value) {
|
282 |
|
283 |
+
// Check if current POST var name ends with a specific needle and make some stuff here
|
284 |
$attachment_id_needle = "-yith-attachment-id";
|
285 |
$is_hidden_input = (($temp = strlen($name) - strlen($attachment_id_needle)) >= 0 && strpos($name, $attachment_id_needle, $temp) !== FALSE);
|
286 |
if ($is_hidden_input){
|
319 |
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
320 |
*/
|
321 |
public function admin_enqueue_scripts() {
|
322 |
+
global $woocommerce, $pagenow;
|
323 |
|
324 |
wp_enqueue_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:400,500,600,700,800,100,200,300,900' );
|
325 |
|
326 |
wp_enqueue_media();
|
327 |
wp_enqueue_style( 'woocommerce_admin_styles', $woocommerce->plugin_url() . '/assets/css/admin.css', array(), $woocommerce->version );
|
328 |
+
wp_register_style( 'yit-plugin-style', YIT_CORE_PLUGIN_URL . '/assets/css/yit-plugin-panel.css', $woocommerce->version );
|
329 |
+
|
330 |
+
if ( 'customize.php' != $pagenow ){
|
331 |
+
|
332 |
+
wp_enqueue_style ( 'wp-jquery-ui-dialog' );
|
333 |
+
|
334 |
+
}
|
335 |
|
336 |
wp_enqueue_style( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/css/chosen/chosen.css' );
|
337 |
wp_enqueue_script( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/js/chosen/chosen.jquery.js', array( 'jquery' ), '1.1.0', true );
|
338 |
wp_enqueue_script( 'woocommerce_settings', $woocommerce->plugin_url() . '/assets/js/admin/settings.min.js', array( 'jquery', 'jquery-ui-datepicker','jquery-ui-dialog', 'jquery-ui-sortable', 'iris', 'chosen' ), $woocommerce->version, true );
|
339 |
+
wp_register_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel.min.js', array( 'jquery', 'jquery-chosen' ), $this->version, true );
|
340 |
wp_localize_script( 'woocommerce_settings', 'woocommerce_settings_params', array(
|
341 |
'i18n_nav_warning' => __( 'The changes you have made will be lost if you leave this page.', 'yith-plugin-fw' )
|
342 |
) );
|
343 |
+
|
344 |
+
if( 'admin.php' == $pagenow && strpos( get_current_screen()->id, 'yit-plugins_page' ) !== false ){
|
345 |
+
wp_enqueue_style( 'yit-plugin-style' );
|
346 |
+
wp_enqueue_script( 'yit-plugin-panel' );
|
347 |
+
}
|
348 |
}
|
349 |
|
350 |
/**
|
plugin-fw/lib/yit-plugin-panel.php
CHANGED
@@ -92,8 +92,12 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
92 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
93 |
*/
|
94 |
public function add_menu_page() {
|
95 |
-
|
96 |
-
|
|
|
|
|
|
|
|
|
97 |
}
|
98 |
|
99 |
/**
|
@@ -121,27 +125,32 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
121 |
*/
|
122 |
public function admin_enqueue_scripts() {
|
123 |
|
124 |
-
|
125 |
|
126 |
//scripts
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
|
137 |
//styles
|
138 |
-
|
139 |
wp_register_style( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/css/codemirror/codemirror.css' );
|
140 |
wp_enqueue_style( 'jquery-ui-overcast', YIT_CORE_PLUGIN_URL . '/assets/css/overcast/jquery-ui-1.8.9.custom.css', false, '1.8.9', 'all' );
|
141 |
-
|
142 |
wp_enqueue_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:400,500,600,700,800,100,200,300,900' );
|
143 |
wp_enqueue_style( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/css/chosen/chosen.css' );
|
144 |
wp_enqueue_style( 'yit-jquery-ui-style', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.css', array(), $jquery_version );
|
|
|
|
|
|
|
|
|
|
|
145 |
}
|
146 |
|
147 |
/**
|
92 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
93 |
*/
|
94 |
public function add_menu_page() {
|
95 |
+
global $admin_page_hooks;
|
96 |
+
|
97 |
+
if( ! isset( $admin_page_hooks['yit_plugin_panel'] ) ){
|
98 |
+
$position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
|
99 |
+
add_menu_page( 'yit_plugin_panel', __( 'YIT Plugins', 'yith-plugin-fw' ), 'manage_options', 'yit_plugin_panel', NULL, YIT_CORE_PLUGIN_URL . '/assets/images/yithemes-icon.png', $position );
|
100 |
+
}
|
101 |
}
|
102 |
|
103 |
/**
|
125 |
*/
|
126 |
public function admin_enqueue_scripts() {
|
127 |
|
128 |
+
global $wp_scripts, $pagenow;
|
129 |
|
130 |
//scripts
|
131 |
+
wp_enqueue_media();
|
132 |
+
wp_enqueue_script( 'jquery-ui' );
|
133 |
+
wp_enqueue_script( 'jquery-ui-core' );
|
134 |
+
wp_enqueue_script( 'jquery-ui-slider' );
|
135 |
+
wp_enqueue_script( 'jquery-ui-dialog' );
|
136 |
+
wp_enqueue_script( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/js/chosen/chosen.jquery.js', array( 'jquery' ), '1.1.0', true );
|
137 |
+
wp_register_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel.js', array( 'jquery', 'jquery-chosen' ), $this->version, true );
|
138 |
+
wp_register_script( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/js/codemirror/codemirror.js', array( 'jquery' ), $this->version, true );
|
139 |
+
wp_register_script( 'codemirror-javascript', YIT_CORE_PLUGIN_URL . '/assets/js/codemirror/javascript.js', array( 'jquery', 'codemirror' ), $this->version, true );
|
140 |
|
141 |
//styles
|
142 |
+
$jquery_version = isset( $wp_scripts->registered['jquery-ui-core']->ver ) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.9.2';
|
143 |
wp_register_style( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/css/codemirror/codemirror.css' );
|
144 |
wp_enqueue_style( 'jquery-ui-overcast', YIT_CORE_PLUGIN_URL . '/assets/css/overcast/jquery-ui-1.8.9.custom.css', false, '1.8.9', 'all' );
|
145 |
+
wp_register_style( 'yit-plugin-style', YIT_CORE_PLUGIN_URL . '/assets/css/yit-plugin-panel.css', $this->version );
|
146 |
wp_enqueue_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:400,500,600,700,800,100,200,300,900' );
|
147 |
wp_enqueue_style( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/css/chosen/chosen.css' );
|
148 |
wp_enqueue_style( 'yit-jquery-ui-style', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.css', array(), $jquery_version );
|
149 |
+
|
150 |
+
if( ( 'admin.php' == $pagenow && strpos( get_current_screen()->id, 'yit-plugins_page' ) !== false ) || apply_filters( 'yit_plugin_panel_asset_loading', false ) ){
|
151 |
+
wp_enqueue_style( 'yit-plugin-style' );
|
152 |
+
wp_enqueue_script( 'yit-plugin-panel' );
|
153 |
+
}
|
154 |
}
|
155 |
|
156 |
/**
|
plugin-fw/lib/yit-plugin-subpanel.php
CHANGED
@@ -88,22 +88,25 @@ if ( ! class_exists( 'YIT_Plugin_SubPanel' ) ) {
|
|
88 |
* @since 1.0
|
89 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
90 |
*/
|
91 |
-
|
|
|
|
|
92 |
|
93 |
-
|
94 |
|
95 |
-
|
|
|
|
|
96 |
|
97 |
-
|
98 |
-
$logo = $admin_logo;
|
99 |
-
}
|
100 |
$position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
|
101 |
add_menu_page( 'yit_plugin_panel', __( 'YIT Plugins', 'yith-plugin-fw' ), 'nosuchcapability', 'yit_plugin_panel', NULL, $logo, $position );
|
|
|
102 |
|
103 |
-
|
104 |
-
|
105 |
|
106 |
-
|
107 |
|
108 |
/**
|
109 |
* Show a tabbed panel to setting page
|
88 |
* @since 1.0
|
89 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
90 |
*/
|
91 |
+
public function add_setting_page() {
|
92 |
+
global $admin_page_hooks;
|
93 |
+
$logo = YIT_CORE_PLUGIN_URL . '/assets/images/yithemes-icon.png';
|
94 |
|
95 |
+
$admin_logo = function_exists( 'yit_get_option' ) ? yit_get_option( 'admin-logo-menu' ) : '';
|
96 |
|
97 |
+
if ( isset( $admin_logo ) && !empty( $admin_logo ) && $admin_logo != '' && $admin_logo ) {
|
98 |
+
$logo = $admin_logo;
|
99 |
+
}
|
100 |
|
101 |
+
if( ! isset( $admin_page_hooks['yit_plugin_panel'] ) ) {
|
|
|
|
|
102 |
$position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
|
103 |
add_menu_page( 'yit_plugin_panel', __( 'YIT Plugins', 'yith-plugin-fw' ), 'nosuchcapability', 'yit_plugin_panel', NULL, $logo, $position );
|
104 |
+
}
|
105 |
|
106 |
+
add_submenu_page( 'yit_plugin_panel', $this->settings['label'], $this->settings['label'], 'manage_options', $this->settings['page'], array( $this, 'yit_panel' ) );
|
107 |
+
remove_submenu_page( 'yit_plugin_panel', 'yit_plugin_panel' );
|
108 |
|
109 |
+
}
|
110 |
|
111 |
/**
|
112 |
* Show a tabbed panel to setting page
|
plugin-fw/lib/yit-upgrade.php
CHANGED
@@ -60,8 +60,10 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
|
|
60 |
add_action( 'admin_enqueue_scripts', array( $this, 'network_admin_enqueue_scripts' ) );
|
61 |
}
|
62 |
|
63 |
-
|
64 |
-
|
|
|
|
|
65 |
}
|
66 |
}
|
67 |
|
@@ -95,15 +97,27 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
|
|
95 |
add_action( 'admin_init', array( $this, 'remove_wp_plugin_update_row' ), 15 );
|
96 |
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
|
97 |
} else if( is_multisite() && current_user_can( 'update_plugins' ) ) {
|
98 |
-
$
|
99 |
-
|
100 |
-
|
101 |
-
if( ! is_wp_error( $remote_xml ) && isset( $remote_xml['response']['code'] ) && '200' == $remote_xml['response']['code'] ) {
|
102 |
-
$plugin_remote_info = new SimpleXmlElement( $remote_xml['body'] );
|
103 |
-
$this->_plugins[ $plugin_init ]['info']['Latest'] = (string) $plugin_remote_info->latest;
|
104 |
-
$this->_plugins[ $plugin_init ]['info']['changelog'] = (string) $plugin_remote_info->changelog;
|
105 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'multisite_updater_script' ) );
|
106 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
}
|
108 |
}
|
109 |
|
@@ -117,8 +131,7 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
|
|
117 |
*/
|
118 |
public function multisite_updater_script(){
|
119 |
|
120 |
-
$update_url = array();
|
121 |
-
$changelogs = array();
|
122 |
$strings = array(
|
123 |
'new_version' => __( 'There is a new version of %plugin_name% available.', 'yith-plugin-fw' ),
|
124 |
'latest' => __( 'View version %latest% details.', 'yith-plugin-fw' ),
|
@@ -129,8 +142,6 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
|
|
129 |
);
|
130 |
|
131 |
foreach( $this->_plugins as $init => $info ){
|
132 |
-
YIT_Plugin_Licence()->check( $init );
|
133 |
-
|
134 |
$update_url[ $init ] = wp_nonce_url( self_admin_url('update.php?action=upgrade-plugin-multisite&plugin=') . $init, 'upgrade-plugin-multisite_' . $init );
|
135 |
$changelog_id = str_replace( array( '/', '.php', '.' ), array( '-', '', '-' ), $init );
|
136 |
$details_url[ $init ] = '#TB_inline' . esc_url( add_query_arg( array( 'width' => 722, 'height' => 914, 'inlineId' => $changelog_id ) , '' ) );
|
@@ -147,8 +158,8 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
|
|
147 |
'strings' => $strings,
|
148 |
'changelogs' => $changelogs
|
149 |
);
|
150 |
-
|
151 |
-
yit_enqueue_script( 'yit-multisite-updater', YIT_CORE_PLUGIN_URL . '/assets/js/multisite-updater.
|
152 |
|
153 |
wp_localize_script( 'yit-multisite-updater', 'plugins', $localize_script_args );
|
154 |
}
|
@@ -157,24 +168,6 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
|
|
157 |
yit_enqueue_style( 'yit-upgrader', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrader.css' );
|
158 |
}
|
159 |
|
160 |
-
/**
|
161 |
-
* Call the protected method _upgrader_pre_download to retrive the zip package file
|
162 |
-
*
|
163 |
-
* @param bool $reply Whether to bail without returning the package. Default false.
|
164 |
-
* @param string $package The package file name.
|
165 |
-
* @param \WP_Upgrader $upgrader WP_Upgrader instance.
|
166 |
-
*
|
167 |
-
* @return string | The download file
|
168 |
-
*
|
169 |
-
* @since 1.0
|
170 |
-
* @see wp-admin/includes/class-wp-upgrader.php
|
171 |
-
* @access public
|
172 |
-
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
173 |
-
*/
|
174 |
-
public function upgrader_pre_download( $reply, $package, $upgrader ){
|
175 |
-
return $this->_upgrader_pre_download( $reply, $package, $upgrader );
|
176 |
-
}
|
177 |
-
|
178 |
/**
|
179 |
* Retrive the zip package file
|
180 |
*
|
@@ -186,10 +179,10 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
|
|
186 |
*
|
187 |
* @since 1.0
|
188 |
* @see wp-admin/includes/class-wp-upgrader.php
|
189 |
-
* @access
|
190 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
191 |
*/
|
192 |
-
|
193 |
$plugin = false;
|
194 |
$is_bulk = $upgrader->skin instanceof Bulk_Plugin_Upgrader_Skin;
|
195 |
|
@@ -247,7 +240,7 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
|
|
247 |
return new WP_Error( 'no_package', $upgrader->strings['no_package'] );
|
248 |
}
|
249 |
|
250 |
-
$upgrader->skin->feedback( 'downloading_package', __( '
|
251 |
|
252 |
$download_file = $this->_download_url( $package, $args );
|
253 |
|
@@ -440,7 +433,7 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
|
|
440 |
}elseif( is_plugin_active_for_network( $init ) ){
|
441 |
printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a>. <em>You have to activate the plugin on a single site of the network to benefit from automatic updates.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version );
|
442 |
}elseif ( empty( $r->package ) ) {
|
443 |
-
printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a>. <em>Automatic update is unavailable for this plugin, please <a href="%5$s" title="
|
444 |
} else {
|
445 |
printf( __('There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a> or <a href="%5$s">update now</a>.', 'yith-plugin-fw'), $this->_plugins[ $init ]['info']['Name'], esc_url($details_url), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, wp_nonce_url( self_admin_url('update.php?action=upgrade-plugin&plugin=') . $init, 'upgrade-plugin_' . $init ) );
|
446 |
}
|
60 |
add_action( 'admin_enqueue_scripts', array( $this, 'network_admin_enqueue_scripts' ) );
|
61 |
}
|
62 |
|
63 |
+
$is_debug_enabled = defined( 'YIT_LICENCE_DEBUG' ) && YIT_LICENCE_DEBUG;
|
64 |
+
if ( $is_debug_enabled ) {
|
65 |
+
$this->_package_url = defined( 'YIT_LICENCE_DEBUG_LOCALHOST' ) ? YIT_LICENCE_DEBUG_LOCALHOST : 'http://dev.yithemes.com';
|
66 |
+
add_filter( 'block_local_requests', '__return_false' );
|
67 |
}
|
68 |
}
|
69 |
|
97 |
add_action( 'admin_init', array( $this, 'remove_wp_plugin_update_row' ), 15 );
|
98 |
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
|
99 |
} else if( is_multisite() && current_user_can( 'update_plugins' ) ) {
|
100 |
+
$transient = 'yith_register_' . md5( $plugin_slug );
|
101 |
+
if( apply_filters( 'yith_register_delete_transient', false ) ){
|
102 |
+
delete_transient( $transient );
|
|
|
|
|
|
|
|
|
|
|
103 |
}
|
104 |
+
$info = get_transient( $transient );
|
105 |
+
if( false === $info || apply_filters( 'yith_register_delete_transient', false ) ){
|
106 |
+
$xml = str_replace( '%plugin_slug%', $plugin_slug, $this->_xml );
|
107 |
+
$remote_xml = wp_remote_get( $xml );
|
108 |
+
|
109 |
+
if( ! is_wp_error( $remote_xml ) && isset( $remote_xml['response']['code'] ) && '200' == $remote_xml['response']['code'] ) {
|
110 |
+
$plugin_remote_info = new SimpleXmlElement( $remote_xml['body'] );
|
111 |
+
$info['Latest'] = (string) $plugin_remote_info->latest;
|
112 |
+
$info['changelog'] = (string) $plugin_remote_info->changelog;
|
113 |
+
YIT_Plugin_Licence()->check( $plugin_slug, false );
|
114 |
+
set_transient( $transient, $info, DAY_IN_SECONDS );
|
115 |
+
}
|
116 |
+
}
|
117 |
+
|
118 |
+
$this->_plugins[ $plugin_init ]['info']['Latest'] = $info['Latest'];
|
119 |
+
$this->_plugins[ $plugin_init ]['info']['changelog'] = $info['changelog'];
|
120 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'multisite_updater_script' ) );
|
121 |
}
|
122 |
}
|
123 |
|
131 |
*/
|
132 |
public function multisite_updater_script(){
|
133 |
|
134 |
+
$update_url = $changelogs = $details_url = array();
|
|
|
135 |
$strings = array(
|
136 |
'new_version' => __( 'There is a new version of %plugin_name% available.', 'yith-plugin-fw' ),
|
137 |
'latest' => __( 'View version %latest% details.', 'yith-plugin-fw' ),
|
142 |
);
|
143 |
|
144 |
foreach( $this->_plugins as $init => $info ){
|
|
|
|
|
145 |
$update_url[ $init ] = wp_nonce_url( self_admin_url('update.php?action=upgrade-plugin-multisite&plugin=') . $init, 'upgrade-plugin-multisite_' . $init );
|
146 |
$changelog_id = str_replace( array( '/', '.php', '.' ), array( '-', '', '-' ), $init );
|
147 |
$details_url[ $init ] = '#TB_inline' . esc_url( add_query_arg( array( 'width' => 722, 'height' => 914, 'inlineId' => $changelog_id ) , '' ) );
|
158 |
'strings' => $strings,
|
159 |
'changelogs' => $changelogs
|
160 |
);
|
161 |
+
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
|
162 |
+
yit_enqueue_script( 'yit-multisite-updater', YIT_CORE_PLUGIN_URL . '/assets/js/multisite-updater' . $suffix . '.js', array( 'jquery' ), false, true );
|
163 |
|
164 |
wp_localize_script( 'yit-multisite-updater', 'plugins', $localize_script_args );
|
165 |
}
|
168 |
yit_enqueue_style( 'yit-upgrader', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrader.css' );
|
169 |
}
|
170 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
/**
|
172 |
* Retrive the zip package file
|
173 |
*
|
179 |
*
|
180 |
* @since 1.0
|
181 |
* @see wp-admin/includes/class-wp-upgrader.php
|
182 |
+
* @access public
|
183 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
184 |
*/
|
185 |
+
public function upgrader_pre_download( $reply, $package, $upgrader ) {
|
186 |
$plugin = false;
|
187 |
$is_bulk = $upgrader->skin instanceof Bulk_Plugin_Upgrader_Skin;
|
188 |
|
240 |
return new WP_Error( 'no_package', $upgrader->strings['no_package'] );
|
241 |
}
|
242 |
|
243 |
+
$upgrader->skin->feedback( 'downloading_package', __( 'YIThemes Repository', 'yith-plugin-fw' ) );
|
244 |
|
245 |
$download_file = $this->_download_url( $package, $args );
|
246 |
|
433 |
}elseif( is_plugin_active_for_network( $init ) ){
|
434 |
printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a>. <em>You have to activate the plugin on a single site of the network to benefit from automatic updates.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version );
|
435 |
}elseif ( empty( $r->package ) ) {
|
436 |
+
printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a>. <em>Automatic update is unavailable for this plugin, please <a href="%5$s" title="License activation">activate</a> your copy of %6s.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, YIT_Plugin_Licence()->get_licence_activation_page_url(), $this->_plugins[ $init ]['info']['Name'] );
|
437 |
} else {
|
438 |
printf( __('There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a> or <a href="%5$s">update now</a>.', 'yith-plugin-fw'), $this->_plugins[ $init ]['info']['Name'], esc_url($details_url), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, wp_nonce_url( self_admin_url('update.php?action=upgrade-plugin&plugin=') . $init, 'upgrade-plugin_' . $init ) );
|
439 |
}
|
plugin-fw/licence/assets/css/yit-licence.css
CHANGED
@@ -23,6 +23,7 @@
|
|
23 |
|
24 |
.yit-container.product-licence-activation .to-active-wrapper {
|
25 |
margin-bottom: 60px;
|
|
|
26 |
}
|
27 |
|
28 |
.yit-container.product-licence-activation .to-active-wrapper form.to-active-form {
|
@@ -121,17 +122,13 @@
|
|
121 |
vertical-align: top;
|
122 |
}
|
123 |
|
124 |
-
.yit-container.product-licence-activation .spinner
|
125 |
-
|
126 |
-
vertical-align: middle;
|
127 |
float: none;
|
128 |
}
|
129 |
|
130 |
-
.yit-container.product-licence-activation
|
131 |
-
|
132 |
-
float: none;
|
133 |
-
top: -3px;
|
134 |
-
position: relative;
|
135 |
}
|
136 |
|
137 |
.yit-container.product-licence-activation .licence-check-section{
|
@@ -176,18 +173,24 @@
|
|
176 |
padding: 12px 19px;
|
177 |
}
|
178 |
|
|
|
179 |
.yit-container.product-licence-activation .button-licence.licence-renew {
|
180 |
text-decoration: none;
|
181 |
padding: 7px 12px;
|
182 |
font-size: 9px;
|
183 |
}
|
184 |
|
|
|
|
|
|
|
|
|
|
|
185 |
.yit-container.product-licence-activation .button-licence.licence-renew:focus {
|
186 |
box-shadow: none;
|
187 |
}
|
188 |
|
189 |
.yit-container.product-licence-activation table:not(.to-active-table) {
|
190 |
-
width:
|
191 |
border: 1px solid #dcdcdc;
|
192 |
border-spacing: 0;
|
193 |
border-radius: 5px;
|
@@ -197,12 +200,18 @@
|
|
197 |
|
198 |
.yit-container.product-licence-activation table:not(.to-active-table) th {
|
199 |
border-bottom: 1px solid #dcdcdc;
|
|
|
|
|
|
|
|
|
|
|
200 |
}
|
201 |
|
202 |
.yit-container.product-licence-activation table:not(.to-active-table) td,
|
203 |
.yit-container.product-licence-activation table:not(.to-active-table) th {
|
204 |
border-right: 1px solid #dcdcdc;
|
205 |
}
|
|
|
206 |
.yit-container.product-licence-activation table td:last-child,
|
207 |
.yit-container.product-licence-activation table th:last-child {
|
208 |
border-right: 0;
|
@@ -216,8 +225,12 @@
|
|
216 |
background-color: #ffffff;
|
217 |
}
|
218 |
|
|
|
|
|
|
|
|
|
219 |
.yit-container.product-licence-activation table thead tr th {
|
220 |
-
font-size:
|
221 |
color: #313131;
|
222 |
text-transform: uppercase;
|
223 |
font-weight: bold;
|
@@ -228,6 +241,14 @@
|
|
228 |
line-height: 60px;
|
229 |
}
|
230 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
.yit-container.product-licence-activation table tbody tr td{
|
232 |
text-align: center;
|
233 |
line-height: 20px;
|
@@ -260,15 +281,17 @@
|
|
260 |
width: 33%;
|
261 |
}
|
262 |
|
263 |
-
|
264 |
-
.yit-container.product-licence-activation .to-active-table td.product-name {
|
265 |
color: #808a97;
|
266 |
font-size: 12px;
|
267 |
text-transform: uppercase;
|
268 |
font-weight: bold;
|
269 |
line-height: 20px;
|
|
|
|
|
|
|
|
|
270 |
width: 20%;
|
271 |
-
padding-left: 20px;
|
272 |
}
|
273 |
|
274 |
.yit-container.product-licence-activation .to-active-table td.activate-button {
|
@@ -302,15 +325,12 @@
|
|
302 |
box-shadow: 0 0 1px rgba(30,140,190,.8);
|
303 |
}
|
304 |
|
305 |
-
.yit-container.product-licence-activation input[type=text]
|
|
|
306 |
text-transform: uppercase;
|
307 |
text-align: center;
|
308 |
}
|
309 |
|
310 |
-
.yit-container.product-licence-activation input[type=email] {
|
311 |
-
text-align: left;
|
312 |
-
}
|
313 |
-
|
314 |
.yit-container.product-licence-activation input[type=submit]:focus{
|
315 |
outline: 0;
|
316 |
}
|
@@ -328,19 +348,88 @@
|
|
328 |
color: #808a97;
|
329 |
}
|
330 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
/* === Responsive === */
|
332 |
|
333 |
-
@media (max-width: 767px) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
334 |
|
335 |
-
|
|
|
|
|
336 |
|
337 |
-
|
|
|
|
|
338 |
|
339 |
-
|
|
|
|
|
|
|
340 |
|
341 |
@media (min-width: 1200px) {
|
342 |
.yit-container.product-licence-activation{
|
343 |
-
width:
|
|
|
|
|
|
|
|
|
344 |
}
|
345 |
}
|
346 |
|
23 |
|
24 |
.yit-container.product-licence-activation .to-active-wrapper {
|
25 |
margin-bottom: 60px;
|
26 |
+
max-width: 900px;
|
27 |
}
|
28 |
|
29 |
.yit-container.product-licence-activation .to-active-wrapper form.to-active-form {
|
122 |
vertical-align: top;
|
123 |
}
|
124 |
|
125 |
+
.yit-container.product-licence-activation .spinner{
|
126 |
+
vertical-align: -5px;
|
|
|
127 |
float: none;
|
128 |
}
|
129 |
|
130 |
+
.yit-container.product-licence-activation .spinner.show{
|
131 |
+
visibility: visible;
|
|
|
|
|
|
|
132 |
}
|
133 |
|
134 |
.yit-container.product-licence-activation .licence-check-section{
|
173 |
padding: 12px 19px;
|
174 |
}
|
175 |
|
176 |
+
.yit-container.product-licence-activation .button-licence.licence-deactive,
|
177 |
.yit-container.product-licence-activation .button-licence.licence-renew {
|
178 |
text-decoration: none;
|
179 |
padding: 7px 12px;
|
180 |
font-size: 9px;
|
181 |
}
|
182 |
|
183 |
+
.yit-container.product-licence-activation table:not(.expired-table) .button-licence.licence-renew {
|
184 |
+
margin-left: 10px;
|
185 |
+
}
|
186 |
+
|
187 |
+
.yit-container.product-licence-activation .button-licence.licence-deactive:focus,
|
188 |
.yit-container.product-licence-activation .button-licence.licence-renew:focus {
|
189 |
box-shadow: none;
|
190 |
}
|
191 |
|
192 |
.yit-container.product-licence-activation table:not(.to-active-table) {
|
193 |
+
width: auto;
|
194 |
border: 1px solid #dcdcdc;
|
195 |
border-spacing: 0;
|
196 |
border-radius: 5px;
|
200 |
|
201 |
.yit-container.product-licence-activation table:not(.to-active-table) th {
|
202 |
border-bottom: 1px solid #dcdcdc;
|
203 |
+
padding: 0 10px;
|
204 |
+
}
|
205 |
+
|
206 |
+
.yit-container.product-licence-activation table tbody tr td.product-licence-key {
|
207 |
+
text-transform: lowercase;
|
208 |
}
|
209 |
|
210 |
.yit-container.product-licence-activation table:not(.to-active-table) td,
|
211 |
.yit-container.product-licence-activation table:not(.to-active-table) th {
|
212 |
border-right: 1px solid #dcdcdc;
|
213 |
}
|
214 |
+
|
215 |
.yit-container.product-licence-activation table td:last-child,
|
216 |
.yit-container.product-licence-activation table th:last-child {
|
217 |
border-right: 0;
|
225 |
background-color: #ffffff;
|
226 |
}
|
227 |
|
228 |
+
.yit-container.product-licence-activation table tbody tr:nth-child(2n) {
|
229 |
+
background-color: #f4f4f4;
|
230 |
+
}
|
231 |
+
|
232 |
.yit-container.product-licence-activation table thead tr th {
|
233 |
+
font-size: 11px;
|
234 |
color: #313131;
|
235 |
text-transform: uppercase;
|
236 |
font-weight: bold;
|
241 |
line-height: 60px;
|
242 |
}
|
243 |
|
244 |
+
.yit-container.product-licence-activation table tbody tr td.product-licence-membership .dashicons-no-alt {
|
245 |
+
color: #b20015;
|
246 |
+
}
|
247 |
+
|
248 |
+
.yit-container.product-licence-activation table tbody tr td.product-licence-membership .dashicons-yes {
|
249 |
+
color: #1ca800;
|
250 |
+
}
|
251 |
+
|
252 |
.yit-container.product-licence-activation table tbody tr td{
|
253 |
text-align: center;
|
254 |
line-height: 20px;
|
281 |
width: 33%;
|
282 |
}
|
283 |
|
284 |
+
.yit-container.product-licence-activation td.product-name {
|
|
|
285 |
color: #808a97;
|
286 |
font-size: 12px;
|
287 |
text-transform: uppercase;
|
288 |
font-weight: bold;
|
289 |
line-height: 20px;
|
290 |
+
padding: 10px 20px;
|
291 |
+
}
|
292 |
+
|
293 |
+
.yit-container.product-licence-activation .to-active-table td.product-name {
|
294 |
width: 20%;
|
|
|
295 |
}
|
296 |
|
297 |
.yit-container.product-licence-activation .to-active-table td.activate-button {
|
325 |
box-shadow: 0 0 1px rgba(30,140,190,.8);
|
326 |
}
|
327 |
|
328 |
+
.yit-container.product-licence-activation input[type=text],
|
329 |
+
.yit-container.product-licence-activation input[type=email]{
|
330 |
text-transform: uppercase;
|
331 |
text-align: center;
|
332 |
}
|
333 |
|
|
|
|
|
|
|
|
|
334 |
.yit-container.product-licence-activation input[type=submit]:focus{
|
335 |
outline: 0;
|
336 |
}
|
348 |
color: #808a97;
|
349 |
}
|
350 |
|
351 |
+
#yith-licence-notice {
|
352 |
+
margin-left: 0;
|
353 |
+
visibility: hidden;
|
354 |
+
min-height: 38px;
|
355 |
+
}
|
356 |
+
|
357 |
+
#yith-licence-notice.visible {
|
358 |
+
visibility: visible;
|
359 |
+
}
|
360 |
+
|
361 |
/* === Responsive === */
|
362 |
|
363 |
+
@media (max-width: 767px) {
|
364 |
+
.yit-container.product-licence-activation .activation-faq {
|
365 |
+
margin-right: 5px;
|
366 |
+
}
|
367 |
+
}
|
368 |
+
|
369 |
+
@media (max-width: 480px) {
|
370 |
+
.yit-container.product-licence-activation .activation-faq {
|
371 |
+
margin-right: 5px;
|
372 |
+
}
|
373 |
+
}
|
374 |
+
|
375 |
+
@media (min-width: 768px) and (max-width: 992px) {
|
376 |
+
.yit-container.product-licence-activation .button-licence.licence-deactive,
|
377 |
+
.yit-container.product-licence-activation .button-licence.licence-renew {
|
378 |
+
margin-bottom: 10px;
|
379 |
+
display: block;
|
380 |
+
margin-left: 0;
|
381 |
+
padding: 5px 7px;
|
382 |
+
}
|
383 |
+
|
384 |
+
.yit-container.product-licence-activation .button-licence.licence-deactive {
|
385 |
+
margin-bottom: 10px;
|
386 |
+
}
|
387 |
+
|
388 |
+
.yit-container.product-licence-activation table:not(.to-active-table) th {
|
389 |
+
line-height: 20px;
|
390 |
+
}
|
391 |
+
|
392 |
+
.yit-container.product-licence-activation table tbody tr td {
|
393 |
+
padding: 5px;
|
394 |
+
}
|
395 |
+
|
396 |
+
.yit-container.product-licence-activation .activation-faq {
|
397 |
+
margin-right: 20px;
|
398 |
+
}
|
399 |
+
}
|
400 |
+
|
401 |
+
@media (min-width: 980px) and (max-width: 1199px) {
|
402 |
+
.yit-container.product-licence-activation .button-licence.licence-deactive,
|
403 |
+
.yit-container.product-licence-activation .button-licence.licence-renew {
|
404 |
+
display: block;
|
405 |
+
margin-left: 0;
|
406 |
+
padding: 5px 7px;
|
407 |
+
}
|
408 |
+
|
409 |
+
.yit-container.product-licence-activation .button-licence.licence-renew {
|
410 |
+
margin-top: 10px;
|
411 |
+
}
|
412 |
|
413 |
+
.yit-container.product-licence-activation table:not(.to-active-table) th {
|
414 |
+
line-height: 20px;
|
415 |
+
}
|
416 |
|
417 |
+
.yit-container.product-licence-activation table tbody tr td {
|
418 |
+
padding: 5px;
|
419 |
+
}
|
420 |
|
421 |
+
.yit-container.product-licence-activation .activation-faq {
|
422 |
+
width: 75%;
|
423 |
+
}
|
424 |
+
}
|
425 |
|
426 |
@media (min-width: 1200px) {
|
427 |
.yit-container.product-licence-activation{
|
428 |
+
width: auto;
|
429 |
+
}
|
430 |
+
|
431 |
+
.yit-container.product-licence-activation .activation-faq {
|
432 |
+
width: 50%;
|
433 |
}
|
434 |
}
|
435 |
|
plugin-fw/licence/assets/js/yit-licence.js
CHANGED
@@ -16,20 +16,21 @@
|
|
16 |
button.on('click', function (e, button) {
|
17 |
e.preventDefault();
|
18 |
|
19 |
-
var t
|
20 |
-
form_id
|
21 |
-
form
|
22 |
-
data
|
23 |
-
message
|
24 |
-
message_wrapper
|
25 |
-
email
|
26 |
-
licence_key
|
27 |
-
email_val
|
28 |
-
licence_key_val
|
29 |
-
error
|
30 |
-
error_fields
|
31 |
-
product_row
|
32 |
-
|
|
|
33 |
|
34 |
/* Init Input Fields */
|
35 |
message.empty();
|
@@ -38,17 +39,17 @@
|
|
38 |
licence_key.removeClass('require');
|
39 |
product_row.removeClass('error');
|
40 |
spinner.addClass('show');
|
41 |
-
t.prop("disabled", true).addClass('clicked');
|
42 |
|
43 |
if ('' == email_val) {
|
44 |
error = true;
|
45 |
-
error_fields[ error_fields.length ] =
|
46 |
email.addClass('require');
|
47 |
}
|
48 |
|
49 |
if ('' == licence_key_val) {
|
50 |
error = true;
|
51 |
-
error_fields[ error_fields.length ] =
|
52 |
licence_key.addClass('require');
|
53 |
}
|
54 |
|
@@ -60,7 +61,7 @@
|
|
60 |
success: function (response) {
|
61 |
|
62 |
spinner.removeClass('show');
|
63 |
-
t.prop("disabled", false).removeClass('clicked');
|
64 |
|
65 |
if (true == response.activated) {
|
66 |
$('.product-licence-activation').empty().replaceWith(response.template);
|
@@ -93,10 +94,10 @@
|
|
93 |
}
|
94 |
|
95 |
spinner.removeClass('show');
|
96 |
-
t.prop("disabled", false).removeClass('clicked');
|
97 |
}
|
98 |
});
|
99 |
-
}
|
100 |
|
101 |
var licence_update = function (button) {
|
102 |
button.on('click', function (e) {
|
@@ -119,21 +120,77 @@
|
|
119 |
}
|
120 |
});
|
121 |
});
|
122 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
|
124 |
var licence_api = function () {
|
125 |
-
var button
|
126 |
-
check
|
|
|
127 |
|
128 |
licence_activation(button);
|
129 |
licence_update(check);
|
130 |
-
|
|
|
131 |
|
132 |
licence_api();
|
133 |
|
134 |
$('body').on('click', '.yit-changelog-button', function (e) {
|
135 |
$('#TB_window').remove();
|
136 |
-
|
137 |
});
|
138 |
|
139 |
})(jQuery);
|
16 |
button.on('click', function (e, button) {
|
17 |
e.preventDefault();
|
18 |
|
19 |
+
var t = $(this),
|
20 |
+
form_id = t.data('formid'),
|
21 |
+
form = $('#' + form_id),
|
22 |
+
data = form.serialize(),
|
23 |
+
message = $(form).find('.message'),
|
24 |
+
message_wrapper = $(form).find('.message-wrapper'),
|
25 |
+
email = form.find('.user-email'),
|
26 |
+
licence_key = form.find('.licence-key'),
|
27 |
+
email_val = form.find('.user-email').val(),
|
28 |
+
licence_key_val = form.find('.licence-key').val(),
|
29 |
+
error = false,
|
30 |
+
error_fields = new Array(),
|
31 |
+
product_row = form.find('.product-row'),
|
32 |
+
licence_activation = $('.licence-activation'),
|
33 |
+
spinner = $('#products-to-active').find('.spinner');
|
34 |
|
35 |
/* Init Input Fields */
|
36 |
message.empty();
|
39 |
licence_key.removeClass('require');
|
40 |
product_row.removeClass('error');
|
41 |
spinner.addClass('show');
|
42 |
+
t.add(licence_activation).prop("disabled", true).addClass('clicked');
|
43 |
|
44 |
if ('' == email_val) {
|
45 |
error = true;
|
46 |
+
error_fields[ error_fields.length ] = licence_message.email;
|
47 |
email.addClass('require');
|
48 |
}
|
49 |
|
50 |
if ('' == licence_key_val) {
|
51 |
error = true;
|
52 |
+
error_fields[ error_fields.length ] = licence_message.license_key;
|
53 |
licence_key.addClass('require');
|
54 |
}
|
55 |
|
61 |
success: function (response) {
|
62 |
|
63 |
spinner.removeClass('show');
|
64 |
+
t.add(licence_activation).prop("disabled", false).removeClass('clicked');
|
65 |
|
66 |
if (true == response.activated) {
|
67 |
$('.product-licence-activation').empty().replaceWith(response.template);
|
94 |
}
|
95 |
|
96 |
spinner.removeClass('show');
|
97 |
+
t.add(licence_activation).prop("disabled", false).removeClass('clicked');
|
98 |
}
|
99 |
});
|
100 |
+
};
|
101 |
|
102 |
var licence_update = function (button) {
|
103 |
button.on('click', function (e) {
|
120 |
}
|
121 |
});
|
122 |
});
|
123 |
+
};
|
124 |
+
|
125 |
+
var licence_deactivate = function (button) {
|
126 |
+
button.on('click', function (e) {
|
127 |
+
e.preventDefault();
|
128 |
+
|
129 |
+
var check = script_info.is_debug == true ? true : confirm( licence_message.are_you_sure );
|
130 |
+
|
131 |
+
if( check == true ){
|
132 |
+
var t = $(this),
|
133 |
+
licence_key = t.data('licence-key'),
|
134 |
+
licence_email = t.data('licence-email'),
|
135 |
+
product_init = t.data('product-init'),
|
136 |
+
action = t.data('action'),
|
137 |
+
renew = $('.licence-renew'),
|
138 |
+
deactive = $('.licence-deactive'),
|
139 |
+
message = $('#yith-licence-notice'),
|
140 |
+
activated_table = $('.activated-table');
|
141 |
+
|
142 |
+
t.add(renew).add(deactive).prop("disabled", true).addClass('clicked');
|
143 |
+
$('#activated-products').find('.spinner').addClass('show');
|
144 |
+
|
145 |
+
jQuery.ajax({
|
146 |
+
type : 'POST',
|
147 |
+
url : ajaxurl,
|
148 |
+
data : {
|
149 |
+
action: action,
|
150 |
+
licence_key: licence_key,
|
151 |
+
email: licence_email,
|
152 |
+
product_init: product_init
|
153 |
+
},
|
154 |
+
success: function (response) {
|
155 |
+
message.css( 'maxWidth', activated_table.width() );
|
156 |
+
if (false == response.activated && typeof response.error == 'undefined') {
|
157 |
+
$('.product-licence-activation').empty().replaceWith(response.template);
|
158 |
+
licence_api();
|
159 |
+
}
|
160 |
+
|
161 |
+
if (false == response.activated && typeof response.error != 'undefined') {
|
162 |
+
message.find('p.yith-licence-notice-message').html(response.error);
|
163 |
+
message.removeClass('notice-success').addClass('notice-error visible');
|
164 |
+
t.add(renew).add(deactive).add(renew).prop("disabled", false).removeClass('clicked');
|
165 |
+
$('#activated-products').find('.spinner').removeClass('show');
|
166 |
+
}
|
167 |
+
|
168 |
+
else if (false == response) {
|
169 |
+
message.find('p.yith-licence-notice-message').html(licence_message.server);
|
170 |
+
message.removeClass('notice-success').addClass('notice-error visible');
|
171 |
+
t.add(renew).add(deactive).add(renew).prop("disabled", false).removeClass('clicked');
|
172 |
+
$('#activated-products').find('.spinner').removeClass('show');
|
173 |
+
}
|
174 |
+
}
|
175 |
+
});
|
176 |
+
}
|
177 |
+
});
|
178 |
+
};
|
179 |
|
180 |
var licence_api = function () {
|
181 |
+
var button = $('.licence-activation'),
|
182 |
+
check = $('.licence-check'),
|
183 |
+
deactivated = $('.licence-deactive');
|
184 |
|
185 |
licence_activation(button);
|
186 |
licence_update(check);
|
187 |
+
licence_deactivate(deactivated);
|
188 |
+
};
|
189 |
|
190 |
licence_api();
|
191 |
|
192 |
$('body').on('click', '.yit-changelog-button', function (e) {
|
193 |
$('#TB_window').remove();
|
|
|
194 |
});
|
195 |
|
196 |
})(jQuery);
|
plugin-fw/licence/lib/yit-licence.php
CHANGED
@@ -56,17 +56,48 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
56 |
*/
|
57 |
protected $_api_uri_query_args = '?wc-api=software-api&request=%request%';
|
58 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
/**
|
60 |
* Constructor
|
61 |
*
|
62 |
* @since 1.0
|
63 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
64 |
*/
|
65 |
-
public function __construct(){
|
66 |
-
|
67 |
-
if
|
68 |
-
$this->_api_uri = 'http://dev.yithemes.com';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
|
|
|
|
|
|
|
|
|
|
70 |
}
|
71 |
|
72 |
/**
|
@@ -114,7 +145,6 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
114 |
return $home_url;
|
115 |
}
|
116 |
|
117 |
-
|
118 |
/**
|
119 |
* Check if the request is ajax
|
120 |
*
|
@@ -146,21 +176,20 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
146 |
|
147 |
wp_enqueue_script( 'yit-licence', $script_path . '/licence/assets/js/' . $filename, array( 'jquery' ), '1.0.0', true );
|
148 |
wp_enqueue_style( 'yit-theme-licence', $style_path . '/licence/assets/css/yit-licence.css' );
|
149 |
-
}
|
150 |
|
151 |
-
|
152 |
-
* Localize Scripts
|
153 |
-
*
|
154 |
-
* @return void
|
155 |
-
*
|
156 |
-
* @since 1.0
|
157 |
-
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
158 |
-
*/
|
159 |
-
public function localize_script() {
|
160 |
wp_localize_script( 'yit-licence', 'licence_message', array(
|
161 |
-
'error'
|
162 |
-
'errors'
|
163 |
-
'server'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
)
|
165 |
);
|
166 |
}
|
@@ -177,7 +206,6 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
177 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
178 |
*/
|
179 |
public function activate() {
|
180 |
-
|
181 |
$product_init = $_REQUEST['product_init'];
|
182 |
$product = $this->get_product( $product_init );
|
183 |
|
@@ -190,7 +218,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
190 |
);
|
191 |
|
192 |
$api_uri = esc_url_raw( add_query_arg( $args, $this->get_api_uri( 'activation' ) ) );
|
193 |
-
$response = wp_remote_get( $api_uri );
|
194 |
|
195 |
if ( is_wp_error( $response ) ) {
|
196 |
$body = false;
|
@@ -203,13 +231,14 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
203 |
if ( $body && is_array( $body ) && isset( $body['activated'] ) && $body['activated'] ) {
|
204 |
|
205 |
$option[$product['product_id']] = array(
|
206 |
-
'email'
|
207 |
-
'licence_key'
|
208 |
-
'licence_expires'
|
209 |
-
'message'
|
210 |
-
'activated'
|
211 |
-
'activation_limit'
|
212 |
-
'activation_remaining'
|
|
|
213 |
);
|
214 |
|
215 |
/* === Check for other plugins activation === */
|
@@ -222,7 +251,74 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
222 |
YIT_Upgrade()->force_regenerate_update_transient();
|
223 |
|
224 |
/* === Licence Activation Template === */
|
225 |
-
$body['template'] = $this->show_activation_panel();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
}
|
227 |
|
228 |
wp_send_json( $body );
|
@@ -240,7 +336,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
240 |
* @since 1.0
|
241 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
242 |
*/
|
243 |
-
public function check( $product_init ) {
|
244 |
|
245 |
$status = false;
|
246 |
$body = false;
|
@@ -261,7 +357,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
261 |
);
|
262 |
|
263 |
$api_uri = esc_url_raw( add_query_arg( $args, $this->get_api_uri( 'check' ) ) );
|
264 |
-
$response = wp_remote_get( $api_uri );
|
265 |
|
266 |
if ( ! is_wp_error( $response ) ) {
|
267 |
$body = json_decode( $response['body'] );
|
@@ -279,6 +375,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
279 |
$licence[ $product_id ]['licence_expires'] = $body['licence_expires'];
|
280 |
$licence[ $product_id ]['activation_remaining'] = $body['activation_remaining'];
|
281 |
$licence[ $product_id ]['activation_limit'] = $body['activation_limit'];
|
|
|
282 |
$status = (bool) $body['activated'];
|
283 |
}
|
284 |
elseif ( isset( $body['code'] ) ) {
|
@@ -297,7 +394,8 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
297 |
* 106 -> Licence key has expired
|
298 |
* 107 -> Licence key has be banned
|
299 |
*
|
300 |
-
* Only code 101, 106 and 107 have effect on DB
|
|
|
301 |
*
|
302 |
*/
|
303 |
|
@@ -308,15 +406,17 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
308 |
|
309 |
case '106':
|
310 |
$licence[ $product_id ]['activated'] = false;
|
311 |
-
$licence[ $product_id ]['message'] = $body['
|
312 |
$licence[ $product_id ]['status_code'] = $body['code'];
|
313 |
$licence[ $product_id ]['licence_expires'] = $body['licence_expires'];
|
|
|
314 |
break;
|
315 |
|
316 |
case '107':
|
317 |
-
$licence[ $product_id ]['activated']
|
318 |
-
$licence[ $product_id ]['message']
|
319 |
-
$licence[ $product_id ]['status_code']
|
|
|
320 |
break;
|
321 |
}
|
322 |
}
|
@@ -325,11 +425,28 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
325 |
update_option( $this->_licence_option, $licence );
|
326 |
|
327 |
/* === Update Plugin Licence Information === */
|
328 |
-
|
|
|
|
|
329 |
}
|
330 |
return $status;
|
331 |
}
|
332 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
333 |
/**
|
334 |
* Update Plugins Information
|
335 |
*
|
@@ -342,17 +459,18 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
342 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
343 |
*/
|
344 |
public function update_licence_information() {
|
345 |
-
|
346 |
-
|
347 |
-
}
|
348 |
|
349 |
/* === Regenerate Update Plugins Transient === */
|
350 |
YIT_Upgrade()->force_regenerate_update_transient();
|
351 |
|
352 |
do_action( 'yit_licence_after_check' );
|
353 |
|
354 |
-
|
355 |
-
|
|
|
|
|
356 |
}
|
357 |
|
358 |
/**
|
@@ -363,7 +481,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
363 |
* @since 1.0
|
364 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
365 |
*/
|
366 |
-
public function show_activation_panel() {
|
367 |
|
368 |
$path = defined( 'YIT_CORE_PLUGIN_PATH' ) ? YIT_CORE_PLUGIN_PATH : get_template_directory() . '/core/plugin-fw/';
|
369 |
|
@@ -542,20 +660,49 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
542 |
* @since 1.0
|
543 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
544 |
*/
|
545 |
-
public function
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
'
|
550 |
-
'
|
551 |
-
'
|
552 |
-
'
|
553 |
-
'
|
554 |
-
'
|
555 |
-
'
|
|
|
|
|
|
|
|
|
556 |
);
|
557 |
|
558 |
-
return isset( $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
559 |
}
|
560 |
|
561 |
}
|
56 |
*/
|
57 |
protected $_api_uri_query_args = '?wc-api=software-api&request=%request%';
|
58 |
|
59 |
+
|
60 |
+
/**
|
61 |
+
* @var string check for show extra info
|
62 |
+
* @since 1.0
|
63 |
+
*/
|
64 |
+
public $show_extra_info = false;
|
65 |
+
|
66 |
+
/**
|
67 |
+
* @var string check for show extra info
|
68 |
+
* @since 1.0
|
69 |
+
*/
|
70 |
+
public $show_renew_button = true;
|
71 |
+
|
72 |
/**
|
73 |
* Constructor
|
74 |
*
|
75 |
* @since 1.0
|
76 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
77 |
*/
|
78 |
+
public function __construct() {
|
79 |
+
$is_debug_enabled = defined( 'YIT_LICENCE_DEBUG' ) && YIT_LICENCE_DEBUG;
|
80 |
+
if ( $is_debug_enabled ) {
|
81 |
+
$this->_api_uri = defined( 'YIT_LICENCE_DEBUG_LOCALHOST' ) ? YIT_LICENCE_DEBUG_LOCALHOST : 'http://dev.yithemes.com';
|
82 |
+
add_filter( 'block_local_requests', '__return_false' );
|
83 |
+
}
|
84 |
+
|
85 |
+
/* Style adn Script */
|
86 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
87 |
+
if( $is_debug_enabled ) {
|
88 |
+
//show extra info and renew button in debug mode
|
89 |
+
$this->show_extra_info = $this->show_renew_button = true;
|
90 |
+
}
|
91 |
+
|
92 |
+
else {
|
93 |
+
$this->show_extra_info = defined( 'YIT_SHOW_EXTRA_LICENCE_INFO' ) && YIT_SHOW_EXTRA_LICENCE_INFO;
|
94 |
+
$this->show_renew_button = ! ( defined( 'YIT_HIDE_LICENCE_RENEW_BUTTON' ) && YIT_HIDE_LICENCE_RENEW_BUTTON );
|
95 |
}
|
96 |
+
|
97 |
+
/* Update Licence Information */
|
98 |
+
add_action( 'core_upgrade_preamble', array( $this, 'check_all' ) );
|
99 |
+
add_action( 'wp_maybe_auto_update', array( $this, 'check_all' ) );
|
100 |
+
|
101 |
}
|
102 |
|
103 |
/**
|
145 |
return $home_url;
|
146 |
}
|
147 |
|
|
|
148 |
/**
|
149 |
* Check if the request is ajax
|
150 |
*
|
176 |
|
177 |
wp_enqueue_script( 'yit-licence', $script_path . '/licence/assets/js/' . $filename, array( 'jquery' ), '1.0.0', true );
|
178 |
wp_enqueue_style( 'yit-theme-licence', $style_path . '/licence/assets/css/yit-licence.css' );
|
|
|
179 |
|
180 |
+
/* Localize Scripts */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
wp_localize_script( 'yit-licence', 'licence_message', array(
|
182 |
+
'error' => sprintf( _x( '%s field cannot be empty', '%s = field name', 'yith-plugin-fw' ), '%field%' ), // sprintf must be used to avoid errors with '%field%' string in translation in .po file
|
183 |
+
'errors' => sprintf( __( '%s and %s fields cannot be empty', 'yith-plugin-fw' ), '%field_1%', '%field_2%' ),
|
184 |
+
'server' => __( 'Unable to contact the remote server, please try again later. Thanks!', 'yith-plugin-fw' ),
|
185 |
+
'email' => __( 'Email', 'yith-plugin-fw' ),
|
186 |
+
'license_key' => __( 'License Key', 'yith-plugin-fw' ),
|
187 |
+
'are_you_sure' => __( 'Are you sure you want to deactivate the license for current site?', 'yith-plugin-fw' )
|
188 |
+
)
|
189 |
+
);
|
190 |
+
|
191 |
+
wp_localize_script( 'yit-licence', 'script_info', array(
|
192 |
+
'is_debug' => defined( 'YIT_LICENCE_DEBUG' ) && YIT_LICENCE_DEBUG
|
193 |
)
|
194 |
);
|
195 |
}
|
206 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
207 |
*/
|
208 |
public function activate() {
|
|
|
209 |
$product_init = $_REQUEST['product_init'];
|
210 |
$product = $this->get_product( $product_init );
|
211 |
|
218 |
);
|
219 |
|
220 |
$api_uri = esc_url_raw( add_query_arg( $args, $this->get_api_uri( 'activation' ) ) );
|
221 |
+
$response = wp_remote_get( $api_uri, array( 'timeout' => 30 ) );
|
222 |
|
223 |
if ( is_wp_error( $response ) ) {
|
224 |
$body = false;
|
231 |
if ( $body && is_array( $body ) && isset( $body['activated'] ) && $body['activated'] ) {
|
232 |
|
233 |
$option[$product['product_id']] = array(
|
234 |
+
'email' => urldecode( $args['email'] ),
|
235 |
+
'licence_key' => $args['licence_key'],
|
236 |
+
'licence_expires' => $body['licence_expires'],
|
237 |
+
'message' => $body['message'],
|
238 |
+
'activated' => true,
|
239 |
+
'activation_limit' => $body['activation_limit'],
|
240 |
+
'activation_remaining' => $body['activation_remaining'],
|
241 |
+
'is_membership' => isset( $body['is_membership'] ) ? $body['is_membership'] : false,
|
242 |
);
|
243 |
|
244 |
/* === Check for other plugins activation === */
|
251 |
YIT_Upgrade()->force_regenerate_update_transient();
|
252 |
|
253 |
/* === Licence Activation Template === */
|
254 |
+
$body['template'] = $this->show_activation_panel( $this->get_response_code_message( 200 ) );
|
255 |
+
}
|
256 |
+
|
257 |
+
wp_send_json( $body );
|
258 |
+
}
|
259 |
+
|
260 |
+
/**
|
261 |
+
* Deactivate Plugins
|
262 |
+
*
|
263 |
+
* Send a request to API server to activate plugins
|
264 |
+
*
|
265 |
+
* @return void
|
266 |
+
* @use wp_send_json
|
267 |
+
*
|
268 |
+
* @since 1.0
|
269 |
+
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
270 |
+
*/
|
271 |
+
public function deactivate() {
|
272 |
+
$product_init = $_REQUEST['product_init'];
|
273 |
+
$product = $this->get_product( $product_init );
|
274 |
+
|
275 |
+
$args = array(
|
276 |
+
'email' => urlencode( sanitize_email( $_REQUEST['email'] ) ),
|
277 |
+
'licence_key' => sanitize_text_field( $_REQUEST['licence_key'] ),
|
278 |
+
'product_id' => sanitize_text_field( $product['product_id'] ),
|
279 |
+
'secret_key' => sanitize_text_field( $product['secret_key'] ),
|
280 |
+
'instance' => $this->get_home_url()
|
281 |
+
);
|
282 |
+
|
283 |
+
$api_uri = esc_url_raw( add_query_arg( $args, $this->get_api_uri( 'deactivation' ) ) );
|
284 |
+
$response = wp_remote_get( $api_uri, array( 'timeout' => 30 ) );
|
285 |
+
|
286 |
+
if ( is_wp_error( $response ) ) {
|
287 |
+
$body = false;
|
288 |
+
}
|
289 |
+
else {
|
290 |
+
$body = json_decode( $response['body'] );
|
291 |
+
$body = is_object( $body ) ? get_object_vars( $body ) : false;
|
292 |
+
}
|
293 |
+
|
294 |
+
if ( $body && is_array( $body ) && isset( $body['activated'] ) && ! $body['activated'] && ! isset( $body['error'] ) ) {
|
295 |
+
|
296 |
+
$option[$product['product_id']] = array(
|
297 |
+
'activated' => false,
|
298 |
+
'email' => urldecode( $args['email'] ),
|
299 |
+
'licence_key' => $args['licence_key'],
|
300 |
+
'licence_expires' => $body['licence_expires'],
|
301 |
+
'message' => $body['message'],
|
302 |
+
'activation_limit' => $body['activation_limit'],
|
303 |
+
'activation_remaining' => $body['activation_remaining'],
|
304 |
+
'is_membership' => isset( $body['is_membership'] ) ? $body['is_membership'] : false,
|
305 |
+
);
|
306 |
+
|
307 |
+
/* === Check for other plugins activation === */
|
308 |
+
$options = $this->get_licence();
|
309 |
+
$options[$product['product_id']] = $option[$product['product_id']];
|
310 |
+
|
311 |
+
update_option( $this->_licence_option, $options );
|
312 |
+
|
313 |
+
/* === Update Plugin Licence Information === */
|
314 |
+
YIT_Upgrade()->force_regenerate_update_transient();
|
315 |
+
|
316 |
+
/* === Licence Activation Template === */
|
317 |
+
$body['template'] = $this->show_activation_panel( $this->get_response_code_message( 'deactivated', array( 'instance' => $body['instance'] ) ) );
|
318 |
+
}
|
319 |
+
|
320 |
+
else {
|
321 |
+
$body['error'] = $this->get_response_code_message( $body['code'] );
|
322 |
}
|
323 |
|
324 |
wp_send_json( $body );
|
336 |
* @since 1.0
|
337 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
338 |
*/
|
339 |
+
public function check( $product_init, $regenerate_transient = true ) {
|
340 |
|
341 |
$status = false;
|
342 |
$body = false;
|
357 |
);
|
358 |
|
359 |
$api_uri = esc_url_raw( add_query_arg( $args, $this->get_api_uri( 'check' ) ) );
|
360 |
+
$response = wp_remote_get( $api_uri, array( 'timeout' => 30 ) );
|
361 |
|
362 |
if ( ! is_wp_error( $response ) ) {
|
363 |
$body = json_decode( $response['body'] );
|
375 |
$licence[ $product_id ]['licence_expires'] = $body['licence_expires'];
|
376 |
$licence[ $product_id ]['activation_remaining'] = $body['activation_remaining'];
|
377 |
$licence[ $product_id ]['activation_limit'] = $body['activation_limit'];
|
378 |
+
$licence[ $product_id ]['is_membership'] = isset( $body['is_membership'] ) ? $body['is_membership'] : false;
|
379 |
$status = (bool) $body['activated'];
|
380 |
}
|
381 |
elseif ( isset( $body['code'] ) ) {
|
394 |
* 106 -> Licence key has expired
|
395 |
* 107 -> Licence key has be banned
|
396 |
*
|
397 |
+
* Only code 101, 106 and 107 have effect on DB during activation
|
398 |
+
* All error code have effect on DB during deactivation
|
399 |
*
|
400 |
*/
|
401 |
|
406 |
|
407 |
case '106':
|
408 |
$licence[ $product_id ]['activated'] = false;
|
409 |
+
$licence[ $product_id ]['message'] = $body['error'];
|
410 |
$licence[ $product_id ]['status_code'] = $body['code'];
|
411 |
$licence[ $product_id ]['licence_expires'] = $body['licence_expires'];
|
412 |
+
//$licence[ $product_id ]['is_membership'] = isset( $body['is_membership'] ) ? $body['is_membership'] : false;
|
413 |
break;
|
414 |
|
415 |
case '107':
|
416 |
+
$licence[ $product_id ]['activated'] = false;
|
417 |
+
$licence[ $product_id ]['message'] = $body['error'];
|
418 |
+
$licence[ $product_id ]['status_code'] = $body['code'];
|
419 |
+
//$licence[ $product_id ]['is_membership'] = isset( $body['is_membership'] ) ? $body['is_membership'] : false;
|
420 |
break;
|
421 |
}
|
422 |
}
|
425 |
update_option( $this->_licence_option, $licence );
|
426 |
|
427 |
/* === Update Plugin Licence Information === */
|
428 |
+
if( $regenerate_transient ) {
|
429 |
+
YIT_Upgrade()->force_regenerate_update_transient();
|
430 |
+
}
|
431 |
}
|
432 |
return $status;
|
433 |
}
|
434 |
|
435 |
+
/**
|
436 |
+
* Check for licence update
|
437 |
+
*
|
438 |
+
* @return void
|
439 |
+
* @since 2.5
|
440 |
+
*
|
441 |
+
* @use YIT_Theme_Licence->check()
|
442 |
+
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
443 |
+
*/
|
444 |
+
public function check_all(){
|
445 |
+
foreach ( $this->_products as $init => $info ) {
|
446 |
+
$this->check( $init );
|
447 |
+
}
|
448 |
+
}
|
449 |
+
|
450 |
/**
|
451 |
* Update Plugins Information
|
452 |
*
|
459 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
460 |
*/
|
461 |
public function update_licence_information() {
|
462 |
+
/* Check licence information for alla products */
|
463 |
+
$this->check_all();
|
|
|
464 |
|
465 |
/* === Regenerate Update Plugins Transient === */
|
466 |
YIT_Upgrade()->force_regenerate_update_transient();
|
467 |
|
468 |
do_action( 'yit_licence_after_check' );
|
469 |
|
470 |
+
if( $this->is_ajax() ) {
|
471 |
+
$response['template'] = $this->show_activation_panel();
|
472 |
+
wp_send_json( $response );
|
473 |
+
}
|
474 |
}
|
475 |
|
476 |
/**
|
481 |
* @since 1.0
|
482 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
483 |
*/
|
484 |
+
public function show_activation_panel( $notice = '' ) {
|
485 |
|
486 |
$path = defined( 'YIT_CORE_PLUGIN_PATH' ) ? YIT_CORE_PLUGIN_PATH : get_template_directory() . '/core/plugin-fw/';
|
487 |
|
660 |
* @since 1.0
|
661 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
662 |
*/
|
663 |
+
public function get_response_code_message( $code, $args = array() ) {
|
664 |
+
extract( $args );
|
665 |
+
|
666 |
+
$messages = array(
|
667 |
+
'100' => __( 'Invalid Request', 'yith-plugin-fw' ),
|
668 |
+
'101' => __( 'Invalid license key', 'yith-plugin-fw' ),
|
669 |
+
'102' => __( 'Software has been deactivated', 'yith-plugin-fw' ),
|
670 |
+
'103' => __( 'Maximum number of activations exceeded', 'yith-plugin-fw' ),
|
671 |
+
'104' => __( 'Invalid instance ID', 'yith-plugin-fw' ),
|
672 |
+
'105' => __( 'Invalid security key', 'yith-plugin-fw' ),
|
673 |
+
'106' => __( 'License key has expired', 'yith-plugin-fw' ),
|
674 |
+
'107' => __( 'License key has been banned', 'yith-plugin-fw' ),
|
675 |
+
'108' => __( 'Current product is not included with your membership key', 'woocommerce-software-add-on' ),
|
676 |
+
'200' => sprintf( '<strong>%s</strong>! %s',__( 'Great', 'yith-plugin-fw' ), __( 'License successfully activated', 'yith-plugin-fw' ) ),
|
677 |
+
'deactivated' => sprintf( '%s <strong>%s</strong>', __( 'License key deactivated for website', 'woocommerce-software-add-on' ), isset( $instance ) ? $instance : '' )
|
678 |
);
|
679 |
|
680 |
+
return isset( $messages[$code] ) ? $messages[$code] : false;
|
681 |
+
}
|
682 |
+
|
683 |
+
/**
|
684 |
+
* Get the product name to display
|
685 |
+
*
|
686 |
+
* @param $product_name
|
687 |
+
*
|
688 |
+
* @return string the product name
|
689 |
+
*
|
690 |
+
* @since 2.2
|
691 |
+
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
692 |
+
*/
|
693 |
+
public function display_product_name( $product_name ){
|
694 |
+
return str_replace( array( 'YITH', 'WooCommerce', 'Premium', 'Theme' ), '', $product_name );
|
695 |
+
}
|
696 |
+
|
697 |
+
public function get_number_of_membership_products(){
|
698 |
+
$activated_products = $this->get_activated_products();
|
699 |
+
$num_members_products_activate = 0;
|
700 |
+
foreach( $activated_products as $activated_product ){
|
701 |
+
if( isset( $activated_product['licence']['is_membership'] ) && $activated_product['licence']['is_membership'] ){
|
702 |
+
$num_members_products_activate++;
|
703 |
+
}
|
704 |
+
}
|
705 |
+
return $num_members_products_activate;
|
706 |
}
|
707 |
|
708 |
}
|
plugin-fw/licence/lib/yit-plugin-licence.php
CHANGED
@@ -8,11 +8,11 @@
|
|
8 |
* http://www.gnu.org/licenses/gpl-3.0.txt
|
9 |
*/
|
10 |
|
11 |
-
if ( !
|
12 |
exit;
|
13 |
} // Exit if accessed directly
|
14 |
|
15 |
-
if ( !
|
16 |
/**
|
17 |
* YIT Plugin Licence Panel
|
18 |
*
|
@@ -23,7 +23,6 @@ if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
|
|
23 |
* @since 1.0
|
24 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
25 |
*/
|
26 |
-
|
27 |
class YIT_Plugin_Licence extends YIT_Licence {
|
28 |
|
29 |
/**
|
@@ -59,27 +58,26 @@ if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
|
|
59 |
public function __construct() {
|
60 |
parent::__construct();
|
61 |
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
|
66 |
$this->_settings = array(
|
67 |
'parent_page' => 'yit_plugin_panel',
|
68 |
-
'page_title' => __( '
|
69 |
-
'menu_title' => __( '
|
70 |
'capability' => 'manage_options',
|
71 |
'page' => 'yith_plugins_activation',
|
72 |
);
|
73 |
|
74 |
add_action( 'admin_menu', array( $this, 'add_submenu_page' ), 99 );
|
75 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
76 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'localize_script' ), 15 );
|
77 |
add_action( "wp_ajax_activate-{$this->_product_type}", array( $this, 'activate' ) );
|
|
|
78 |
add_action( "wp_ajax_update_licence_information-{$this->_product_type}", array( $this, 'update_licence_information' ) );
|
79 |
add_action( 'yit_licence_after_check', array( $this, 'licence_after_check' ) );
|
80 |
}
|
81 |
|
82 |
-
|
83 |
public function licence_after_check() {
|
84 |
/* === Regenerate Update Plugins Transient === */
|
85 |
YIT_Upgrade()->force_regenerate_update_transient();
|
@@ -133,16 +131,20 @@ if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
|
|
133 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
134 |
*/
|
135 |
public function register( $plugin_init, $secret_key, $product_id ) {
|
136 |
-
if ( !
|
137 |
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
138 |
}
|
139 |
|
140 |
$plugins = get_plugins();
|
141 |
$plugins[$plugin_init]['secret_key'] = $secret_key;
|
142 |
$plugins[$plugin_init]['product_id'] = $product_id;
|
143 |
-
$this->_products[$plugin_init]
|
144 |
}
|
145 |
-
|
|
|
|
|
|
|
|
|
146 |
}
|
147 |
|
148 |
/**
|
@@ -152,7 +154,7 @@ if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
|
|
152 |
* @since 1.0
|
153 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
154 |
*/
|
155 |
-
if( !
|
156 |
function YIT_Plugin_Licence() {
|
157 |
return YIT_Plugin_Licence::instance();
|
158 |
}
|
8 |
* http://www.gnu.org/licenses/gpl-3.0.txt
|
9 |
*/
|
10 |
|
11 |
+
if ( !defined( 'ABSPATH' ) ) {
|
12 |
exit;
|
13 |
} // Exit if accessed directly
|
14 |
|
15 |
+
if ( !class_exists( 'YIT_Plugin_Licence' ) ) {
|
16 |
/**
|
17 |
* YIT Plugin Licence Panel
|
18 |
*
|
23 |
* @since 1.0
|
24 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
25 |
*/
|
|
|
26 |
class YIT_Plugin_Licence extends YIT_Licence {
|
27 |
|
28 |
/**
|
58 |
public function __construct() {
|
59 |
parent::__construct();
|
60 |
|
61 |
+
if ( !is_admin() ) {
|
62 |
+
return;
|
63 |
+
}
|
64 |
|
65 |
$this->_settings = array(
|
66 |
'parent_page' => 'yit_plugin_panel',
|
67 |
+
'page_title' => __( 'License Activation', 'yith-plugin-fw' ),
|
68 |
+
'menu_title' => __( 'License Activation', 'yith-plugin-fw' ),
|
69 |
'capability' => 'manage_options',
|
70 |
'page' => 'yith_plugins_activation',
|
71 |
);
|
72 |
|
73 |
add_action( 'admin_menu', array( $this, 'add_submenu_page' ), 99 );
|
|
|
|
|
74 |
add_action( "wp_ajax_activate-{$this->_product_type}", array( $this, 'activate' ) );
|
75 |
+
add_action( "wp_ajax_deactivate-{$this->_product_type}", array( $this, 'deactivate' ) );
|
76 |
add_action( "wp_ajax_update_licence_information-{$this->_product_type}", array( $this, 'update_licence_information' ) );
|
77 |
add_action( 'yit_licence_after_check', array( $this, 'licence_after_check' ) );
|
78 |
}
|
79 |
|
80 |
+
|
81 |
public function licence_after_check() {
|
82 |
/* === Regenerate Update Plugins Transient === */
|
83 |
YIT_Upgrade()->force_regenerate_update_transient();
|
131 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
132 |
*/
|
133 |
public function register( $plugin_init, $secret_key, $product_id ) {
|
134 |
+
if ( !function_exists( 'get_plugins' ) ) {
|
135 |
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
136 |
}
|
137 |
|
138 |
$plugins = get_plugins();
|
139 |
$plugins[$plugin_init]['secret_key'] = $secret_key;
|
140 |
$plugins[$plugin_init]['product_id'] = $product_id;
|
141 |
+
$this->_products[$plugin_init] = $plugins[$plugin_init];
|
142 |
}
|
143 |
+
|
144 |
+
public function get_product_type() {
|
145 |
+
return $this->_product_type;
|
146 |
+
}
|
147 |
+
}
|
148 |
}
|
149 |
|
150 |
/**
|
154 |
* @since 1.0
|
155 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
156 |
*/
|
157 |
+
if ( !function_exists( 'YIT_Plugin_Licence' ) ) {
|
158 |
function YIT_Plugin_Licence() {
|
159 |
return YIT_Plugin_Licence::instance();
|
160 |
}
|
plugin-fw/licence/lib/yit-theme-licence.php
CHANGED
@@ -8,11 +8,11 @@
|
|
8 |
* http://www.gnu.org/licenses/gpl-3.0.txt
|
9 |
*/
|
10 |
|
11 |
-
if ( !
|
12 |
exit;
|
13 |
} // Exit if accessed directly
|
14 |
|
15 |
-
if ( !
|
16 |
/**
|
17 |
* YIT Plugin Licence Panel
|
18 |
*
|
@@ -23,7 +23,6 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
|
|
23 |
* @since 1.0
|
24 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
25 |
*/
|
26 |
-
|
27 |
class YIT_Theme_Licence extends YIT_Licence {
|
28 |
|
29 |
/**
|
@@ -50,6 +49,12 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
|
|
50 |
*/
|
51 |
protected $_product_type = 'theme';
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
/**
|
54 |
* Constructor
|
55 |
*
|
@@ -61,16 +66,15 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
|
|
61 |
|
62 |
$this->_settings = array(
|
63 |
'parent_page' => 'yit_product_panel',
|
64 |
-
'page_title' => __( '
|
65 |
-
'menu_title' => __( '
|
66 |
'capability' => 'manage_options',
|
67 |
'page' => 'yith_plugins_activation',
|
68 |
);
|
69 |
|
70 |
add_action( 'admin_menu', array( $this, 'add_submenu_page' ), 99 );
|
71 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
72 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'localize_script' ), 15 );
|
73 |
add_action( "wp_ajax_activate-{$this->_product_type}", array( $this, 'activate' ) );
|
|
|
74 |
add_action( "wp_ajax_update_licence_information-{$this->_product_type}", array( $this, 'update_licence_information' ) );
|
75 |
}
|
76 |
|
@@ -101,15 +105,15 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
|
|
101 |
public function add_submenu_page() {
|
102 |
|
103 |
$admin_tree = array(
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
sprintf( __( '%s', 'yith-plugin-fw' ), $admin_tree['page_title'] ),
|
114 |
sprintf( __( '%s', 'yith-plugin-fw' ), $admin_tree['menu_title'] ),
|
115 |
$admin_tree['capability'],
|
@@ -122,8 +126,8 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
|
|
122 |
* Premium product registration
|
123 |
*
|
124 |
* @param $product_init | string | The product init file
|
125 |
-
* @param $secret_key
|
126 |
-
* @param $product_id
|
127 |
*
|
128 |
* @return void
|
129 |
*
|
@@ -131,11 +135,44 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
|
|
131 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
132 |
*/
|
133 |
public function register( $product_init, $secret_key, $product_id ) {
|
134 |
-
$theme
|
135 |
-
$products[$product_init]['Name']
|
136 |
-
$products[$product_init]['secret_key']
|
137 |
-
$products[$product_init]['product_id']
|
138 |
-
$this->_products[$product_init]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
}
|
140 |
}
|
141 |
}
|
@@ -147,7 +184,7 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
|
|
147 |
* @since 1.0
|
148 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
149 |
*/
|
150 |
-
if( !
|
151 |
function YIT_Theme_Licence() {
|
152 |
return YIT_Theme_Licence::instance();
|
153 |
}
|
8 |
* http://www.gnu.org/licenses/gpl-3.0.txt
|
9 |
*/
|
10 |
|
11 |
+
if ( !defined( 'ABSPATH' ) ) {
|
12 |
exit;
|
13 |
} // Exit if accessed directly
|
14 |
|
15 |
+
if ( !class_exists( 'YIT_Theme_Licence' ) ) {
|
16 |
/**
|
17 |
* YIT Plugin Licence Panel
|
18 |
*
|
23 |
* @since 1.0
|
24 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
25 |
*/
|
|
|
26 |
class YIT_Theme_Licence extends YIT_Licence {
|
27 |
|
28 |
/**
|
49 |
*/
|
50 |
protected $_product_type = 'theme';
|
51 |
|
52 |
+
/**
|
53 |
+
* @var string Old theme licence works until 28 January 2016
|
54 |
+
* @since 1.0
|
55 |
+
*/
|
56 |
+
protected $_old_licence_expires = 1453939200; //28 January 2016
|
57 |
+
|
58 |
/**
|
59 |
* Constructor
|
60 |
*
|
66 |
|
67 |
$this->_settings = array(
|
68 |
'parent_page' => 'yit_product_panel',
|
69 |
+
'page_title' => __( 'License Activation', 'yith-plugin-fw' ),
|
70 |
+
'menu_title' => __( 'License Activation', 'yith-plugin-fw' ),
|
71 |
'capability' => 'manage_options',
|
72 |
'page' => 'yith_plugins_activation',
|
73 |
);
|
74 |
|
75 |
add_action( 'admin_menu', array( $this, 'add_submenu_page' ), 99 );
|
|
|
|
|
76 |
add_action( "wp_ajax_activate-{$this->_product_type}", array( $this, 'activate' ) );
|
77 |
+
add_action( "wp_ajax_deactivate-{$this->_product_type}", array( $this, 'deactivate' ) );
|
78 |
add_action( "wp_ajax_update_licence_information-{$this->_product_type}", array( $this, 'update_licence_information' ) );
|
79 |
}
|
80 |
|
105 |
public function add_submenu_page() {
|
106 |
|
107 |
$admin_tree = array(
|
108 |
+
'parent_slug' => apply_filters( 'yit_licence_parent_slug', 'yit_panel' ),
|
109 |
+
'page_title' => __( 'License Activation', 'yith-plugin-fw' ),
|
110 |
+
'menu_title' => __( 'License Activation', 'yith-plugin-fw' ),
|
111 |
+
'capability' => 'manage_options',
|
112 |
+
'menu_slug' => 'yit_panel_license',
|
113 |
+
'function' => 'show_activation_panel'
|
114 |
+
);
|
115 |
+
|
116 |
+
add_submenu_page( $admin_tree['parent_slug'],
|
117 |
sprintf( __( '%s', 'yith-plugin-fw' ), $admin_tree['page_title'] ),
|
118 |
sprintf( __( '%s', 'yith-plugin-fw' ), $admin_tree['menu_title'] ),
|
119 |
$admin_tree['capability'],
|
126 |
* Premium product registration
|
127 |
*
|
128 |
* @param $product_init | string | The product init file
|
129 |
+
* @param $secret_key | string | The product secret key
|
130 |
+
* @param $product_id | string | The product slug (product_id)
|
131 |
*
|
132 |
* @return void
|
133 |
*
|
135 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
136 |
*/
|
137 |
public function register( $product_init, $secret_key, $product_id ) {
|
138 |
+
$theme = wp_get_theme();
|
139 |
+
$products[$product_init]['Name'] = $theme->Name;
|
140 |
+
$products[$product_init]['secret_key'] = $secret_key;
|
141 |
+
$products[$product_init]['product_id'] = $product_id;
|
142 |
+
$this->_products[$product_init] = $products[$product_init];
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* Check for old licence
|
147 |
+
*
|
148 |
+
* @return bool True for old licence period, false otherwise
|
149 |
+
* @since 2.2
|
150 |
+
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
151 |
+
*/
|
152 |
+
public function show_old_licence_message() {
|
153 |
+
return time() < $this->_old_licence_expires;
|
154 |
+
}
|
155 |
+
|
156 |
+
public function get_old_licence_message() {
|
157 |
+
ob_start(); ?>
|
158 |
+
<div class="activation-faq">
|
159 |
+
<h3><?php _e( 'I cannot find the license key for activating the theme I have bought some time ago. Where can I find it?', 'yith-plugin-fw' ) ?></h3>
|
160 |
+
|
161 |
+
<p>
|
162 |
+
<?php
|
163 |
+
_e( 'If you have purchased one of our products before 27 January 2015, you can benefit from support and updates (the services offered with the license)
|
164 |
+
until 27 January 2016 and you do not have to purchase it again to get a new license key, because, before this date, your license used to be activated automatically by our system.
|
165 |
+
After 27 January 2016, instead, if you want to benefit from support and updates you have to buy a new license and activate it through the license key you will be
|
166 |
+
provided with and that you can find in your YIThemes account, in section "My licenses".', 'yith-plugin-fw' )
|
167 |
+
?>
|
168 |
+
</p>
|
169 |
+
</div>
|
170 |
+
<?php
|
171 |
+
echo ob_get_clean();
|
172 |
+
}
|
173 |
+
|
174 |
+
public function get_product_type() {
|
175 |
+
return $this->_product_type;
|
176 |
}
|
177 |
}
|
178 |
}
|
184 |
* @since 1.0
|
185 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
186 |
*/
|
187 |
+
if ( !function_exists( 'YIT_Theme_Licence' ) ) {
|
188 |
function YIT_Theme_Licence() {
|
189 |
return YIT_Theme_Licence::instance();
|
190 |
}
|
plugin-fw/licence/templates/panel/activation/activation-panel.php
CHANGED
@@ -8,45 +8,40 @@
|
|
8 |
* http://www.gnu.org/licenses/gpl-3.0.txt
|
9 |
*/
|
10 |
|
11 |
-
$to_active_products
|
12 |
-
$activated_products
|
13 |
-
$no_active_products
|
14 |
-
$expired_products
|
15 |
-
$banned_products
|
|
|
|
|
|
|
|
|
16 |
?>
|
17 |
|
18 |
<div class="yit-container product-licence-activation">
|
19 |
-
<h2><?php _e( 'Yithemes
|
20 |
-
|
21 |
-
<?php
|
22 |
-
<div class="activation-faq">
|
23 |
-
<h3><?php _e( 'I cannot find the license key for activating the theme I have bought some time ago. Where can I find it?', 'yith-plugin-fw' ) ?></h3>
|
24 |
-
<p>
|
25 |
-
<?php
|
26 |
-
_e( 'If you have purchased one of our products before 27 January 2015, you can benefit from support and updates (the services offered with the license)
|
27 |
-
until 27 January 2016 and you do not have to purchase it again to get a new license key, because, before this date, your license used to be activated automatically by our system.
|
28 |
-
After 27 January 2016, instead, if you want to benefit from support and updates you have to buy a new license and activate it through the license key you will be
|
29 |
-
provided with and that you can find in your YIThemes account, in section "My licenses".', 'yith-plugin-fw' )
|
30 |
-
?>
|
31 |
-
</p>
|
32 |
-
</div>
|
33 |
-
<?php endif; ?>
|
34 |
|
35 |
<div class="licence-check-section">
|
36 |
<form method="post" id="licence-check-update" action="<?php echo admin_url( 'admin-ajax.php' ) ?>">
|
37 |
<span class="licence-label" style="display: block;"><?php _e( 'Have you updated your licenses? Have you asked for an extension? Update information concerning your products.', 'yith-plugin-fw' ); ?></span>
|
38 |
-
<input type="hidden" name="action" value="update_licence_information-<?php echo $this->
|
39 |
-
<input type="submit" name="submit" value="<?php _e( 'Update
|
40 |
<div class="spinner"></div>
|
41 |
</form>
|
42 |
</div>
|
43 |
|
44 |
-
|
|
|
|
|
45 |
|
|
|
46 |
|
47 |
<?php if( ! empty( $to_active_products ) ) : ?>
|
48 |
-
<h3 class="to-active">
|
49 |
-
<?php
|
50 |
<span class="spinner"></span>
|
51 |
</h3>
|
52 |
<div class="to-active-wrapper">
|
@@ -56,23 +51,22 @@ $banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_produc
|
|
56 |
<tbody>
|
57 |
<tr class="product-row">
|
58 |
<td class="product-name">
|
59 |
-
<?php echo $info['Name'] ?>
|
60 |
</td>
|
61 |
<td>
|
62 |
<input type="email" name="email" placeholder="Your email on Yithemes.com" value="" class="user-email" />
|
63 |
</td>
|
64 |
<td>
|
65 |
-
<input type="text" name="licence_key" placeholder="
|
66 |
</td>
|
67 |
<td class="activate-button">
|
68 |
<input type="submit" name="submit" value="<?php _e( 'Activate', 'yith-plugin-fw' )?>" class="button-licence licence-activation" data-formid="<?php echo $info['product_id'] ?>"/>
|
69 |
</td>
|
70 |
</tr>
|
71 |
-
<input type="hidden" name="action" value="activate-<?php echo $this->
|
72 |
<input type="hidden" name="product_init" value="<?php echo $init ?>" />
|
73 |
</tbody>
|
74 |
</table>
|
75 |
-
<div class="spinner"></div>
|
76 |
<div class="message-wrapper">
|
77 |
<span class="message arrow-left"></span>
|
78 |
</div>
|
@@ -84,29 +78,78 @@ $banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_produc
|
|
84 |
<!-- Activated Products -->
|
85 |
|
86 |
<?php if( ! empty( $activated_products ) ) : ?>
|
87 |
-
<h3
|
88 |
-
|
|
|
|
|
|
|
89 |
<thead>
|
90 |
<tr>
|
91 |
<th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
|
92 |
-
|
93 |
-
|
|
|
|
|
|
|
94 |
<th><?php _e( 'Expires', 'yith-plugin-fw' ) ?></th>
|
95 |
-
|
96 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
</tr>
|
98 |
</thead>
|
99 |
<tbody>
|
100 |
<?php foreach( $activated_products as $init => $info ) : ?>
|
101 |
<tr>
|
102 |
-
<td class="product-name"
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
</td>
|
109 |
-
<td><a class="button-licence licence-renew" href="<?php echo $this->get_renewing_uri( $info['licence']['licence_key'] ) ?>" target="_blank"><?php _e( 'Renew', 'yith-plugin-fw' ) ?></a></td>
|
110 |
</tr>
|
111 |
<?php endforeach; ?>
|
112 |
</tbody>
|
@@ -121,16 +164,22 @@ $banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_produc
|
|
121 |
<thead>
|
122 |
<tr>
|
123 |
<th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
|
124 |
-
|
125 |
-
|
|
|
|
|
126 |
</tr>
|
127 |
</thead>
|
128 |
<tbody>
|
129 |
<?php foreach( $banned_products as $init => $info ) : ?>
|
130 |
<tr>
|
131 |
-
<td class="product-name"
|
132 |
-
|
133 |
-
|
|
|
|
|
|
|
|
|
134 |
</tr>
|
135 |
<?php endforeach; ?>
|
136 |
</tbody>
|
@@ -145,20 +194,44 @@ $banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_produc
|
|
145 |
<thead>
|
146 |
<tr>
|
147 |
<th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
|
148 |
-
|
149 |
-
|
|
|
|
|
|
|
|
|
150 |
<th><?php _e( 'Expires', 'yith-plugin-fw' ) ?></th>
|
151 |
-
|
|
|
|
|
|
|
152 |
</tr>
|
153 |
</thead>
|
154 |
<tbody>
|
155 |
<?php foreach( $expired_products as $init => $info ) : ?>
|
156 |
<tr>
|
157 |
-
<td class="product-name"
|
158 |
-
|
159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
<td class="product-licence-expires"><?php echo date("F j, Y", $info['licence']['licence_expires'] ); ?></td>
|
161 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
</tr>
|
163 |
<?php endforeach; ?>
|
164 |
</tbody>
|
8 |
* http://www.gnu.org/licenses/gpl-3.0.txt
|
9 |
*/
|
10 |
|
11 |
+
$to_active_products = $this->get_to_active_products();
|
12 |
+
$activated_products = $this->get_activated_products();
|
13 |
+
$no_active_products = $this->get_no_active_licence_key();
|
14 |
+
$expired_products = isset( $no_active_products[ '106' ] ) ? $no_active_products[ '106' ] : array();
|
15 |
+
$banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_products[ '107' ] : array();
|
16 |
+
$notice = isset( $notice ) ? $notice : '';
|
17 |
+
$notice_class = ! empty( $notice ) ? 'notice notice-success visible' : 'notice notice-success';
|
18 |
+
$to_activate_check = $this instanceof YIT_Theme_Licence ? 1 : 2;
|
19 |
+
$num_members_products_activate = $this->get_number_of_membership_products();
|
20 |
?>
|
21 |
|
22 |
<div class="yit-container product-licence-activation">
|
23 |
+
<h2><?php _e( 'Yithemes License Activation', 'yith-plugin-fw' ) ?></h2>
|
24 |
+
|
25 |
+
<?php $this instanceof YIT_Theme_Licence && $this->show_old_licence_message() && $this->get_old_licence_message(); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
|
27 |
<div class="licence-check-section">
|
28 |
<form method="post" id="licence-check-update" action="<?php echo admin_url( 'admin-ajax.php' ) ?>">
|
29 |
<span class="licence-label" style="display: block;"><?php _e( 'Have you updated your licenses? Have you asked for an extension? Update information concerning your products.', 'yith-plugin-fw' ); ?></span>
|
30 |
+
<input type="hidden" name="action" value="update_licence_information-<?php echo $this->get_product_type(); ?>" />
|
31 |
+
<input type="submit" name="submit" value="<?php _e( 'Update license information', 'yith-plugin-fw' ) ?>" class="button-licence licence-check" />
|
32 |
<div class="spinner"></div>
|
33 |
</form>
|
34 |
</div>
|
35 |
|
36 |
+
<div id="yith-licence-notice" class="<?php echo $notice_class ?>">
|
37 |
+
<p class="yith-licence-notice-message"><?php echo $notice ?></p>
|
38 |
+
</div>
|
39 |
|
40 |
+
<!-- To Active Products -->
|
41 |
|
42 |
<?php if( ! empty( $to_active_products ) ) : ?>
|
43 |
+
<h3 id="products-to-active" class="to-active">
|
44 |
+
<?php echo _n( 'Product to activate', 'Products to activate', $to_activate_check, 'yith-plugin-fw' ) ?>
|
45 |
<span class="spinner"></span>
|
46 |
</h3>
|
47 |
<div class="to-active-wrapper">
|
51 |
<tbody>
|
52 |
<tr class="product-row">
|
53 |
<td class="product-name">
|
54 |
+
<?php echo $this->display_product_name( $info['Name'] ) ?>
|
55 |
</td>
|
56 |
<td>
|
57 |
<input type="email" name="email" placeholder="Your email on Yithemes.com" value="" class="user-email" />
|
58 |
</td>
|
59 |
<td>
|
60 |
+
<input type="text" name="licence_key" placeholder="License Key" value="" class="licence-key" />
|
61 |
</td>
|
62 |
<td class="activate-button">
|
63 |
<input type="submit" name="submit" value="<?php _e( 'Activate', 'yith-plugin-fw' )?>" class="button-licence licence-activation" data-formid="<?php echo $info['product_id'] ?>"/>
|
64 |
</td>
|
65 |
</tr>
|
66 |
+
<input type="hidden" name="action" value="activate-<?php echo $this->get_product_type(); ?>" />
|
67 |
<input type="hidden" name="product_init" value="<?php echo $init ?>" />
|
68 |
</tbody>
|
69 |
</table>
|
|
|
70 |
<div class="message-wrapper">
|
71 |
<span class="message arrow-left"></span>
|
72 |
</div>
|
78 |
<!-- Activated Products -->
|
79 |
|
80 |
<?php if( ! empty( $activated_products ) ) : ?>
|
81 |
+
<h3 id="activated-products">
|
82 |
+
<?php _e( 'Activated', 'yith-plugin-fw' ) ?>
|
83 |
+
<span class="spinner"></span>
|
84 |
+
</h3>
|
85 |
+
<table class="activated-table">
|
86 |
<thead>
|
87 |
<tr>
|
88 |
<th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
|
89 |
+
<?php if( $this->show_extra_info ) : ?>
|
90 |
+
<th><?php _e( 'Email', 'yith-plugin-fw' ) ?></th>
|
91 |
+
<th><?php _e( 'License Key', 'yith-plugin-fw' ) ?></th>
|
92 |
+
<?php endif; ?>
|
93 |
+
|
94 |
<th><?php _e( 'Expires', 'yith-plugin-fw' ) ?></th>
|
95 |
+
|
96 |
+
<?php if( $this->show_extra_info ) : ?>
|
97 |
+
<th><?php _e( 'Remaining', 'yith-plugin-fw' ) ?></th>
|
98 |
+
<?php if( $num_members_products_activate ) : ?>
|
99 |
+
<th><?php _e( 'Membership', 'yith-plugin-fw' ) ?></th>
|
100 |
+
<?php endif; ?>
|
101 |
+
<?php endif; ?>
|
102 |
+
|
103 |
+
<th><?php _e( 'License Actions', 'yith-plugin-fw' ) ?></th>
|
104 |
</tr>
|
105 |
</thead>
|
106 |
<tbody>
|
107 |
<?php foreach( $activated_products as $init => $info ) : ?>
|
108 |
<tr>
|
109 |
+
<td class="product-name">
|
110 |
+
<?php echo $this->display_product_name( $info['Name'] ) ?>
|
111 |
+
</td>
|
112 |
+
|
113 |
+
<?php if( $this->show_extra_info ) : ?>
|
114 |
+
<td class="product-licence-email">
|
115 |
+
<?php echo $info['licence']['email'] ?>
|
116 |
+
</td>
|
117 |
+
<td class="product-licence-key">
|
118 |
+
<?php echo $info['licence']['licence_key'] ?>
|
119 |
+
</td>
|
120 |
+
<?php endif; ?>
|
121 |
+
|
122 |
+
<td class="product-licence-expires">
|
123 |
+
<?php echo date("F j, Y", $info['licence']['licence_expires'] ); ?>
|
124 |
+
</td>
|
125 |
+
|
126 |
+
<?php if( $this->show_extra_info ) : ?>
|
127 |
+
<td class="product-licence-remaining">
|
128 |
+
<?php printf( __( '%1s out of %2s', 'yith-plugin-fw' ), $info['licence']['activation_remaining'], $info['licence']['activation_limit'] ); ?>
|
129 |
+
</td>
|
130 |
+
<?php if( $num_members_products_activate ) : ?>
|
131 |
+
<td class="product-licence-membership">
|
132 |
+
<span class="dashicons dashicons-<?php echo $info['licence']['is_membership'] ? 'yes' : 'no-alt' ?>"></span>
|
133 |
+
</td>
|
134 |
+
<?php endif; ?>
|
135 |
+
<?php endif; ?>
|
136 |
+
|
137 |
+
<td>
|
138 |
+
<a class="button-licence licence-deactive"
|
139 |
+
href="#"
|
140 |
+
data-licence-email="<?php echo $info['licence']['email'] ?>"
|
141 |
+
data-licence-key="<?php echo $info['licence']['licence_key'] ?>"
|
142 |
+
data-product-init="<?php echo $init ?>"
|
143 |
+
data-action="deactivate-<?php echo $this->get_product_type(); ?>">
|
144 |
+
<?php _e( 'Deactivate', 'yith-plugin-fw' ) ?>
|
145 |
+
</a>
|
146 |
+
|
147 |
+
<?php if( ! $info['licence']['is_membership'] && $this->show_renew_button ) : ?>
|
148 |
+
<a class="button-licence licence-renew" href="<?php echo $this->get_renewing_uri( $info['licence']['licence_key'] ) ?>" target="_blank">
|
149 |
+
<?php _e( 'Renew', 'yith-plugin-fw' ) ?>
|
150 |
+
</a>
|
151 |
+
<?php endif; ?>
|
152 |
</td>
|
|
|
153 |
</tr>
|
154 |
<?php endforeach; ?>
|
155 |
</tbody>
|
164 |
<thead>
|
165 |
<tr>
|
166 |
<th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
|
167 |
+
<?php if( $this->show_extra_info ) : ?>
|
168 |
+
<th><?php _e( 'Email', 'yith-plugin-fw' ) ?></th>
|
169 |
+
<th><?php _e( 'License Key', 'yith-plugin-fw' ) ?></th>
|
170 |
+
<?php endif; ?>
|
171 |
</tr>
|
172 |
</thead>
|
173 |
<tbody>
|
174 |
<?php foreach( $banned_products as $init => $info ) : ?>
|
175 |
<tr>
|
176 |
+
<td class="product-name">
|
177 |
+
<?php echo $this->display_product_name( $info['Name'] ) ?>
|
178 |
+
</td>
|
179 |
+
<?php if( $this->show_extra_info ) : ?>
|
180 |
+
<td class="product-licence-email"><?php echo $info['licence']['email'] ?></td>
|
181 |
+
<td class="product-licence-key"><?php echo $info['licence']['licence_key'] ?></td>
|
182 |
+
<?php endif; ?>
|
183 |
</tr>
|
184 |
<?php endforeach; ?>
|
185 |
</tbody>
|
194 |
<thead>
|
195 |
<tr>
|
196 |
<th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
|
197 |
+
|
198 |
+
<?php if( $this->show_extra_info ) : ?>
|
199 |
+
<th><?php _e( 'Email', 'yith-plugin-fw' ) ?></th>
|
200 |
+
<th><?php _e( 'License Key', 'yith-plugin-fw' ) ?></th>
|
201 |
+
<?php endif; ?>
|
202 |
+
|
203 |
<th><?php _e( 'Expires', 'yith-plugin-fw' ) ?></th>
|
204 |
+
|
205 |
+
<?php if( $this->show_renew_button ) : ?>
|
206 |
+
<th><?php _e( 'Renew', 'yith-plugin-fw' ) ?></th>
|
207 |
+
<?php endif; ?>
|
208 |
</tr>
|
209 |
</thead>
|
210 |
<tbody>
|
211 |
<?php foreach( $expired_products as $init => $info ) : ?>
|
212 |
<tr>
|
213 |
+
<td class="product-name">
|
214 |
+
<?php echo $this->display_product_name( $info['Name'] ) ?>
|
215 |
+
</td>
|
216 |
+
|
217 |
+
<?php if( $this->show_extra_info ) : ?>
|
218 |
+
<td class="product-licence-email"><?php echo $info['licence']['email'] ?></td>
|
219 |
+
<td class="product-licence-key"><?php echo $info['licence']['licence_key'] ?></td>
|
220 |
+
<?php endif; ?>
|
221 |
+
|
222 |
<td class="product-licence-expires"><?php echo date("F j, Y", $info['licence']['licence_expires'] ); ?></td>
|
223 |
+
|
224 |
+
<?php if( $this->show_renew_button ) : ?>
|
225 |
+
<td>
|
226 |
+
<a class="button-licence licence-renew" href="<?php echo $this->get_renewing_uri( $info['licence']['licence_key'] ) ?>" target="_blank">
|
227 |
+
<?php if( $info['licence']['is_membership'] ) : ?>
|
228 |
+
<?php _e( 'Order again', 'yith-plugin-fw' ) ?>
|
229 |
+
<?php else : ?>
|
230 |
+
<?php __( 'Renew license', 'yith-plugin-fw' ) ?>
|
231 |
+
<?php endif; ?>
|
232 |
+
</a>
|
233 |
+
</td>
|
234 |
+
<?php endif; ?>
|
235 |
</tr>
|
236 |
<?php endforeach; ?>
|
237 |
</tbody>
|
plugin-fw/templates/metaboxes/types/number.php
CHANGED
@@ -14,12 +14,25 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
|
15 |
extract( $args );
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
?>
|
18 |
<div id="<?php echo $id ?>-container" <?php if ( isset($deps) ): ?>data-field="<?php echo $id ?>" data-dep="<?php echo $deps['ids'] ?>" data-value="<?php echo $deps['values'] ?>" <?php endif ?>>
|
19 |
<div class="rm_number">
|
20 |
<label for="<?php echo $id ?>"><?php echo $label ?></label>
|
21 |
<span class="field">
|
22 |
-
<input class="number" type="text" id="<?php echo $id ?>" name="<?php echo $name ?>" <?php echo $
|
23 |
<?php yit_string( '<span class="description">', $desc, '</span>' ); ?>
|
24 |
</span>
|
25 |
</div>
|
14 |
|
15 |
extract( $args );
|
16 |
|
17 |
+
$min_max_attr = $step_attr = '';
|
18 |
+
|
19 |
+
if( isset( $min ) ){
|
20 |
+
$min_max_attr .= " min='{$min}'";
|
21 |
+
}
|
22 |
+
|
23 |
+
if( isset( $max ) ){
|
24 |
+
$min_max_attr .= " max='{$max}'";
|
25 |
+
}
|
26 |
+
|
27 |
+
if( isset( $step ) ){
|
28 |
+
$step_attr .= "step='{$step}'";
|
29 |
+
}
|
30 |
?>
|
31 |
<div id="<?php echo $id ?>-container" <?php if ( isset($deps) ): ?>data-field="<?php echo $id ?>" data-dep="<?php echo $deps['ids'] ?>" data-value="<?php echo $deps['values'] ?>" <?php endif ?>>
|
32 |
<div class="rm_number">
|
33 |
<label for="<?php echo $id ?>"><?php echo $label ?></label>
|
34 |
<span class="field">
|
35 |
+
<input class="number" type="text" id="<?php echo $id ?>" name="<?php echo $name ?>" <?php echo $step_attr ?> <?php echo $min_max_attr ?> value="<?php echo esc_attr( $value ) ?>" <?php if( isset( $std ) ) : ?>data-std="<?php echo $std ?>"<?php endif ?>" />
|
36 |
<?php yit_string( '<span class="description">', $desc, '</span>' ); ?>
|
37 |
</span>
|
38 |
</div>
|
plugin-fw/templates/panel/types/upload.php
CHANGED
@@ -26,9 +26,10 @@ $name = $this->get_name_field( $option['id'] );
|
|
26 |
?>
|
27 |
<div id="<?php echo $id ?>-container" >
|
28 |
<div id="<?php echo $id ?>-container" class="yit_options rm_option rm_input rm_text rm_upload" <?php if ( isset( $option['deps'] ) ): ?>data-field="<?php echo $id ?>" data-dep="<?php echo $this->get_id_field( $option['deps']['ids'] ) ?>" data-value="<?php echo $option['deps']['values'] ?>" <?php endif ?>>
|
29 |
-
<div class="option">
|
30 |
<input type="text" name="<?php echo $name ?>" id="<?php echo $id ?>" value="<?php echo $db_value == '1' ? '' : esc_attr( $db_value ) ?>" class="upload_img_url" />
|
31 |
<input type="button" value="<?php _e( 'Upload', 'yith-plugin-fw' ) ?>" id="<?php echo $id ?>-button" class="upload_button button" />
|
|
|
32 |
</div>
|
33 |
<div class="clear"></div>
|
34 |
<span class="description"><?php echo $option['desc'] ?></span>
|
26 |
?>
|
27 |
<div id="<?php echo $id ?>-container" >
|
28 |
<div id="<?php echo $id ?>-container" class="yit_options rm_option rm_input rm_text rm_upload" <?php if ( isset( $option['deps'] ) ): ?>data-field="<?php echo $id ?>" data-dep="<?php echo $this->get_id_field( $option['deps']['ids'] ) ?>" data-value="<?php echo $option['deps']['values'] ?>" <?php endif ?>>
|
29 |
+
<div class="option yit-upload">
|
30 |
<input type="text" name="<?php echo $name ?>" id="<?php echo $id ?>" value="<?php echo $db_value == '1' ? '' : esc_attr( $db_value ) ?>" class="upload_img_url" />
|
31 |
<input type="button" value="<?php _e( 'Upload', 'yith-plugin-fw' ) ?>" id="<?php echo $id ?>-button" class="upload_button button" />
|
32 |
+
<input type="button" value="<?php _e( 'Reset', 'yith-plugin-fw' ) ?>" id="<?php echo $id ?>-button_reset" class="upload_button_reset button" data-default="<?php echo $option['std'] ?>"/>
|
33 |
</div>
|
34 |
<div class="clear"></div>
|
35 |
<span class="description"><?php echo $option['desc'] ?></span>
|
plugin-fw/yit-functions.php
CHANGED
@@ -8,11 +8,11 @@
|
|
8 |
* http://www.gnu.org/licenses/gpl-3.0.txt
|
9 |
*/
|
10 |
|
11 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
exit;
|
13 |
} // Exit if accessed directly
|
14 |
|
15 |
-
if ( ! function_exists( 'yit_plugin_locate_template' ) ) {
|
16 |
/**
|
17 |
* Locate the templates and return the path of the file found
|
18 |
*
|
@@ -23,12 +23,12 @@ if ( ! function_exists( 'yit_plugin_locate_template' ) ) {
|
|
23 |
* @return string
|
24 |
* @since 2.0.0
|
25 |
*/
|
26 |
-
function yit_plugin_locate_template( $plugin_basename, $path, $var = NULL ) {
|
27 |
|
28 |
$template_path = '/theme/templates/' . $path;
|
29 |
|
30 |
-
$located = locate_template( array(
|
31 |
-
$template_path
|
32 |
) );
|
33 |
|
34 |
if ( ! $located ) {
|
@@ -40,7 +40,7 @@ if ( ! function_exists( 'yit_plugin_locate_template' ) ) {
|
|
40 |
|
41 |
}
|
42 |
|
43 |
-
if ( ! function_exists( 'yit_plugin_get_template' ) ) {
|
44 |
/**
|
45 |
* Retrieve a template file.
|
46 |
*
|
@@ -52,30 +52,30 @@ if ( ! function_exists( 'yit_plugin_get_template' ) ) {
|
|
52 |
* @return string
|
53 |
* @since 2.0.0
|
54 |
*/
|
55 |
-
function yit_plugin_get_template( $plugin_basename, $path, $var = null, $return = false ) {
|
56 |
|
57 |
-
$located = yit_plugin_locate_template( $plugin_basename, $path, $var );
|
58 |
|
59 |
-
if ( $var && is_array( $var ) ) {
|
60 |
-
extract( $var );
|
61 |
}
|
62 |
|
63 |
if ( $return ) {
|
64 |
-
ob_start();
|
65 |
}
|
66 |
|
67 |
// include file located
|
68 |
-
if( file_exists( $located ) ){
|
69 |
-
include( $located );
|
70 |
}
|
71 |
|
72 |
if ( $return ) {
|
73 |
-
return ob_get_clean();
|
74 |
}
|
75 |
}
|
76 |
}
|
77 |
|
78 |
-
if ( ! function_exists( 'yit_plugin_content' ) ) {
|
79 |
/**
|
80 |
* Return post content with read more link (if needed)
|
81 |
*
|
@@ -88,85 +88,79 @@ if ( ! function_exists( 'yit_plugin_content' ) ) {
|
|
88 |
* @return string
|
89 |
* @since 2.0.0
|
90 |
*/
|
91 |
-
function yit_plugin_content( $what = 'content', $limit = 25, $more_text = '', $split = '[...]', $in_paragraph = 'true' ) {
|
92 |
if ( $what == 'content' ) {
|
93 |
-
$content = get_the_content( $more_text );
|
94 |
-
}
|
95 |
-
else {
|
96 |
if ( $what == 'excerpt' ) {
|
97 |
-
$content = get_the_excerpt();
|
98 |
-
}
|
99 |
-
else {
|
100 |
$content = $what;
|
101 |
}
|
102 |
}
|
103 |
|
104 |
if ( $limit == 0 ) {
|
105 |
if ( $what == 'excerpt' ) {
|
106 |
-
$content = apply_filters( 'the_excerpt', $content );
|
107 |
-
}
|
108 |
-
|
109 |
-
$content =
|
110 |
-
$content =
|
111 |
-
$content = str_replace( ']]>', ']]>', $content );
|
112 |
}
|
113 |
|
114 |
return $content;
|
115 |
}
|
116 |
|
117 |
// remove the tag more from the content
|
118 |
-
if ( preg_match( "/<(a)[^>]*class\s*=\s*(['\"])more-link\\2[^>]*>(.*?)<\/\\1>/", $content, $matches ) ) {
|
119 |
|
120 |
-
if ( strpos( $matches[0], '[button' ) ) {
|
121 |
-
$more_link = str_replace( 'href="#"', 'href="' . get_permalink() . '"', do_shortcode( $matches[3] ) );
|
122 |
-
}
|
123 |
-
|
124 |
-
$more_link = $matches[0];
|
125 |
}
|
126 |
|
127 |
-
$content = str_replace( $more_link, '', $content );
|
128 |
$split = '';
|
129 |
}
|
130 |
|
131 |
if ( empty( $content ) ) {
|
132 |
return;
|
133 |
}
|
134 |
-
$content = explode( ' ', $content );
|
135 |
|
136 |
if ( ! empty( $more_text ) && ! isset( $more_link ) ) {
|
137 |
//array_pop( $content );
|
138 |
-
$more_link = strpos( $more_text, '<a class="btn"' ) ? $more_text : '<a class="read-more' . apply_filters( 'yit_simple_read_more_classes', ' ' ) . '" href="' . get_permalink() . '">' . $more_text . '</a>';
|
139 |
$split = '';
|
140 |
-
}
|
141 |
-
elseif ( ! isset( $more_link ) ) {
|
142 |
$more_link = '';
|
143 |
}
|
144 |
|
145 |
// split
|
146 |
-
if ( count( $content ) >= $limit ) {
|
147 |
$split_content = '';
|
148 |
for ( $i = 0; $i < $limit; $i ++ ) {
|
149 |
-
$split_content .= $content[$i] . ' ';
|
150 |
}
|
151 |
|
152 |
$content = $split_content . $split;
|
153 |
-
}
|
154 |
-
|
155 |
-
$content = implode( " ", $content );
|
156 |
}
|
157 |
|
158 |
// TAGS UNCLOSED
|
159 |
-
$tags = array();
|
160 |
// get all tags opened
|
161 |
-
preg_match_all( "/(<([\w]+)[^>]*>)/", $content, $tags_opened, PREG_SET_ORDER );
|
162 |
foreach ( $tags_opened as $tag ) {
|
163 |
-
$tags[] = $tag[2];
|
164 |
}
|
165 |
|
166 |
// get all tags closed and remove it from the tags opened.. the rest will be closed at the end of the content
|
167 |
-
preg_match_all( "/(<\/([\w]+)[^>]*>)/", $content, $tags_closed, PREG_SET_ORDER );
|
168 |
foreach ( $tags_closed as $tag ) {
|
169 |
-
unset( $tags[array_search( $tag[2], $tags )] );
|
170 |
}
|
171 |
|
172 |
// close the tags
|
@@ -178,16 +172,16 @@ if ( ! function_exists( 'yit_plugin_content' ) ) {
|
|
178 |
|
179 |
//$content = preg_replace( '/\[.+\]/', '', $content );
|
180 |
if ( $in_paragraph == true ): $content .= $more_link; endif;
|
181 |
-
$content = preg_replace( '/<img[^>]+./', '', $content ); //remove images
|
182 |
-
$content = apply_filters( 'the_content', $content );
|
183 |
-
$content = str_replace( ']]>', ']]>', $content ); // echo str_replace( array( '<', '>' ), array( '<', '>' ), $content );
|
184 |
if ( $in_paragraph == false ): $content .= $more_link; endif;
|
185 |
|
186 |
return $content;
|
187 |
}
|
188 |
}
|
189 |
|
190 |
-
if ( ! function_exists( 'yit_plugin_string' ) ) {
|
191 |
/**
|
192 |
* Simple echo a string, with a before and after string, only if the main string is not empty.
|
193 |
*
|
@@ -199,10 +193,10 @@ if ( ! function_exists( 'yit_plugin_string' ) ) {
|
|
199 |
* @return string The complete string, if the main string is not empty or null
|
200 |
* @since 2.0.0
|
201 |
*/
|
202 |
-
function yit_plugin_string( $before = '', $string = '', $after = '', $echo = true ) {
|
203 |
$html = '';
|
204 |
|
205 |
-
if ( $string != '' AND ! is_null( $string ) ) {
|
206 |
$html = $before . $string . $after;
|
207 |
}
|
208 |
|
@@ -214,7 +208,7 @@ if ( ! function_exists( 'yit_plugin_string' ) ) {
|
|
214 |
}
|
215 |
}
|
216 |
|
217 |
-
if ( ! function_exists( 'yit_plugin_decode_title' ) ) {
|
218 |
/**
|
219 |
* Change some special characters to put easily html into a string
|
220 |
*
|
@@ -228,14 +222,14 @@ if ( ! function_exists( 'yit_plugin_decode_title' ) ) {
|
|
228 |
*
|
229 |
* @since 1.0
|
230 |
*/
|
231 |
-
function yit_plugin_decode_title( $title ) {
|
232 |
-
$replaces = apply_filters( 'yit_title_special_characters', array() );
|
233 |
|
234 |
-
return preg_replace( array_keys( $replaces ), array_values( $replaces ), $title );
|
235 |
}
|
236 |
}
|
237 |
|
238 |
-
if ( ! function_exists( 'yit_plugin_get_attachment_id' ) ) {
|
239 |
|
240 |
/**
|
241 |
* Return the ID of an attachment.
|
@@ -247,49 +241,49 @@ if ( ! function_exists( 'yit_plugin_get_attachment_id' ) ) {
|
|
247 |
* @since 2.0.0
|
248 |
*/
|
249 |
|
250 |
-
function yit_plugin_get_attachment_id( $url ) {
|
251 |
|
252 |
-
$upload_dir = wp_upload_dir();
|
253 |
-
$dir = trailingslashit( $upload_dir['baseurl'] );
|
254 |
|
255 |
-
if ( false === strpos( $url, $dir ) ) {
|
256 |
return false;
|
257 |
}
|
258 |
|
259 |
-
$file = basename( $url );
|
260 |
|
261 |
-
$query = array(
|
262 |
'post_type' => 'attachment',
|
263 |
'fields' => 'ids',
|
264 |
-
'meta_query' => array(
|
265 |
-
array(
|
266 |
'value' => $file,
|
267 |
'compare' => 'LIKE',
|
268 |
-
)
|
269 |
-
)
|
270 |
);
|
271 |
|
272 |
-
$query['meta_query'][0]['key'] = '_wp_attached_file';
|
273 |
-
$ids
|
274 |
|
275 |
foreach ( $ids as $id ) {
|
276 |
-
$attachment_image = wp_get_attachment_image_src( $id, 'full' );
|
277 |
-
if ( $url == array_shift( $attachment_image ) || $url == str_replace( 'https://', 'http://', array_shift( $attachment_image ) ) ) {
|
278 |
return $id;
|
279 |
}
|
280 |
}
|
281 |
-
$query['meta_query'][0]['key'] = '_wp_attachment_metadata';
|
282 |
-
$ids
|
283 |
|
284 |
foreach ( $ids as $id ) {
|
285 |
|
286 |
-
$meta = wp_get_attachment_metadata( $id );
|
287 |
-
if ( ! isset( $meta['sizes'] ) ) {
|
288 |
continue;
|
289 |
}
|
290 |
|
291 |
-
foreach ( (array)
|
292 |
-
if ( $values['file'] == $file && $url == str_replace( 'https://', 'http://', array_shift( wp_get_attachment_image_src( $id, $size ) ) ) ) {
|
293 |
|
294 |
return $id;
|
295 |
}
|
@@ -300,7 +294,7 @@ if ( ! function_exists( 'yit_plugin_get_attachment_id' ) ) {
|
|
300 |
}
|
301 |
}
|
302 |
|
303 |
-
if ( ! function_exists( 'yit_enqueue_script' ) ) {
|
304 |
/**
|
305 |
* Enqueues script.
|
306 |
*
|
@@ -310,19 +304,18 @@ if ( ! function_exists( 'yit_enqueue_script' ) ) {
|
|
310 |
* @author Simone D'Amico <simone.damico@yithemes.com>
|
311 |
* @see yit_register_script() For parameter information.
|
312 |
*/
|
313 |
-
function yit_enqueue_script( $handle, $src, $deps = array(), $ver = false, $in_footer = true ) {
|
314 |
|
315 |
-
if ( function_exists( 'YIT_Asset' ) && ! is_admin() ) {
|
316 |
$enqueue = true;
|
317 |
-
YIT_Asset()->set( 'script', $handle, compact( 'src', 'deps', 'ver', 'in_footer', 'enqueue' ) );
|
318 |
-
}
|
319 |
-
|
320 |
-
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
|
321 |
}
|
322 |
}
|
323 |
}
|
324 |
|
325 |
-
if ( ! function_exists( 'yit_enqueue_style' ) ) {
|
326 |
/**
|
327 |
* Enqueues style.
|
328 |
*
|
@@ -332,54 +325,53 @@ if ( ! function_exists( 'yit_enqueue_style' ) ) {
|
|
332 |
* @author Simone D'Amico <simone.damico@yithemes.com>
|
333 |
* @see yit_register_style() For parameter information.
|
334 |
*/
|
335 |
-
function yit_enqueue_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) {
|
336 |
|
337 |
-
if ( function_exists( 'YIT_Asset' ) ) {
|
338 |
$enqueue = true;
|
339 |
-
$who = YIT_Asset()->get_stylesheet_handle( get_stylesheet_uri(), 'style' );
|
340 |
$where = 'before';
|
341 |
|
342 |
-
if( false == $who ){
|
343 |
$who = '';
|
344 |
}
|
345 |
|
346 |
-
YIT_Asset()->set( 'style', $handle, compact( 'src', 'deps', 'ver', 'media', 'enqueue' ), $where, $who );
|
347 |
-
}
|
348 |
-
|
349 |
-
wp_enqueue_style( $handle, $src, $deps, $ver, $media );
|
350 |
}
|
351 |
}
|
352 |
}
|
353 |
|
354 |
-
if ( ! function_exists( 'yit_get_post_meta' ) ) {
|
355 |
/**
|
356 |
* Retrieve the value of a metabox.
|
357 |
*
|
358 |
* This function retrieve the value of a metabox attached to a post. It return either a single value or an array.
|
359 |
*
|
360 |
-
* @param int $id
|
361 |
-
* @param string $meta
|
362 |
*
|
363 |
* @return mixed Single value or array
|
364 |
* @since 2.0.0
|
365 |
*/
|
366 |
-
function yit_get_post_meta( $id, $meta ) {
|
367 |
-
if ( ! strpos( $meta, '[' ) ) {
|
368 |
-
return get_post_meta( $id, $meta, true );
|
369 |
}
|
370 |
|
371 |
-
$sub_meta = explode( '[', $meta );
|
372 |
|
373 |
-
$meta = get_post_meta( $id, $meta, true );
|
374 |
-
for ( $i = 0; $i < count( $sub_meta ); $i ++ ) {
|
375 |
-
$meta = $meta[rtrim( $sub_meta[$i], ']' )];
|
376 |
}
|
377 |
|
378 |
return $meta;
|
379 |
}
|
380 |
}
|
381 |
|
382 |
-
if ( ! function_exists( 'yit_string' ) ) {
|
383 |
/**
|
384 |
* Simple echo a string, with a before and after string, only if the main string is not empty.
|
385 |
*
|
@@ -391,10 +383,10 @@ if ( ! function_exists( 'yit_string' ) ) {
|
|
391 |
* @return string The complete string, if the main string is not empty or null
|
392 |
* @since 2.0.0
|
393 |
*/
|
394 |
-
function yit_string( $before = '', $string = '', $after = '', $echo = true ) {
|
395 |
$html = '';
|
396 |
|
397 |
-
if ( $string != '' AND ! is_null( $string ) ) {
|
398 |
$html = $before . $string . $after;
|
399 |
}
|
400 |
|
@@ -407,7 +399,7 @@ if ( ! function_exists( 'yit_string' ) ) {
|
|
407 |
}
|
408 |
|
409 |
|
410 |
-
if ( ! function_exists( 'yit_pagination' ) ) {
|
411 |
/**
|
412 |
* Print pagination
|
413 |
*
|
@@ -417,12 +409,12 @@ if ( ! function_exists( 'yit_pagination' ) ) {
|
|
417 |
* @return string
|
418 |
* @since 2.0.0
|
419 |
*/
|
420 |
-
function yit_pagination( $pages = '', $range = 10 ) {
|
421 |
$showitems = ( $range * 2 ) + 1;
|
422 |
|
423 |
-
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : false;
|
424 |
if ( $paged === false ) {
|
425 |
-
$paged = ( get_query_var( 'page' ) ) ? get_query_var( 'page' ) : false;
|
426 |
}
|
427 |
if ( $paged === false ) {
|
428 |
$paged = 1;
|
@@ -446,60 +438,60 @@ if ( ! function_exists( 'yit_pagination' ) ) {
|
|
446 |
if ( 1 != $pages ) {
|
447 |
$html .= "<div class='general-pagination clearfix'>";
|
448 |
if ( $paged > 2 ) {
|
449 |
-
$html .= sprintf( '<a class="%s" href="%s">«</a>', 'yit_pagination_first', get_pagenum_link( 1 ) );
|
450 |
}
|
451 |
if ( $paged > 1 ) {
|
452 |
-
$html .= sprintf( '<a class="%s" href="%s">‹</a>', 'yit_pagination_previous', get_pagenum_link( $paged - 1 ) );
|
453 |
}
|
454 |
|
455 |
for ( $i = 1; $i <= $pages; $i ++ ) {
|
456 |
if ( 1 != $pages && ( ! ( $i >= $paged + $range + 1 || $i <= $paged - $range - 1 ) || $pages <= $showitems ) ) {
|
457 |
$class = ( $paged == $i ) ? " class='selected'" : '';
|
458 |
-
$html .= "<a href='" . get_pagenum_link( $i ) . "'$class >$i</a>";
|
459 |
}
|
460 |
}
|
461 |
|
462 |
if ( $paged < $pages ) {
|
463 |
-
$html .= sprintf( '<a class="%s" href="%s">›</a>', 'yit_pagination_next', get_pagenum_link( $paged + 1 ) );
|
464 |
}
|
465 |
if ( $paged < $pages - 1 ) {
|
466 |
-
$html .= sprintf( '<a class="%s" href="%s">»</a>', 'yit_pagination_last', get_pagenum_link( $pages ) );
|
467 |
}
|
468 |
|
469 |
$html .= "</div>\n";
|
470 |
}
|
471 |
|
472 |
-
echo apply_filters( 'yit_pagination_html', $html );
|
473 |
}
|
474 |
}
|
475 |
|
476 |
-
if ( ! function_exists( 'yit_registered_sidebars' ) ) {
|
477 |
/**
|
478 |
* Retrieve all registered sidebars
|
479 |
*
|
480 |
* @return array
|
481 |
* @since 2.0.0
|
482 |
*/
|
483 |
-
function yit_registered_sidebars() {
|
484 |
global $wp_registered_sidebars;
|
485 |
|
486 |
-
$return = array();
|
487 |
|
488 |
if ( empty( $wp_registered_sidebars ) ) {
|
489 |
-
$return = array( '' => '' );
|
490 |
}
|
491 |
|
492 |
-
foreach ( ( array )
|
493 |
-
$return[$the_['name']] = $the_['name'];
|
494 |
}
|
495 |
|
496 |
-
ksort( $return );
|
497 |
|
498 |
return $return;
|
499 |
}
|
500 |
}
|
501 |
|
502 |
-
if ( ! function_exists( 'yit_layout_option' ) ) {
|
503 |
/**
|
504 |
* Retrieve a layout option
|
505 |
*
|
@@ -511,20 +503,18 @@ if ( ! function_exists( 'yit_layout_option' ) ) {
|
|
511 |
* @return array
|
512 |
* @since 2.0.0
|
513 |
*/
|
514 |
-
function yit_layout_option( $key, $id = false, $type = "post", $model = "post_type" ) {
|
515 |
|
516 |
$option = '';
|
517 |
|
518 |
-
if ( defined( 'YIT' ) ) {
|
519 |
-
$option = YIT_Layout_Panel()->get_option( $key, $id, $type, $model );
|
520 |
-
}
|
521 |
-
|
522 |
-
if ( ! $id && ( is_single() || is_page() ) ) {
|
523 |
global $post;
|
524 |
$id = $post->ID;
|
525 |
-
}
|
526 |
-
|
527 |
-
$option = get_post_meta( $id, $key );
|
528 |
}
|
529 |
}
|
530 |
|
@@ -532,32 +522,31 @@ if ( ! function_exists( 'yit_layout_option' ) ) {
|
|
532 |
}
|
533 |
}
|
534 |
|
535 |
-
if ( ! function_exists( 'yit_curPageURL' ) ) {
|
536 |
/**
|
537 |
* Retrieve the current complete url
|
538 |
*
|
539 |
* @since 1.0
|
540 |
*/
|
541 |
-
function yit_curPageURL() {
|
542 |
$pageURL = 'http';
|
543 |
-
if ( isset( $_SERVER["HTTPS"] ) AND $_SERVER["HTTPS"] == "on" ) {
|
544 |
$pageURL .= "s";
|
545 |
}
|
546 |
|
547 |
$pageURL .= "://";
|
548 |
|
549 |
-
if ( isset( $_SERVER["SERVER_PORT"] ) AND $_SERVER["SERVER_PORT"] != "80" ) {
|
550 |
-
$pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
|
551 |
-
}
|
552 |
-
|
553 |
-
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
|
554 |
}
|
555 |
|
556 |
return $pageURL;
|
557 |
}
|
558 |
}
|
559 |
|
560 |
-
if ( ! function_exists( 'yit_get_excluded_categories' ) ) {
|
561 |
/**
|
562 |
*
|
563 |
* Retrieve the escluded categories, set on Theme Options
|
@@ -569,7 +558,7 @@ if ( ! function_exists( 'yit_get_excluded_categories' ) ) {
|
|
569 |
* @since 2.0.0
|
570 |
*/
|
571 |
|
572 |
-
function yit_get_excluded_categories( $k = 1 ) {
|
573 |
|
574 |
global $post;
|
575 |
|
@@ -577,20 +566,20 @@ if ( ! function_exists( 'yit_get_excluded_categories' ) ) {
|
|
577 |
return;
|
578 |
}
|
579 |
|
580 |
-
$cf_cats = get_post_meta( $post->ID, 'blog-cats', true);
|
581 |
|
582 |
-
if ( ! empty( $cf_cats ) ){
|
583 |
return $cf_cats;
|
584 |
}
|
585 |
|
586 |
-
$cats = function_exists( 'yit_get_option' ) ? yit_get_option( 'blog-excluded-cats' ) : '';
|
587 |
|
588 |
|
589 |
-
if ( ! is_array( $cats ) || empty( $cats ) || ! isset( $cats[$k] ) ) {
|
590 |
return;
|
591 |
}
|
592 |
|
593 |
-
$cats = array_map( 'trim', $cats[$k] );
|
594 |
|
595 |
$i = 0;
|
596 |
$query = '';
|
@@ -600,15 +589,15 @@ if ( ! function_exists( 'yit_get_excluded_categories' ) ) {
|
|
600 |
$i ++;
|
601 |
}
|
602 |
|
603 |
-
ltrim( ',', $query );
|
604 |
|
605 |
return $query;
|
606 |
}
|
607 |
}
|
608 |
|
609 |
|
610 |
-
if ( ! function_exists( 'yit_add_extra_theme_headers' ) ) {
|
611 |
-
add_filter( 'extra_theme_headers', 'yit_add_extra_theme_headers' );
|
612 |
|
613 |
/**
|
614 |
* Check the framework core version
|
@@ -619,13 +608,14 @@ if ( ! function_exists( 'yit_add_extra_theme_headers' ) ) {
|
|
619 |
* @since 2.0.0
|
620 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
621 |
*/
|
622 |
-
function yit_add_extra_theme_headers( $headers ) {
|
623 |
$headers[] = 'Core Framework Version';
|
|
|
624 |
return $headers;
|
625 |
}
|
626 |
}
|
627 |
|
628 |
-
if ( ! function_exists( 'yit_check_plugin_support' ) ) {
|
629 |
/**
|
630 |
* Check the framework core version
|
631 |
*
|
@@ -633,75 +623,76 @@ if ( ! function_exists( 'yit_check_plugin_support' ) ) {
|
|
633 |
* @since 2.0.0
|
634 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
635 |
*/
|
636 |
-
function yit_check_plugin_support() {
|
637 |
|
638 |
-
$headers['core'] = wp_get_theme()->get( 'Core Framework Version' );
|
639 |
-
$headers['author'] = wp_get_theme()->get( 'Author' );
|
640 |
|
641 |
-
if( ! $headers['core'] && defined( 'YIT_CORE_VERSION' ) ) {
|
642 |
-
$headers['core'] = YIT_CORE_VERSION;
|
643 |
}
|
644 |
|
645 |
-
if ( ( ! empty( $headers['core'] ) && version_compare( $headers['core'], '2.0.0', '<=' ) ) || $headers['author'] != 'Your Inspiration Themes' ) {
|
646 |
return true;
|
647 |
-
}
|
648 |
-
else {
|
649 |
return false;
|
650 |
}
|
651 |
}
|
652 |
}
|
653 |
|
654 |
-
if( !function_exists( 'yit_ie_version' ) ) {
|
655 |
/**
|
656 |
* Retrieve IE version.
|
657 |
*
|
658 |
* @return int|float
|
659 |
-
* @since
|
660 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
661 |
*/
|
662 |
-
function yit_ie_version() {
|
663 |
-
preg_match('/MSIE ([0-9]\.[0-9])/'
|
664 |
-
if ( ! isset( $reg[1] ) )
|
665 |
-
|
666 |
-
else
|
667 |
-
|
|
|
668 |
}
|
669 |
}
|
670 |
|
671 |
-
if( ! function_exists( 'yit_avoid_duplicate' ) ) {
|
672 |
/**
|
673 |
* Check if something exists. If yes, add a -N to the value where N is a number.
|
674 |
*
|
675 |
-
* @param mixed
|
676 |
-
* @param array
|
677 |
* @param string $check
|
|
|
678 |
* @return mixed
|
679 |
-
* @since
|
680 |
* @author Antonino Scarf� <antonino.scarfi@yithemes.com>
|
681 |
*/
|
682 |
-
function yit_avoid_duplicate( $value, $array, $check = 'value' ) {
|
683 |
-
$match = array();
|
684 |
|
685 |
-
if( !is_array( $array ) ) {
|
686 |
return $value;
|
687 |
}
|
688 |
|
689 |
-
if ( ( $check == 'value' && ! in_array( $value, $array ) ) || ( $check == 'key' && ! isset( $array[$value] ) ) ) {
|
690 |
return $value;
|
691 |
} else {
|
692 |
-
if ( ! preg_match( '/([a-z]+)-([0-9]+)/', $value, $match ) ) {
|
693 |
$i = 2;
|
694 |
} else {
|
695 |
-
$i
|
696 |
-
$value = $match[1];
|
697 |
}
|
698 |
|
699 |
-
return yit_avoid_duplicate( $value . '-' . $i, $array, $check );
|
700 |
}
|
701 |
}
|
702 |
}
|
703 |
|
704 |
-
if( !function_exists( 'yit_title_special_characters' ) ) {
|
705 |
/**
|
706 |
* The chars used in yit_decode_title() and yit_encode_title()
|
707 |
*
|
@@ -709,22 +700,23 @@ if( !function_exists( 'yit_title_special_characters' ) ) {
|
|
709 |
* string: This is [my title] with | a new line
|
710 |
* return: This is <span class="highlight">my title</span> with <br /> a new line
|
711 |
*
|
712 |
-
* @param string
|
|
|
713 |
* @return string The html
|
714 |
*
|
715 |
* @since 1.0
|
716 |
*/
|
717 |
-
function yit_title_special_characters( $chars )
|
718 |
-
|
719 |
-
return array_merge( $chars, array(
|
720 |
'/[=\[](.*?)[=\]]/' => '<span class="title-highlight">$1</span>',
|
721 |
-
'/\|/'
|
722 |
) );
|
723 |
}
|
724 |
-
|
|
|
725 |
}
|
726 |
|
727 |
-
if( !function_exists( 'yit_decode_title' ) ) {
|
728 |
/**
|
729 |
* Change some special characters to put easily html into a string
|
730 |
*
|
@@ -732,20 +724,20 @@ if( !function_exists( 'yit_decode_title' ) ) {
|
|
732 |
* string: This is [my title] with | a new line
|
733 |
* return: This is <span class="title-highlight">my title</span> with <br /> a new line
|
734 |
*
|
735 |
-
* @param string
|
|
|
736 |
* @return string The html
|
737 |
*
|
738 |
* @since 1.0
|
739 |
*/
|
740 |
-
function yit_decode_title( $title )
|
741 |
-
|
742 |
-
$replaces = apply_filters( 'yit_title_special_characters', array() );
|
743 |
|
744 |
-
return preg_replace( array_keys( $replaces ), array_values( $replaces ), $title );
|
745 |
}
|
746 |
}
|
747 |
|
748 |
-
if( !function_exists( 'yit_encode_title' ) ) {
|
749 |
/**
|
750 |
* Change some special characters to put easily html into a string
|
751 |
*
|
@@ -753,20 +745,20 @@ if( !function_exists( 'yit_encode_title' ) ) {
|
|
753 |
* string: This is [my title] with | a new line
|
754 |
* return: This is <span class="title-highlight">my title</span> with <br /> a new line
|
755 |
*
|
756 |
-
* @param string
|
|
|
757 |
* @return string The html
|
758 |
*
|
759 |
* @since 1.0
|
760 |
*/
|
761 |
-
function yit_encode_title( $title )
|
762 |
-
|
763 |
-
$replaces = apply_filters( 'yit_title_special_characters', array() );
|
764 |
|
765 |
-
return preg_replace( array_values( $replaces ), array_keys( $replaces ), $title );
|
766 |
}
|
767 |
}
|
768 |
|
769 |
-
if( !function_exists( 'yit_remove_chars_title' ) ) {
|
770 |
/**
|
771 |
* Change some special characters to put easily html into a string
|
772 |
*
|
@@ -774,30 +766,30 @@ if( !function_exists( 'yit_remove_chars_title' ) ) {
|
|
774 |
* string: This is [my title] with | a new line
|
775 |
* return: This is <span class="title-highlight">my title</span> with <br /> a new line
|
776 |
*
|
777 |
-
* @param string
|
|
|
778 |
* @return string The html
|
779 |
*
|
780 |
* @since 1.0
|
781 |
*/
|
782 |
-
function yit_remove_chars_title( $title )
|
783 |
-
|
784 |
-
$replaces = apply_filters( 'yit_title_special_characters', array() );
|
785 |
|
786 |
-
return preg_replace( array_keys( $replaces ), '$1', $title );
|
787 |
}
|
788 |
}
|
789 |
|
790 |
-
if( ! function_exists( 'is_shop_installed' ) ) {
|
791 |
/**
|
792 |
* Detect if there is a shop plugin installed
|
793 |
*
|
794 |
* @return bool
|
795 |
-
* @since
|
796 |
* @author Francesco Grasso <francesco.grasso@yithemes.com
|
797 |
*/
|
798 |
-
function is_shop_installed() {
|
799 |
global $woocommerce;
|
800 |
-
if( isset( $woocommerce ) || defined( 'JIGOSHOP_VERSION' ) ) {
|
801 |
return true;
|
802 |
} else {
|
803 |
return false;
|
@@ -805,7 +797,7 @@ if( ! function_exists( 'is_shop_installed' ) ) {
|
|
805 |
}
|
806 |
}
|
807 |
|
808 |
-
if ( ! function_exists( 'yit_load_js_file' ) ) {
|
809 |
/**
|
810 |
* Load .min.js file if WP_Debug is not defined
|
811 |
*
|
@@ -815,52 +807,52 @@ if ( ! function_exists( 'yit_load_js_file' ) ) {
|
|
815 |
* @since 2.0.0
|
816 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
817 |
*/
|
818 |
-
function yit_load_js_file( $filename ) {
|
819 |
|
820 |
-
if ( ! ( ( defined( 'WP_DEBUG' ) && WP_DEBUG ) || ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ) ) {
|
821 |
-
$filename = str_replace( '.js', '.min.js', $filename );
|
822 |
}
|
823 |
|
824 |
return $filename;
|
825 |
}
|
826 |
}
|
827 |
|
828 |
-
if ( ! function_exists( 'yit_wpml_register_string' ) ) {
|
829 |
/**
|
830 |
* Register a string in wpml trnslation
|
831 |
*
|
832 |
* @param $contenxt context name
|
833 |
-
* @param $name
|
834 |
-
* @param $value
|
835 |
*
|
836 |
* @since 2.0.0
|
837 |
* @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
|
838 |
*/
|
839 |
-
function yit_wpml_register_string( $contenxt
|
840 |
// wpml string translation
|
841 |
-
do_action( 'wpml_register_single_string', $contenxt, $name, $value );
|
842 |
}
|
843 |
}
|
844 |
|
845 |
-
if ( ! function_exists( 'yit_wpml_string_translate' ) ) {
|
846 |
/**
|
847 |
* Get a string translation
|
848 |
*
|
849 |
-
* @param $contenxt
|
850 |
-
* @param $name
|
851 |
* @param $default_value value to translate
|
852 |
*
|
853 |
* @return string the string translated
|
854 |
* @since 2.0.0
|
855 |
* @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
|
856 |
*/
|
857 |
-
function yit_wpml_string_translate( $contenxt, $name, $default_value ) {
|
858 |
-
return apply_filters( 'wpml_translate_single_string', $default_value, $contenxt, $name );
|
859 |
}
|
860 |
|
861 |
}
|
862 |
|
863 |
-
if ( ! function_exists( 'yit_wpml_object_id' ) ) {
|
864 |
/**
|
865 |
* Get id of post translation in current language
|
866 |
*
|
@@ -873,16 +865,49 @@ if ( ! function_exists( 'yit_wpml_object_id' ) ) {
|
|
873 |
* @since 2.0.0
|
874 |
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
875 |
*/
|
876 |
-
function yit_wpml_object_id( $element_id, $element_type = 'post', $return_original_if_missing = false, $ulanguage_code = null ) {
|
877 |
-
if( function_exists( '
|
878 |
-
return
|
879 |
-
}
|
880 |
-
|
881 |
-
|
882 |
-
}
|
883 |
-
else{
|
884 |
return $element_id;
|
885 |
}
|
886 |
}
|
887 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
888 |
}
|
8 |
* http://www.gnu.org/licenses/gpl-3.0.txt
|
9 |
*/
|
10 |
|
11 |
+
if ( ! defined ( 'ABSPATH' ) ) {
|
12 |
exit;
|
13 |
} // Exit if accessed directly
|
14 |
|
15 |
+
if ( ! function_exists ( 'yit_plugin_locate_template' ) ) {
|
16 |
/**
|
17 |
* Locate the templates and return the path of the file found
|
18 |
*
|
23 |
* @return string
|
24 |
* @since 2.0.0
|
25 |
*/
|
26 |
+
function yit_plugin_locate_template ( $plugin_basename, $path, $var = NULL ) {
|
27 |
|
28 |
$template_path = '/theme/templates/' . $path;
|
29 |
|
30 |
+
$located = locate_template ( array (
|
31 |
+
$template_path,
|
32 |
) );
|
33 |
|
34 |
if ( ! $located ) {
|
40 |
|
41 |
}
|
42 |
|
43 |
+
if ( ! function_exists ( 'yit_plugin_get_template' ) ) {
|
44 |
/**
|
45 |
* Retrieve a template file.
|
46 |
*
|
52 |
* @return string
|
53 |
* @since 2.0.0
|
54 |
*/
|
55 |
+
function yit_plugin_get_template ( $plugin_basename, $path, $var = null, $return = false ) {
|
56 |
|
57 |
+
$located = yit_plugin_locate_template ( $plugin_basename, $path, $var );
|
58 |
|
59 |
+
if ( $var && is_array ( $var ) ) {
|
60 |
+
extract ( $var );
|
61 |
}
|
62 |
|
63 |
if ( $return ) {
|
64 |
+
ob_start ();
|
65 |
}
|
66 |
|
67 |
// include file located
|
68 |
+
if ( file_exists ( $located ) ) {
|
69 |
+
include ( $located );
|
70 |
}
|
71 |
|
72 |
if ( $return ) {
|
73 |
+
return ob_get_clean ();
|
74 |
}
|
75 |
}
|
76 |
}
|
77 |
|
78 |
+
if ( ! function_exists ( 'yit_plugin_content' ) ) {
|
79 |
/**
|
80 |
* Return post content with read more link (if needed)
|
81 |
*
|
88 |
* @return string
|
89 |
* @since 2.0.0
|
90 |
*/
|
91 |
+
function yit_plugin_content ( $what = 'content', $limit = 25, $more_text = '', $split = '[...]', $in_paragraph = 'true' ) {
|
92 |
if ( $what == 'content' ) {
|
93 |
+
$content = get_the_content ( $more_text );
|
94 |
+
} else {
|
|
|
95 |
if ( $what == 'excerpt' ) {
|
96 |
+
$content = get_the_excerpt ();
|
97 |
+
} else {
|
|
|
98 |
$content = $what;
|
99 |
}
|
100 |
}
|
101 |
|
102 |
if ( $limit == 0 ) {
|
103 |
if ( $what == 'excerpt' ) {
|
104 |
+
$content = apply_filters ( 'the_excerpt', $content );
|
105 |
+
} else {
|
106 |
+
$content = preg_replace ( '/<img[^>]+./', '', $content ); //remove images
|
107 |
+
$content = apply_filters ( 'the_content', $content );
|
108 |
+
$content = str_replace ( ']]>', ']]>', $content );
|
|
|
109 |
}
|
110 |
|
111 |
return $content;
|
112 |
}
|
113 |
|
114 |
// remove the tag more from the content
|
115 |
+
if ( preg_match ( "/<(a)[^>]*class\s*=\s*(['\"])more-link\\2[^>]*>(.*?)<\/\\1>/", $content, $matches ) ) {
|
116 |
|
117 |
+
if ( strpos ( $matches[ 0 ], '[button' ) ) {
|
118 |
+
$more_link = str_replace ( 'href="#"', 'href="' . get_permalink () . '"', do_shortcode ( $matches[ 3 ] ) );
|
119 |
+
} else {
|
120 |
+
$more_link = $matches[ 0 ];
|
|
|
121 |
}
|
122 |
|
123 |
+
$content = str_replace ( $more_link, '', $content );
|
124 |
$split = '';
|
125 |
}
|
126 |
|
127 |
if ( empty( $content ) ) {
|
128 |
return;
|
129 |
}
|
130 |
+
$content = explode ( ' ', $content );
|
131 |
|
132 |
if ( ! empty( $more_text ) && ! isset( $more_link ) ) {
|
133 |
//array_pop( $content );
|
134 |
+
$more_link = strpos ( $more_text, '<a class="btn"' ) ? $more_text : '<a class="read-more' . apply_filters ( 'yit_simple_read_more_classes', ' ' ) . '" href="' . get_permalink () . '">' . $more_text . '</a>';
|
135 |
$split = '';
|
136 |
+
} elseif ( ! isset( $more_link ) ) {
|
|
|
137 |
$more_link = '';
|
138 |
}
|
139 |
|
140 |
// split
|
141 |
+
if ( count ( $content ) >= $limit ) {
|
142 |
$split_content = '';
|
143 |
for ( $i = 0; $i < $limit; $i ++ ) {
|
144 |
+
$split_content .= $content[ $i ] . ' ';
|
145 |
}
|
146 |
|
147 |
$content = $split_content . $split;
|
148 |
+
} else {
|
149 |
+
$content = implode ( " ", $content );
|
|
|
150 |
}
|
151 |
|
152 |
// TAGS UNCLOSED
|
153 |
+
$tags = array ();
|
154 |
// get all tags opened
|
155 |
+
preg_match_all ( "/(<([\w]+)[^>]*>)/", $content, $tags_opened, PREG_SET_ORDER );
|
156 |
foreach ( $tags_opened as $tag ) {
|
157 |
+
$tags[] = $tag[ 2 ];
|
158 |
}
|
159 |
|
160 |
// get all tags closed and remove it from the tags opened.. the rest will be closed at the end of the content
|
161 |
+
preg_match_all ( "/(<\/([\w]+)[^>]*>)/", $content, $tags_closed, PREG_SET_ORDER );
|
162 |
foreach ( $tags_closed as $tag ) {
|
163 |
+
unset( $tags[ array_search ( $tag[ 2 ], $tags ) ] );
|
164 |
}
|
165 |
|
166 |
// close the tags
|
172 |
|
173 |
//$content = preg_replace( '/\[.+\]/', '', $content );
|
174 |
if ( $in_paragraph == true ): $content .= $more_link; endif;
|
175 |
+
$content = preg_replace ( '/<img[^>]+./', '', $content ); //remove images
|
176 |
+
$content = apply_filters ( 'the_content', $content );
|
177 |
+
$content = str_replace ( ']]>', ']]>', $content ); // echo str_replace( array( '<', '>' ), array( '<', '>' ), $content );
|
178 |
if ( $in_paragraph == false ): $content .= $more_link; endif;
|
179 |
|
180 |
return $content;
|
181 |
}
|
182 |
}
|
183 |
|
184 |
+
if ( ! function_exists ( 'yit_plugin_string' ) ) {
|
185 |
/**
|
186 |
* Simple echo a string, with a before and after string, only if the main string is not empty.
|
187 |
*
|
193 |
* @return string The complete string, if the main string is not empty or null
|
194 |
* @since 2.0.0
|
195 |
*/
|
196 |
+
function yit_plugin_string ( $before = '', $string = '', $after = '', $echo = true ) {
|
197 |
$html = '';
|
198 |
|
199 |
+
if ( $string != '' AND ! is_null ( $string ) ) {
|
200 |
$html = $before . $string . $after;
|
201 |
}
|
202 |
|
208 |
}
|
209 |
}
|
210 |
|
211 |
+
if ( ! function_exists ( 'yit_plugin_decode_title' ) ) {
|
212 |
/**
|
213 |
* Change some special characters to put easily html into a string
|
214 |
*
|
222 |
*
|
223 |
* @since 1.0
|
224 |
*/
|
225 |
+
function yit_plugin_decode_title ( $title ) {
|
226 |
+
$replaces = apply_filters ( 'yit_title_special_characters', array () );
|
227 |
|
228 |
+
return preg_replace ( array_keys ( $replaces ), array_values ( $replaces ), $title );
|
229 |
}
|
230 |
}
|
231 |
|
232 |
+
if ( ! function_exists ( 'yit_plugin_get_attachment_id' ) ) {
|
233 |
|
234 |
/**
|
235 |
* Return the ID of an attachment.
|
241 |
* @since 2.0.0
|
242 |
*/
|
243 |
|
244 |
+
function yit_plugin_get_attachment_id ( $url ) {
|
245 |
|
246 |
+
$upload_dir = wp_upload_dir ();
|
247 |
+
$dir = trailingslashit ( $upload_dir[ 'baseurl' ] );
|
248 |
|
249 |
+
if ( false === strpos ( $url, $dir ) ) {
|
250 |
return false;
|
251 |
}
|
252 |
|
253 |
+
$file = basename ( $url );
|
254 |
|
255 |
+
$query = array (
|
256 |
'post_type' => 'attachment',
|
257 |
'fields' => 'ids',
|
258 |
+
'meta_query' => array (
|
259 |
+
array (
|
260 |
'value' => $file,
|
261 |
'compare' => 'LIKE',
|
262 |
+
),
|
263 |
+
),
|
264 |
);
|
265 |
|
266 |
+
$query[ 'meta_query' ][ 0 ][ 'key' ] = '_wp_attached_file';
|
267 |
+
$ids = get_posts ( $query );
|
268 |
|
269 |
foreach ( $ids as $id ) {
|
270 |
+
$attachment_image = wp_get_attachment_image_src ( $id, 'full' );
|
271 |
+
if ( $url == array_shift ( $attachment_image ) || $url == str_replace ( 'https://', 'http://', array_shift ( $attachment_image ) ) ) {
|
272 |
return $id;
|
273 |
}
|
274 |
}
|
275 |
+
$query[ 'meta_query' ][ 0 ][ 'key' ] = '_wp_attachment_metadata';
|
276 |
+
$ids = get_posts ( $query );
|
277 |
|
278 |
foreach ( $ids as $id ) {
|
279 |
|
280 |
+
$meta = wp_get_attachment_metadata ( $id );
|
281 |
+
if ( ! isset( $meta[ 'sizes' ] ) ) {
|
282 |
continue;
|
283 |
}
|
284 |
|
285 |
+
foreach ( (array)$meta[ 'sizes' ] as $size => $values ) {
|
286 |
+
if ( $values[ 'file' ] == $file && $url == str_replace ( 'https://', 'http://', array_shift ( wp_get_attachment_image_src ( $id, $size ) ) ) ) {
|
287 |
|
288 |
return $id;
|
289 |
}
|
294 |
}
|
295 |
}
|
296 |
|
297 |
+
if ( ! function_exists ( 'yit_enqueue_script' ) ) {
|
298 |
/**
|
299 |
* Enqueues script.
|
300 |
*
|
304 |
* @author Simone D'Amico <simone.damico@yithemes.com>
|
305 |
* @see yit_register_script() For parameter information.
|
306 |
*/
|
307 |
+
function yit_enqueue_script ( $handle, $src, $deps = array (), $ver = false, $in_footer = true ) {
|
308 |
|
309 |
+
if ( function_exists ( 'YIT_Asset' ) && ! is_admin () ) {
|
310 |
$enqueue = true;
|
311 |
+
YIT_Asset ()->set ( 'script', $handle, compact ( 'src', 'deps', 'ver', 'in_footer', 'enqueue' ) );
|
312 |
+
} else {
|
313 |
+
wp_enqueue_script ( $handle, $src, $deps, $ver, $in_footer );
|
|
|
314 |
}
|
315 |
}
|
316 |
}
|
317 |
|
318 |
+
if ( ! function_exists ( 'yit_enqueue_style' ) ) {
|
319 |
/**
|
320 |
* Enqueues style.
|
321 |
*
|
325 |
* @author Simone D'Amico <simone.damico@yithemes.com>
|
326 |
* @see yit_register_style() For parameter information.
|
327 |
*/
|
328 |
+
function yit_enqueue_style ( $handle, $src, $deps = array (), $ver = false, $media = 'all' ) {
|
329 |
|
330 |
+
if ( function_exists ( 'YIT_Asset' ) ) {
|
331 |
$enqueue = true;
|
332 |
+
$who = YIT_Asset ()->get_stylesheet_handle ( get_stylesheet_uri (), 'style' );
|
333 |
$where = 'before';
|
334 |
|
335 |
+
if ( false == $who ) {
|
336 |
$who = '';
|
337 |
}
|
338 |
|
339 |
+
YIT_Asset ()->set ( 'style', $handle, compact ( 'src', 'deps', 'ver', 'media', 'enqueue' ), $where, $who );
|
340 |
+
} else {
|
341 |
+
wp_enqueue_style ( $handle, $src, $deps, $ver, $media );
|
|
|
342 |
}
|
343 |
}
|
344 |
}
|
345 |
|
346 |
+
if ( ! function_exists ( 'yit_get_post_meta' ) ) {
|
347 |
/**
|
348 |
* Retrieve the value of a metabox.
|
349 |
*
|
350 |
* This function retrieve the value of a metabox attached to a post. It return either a single value or an array.
|
351 |
*
|
352 |
+
* @param int $id Post ID.
|
353 |
+
* @param string $meta The meta key to retrieve.
|
354 |
*
|
355 |
* @return mixed Single value or array
|
356 |
* @since 2.0.0
|
357 |
*/
|
358 |
+
function yit_get_post_meta ( $id, $meta ) {
|
359 |
+
if ( ! strpos ( $meta, '[' ) ) {
|
360 |
+
return get_post_meta ( $id, $meta, true );
|
361 |
}
|
362 |
|
363 |
+
$sub_meta = explode ( '[', $meta );
|
364 |
|
365 |
+
$meta = get_post_meta ( $id, $meta, true );
|
366 |
+
for ( $i = 0; $i < count ( $sub_meta ); $i ++ ) {
|
367 |
+
$meta = $meta[ rtrim ( $sub_meta[ $i ], ']' ) ];
|
368 |
}
|
369 |
|
370 |
return $meta;
|
371 |
}
|
372 |
}
|
373 |
|
374 |
+
if ( ! function_exists ( 'yit_string' ) ) {
|
375 |
/**
|
376 |
* Simple echo a string, with a before and after string, only if the main string is not empty.
|
377 |
*
|
383 |
* @return string The complete string, if the main string is not empty or null
|
384 |
* @since 2.0.0
|
385 |
*/
|
386 |
+
function yit_string ( $before = '', $string = '', $after = '', $echo = true ) {
|
387 |
$html = '';
|
388 |
|
389 |
+
if ( $string != '' AND ! is_null ( $string ) ) {
|
390 |
$html = $before . $string . $after;
|
391 |
}
|
392 |
|
399 |
}
|
400 |
|
401 |
|
402 |
+
if ( ! function_exists ( 'yit_pagination' ) ) {
|
403 |
/**
|
404 |
* Print pagination
|
405 |
*
|
409 |
* @return string
|
410 |
* @since 2.0.0
|
411 |
*/
|
412 |
+
function yit_pagination ( $pages = '', $range = 10 ) {
|
413 |
$showitems = ( $range * 2 ) + 1;
|
414 |
|
415 |
+
$paged = ( get_query_var ( 'paged' ) ) ? get_query_var ( 'paged' ) : false;
|
416 |
if ( $paged === false ) {
|
417 |
+
$paged = ( get_query_var ( 'page' ) ) ? get_query_var ( 'page' ) : false;
|
418 |
}
|
419 |
if ( $paged === false ) {
|
420 |
$paged = 1;
|
438 |
if ( 1 != $pages ) {
|
439 |
$html .= "<div class='general-pagination clearfix'>";
|
440 |
if ( $paged > 2 ) {
|
441 |
+
$html .= sprintf ( '<a class="%s" href="%s">«</a>', 'yit_pagination_first', get_pagenum_link ( 1 ) );
|
442 |
}
|
443 |
if ( $paged > 1 ) {
|
444 |
+
$html .= sprintf ( '<a class="%s" href="%s">‹</a>', 'yit_pagination_previous', get_pagenum_link ( $paged - 1 ) );
|
445 |
}
|
446 |
|
447 |
for ( $i = 1; $i <= $pages; $i ++ ) {
|
448 |
if ( 1 != $pages && ( ! ( $i >= $paged + $range + 1 || $i <= $paged - $range - 1 ) || $pages <= $showitems ) ) {
|
449 |
$class = ( $paged == $i ) ? " class='selected'" : '';
|
450 |
+
$html .= "<a href='" . get_pagenum_link ( $i ) . "'$class >$i</a>";
|
451 |
}
|
452 |
}
|
453 |
|
454 |
if ( $paged < $pages ) {
|
455 |
+
$html .= sprintf ( '<a class="%s" href="%s">›</a>', 'yit_pagination_next', get_pagenum_link ( $paged + 1 ) );
|
456 |
}
|
457 |
if ( $paged < $pages - 1 ) {
|
458 |
+
$html .= sprintf ( '<a class="%s" href="%s">»</a>', 'yit_pagination_last', get_pagenum_link ( $pages ) );
|
459 |
}
|
460 |
|
461 |
$html .= "</div>\n";
|
462 |
}
|
463 |
|
464 |
+
echo apply_filters ( 'yit_pagination_html', $html );
|
465 |
}
|
466 |
}
|
467 |
|
468 |
+
if ( ! function_exists ( 'yit_registered_sidebars' ) ) {
|
469 |
/**
|
470 |
* Retrieve all registered sidebars
|
471 |
*
|
472 |
* @return array
|
473 |
* @since 2.0.0
|
474 |
*/
|
475 |
+
function yit_registered_sidebars () {
|
476 |
global $wp_registered_sidebars;
|
477 |
|
478 |
+
$return = array ();
|
479 |
|
480 |
if ( empty( $wp_registered_sidebars ) ) {
|
481 |
+
$return = array ( '' => '' );
|
482 |
}
|
483 |
|
484 |
+
foreach ( ( array )$wp_registered_sidebars as $the_ ) {
|
485 |
+
$return[ $the_[ 'name' ] ] = $the_[ 'name' ];
|
486 |
}
|
487 |
|
488 |
+
ksort ( $return );
|
489 |
|
490 |
return $return;
|
491 |
}
|
492 |
}
|
493 |
|
494 |
+
if ( ! function_exists ( 'yit_layout_option' ) ) {
|
495 |
/**
|
496 |
* Retrieve a layout option
|
497 |
*
|
503 |
* @return array
|
504 |
* @since 2.0.0
|
505 |
*/
|
506 |
+
function yit_layout_option ( $key, $id = false, $type = "post", $model = "post_type" ) {
|
507 |
|
508 |
$option = '';
|
509 |
|
510 |
+
if ( defined ( 'YIT' ) ) {
|
511 |
+
$option = YIT_Layout_Panel ()->get_option ( $key, $id, $type, $model );
|
512 |
+
} else {
|
513 |
+
if ( ! $id && ( is_single () || is_page () ) ) {
|
|
|
514 |
global $post;
|
515 |
$id = $post->ID;
|
516 |
+
} elseif ( $id != 'all' ) {
|
517 |
+
$option = get_post_meta ( $id, $key );
|
|
|
518 |
}
|
519 |
}
|
520 |
|
522 |
}
|
523 |
}
|
524 |
|
525 |
+
if ( ! function_exists ( 'yit_curPageURL' ) ) {
|
526 |
/**
|
527 |
* Retrieve the current complete url
|
528 |
*
|
529 |
* @since 1.0
|
530 |
*/
|
531 |
+
function yit_curPageURL () {
|
532 |
$pageURL = 'http';
|
533 |
+
if ( isset( $_SERVER[ "HTTPS" ] ) AND $_SERVER[ "HTTPS" ] == "on" ) {
|
534 |
$pageURL .= "s";
|
535 |
}
|
536 |
|
537 |
$pageURL .= "://";
|
538 |
|
539 |
+
if ( isset( $_SERVER[ "SERVER_PORT" ] ) AND $_SERVER[ "SERVER_PORT" ] != "80" ) {
|
540 |
+
$pageURL .= $_SERVER[ "SERVER_NAME" ] . ":" . $_SERVER[ "SERVER_PORT" ] . $_SERVER[ "REQUEST_URI" ];
|
541 |
+
} else {
|
542 |
+
$pageURL .= $_SERVER[ "SERVER_NAME" ] . $_SERVER[ "REQUEST_URI" ];
|
|
|
543 |
}
|
544 |
|
545 |
return $pageURL;
|
546 |
}
|
547 |
}
|
548 |
|
549 |
+
if ( ! function_exists ( 'yit_get_excluded_categories' ) ) {
|
550 |
/**
|
551 |
*
|
552 |
* Retrieve the escluded categories, set on Theme Options
|
558 |
* @since 2.0.0
|
559 |
*/
|
560 |
|
561 |
+
function yit_get_excluded_categories ( $k = 1 ) {
|
562 |
|
563 |
global $post;
|
564 |
|
566 |
return;
|
567 |
}
|
568 |
|
569 |
+
$cf_cats = get_post_meta ( $post->ID, 'blog-cats', true );
|
570 |
|
571 |
+
if ( ! empty( $cf_cats ) ) {
|
572 |
return $cf_cats;
|
573 |
}
|
574 |
|
575 |
+
$cats = function_exists ( 'yit_get_option' ) ? yit_get_option ( 'blog-excluded-cats' ) : '';
|
576 |
|
577 |
|
578 |
+
if ( ! is_array ( $cats ) || empty( $cats ) || ! isset( $cats[ $k ] ) ) {
|
579 |
return;
|
580 |
}
|
581 |
|
582 |
+
$cats = array_map ( 'trim', $cats[ $k ] );
|
583 |
|
584 |
$i = 0;
|
585 |
$query = '';
|
589 |
$i ++;
|
590 |
}
|
591 |
|
592 |
+
ltrim ( ',', $query );
|
593 |
|
594 |
return $query;
|
595 |
}
|
596 |
}
|
597 |
|
598 |
|
599 |
+
if ( ! function_exists ( 'yit_add_extra_theme_headers' ) ) {
|
600 |
+
add_filter ( 'extra_theme_headers', 'yit_add_extra_theme_headers' );
|
601 |
|
602 |
/**
|
603 |
* Check the framework core version
|
608 |
* @since 2.0.0
|
609 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
610 |
*/
|
611 |
+
function yit_add_extra_theme_headers ( $headers ) {
|
612 |
$headers[] = 'Core Framework Version';
|
613 |
+
|
614 |
return $headers;
|
615 |
}
|
616 |
}
|
617 |
|
618 |
+
if ( ! function_exists ( 'yit_check_plugin_support' ) ) {
|
619 |
/**
|
620 |
* Check the framework core version
|
621 |
*
|
623 |
* @since 2.0.0
|
624 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
625 |
*/
|
626 |
+
function yit_check_plugin_support () {
|
627 |
|
628 |
+
$headers[ 'core' ] = wp_get_theme ()->get ( 'Core Framework Version' );
|
629 |
+
$headers[ 'author' ] = wp_get_theme ()->get ( 'Author' );
|
630 |
|
631 |
+
if ( ! $headers[ 'core' ] && defined ( 'YIT_CORE_VERSION' ) ) {
|
632 |
+
$headers[ 'core' ] = YIT_CORE_VERSION;
|
633 |
}
|
634 |
|
635 |
+
if ( ( ! empty( $headers[ 'core' ] ) && version_compare ( $headers[ 'core' ], '2.0.0', '<=' ) ) || $headers[ 'author' ] != 'Your Inspiration Themes' ) {
|
636 |
return true;
|
637 |
+
} else {
|
|
|
638 |
return false;
|
639 |
}
|
640 |
}
|
641 |
}
|
642 |
|
643 |
+
if ( ! function_exists ( 'yit_ie_version' ) ) {
|
644 |
/**
|
645 |
* Retrieve IE version.
|
646 |
*
|
647 |
* @return int|float
|
648 |
+
* @since 1.0.0
|
649 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
650 |
*/
|
651 |
+
function yit_ie_version () {
|
652 |
+
preg_match ( '/MSIE ([0-9]\.[0-9])/', $_SERVER[ 'HTTP_USER_AGENT' ], $reg );
|
653 |
+
if ( ! isset( $reg[ 1 ] ) ) {
|
654 |
+
return - 1;
|
655 |
+
} else {
|
656 |
+
return floatval ( $reg[ 1 ] );
|
657 |
+
}
|
658 |
}
|
659 |
}
|
660 |
|
661 |
+
if ( ! function_exists ( 'yit_avoid_duplicate' ) ) {
|
662 |
/**
|
663 |
* Check if something exists. If yes, add a -N to the value where N is a number.
|
664 |
*
|
665 |
+
* @param mixed $value
|
666 |
+
* @param array $array
|
667 |
* @param string $check
|
668 |
+
*
|
669 |
* @return mixed
|
670 |
+
* @since 2.0.0
|
671 |
* @author Antonino Scarf� <antonino.scarfi@yithemes.com>
|
672 |
*/
|
673 |
+
function yit_avoid_duplicate ( $value, $array, $check = 'value' ) {
|
674 |
+
$match = array ();
|
675 |
|
676 |
+
if ( ! is_array ( $array ) ) {
|
677 |
return $value;
|
678 |
}
|
679 |
|
680 |
+
if ( ( $check == 'value' && ! in_array ( $value, $array ) ) || ( $check == 'key' && ! isset( $array[ $value ] ) ) ) {
|
681 |
return $value;
|
682 |
} else {
|
683 |
+
if ( ! preg_match ( '/([a-z]+)-([0-9]+)/', $value, $match ) ) {
|
684 |
$i = 2;
|
685 |
} else {
|
686 |
+
$i = intval ( $match[ 2 ] ) + 1;
|
687 |
+
$value = $match[ 1 ];
|
688 |
}
|
689 |
|
690 |
+
return yit_avoid_duplicate ( $value . '-' . $i, $array, $check );
|
691 |
}
|
692 |
}
|
693 |
}
|
694 |
|
695 |
+
if ( ! function_exists ( 'yit_title_special_characters' ) ) {
|
696 |
/**
|
697 |
* The chars used in yit_decode_title() and yit_encode_title()
|
698 |
*
|
700 |
* string: This is [my title] with | a new line
|
701 |
* return: This is <span class="highlight">my title</span> with <br /> a new line
|
702 |
*
|
703 |
+
* @param string $title The string to convert
|
704 |
+
*
|
705 |
* @return string The html
|
706 |
*
|
707 |
* @since 1.0
|
708 |
*/
|
709 |
+
function yit_title_special_characters ( $chars ) {
|
710 |
+
return array_merge ( $chars, array (
|
|
|
711 |
'/[=\[](.*?)[=\]]/' => '<span class="title-highlight">$1</span>',
|
712 |
+
'/\|/' => '<br />',
|
713 |
) );
|
714 |
}
|
715 |
+
|
716 |
+
add_filter ( 'yit_title_special_characters', 'yit_title_special_characters' );
|
717 |
}
|
718 |
|
719 |
+
if ( ! function_exists ( 'yit_decode_title' ) ) {
|
720 |
/**
|
721 |
* Change some special characters to put easily html into a string
|
722 |
*
|
724 |
* string: This is [my title] with | a new line
|
725 |
* return: This is <span class="title-highlight">my title</span> with <br /> a new line
|
726 |
*
|
727 |
+
* @param string $title The string to convert
|
728 |
+
*
|
729 |
* @return string The html
|
730 |
*
|
731 |
* @since 1.0
|
732 |
*/
|
733 |
+
function yit_decode_title ( $title ) {
|
734 |
+
$replaces = apply_filters ( 'yit_title_special_characters', array () );
|
|
|
735 |
|
736 |
+
return preg_replace ( array_keys ( $replaces ), array_values ( $replaces ), $title );
|
737 |
}
|
738 |
}
|
739 |
|
740 |
+
if ( ! function_exists ( 'yit_encode_title' ) ) {
|
741 |
/**
|
742 |
* Change some special characters to put easily html into a string
|
743 |
*
|
745 |
* string: This is [my title] with | a new line
|
746 |
* return: This is <span class="title-highlight">my title</span> with <br /> a new line
|
747 |
*
|
748 |
+
* @param string $title The string to convert
|
749 |
+
*
|
750 |
* @return string The html
|
751 |
*
|
752 |
* @since 1.0
|
753 |
*/
|
754 |
+
function yit_encode_title ( $title ) {
|
755 |
+
$replaces = apply_filters ( 'yit_title_special_characters', array () );
|
|
|
756 |
|
757 |
+
return preg_replace ( array_values ( $replaces ), array_keys ( $replaces ), $title );
|
758 |
}
|
759 |
}
|
760 |
|
761 |
+
if ( ! function_exists ( 'yit_remove_chars_title' ) ) {
|
762 |
/**
|
763 |
* Change some special characters to put easily html into a string
|
764 |
*
|
766 |
* string: This is [my title] with | a new line
|
767 |
* return: This is <span class="title-highlight">my title</span> with <br /> a new line
|
768 |
*
|
769 |
+
* @param string $title The string to convert
|
770 |
+
*
|
771 |
* @return string The html
|
772 |
*
|
773 |
* @since 1.0
|
774 |
*/
|
775 |
+
function yit_remove_chars_title ( $title ) {
|
776 |
+
$replaces = apply_filters ( 'yit_title_special_characters', array () );
|
|
|
777 |
|
778 |
+
return preg_replace ( array_keys ( $replaces ), '$1', $title );
|
779 |
}
|
780 |
}
|
781 |
|
782 |
+
if ( ! function_exists ( 'is_shop_installed' ) ) {
|
783 |
/**
|
784 |
* Detect if there is a shop plugin installed
|
785 |
*
|
786 |
* @return bool
|
787 |
+
* @since 2.0.0
|
788 |
* @author Francesco Grasso <francesco.grasso@yithemes.com
|
789 |
*/
|
790 |
+
function is_shop_installed () {
|
791 |
global $woocommerce;
|
792 |
+
if ( isset( $woocommerce ) || defined ( 'JIGOSHOP_VERSION' ) ) {
|
793 |
return true;
|
794 |
} else {
|
795 |
return false;
|
797 |
}
|
798 |
}
|
799 |
|
800 |
+
if ( ! function_exists ( 'yit_load_js_file' ) ) {
|
801 |
/**
|
802 |
* Load .min.js file if WP_Debug is not defined
|
803 |
*
|
807 |
* @since 2.0.0
|
808 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
809 |
*/
|
810 |
+
function yit_load_js_file ( $filename ) {
|
811 |
|
812 |
+
if ( ! ( ( defined ( 'WP_DEBUG' ) && WP_DEBUG ) || ( defined ( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ) ) {
|
813 |
+
$filename = str_replace ( '.js', '.min.js', $filename );
|
814 |
}
|
815 |
|
816 |
return $filename;
|
817 |
}
|
818 |
}
|
819 |
|
820 |
+
if ( ! function_exists ( 'yit_wpml_register_string' ) ) {
|
821 |
/**
|
822 |
* Register a string in wpml trnslation
|
823 |
*
|
824 |
* @param $contenxt context name
|
825 |
+
* @param $name string name
|
826 |
+
* @param $value value to translate
|
827 |
*
|
828 |
* @since 2.0.0
|
829 |
* @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
|
830 |
*/
|
831 |
+
function yit_wpml_register_string ( $contenxt, $name, $value ) {
|
832 |
// wpml string translation
|
833 |
+
do_action ( 'wpml_register_single_string', $contenxt, $name, $value );
|
834 |
}
|
835 |
}
|
836 |
|
837 |
+
if ( ! function_exists ( 'yit_wpml_string_translate' ) ) {
|
838 |
/**
|
839 |
* Get a string translation
|
840 |
*
|
841 |
+
* @param $contenxt context name
|
842 |
+
* @param $name string name
|
843 |
* @param $default_value value to translate
|
844 |
*
|
845 |
* @return string the string translated
|
846 |
* @since 2.0.0
|
847 |
* @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
|
848 |
*/
|
849 |
+
function yit_wpml_string_translate ( $contenxt, $name, $default_value ) {
|
850 |
+
return apply_filters ( 'wpml_translate_single_string', $default_value, $contenxt, $name );
|
851 |
}
|
852 |
|
853 |
}
|
854 |
|
855 |
+
if ( ! function_exists ( 'yit_wpml_object_id' ) ) {
|
856 |
/**
|
857 |
* Get id of post translation in current language
|
858 |
*
|
865 |
* @since 2.0.0
|
866 |
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
867 |
*/
|
868 |
+
function yit_wpml_object_id ( $element_id, $element_type = 'post', $return_original_if_missing = false, $ulanguage_code = null ) {
|
869 |
+
if ( function_exists ( 'wpml_object_id_filter' ) ) {
|
870 |
+
return wpml_object_id_filter( $element_id, $element_type, $return_original_if_missing, $ulanguage_code );
|
871 |
+
} elseif ( function_exists ( 'icl_object_id' ) ) {
|
872 |
+
return icl_object_id ( $element_id, $element_type, $return_original_if_missing, $ulanguage_code );
|
873 |
+
} else {
|
|
|
|
|
874 |
return $element_id;
|
875 |
}
|
876 |
}
|
877 |
|
878 |
+
}
|
879 |
+
|
880 |
+
|
881 |
+
if ( ! function_exists ( 'yith_get_formatted_price' ) ) {
|
882 |
+
/**
|
883 |
+
* Format the price with a currency symbol.
|
884 |
+
*
|
885 |
+
* @param float $price
|
886 |
+
* @param array $args (default: array())
|
887 |
+
*
|
888 |
+
* @return string
|
889 |
+
*/
|
890 |
+
function yith_get_formatted_price ( $price, $args = array () ) {
|
891 |
+
extract ( apply_filters ( 'wc_price_args', wp_parse_args ( $args, array (
|
892 |
+
'ex_tax_label' => false,
|
893 |
+
'currency' => '',
|
894 |
+
'decimal_separator' => wc_get_price_decimal_separator (),
|
895 |
+
'thousand_separator' => wc_get_price_thousand_separator (),
|
896 |
+
'decimals' => wc_get_price_decimals (),
|
897 |
+
'price_format' => get_woocommerce_price_format (),
|
898 |
+
) ) ) );
|
899 |
+
|
900 |
+
$negative = $price < 0;
|
901 |
+
$price = apply_filters ( 'raw_woocommerce_price', floatval ( $negative ? $price * - 1 : $price ) );
|
902 |
+
$price = apply_filters ( 'formatted_woocommerce_price', number_format ( $price, $decimals, $decimal_separator, $thousand_separator ), $price, $decimals, $decimal_separator, $thousand_separator );
|
903 |
+
|
904 |
+
if ( apply_filters ( 'woocommerce_price_trim_zeros', false ) && $decimals > 0 ) {
|
905 |
+
$price = wc_trim_zeros ( $price );
|
906 |
+
}
|
907 |
+
|
908 |
+
$formatted_price = ( $negative ? '-' : '' ) . sprintf ( $price_format, get_woocommerce_currency_symbol ( $currency ), $price );
|
909 |
+
$return = $formatted_price;
|
910 |
+
|
911 |
+
return apply_filters ( 'wc_price', $return, $price, $args );
|
912 |
+
}
|
913 |
}
|
templates/compare.php
CHANGED
@@ -18,11 +18,9 @@ wp_enqueue_script( 'jquery-fixedcolumns', YITH_WOOCOMPARE_ASSETS_URL . '/js/Fixe
|
|
18 |
$widths = array();
|
19 |
foreach( $products as $product ) $widths[] = '{ "sWidth": "205px", resizeable:true }';
|
20 |
|
21 |
-
/** FIX WOO 2.1 */
|
22 |
-
$wc_get_template = function_exists('wc_get_template') ? 'wc_get_template' : 'woocommerce_get_template';
|
23 |
-
|
24 |
$table_text = get_option( 'yith_woocompare_table_text' );
|
25 |
-
|
|
|
26 |
|
27 |
?><!DOCTYPE html>
|
28 |
<!--[if IE 6]>
|
@@ -131,7 +129,7 @@ $localized_table_text = function_exists( 'icl_translate' ) ? icl_translate( 'Plu
|
|
131 |
break;
|
132 |
|
133 |
case 'add-to-cart':
|
134 |
-
|
135 |
break;
|
136 |
|
137 |
default:
|
@@ -162,7 +160,7 @@ $localized_table_text = function_exists( 'icl_translate' ) ? icl_translate( 'Plu
|
|
162 |
<th><?php echo $fields['add-to-cart'] ?></th>
|
163 |
|
164 |
<?php foreach( $products as $i => $product ) : $product_class = ( $i % 2 == 0 ? 'odd' : 'even' ) . ' product_' . $product->id ?>
|
165 |
-
<td class="<?php echo $product_class ?>"><?php
|
166 |
<?php endforeach; ?>
|
167 |
|
168 |
</tr>
|
18 |
$widths = array();
|
19 |
foreach( $products as $product ) $widths[] = '{ "sWidth": "205px", resizeable:true }';
|
20 |
|
|
|
|
|
|
|
21 |
$table_text = get_option( 'yith_woocompare_table_text' );
|
22 |
+
yit_wpml_register_string( 'Plugins', 'plugin_yit_compare_table_text', $table_text );
|
23 |
+
$localized_table_text = yit_wpml_string_translate( 'Plugins', 'plugin_yit_compare_table_text', $table_text );
|
24 |
|
25 |
?><!DOCTYPE html>
|
26 |
<!--[if IE 6]>
|
129 |
break;
|
130 |
|
131 |
case 'add-to-cart':
|
132 |
+
woocommerce_template_loop_add_to_cart();
|
133 |
break;
|
134 |
|
135 |
default:
|
160 |
<th><?php echo $fields['add-to-cart'] ?></th>
|
161 |
|
162 |
<?php foreach( $products as $i => $product ) : $product_class = ( $i % 2 == 0 ? 'odd' : 'even' ) . ' product_' . $product->id ?>
|
163 |
+
<td class="<?php echo $product_class ?>"><?php woocommerce_template_loop_add_to_cart(); ?></td>
|
164 |
<?php endforeach; ?>
|
165 |
|
166 |
</tr>
|
widgets/class.yith-woocompare-widget.php
CHANGED
@@ -38,7 +38,8 @@ if( !class_exists( 'YITH_WOOCOMPARE' ) ) {
|
|
38 |
|
39 |
extract( $args );
|
40 |
|
41 |
-
|
|
|
42 |
|
43 |
echo $before_widget . $before_title . $localized_widget_title . $after_title; ?>
|
44 |
|
38 |
|
39 |
extract( $args );
|
40 |
|
41 |
+
yit_wpml_register_string( 'Widget', 'widget_yit_compare_title_text', $instance['title'] );
|
42 |
+
$localized_widget_title = yit_wpml_string_translate( 'Widget', 'widget_yit_compare_title_text', $instance['title'] );
|
43 |
|
44 |
echo $before_widget . $before_title . $localized_widget_title . $after_title; ?>
|
45 |
|