YITH WooCommerce Ajax Search - Version 1.5.6

Version Description

  • Released: May 15, 2018 = New: Support to WordPress 4.9.6 RC2 New: Support to WooCommerce 3.4.0 RC1 Update: Plugin Core 3.0.15
Download this release

Release Info

Developer yithemes
Plugin Icon 128x128 YITH WooCommerce Ajax Search
Version 1.5.6
Comparing to
See all releases

Code changes from version 1.5.5 to 1.5.6

README.txt CHANGED
@@ -3,8 +3,8 @@
3
Contributors: yithemes
4
Tags: woocommerce search by sku, woocommerce search results, woocommerce search shortcode, woocommerce search page, woocommerce search form, woocommerce search filter, woocommerce search products, woocommerce search content, woocommerce search autocomplete, woocommerce advanced search, woocommerce search category, woocommerce search product attributes, woocommerce search by tag, woocommerce search by brand, woocommerce predictive, woocommerce live search, woocommerce single product search, woocommerce site search, woocommerce search tex, tajax, search, woocommerce, products, themes, yit, e-commerce, shop, yith, ajax search, instant search, premium, yithemes, autocomplete, autosuggest, better search, category search, custom search, highlight terms, Live Search, Predictive Search, product search, relevant search, search highlight, search product, suggest, typeahead, WooCommerce Plugin, woocommerce product search, woocommerce search, wordpress ecommerce
5
Requires at least: 4.0.0
6
- Tested up to: 4.9.2
7
- Stable tag: 1.5.5
8
License: GPLv2 or later
9
License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
@@ -34,7 +34,7 @@ It works just like Google Suggest, but this tool will be available on your WooCo
34
* Set minimum number of characters for WooCommerce search
35
* Set maximum number of WooCommerce results
36
37
- If you want to boost your YITH WooCommerce Ajax Search, you can also visit YIThemes page and explore the [live demo](http://plugins.yithemes.com/yith-woocommerce-ajax-search/) of the premium version, which includes all the following features to improve at the best your WooCommerce site search.
38
39
= Premium features of YITH WooCommerce Ajax Search: =
40
@@ -55,7 +55,7 @@ If you want to boost your YITH WooCommerce Ajax Search, you can also visit YIThe
55
* Customize WooCommerce search loader .gif image
56
57
58
- For a more detailed list of options and features of YITH WooCommerce Ajax Search, please read the [official documentation](http://yithemes.com/docs-plugins/yith-woocommerce-ajax-search/ "YITH Woocommerce Ajax Search official documentation").
59
60
YITH WooCommerce Ajax Search is available in combination with many other plugins in [**YITH Essential Kit for WooCommerce #1**](https://wordpress.org/plugins/yith-essential-kit-for-woocommerce-1/), a bundle of indispensable tools to make your WooCommerce site look more professional and be more user-friendly. Learn more about all of WooCommerce plugins included and boost your WooCommerce site with a simple click!
61
@@ -107,7 +107,7 @@ You can get more features with the premium version of YITH WooCommerce Ajax Sear
107
108
= How can I try the full-featured plugin? =
109
110
- If you want to see a demonstration version of the premium plugin, you can see that in [this page](http://plugins.yithemes.com/yith-woocommerce-ajax-search/). Browse it and try all options available so that you can see how your plugin looks like.
111
112
= What are the main changes in plugin translation? =
113
Recently YITH WooCommerce Ajax Search has been selected to be included in the "translate.wordpress.org" translate programme.
@@ -138,6 +138,12 @@ If you have created your own language pack for YITH WooCommerce Ajax Search, or
138
2. YITH WooCommerce Ajax Search in operation displaying WooCommerce search results
139
140
== Changelog ==
141
= 1.5.5 - Released: Jan 31, 2018 =
142
New: Support to WooCommerce 3.3.x
143
Update: Plugin Core 3.0.11
3
Contributors: yithemes
4
Tags: woocommerce search by sku, woocommerce search results, woocommerce search shortcode, woocommerce search page, woocommerce search form, woocommerce search filter, woocommerce search products, woocommerce search content, woocommerce search autocomplete, woocommerce advanced search, woocommerce search category, woocommerce search product attributes, woocommerce search by tag, woocommerce search by brand, woocommerce predictive, woocommerce live search, woocommerce single product search, woocommerce site search, woocommerce search tex, tajax, search, woocommerce, products, themes, yit, e-commerce, shop, yith, ajax search, instant search, premium, yithemes, autocomplete, autosuggest, better search, category search, custom search, highlight terms, Live Search, Predictive Search, product search, relevant search, search highlight, search product, suggest, typeahead, WooCommerce Plugin, woocommerce product search, woocommerce search, wordpress ecommerce
5
Requires at least: 4.0.0
6
+ Tested up to: 4.9.6
7
+ Stable tag: 1.5.6
8
License: GPLv2 or later
9
License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
34
* Set minimum number of characters for WooCommerce search
35
* Set maximum number of WooCommerce results
36
37
+ If you want to boost your YITH WooCommerce Ajax Search, you can also visit YIThemes page and explore the [live demo](https://plugins.yithemes.com/yith-woocommerce-ajax-search/) of the premium version, which includes all the following features to improve at the best your WooCommerce site search.
38
39
= Premium features of YITH WooCommerce Ajax Search: =
40
55
* Customize WooCommerce search loader .gif image
56
57
58
+ For a more detailed list of options and features of YITH WooCommerce Ajax Search, please read the [official documentation](https://docs.yithemes.com/yith-woocommerce-ajax-search/ "YITH Woocommerce Ajax Search official documentation").
59
60
YITH WooCommerce Ajax Search is available in combination with many other plugins in [**YITH Essential Kit for WooCommerce #1**](https://wordpress.org/plugins/yith-essential-kit-for-woocommerce-1/), a bundle of indispensable tools to make your WooCommerce site look more professional and be more user-friendly. Learn more about all of WooCommerce plugins included and boost your WooCommerce site with a simple click!
61
107
108
= How can I try the full-featured plugin? =
109
110
+ If you want to see a demonstration version of the premium plugin, you can see that in [this page](https://plugins.yithemes.com/yith-woocommerce-ajax-search/). Browse it and try all options available so that you can see how your plugin looks like.
111
112
= What are the main changes in plugin translation? =
113
Recently YITH WooCommerce Ajax Search has been selected to be included in the "translate.wordpress.org" translate programme.
138
2. YITH WooCommerce Ajax Search in operation displaying WooCommerce search results
139
140
== Changelog ==
141
+
142
+ = 1.5.6 - Released: May 15, 2018 =
143
+ New: Support to WordPress 4.9.6 RC2
144
+ New: Support to WooCommerce 3.4.0 RC1
145
+ Update: Plugin Core 3.0.15
146
+
147
= 1.5.5 - Released: Jan 31, 2018 =
148
New: Support to WooCommerce 3.3.x
149
Update: Plugin Core 3.0.11
assets/js/frontend.js CHANGED
@@ -10,38 +10,47 @@ jQuery(document).ready(function ($) {
10
"use strict";
11
12
var el = $('.yith-s'),
13
- def_loader = ( typeof woocommerce_params != 'undefined' && typeof woocommerce_params.ajax_loader_url != 'undefined' ) ? woocommerce_params.ajax_loader_url : yith_wcas_params.loading,
14
loader_icon = el.data('loader-icon') == '' ? def_loader : el.data('loader-icon'),
15
search_button = $('#yith-searchsubmit'),
16
- min_chars = el.data('min-chars');
17
18
- search_button.on('click', function(){
19
var form = $(this).closest('form');
20
- if( form.find('.yith-s').val()==''){
21
return false;
22
}
23
return true;
24
});
25
26
- if( el.length == 0 ) el = $('#yith-s');
27
28
el.each(function () {
29
var $t = $(this),
30
- append_to = ( typeof $t.data('append-to') == 'undefined') ? $t.closest('.yith-ajaxsearchform-container') : $t.closest( $t.data('append-to') );
31
32
$t.yithautocomplete({
33
- minChars : min_chars,
34
- appendTo : append_to,
35
triggerSelectOnValidInput: false,
36
- serviceUrl : yith_wcas_params.ajax_url + '?action=yith_ajax_search_products',
37
- onSearchStart : function () {
38
- $t.css({'background-image': 'url(' + loader_icon + ')','background-repeat': 'no-repeat', 'background-position': 'center right'});
39
},
40
- onSelect : function (suggestion) {
41
if (suggestion.id != -1) {
42
window.location.href = suggestion.url;
43
}
44
- } ,
45
onSearchComplete: function () {
46
$t.css('background-image', 'none');
47
}
10
"use strict";
11
12
var el = $('.yith-s'),
13
+ def_loader = (typeof woocommerce_params != 'undefined' && typeof woocommerce_params.ajax_loader_url != 'undefined') ? woocommerce_params.ajax_loader_url : yith_wcas_params.loading,
14
loader_icon = el.data('loader-icon') == '' ? def_loader : el.data('loader-icon'),
15
search_button = $('#yith-searchsubmit'),
16
+ min_chars = el.data('min-chars'),
17
+ ajaxurl = yith_wcas_params.ajax_url;
18
19
+ if (ajaxurl.indexOf('?') == -1) {
20
+ ajaxurl += '?';
21
+ }
22
+
23
+ search_button.on('click', function () {
24
var form = $(this).closest('form');
25
+ if (form.find('.yith-s').val() == '') {
26
return false;
27
}
28
return true;
29
});
30
31
+ if (el.length == 0) el = $('#yith-s');
32
33
el.each(function () {
34
var $t = $(this),
35
+ append_to = (typeof $t.data('append-to') == 'undefined') ? $t.closest('.yith-ajaxsearchform-container') : $t.closest($t.data('append-to'));
36
37
$t.yithautocomplete({
38
+ minChars: min_chars,
39
+ appendTo: append_to,
40
triggerSelectOnValidInput: false,
41
+ serviceUrl: ajaxurl + 'action=yith_ajax_search_products',
42
+ onSearchStart: function () {
43
+ $t.css({
44
+ 'background-image': 'url(' + loader_icon + ')',
45
+ 'background-repeat': 'no-repeat',
46
+ 'background-position': 'center right'
47
+ });
48
},
49
+ onSelect: function (suggestion) {
50
if (suggestion.id != -1) {
51
window.location.href = suggestion.url;
52
}
53
+ },
54
onSearchComplete: function () {
55
$t.css('background-image', 'none');
56
}
assets/js/frontend.min.js CHANGED
@@ -1,2 +1 @@
1
- jQuery(document).ready(function(c){var a=c(".yith-s"),d="undefined"!=typeof woocommerce_params&&"undefined"!=typeof woocommerce_params.ajax_loader_url?woocommerce_params.ajax_loader_url:yith_wcas_params.loading,e=""==a.data("loader-icon")?d:a.data("loader-icon"),d=c("#yith-searchsubmit"),f=a.data("min-chars");d.on("click",function(){return""==c(this).closest("form").find(".yith-s").val()?!1:!0});0==a.length&&(a=c("#yith-s"));a.each(function(){var b=c(this),a="undefined"==typeof b.data("append-to")?
2
- b.closest(".yith-ajaxsearchform-container"):b.closest(b.data("append-to"));b.yithautocomplete({minChars:f,appendTo:a,triggerSelectOnValidInput:!1,serviceUrl:yith_wcas_params.ajax_url+"?action=yith_ajax_search_products",onSearchStart:function(){b.css({"background-image":"url("+e+")","background-repeat":"no-repeat","background-position":"center right"})},onSelect:function(a){-1!=a.id&&(window.location.href=a.url)},onSearchComplete:function(){b.css("background-image","none")}})})});
1
+ jQuery(document).ready(function(a){"use strict";var o=a(".yith-s"),e="undefined"!=typeof woocommerce_params&&void 0!==woocommerce_params.ajax_loader_url?woocommerce_params.ajax_loader_url:yith_wcas_params.loading,t=""==o.data("loader-icon")?e:o.data("loader-icon"),r=a("#yith-searchsubmit"),n=o.data("min-chars"),c=yith_wcas_params.ajax_url;-1==c.indexOf("?")&&(c+="?"),r.on("click",function(){return""!=a(this).closest("form").find(".yith-s").val()}),0==o.length&&(o=a("#yith-s")),o.each(function(){var o=a(this),e=void 0===o.data("append-to")?o.closest(".yith-ajaxsearchform-container"):o.closest(o.data("append-to"));o.yithautocomplete({minChars:n,appendTo:e,triggerSelectOnValidInput:!1,serviceUrl:c+"action=yith_ajax_search_products",onSearchStart:function(){o.css({"background-image":"url("+t+")","background-repeat":"no-repeat","background-position":"center right"})},onSelect:function(a){-1!=a.id&&(window.location.href=a.url)},onSearchComplete:function(){o.css("background-image","none")}})})});
class.yith-wcas-admin.php CHANGED
@@ -47,7 +47,7 @@ if( !class_exists( 'YITH_WCAS_Admin' ) ) {
47
/**
48
* @var string Premium version landing link
49
*/
50
- protected $_premium_landing = 'http://yithemes.com/themes/plugins/yith-woocommerce-ajax-search/';
51
52
/**
53
* @var string Ajax Search panel page
@@ -61,7 +61,7 @@ if( !class_exists( 'YITH_WCAS_Admin' ) ) {
61
* @access public
62
* @since 1.0.0
63
*/
64
- public $doc_url = 'http://yithemes.com/docs-plugins/yith-woocommerce-ajax-search/';
65
66
/**
67
* Constructor
47
/**
48
* @var string Premium version landing link
49
*/
50
+ protected $_premium_landing = 'https://yithemes.com/themes/plugins/yith-woocommerce-ajax-search/';
51
52
/**
53
* @var string Ajax Search panel page
61
* @access public
62
* @since 1.0.0
63
*/
64
+ public $doc_url = 'https://docs.yithemes.com/yith-woocommerce-ajax-search/';
65
66
/**
67
* Constructor
init.php CHANGED
@@ -3,13 +3,13 @@
3
* Plugin Name: YITH WooCommerce Ajax Search
4
* Plugin URI: http://yithemes.com/
5
* Description: YITH WooCommerce Ajax Search allows your users to search products in real time.
6
- * Version: 1.5.5
7
* Author: YITHEMES
8
* Author URI: http://yithemes.com/
9
* Text Domain: yith-woocommerce-ajax-search
10
* Domain Path: /languages/
11
* WC requires at least: 3.0.0
12
- * WC tested up to: 3.3.0
13
*/
14
15
@@ -67,7 +67,7 @@ register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
67
if ( defined( 'YITH_WCAS_VERSION' ) ){
68
return;
69
}else{
70
- define( 'YITH_WCAS_VERSION', '1.5.5' );
71
}
72
73
if ( ! defined( 'YITH_WCAS_FREE_INIT' ) ) {
3
* Plugin Name: YITH WooCommerce Ajax Search
4
* Plugin URI: http://yithemes.com/
5
* Description: YITH WooCommerce Ajax Search allows your users to search products in real time.
6
+ * Version: 1.5.6
7
* Author: YITHEMES
8
* Author URI: http://yithemes.com/
9
* Text Domain: yith-woocommerce-ajax-search
10
* Domain Path: /languages/
11
* WC requires at least: 3.0.0
12
+ * WC tested up to: 3.4.0
13
*/
14
15
67
if ( defined( 'YITH_WCAS_VERSION' ) ){
68
return;
69
}else{
70
+ define( 'YITH_WCAS_VERSION', '1.5.6' );
71
}
72
73
if ( ! defined( 'YITH_WCAS_FREE_INIT' ) ) {
languages/yith-woocommerce-ajax-search-it_IT.mo CHANGED
Binary file
languages/yith-woocommerce-ajax-search-it_IT.po CHANGED
@@ -1,15 +1,15 @@
1
msgid ""
2
msgstr ""
3
"Project-Id-Version: YITH WooCommerce Ajax Search Premium\n"
4
- "POT-Creation-Date: 2017-03-06 14:56+0100\n"
5
- "PO-Revision-Date: 2017-03-06 14:56+0100\n"
6
"Last-Translator: \n"
7
"Language-Team: Yithemes <plugins@yithemes.com>\n"
8
"Language: it_IT\n"
9
"MIME-Version: 1.0\n"
10
"Content-Type: text/plain; charset=UTF-8\n"
11
"Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.8.7.1\n"
13
"X-Poedit-KeywordsList: __;_e;_x\n"
14
"X-Poedit-Basepath: .\n"
15
"X-Poedit-SearchPath-0: ..\n"
@@ -38,13 +38,19 @@ msgstr "YITH WooCommerce Ajax Search"
38
39
#: ../class.yith-wcas-admin.php:208
40
msgid ""
41
- "In the YIT Plugin tab you can find the YITH WooCommerce Ajax Search options."
42
- "\r\n"
43
"With this menu, you can access to all the settings of our plugins that you "
44
- "have activated.\r\n"
45
"YITH WooCommerce Ajax Search is available in an outstanding PREMIUM version "
46
"with many new options, <a href=\""
47
msgstr ""
48
49
#: ../class.yith-wcas-admin.php:221
50
msgid "YITH WooCommerce Ajax Search Updated"
@@ -54,17 +60,24 @@ msgstr "YITH WooCommerce Ajax Search aggiornato"
54
msgid ""
55
"From now on, you can find all the options of YITH WooCommerce Ajax Search "
56
"Updated under YIT Plugin -> Ajax Search instead of WooCommerce -> Settings -"
57
- "> Ajax Search, as in the previous version.\r\n"
58
- "When one of our plugins updates, a new voice will be added to this menu.\r\n"
59
"YITH WooCommerce Ajax Search renovates with new available options, discover "
60
"the <a href=\""
61
msgstr ""
62
-
63
- #: ../class.yith-wcas.php:181
64
msgid "No results"
65
msgstr "Nessun risultato"
66
67
- #: ../init.php:46
68
msgid ""
69
"You can't activate the free version of YITH WooCommerce Ajax Search while "
70
"you are using the premium one."
@@ -72,7 +85,7 @@ msgstr ""
72
"Non puoi attivare la versione free di YITH WooCommerce Ajax Search se stai "
73
"già utilizzando la premium."
74
75
- #: ../init.php:108
76
msgid ""
77
"YITH WooCommerce Ajax Search is enabled but not effective. It requires "
78
"WooCommerce in order to work."
@@ -90,9 +103,12 @@ msgstr "Scopri le funzionalità avanzate"
90
91
#: ../plugin-options/settings-options.php:26
92
msgid ""
93
- "Upgrade to the PREMIUM VERSION\r\n"
94
"of YITH WOOCOMMERCE AJAX SEARCH to benefit from all features!"
95
msgstr ""
96
97
#: ../plugin-options/settings-options.php:33
98
msgid "Get Support and Pro Features"
@@ -152,19 +168,19 @@ msgstr "Numero massimo di risultati da mostrare tra i suggerimenti automatici."
152
153
#: ../plugin-options/settings-options.php:97
154
msgid "Enable transients to cache autocomplete results"
155
- msgstr ""
156
157
#: ../plugin-options/settings-options.php:98
158
msgid "Save the results of a query in a transient"
159
- msgstr ""
160
161
#: ../plugin-options/settings-options.php:106
162
msgid "Set the duration of transient"
163
- msgstr ""
164
165
#: ../plugin-options/settings-options.php:107
166
msgid "(hours)"
167
- msgstr ""
168
169
#: ../templates/admin/premium.php:251 ../templates/admin/premium.php:299
170
#, php-format
@@ -258,45 +274,6 @@ msgstr "YITH WooCommerce Ajax Product Search"
258
msgid "Title:"
259
msgstr "Titolo:"
260
261
- #~ msgid ""
262
- #~ "In the YIT Plugin tab you can find the YITH WooCommerce Ajax Search "
263
- #~ "options.\n"
264
- #~ "With this menu, you can access to all the settings of our plugins that "
265
- #~ "you have activated.\n"
266
- #~ "YITH WooCommerce Ajax Search is available in an outstanding PREMIUM "
267
- #~ "version with many new options, <a href=\""
268
- #~ msgstr ""
269
- #~ "Nella scheda del plugin puoi trovare tutte le opzioni di YITH WooCommerce "
270
- #~ "Ajax Search.\n"
271
- #~ "Da questo menu, avrai accesso a tutte le impostazioni dei nostri plugin "
272
- #~ "attivati finora.\n"
273
- #~ "YITH WooCommerce Ajax Search è disponibile in una eccezionale versione "
274
- #~ "PREMIUM con molte nuove optioni, <a href=\""
275
-
276
- #~ msgid ""
277
- #~ "From now on, you can find all the options of YITH WooCommerce Ajax Search "
278
- #~ "Updated under YIT Plugin -> Ajax Search instead of WooCommerce -> "
279
- #~ "Settings -> Ajax Search, as in the previous version.\n"
280
- #~ "When one of our plugins updates, a new voice will be added to this menu.\n"
281
- #~ "YITH WooCommerce Ajax Search renovates with new available options, "
282
- #~ "discover the <a href=\""
283
- #~ msgstr ""
284
- #~ "Da adesso, puoi trovare tutte le opzioni del nuovo YITH WooCommerce Ajax "
285
- #~ "Search in YIT Plugin > Ajax Search invece che in WooCommerce > Settings > "
286
- #~ "Ajax Search, come accadeva nelle precedenti versioni.\n"
287
- #~ "Quando uno dei nostri plugin verrà aggiornato, una nuova voce sarà "
288
- #~ "aggiunta a questo menu.\n"
289
- #~ "YITH WooCommerce Ajax Search si è rinnovato con molte nuove opzioni "
290
- #~ "disponibili, scopri <a href=\""
291
-
292
- #~ msgid ""
293
- #~ "Upgrade to the PREMIUM VERSION\n"
294
- #~ "of YITH WOOCOMMERCE AJAX SEARCH to benefit from all features!"
295
- #~ msgstr ""
296
- #~ "Passa alla VERSIONE PREMIUM\n"
297
- #~ "di YITH WooCommerce Ajax Search per poter fruire di tutte le sue "
298
- #~ "funzionalità!"
299
-
300
#~ msgid "Output"
301
#~ msgstr "Risultati di ricerca"
302
1
msgid ""
2
msgstr ""
3
"Project-Id-Version: YITH WooCommerce Ajax Search Premium\n"
4
+ "POT-Creation-Date: 2018-04-16 22:37+0200\n"
5
+ "PO-Revision-Date: 2018-04-16 22:40+0200\n"
6
"Last-Translator: \n"
7
"Language-Team: Yithemes <plugins@yithemes.com>\n"
8
"Language: it_IT\n"
9
"MIME-Version: 1.0\n"
10
"Content-Type: text/plain; charset=UTF-8\n"
11
"Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 2.0.6\n"
13
"X-Poedit-KeywordsList: __;_e;_x\n"
14
"X-Poedit-Basepath: .\n"
15
"X-Poedit-SearchPath-0: ..\n"
38
39
#: ../class.yith-wcas-admin.php:208
40
msgid ""
41
+ "In the YIT Plugin tab you can find the YITH WooCommerce Ajax Search "
42
+ "options.\n"
43
"With this menu, you can access to all the settings of our plugins that you "
44
+ "have activated.\n"
45
"YITH WooCommerce Ajax Search is available in an outstanding PREMIUM version "
46
"with many new options, <a href=\""
47
msgstr ""
48
+ "Nella scheda del plugin puoi trovare tutte le opzioni di YITH WooCommerce "
49
+ "Ajax Search.\n"
50
+ "Da questo menu, avrai accesso a tutte le impostazioni dei nostri plugin "
51
+ "attivati finora.\n"
52
+ "YITH WooCommerce Ajax Search è disponibile in una eccezionale versione "
53
+ "PREMIUM con molte nuove optioni, <a href=\""
54
55
#: ../class.yith-wcas-admin.php:221
56
msgid "YITH WooCommerce Ajax Search Updated"
60
msgid ""
61
"From now on, you can find all the options of YITH WooCommerce Ajax Search "
62
"Updated under YIT Plugin -> Ajax Search instead of WooCommerce -> Settings -"
63
+ "> Ajax Search, as in the previous version.\n"
64
+ "When one of our plugins updates, a new voice will be added to this menu.\n"
65
"YITH WooCommerce Ajax Search renovates with new available options, discover "
66
"the <a href=\""
67
msgstr ""
68
+ "Da adesso, puoi trovare tutte le opzioni del nuovo YITH WooCommerce Ajax "
69
+ "Search in YIT Plugin > Ajax Search invece che in WooCommerce > Settings > "
70
+ "Ajax Search, come accadeva nelle precedenti versioni.\n"
71
+ "Quando uno dei nostri plugin verrà aggiornato, una nuova voce sarà aggiunta "
72
+ "a questo menu.\n"
73
+ "YITH WooCommerce Ajax Search si è rinnovato con molte nuove opzioni "
74
+ "disponibili, scopri <a href=\""
75
+
76
+ #: ../class.yith-wcas.php:202
77
msgid "No results"
78
msgstr "Nessun risultato"
79
80
+ #: ../init.php:48
81
msgid ""
82
"You can't activate the free version of YITH WooCommerce Ajax Search while "
83
"you are using the premium one."
85
"Non puoi attivare la versione free di YITH WooCommerce Ajax Search se stai "
86
"già utilizzando la premium."
87
88
+ #: ../init.php:110
89
msgid ""
90
"YITH WooCommerce Ajax Search is enabled but not effective. It requires "
91
"WooCommerce in order to work."
103
104
#: ../plugin-options/settings-options.php:26
105
msgid ""
106
+ "Upgrade to the PREMIUM VERSION\n"
107
"of YITH WOOCOMMERCE AJAX SEARCH to benefit from all features!"
108
msgstr ""
109
+ "Passa alla VERSIONE PREMIUM\n"
110
+ "di YITH WooCommerce Ajax Search per poter fruire di tutte le sue "
111
+ "funzionalità!"
112
113
#: ../plugin-options/settings-options.php:33
114
msgid "Get Support and Pro Features"
168
169
#: ../plugin-options/settings-options.php:97
170
msgid "Enable transients to cache autocomplete results"
171
+ msgstr "Attiva i transient per salvare nella cache i risulti autocompletati"
172
173
#: ../plugin-options/settings-options.php:98
174
msgid "Save the results of a query in a transient"
175
+ msgstr "Salva i risultati di una query in un transient"
176
177
#: ../plugin-options/settings-options.php:106
178
msgid "Set the duration of transient"
179
+ msgstr "Imposta la durata del transient "
180
181
#: ../plugin-options/settings-options.php:107
182
msgid "(hours)"
183
+ msgstr "(ore)"
184
185
#: ../templates/admin/premium.php:251 ../templates/admin/premium.php:299
186
#, php-format
274
msgid "Title:"
275
msgstr "Titolo:"
276
277
#~ msgid "Output"
278
#~ msgstr "Risultati di ricerca"
279
plugin-fw/assets/css/yit-plugin-panel.css CHANGED
@@ -46,72 +46,8 @@
46
}
47
48
#plugin-fw-wc h3, #yith-plugin-fw-panel h3 {
49
- padding : 0px 10px 10px;
50
- border-bottom : 1px solid #eee;
51
- }
52
-
53
- /* === VIDEO BOX === */
54
- .yith-videobox-wrapper {
55
- padding-top : 20px;
56
- }
57
-
58
- .yith-videobox-wrapper h3 {
59
- padding : 0px 10px 10px;
60
- border-bottom : 1px solid #eee;
61
- }
62
-
63
- .yith-videobox-wrapper .postbox {
64
- display : inline-block;
65
- }
66
-
67
- .yith-videobox-wrapper .yith_videobox .column {
68
- width : 45%;
69
- float : left;
70
- padding-right : 2.5%;
71
- border-right : 1px solid #ebebeb;
72
- padding-bottom : 2em;
73
- }
74
-
75
- .yith-videobox-wrapper .yith_videobox .column.two {
76
- margin-right : 0;
77
- padding-right : 0;
78
- padding-left : 2.5%;
79
- border : 0;
80
- max-width : 49%;
81
- }
82
-
83
- .yith-videobox-wrapper .yith_videobox h2 {
84
- font-size : 16px;
85
- margin-bottom : 20px;
86
- }
87
-
88
- .yith-videobox-wrapper .yith-video-link {
89
- width : 100%;
90
- max-width : 200px;
91
- float : left;
92
- margin : 0 1.5em 1.5em 0;
93
- }
94
-
95
- .yith-videobox-wrapper .yith-video-link {
96
- width : 100%;
97
- max-width : 200px;
98
- float : left;
99
- margin : 0 1.5em 1.5em 0;
100
- }
101
-
102
- .yith-videobox-wrapper .yith-image-frame img {
103
- max-width : 100%;
104
- height : auto;
105
- }
106
-
107
- .yith-videobox-wrapper .yith-video-link img {
108
- max-width : 100%;
109
- height : auto;
110
- }
111
-
112
- .yith-videobox-wrapper .yith-video-iframe {
113
- display : none;
114
-
115
}
116
117
/* === Plugins Upgrader === */
46
}
47
48
#plugin-fw-wc h3, #yith-plugin-fw-panel h3 {
49
+ padding : 0 0 0 10px;
50
+ margin : 0;
51
}
52
53
/* === Plugins Upgrader === */
plugin-fw/assets/css/yith-fields.css CHANGED
@@ -7,6 +7,11 @@
7
clear : both;
8
}
9
10
.yith-disabled {
11
opacity : 0.3;
12
pointer-events : none;
@@ -32,8 +37,11 @@
32
33
.yith-plugin-fw input[type=email],
34
.yith-plugin-fw input[type=number],
35
- .yith-plugin-fw input[type=text]:not(.select2-search__field):not(.wp-color-picker),
36
.yith-plugin-fw select,
37
.woocommerce .yith-plugin-fw table.form-table select {
38
width : 400px;
39
max-width : 100%;
@@ -41,14 +49,29 @@
41
padding : 5px;
42
}
43
44
.woocommerce .yith-plugin-fw table.form-table input[type=text].colorpick,
45
.yith-plugin-fw input[type=text].colorpick {
46
- width : 6em;
47
}
48
49
- .woocommerce .yith-plugin-fw input[type=text].select2-search__field {
50
- margin : 10px 0 0 2px;
51
- padding : 0;
52
}
53
54
.yith-plugin-fw textarea {
@@ -57,12 +80,6 @@
57
padding : 5px;
58
}
59
60
- .yith-plugin-fw input[type=email],
61
- .yith-plugin-fw input[type=number],
62
- .yith-plugin-fw input[type=text]:not(.select2-search__field) {
63
- padding : 5px 10px;
64
- }
65
-
66
/* ------------- ICONS ------------- */
67
.yit-icons-manager-wrapper {
68
width : 100%;
@@ -175,6 +192,10 @@ ul.yit-icons-manager-list li.active {
175
}
176
177
/* ------- OnOff ------- */
178
.yith-plugin-fw-onoff-container input {
179
display : none;
180
}
@@ -218,6 +239,15 @@ ul.yit-icons-manager-list li.active {
218
max-height : 200px;
219
}
220
221
/* ------- Sidebar Layout ------- */
222
.yith-plugin-fw-sidebar-layout input[type="radio"] {
223
display : none;
@@ -324,7 +354,7 @@ ul.yit-icons-manager-list li.active {
324
}
325
326
.yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area,
327
- .woocommerce table.form-table .yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area{
328
width : 100%;
329
}
330
7
clear : both;
8
}
9
10
+ .yith-plugin-fw span.description.inline {
11
+ display : inline-block;
12
+ margin : 0 0 0 5px;
13
+ }
14
+
15
.yith-disabled {
16
opacity : 0.3;
17
pointer-events : none;
37
38
.yith-plugin-fw input[type=email],
39
.yith-plugin-fw input[type=number],
40
+ .yith-plugin-fw input[type=text]:not(.select2-search__field),
41
.yith-plugin-fw select,
42
+ .woocommerce .yith-plugin-fw table.form-table input[type=email],
43
+ .woocommerce .yith-plugin-fw table.form-table input[type=number],
44
+ .woocommerce .yith-plugin-fw table.form-table input[type=text]:not(.select2-search__field),
45
.woocommerce .yith-plugin-fw table.form-table select {
46
width : 400px;
47
max-width : 100%;
49
padding : 5px;
50
}
51
52
+ .woocommerce .yith-plugin-fw table.form-table input[type=text].wp-color-picker,
53
+ .woocommerce .yith-plugin-fw table.form-table input[type=text].yith-plugin-fw-colorpicker,
54
+ .yith-plugin-fw input[type=text].wp-color-picker,
55
+ .yith-plugin-fw input[type=text].yith-plugin-fw-colorpicker {
56
+ width : 6em;
57
+ max-width : none;
58
+ height : auto;
59
+ padding : 3px 5px;
60
+ }
61
+
62
.woocommerce .yith-plugin-fw table.form-table input[type=text].colorpick,
63
.yith-plugin-fw input[type=text].colorpick {
64
+ width : 6em;
65
+ max-width : none;
66
+ height : auto;
67
+ padding : 6px;
68
}
69
70
+ .yith-plugin-fw input.select2-search__field,
71
+ .yith-plugin-fw .select2-container .select2-search--inline .select2-search__field,
72
+ .woocommerce .yith-plugin-fw input.select2-search__field,
73
+ .woocommerce .yith-plugin-fw table.form-table input.select2-search__field {
74
+ padding : 3px;
75
}
76
77
.yith-plugin-fw textarea {
80
padding : 5px;
81
}
82
83
/* ------------- ICONS ------------- */
84
.yit-icons-manager-wrapper {
85
width : 100%;
192
}
193
194
/* ------- OnOff ------- */
195
+ .yith-plugin-fw-onoff-container {
196
+ display : inline-block;
197
+ }
198
+
199
.yith-plugin-fw-onoff-container input {
200
display : none;
201
}
239
max-height : 200px;
240
}
241
242
+ /* ------- Radio ------- */
243
+ .yith-plugin-fw-radio input[type=radio] {
244
+ margin : 0 3px 0 0;
245
+ }
246
+
247
+ .yith-plugin-fw-radio__row {
248
+ margin-bottom : 8px;
249
+ }
250
+
251
/* ------- Sidebar Layout ------- */
252
.yith-plugin-fw-sidebar-layout input[type="radio"] {
253
display : none;
354
}
355
356
.yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area,
357
+ .woocommerce table.form-table .yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area {
358
width : 100%;
359
}
360
plugin-fw/assets/js/multisite-updater.js CHANGED
@@ -6,18 +6,18 @@
6
* It is also available through the world-wide-web at this URL:
7
* http://www.gnu.org/licenses/gpl-3.0.txt
8
*/
9
- (function ($) {
10
11
- var plugins_menu_item = $( '#menu-plugins' ),
12
- update = plugins_menu_item.find('.update-plugins'),
13
- count = update.find(".update-count").text(),
14
- registered = plugins.registered,
15
- activated = plugins.activated;
16
17
- if( count == 0 || count == ''){
18
var update_row = '<span class="update-plugins"><span class="plugin-count"></span></span>';
19
- count = 0;
20
- plugins_menu_item.find( '.wp-menu-name').append( update_row );
21
}
22
23
/**
@@ -38,51 +38,47 @@
38
*
39
* @return void
40
*/
41
- function update_plugins_row( registered, activated, count, localize ){
42
- for( var init in registered ){
43
- var plugin = registered[init];
44
- for( var headers in plugin ){
45
46
- if( headers == 'slug' || version_compare( plugin[headers].Version, plugin[headers].Latest, '>=' ) ) {
47
continue;
48
}
49
50
- count = parseInt(count) + 1;
51
- $(".plugin-count").empty().html(count);
52
53
- var regex = new RegExp(' ', 'g'),
54
- info = plugin[headers],
55
- name = '' + info.Name,
56
- id = name.replace(regex, '-').trim(),
57
- row = '*[data-slug="' + id.toLowerCase() +'"]';
58
59
- $(row).addClass("update");
60
61
var html = '<tr class="plugin-update-tr">' +
62
- '<td colspan="3" class="plugin-update colspanchange">' +
63
- '<div class="update-message">' + localize.strings.new_version.replace( '%plugin_name%', name ) +
64
- '<a class="thickbox" href="' + localize.details_url[init] + '">' + localize.strings.latest.replace( '%latest%', plugin[headers].Latest ) + '</a>';
65
66
- if( typeof activated[init] == "undefined" ) {
67
68
html = html +
69
- ' <em>' + localize.strings.unavailable + '</em>' +
70
- localize.strings.activate.replace( '%activate_link%', localize.licence_activation_url ).replace( '%plugin_name%', name );
71
} else {
72
html = html +
73
- '. <a href="' + localize.update_url[init] + '">' + localize.strings.update_now + '</a>';
74
- }
75
-
76
- if( typeof localize.changelogs[init] != 'undefined' ){
77
- html = html + localize.changelogs[init];
78
}
79
80
html = html +
81
- '</div>' +
82
- '</td>' +
83
- '</tr>';
84
85
- $(html).insertAfter(row);
86
}
87
}
88
}
@@ -96,7 +92,7 @@
96
*
97
* @see php.js library http://phpjs.org/
98
*/
99
- function version_compare(v1, v2, operator) {
100
// discuss at: http://phpjs.org/functions/version_compare/
101
// original by: Philippe Jausions (http://pear.php.net/user/jausions)
102
// original by: Aidan Lister (http://aidanlister.com/)
@@ -113,21 +109,21 @@
113
// example 4: version_compare('4.1.0.52','4.01.0.51');
114
// returns 4: 1
115
116
- this.php_js = this.php_js || {};
117
this.php_js.ENV = this.php_js.ENV || {};
118
// END REDUNDANT
119
// Important: compare must be initialized at 0.
120
- var i = 0,
121
- x = 0,
122
- compare = 0,
123
- // vm maps textual PHP versions to negatives so they're less than 0.
124
- // PHP currently defines these as CASE-SENSITIVE. It is important to
125
- // leave these as negatives so that they can come before numerical versions
126
- // and as if no letters were there to begin with.
127
- // (1alpha is < 1 and < 1.1 but > 1dev1)
128
- // If a non-numerical value can't be mapped to this table, it receives
129
- // -7 as its value.
130
- vm = {
131
'dev' : -6,
132
'alpha': -5,
133
'a' : -5,
@@ -139,54 +135,54 @@
139
'p' : 1,
140
'pl' : 1
141
},
142
- // This function will be called to prepare each version argument.
143
- // It replaces every _, -, and + with a dot.
144
- // It surrounds any nonsequence of numbers/dots with dots.
145
- // It replaces sequences of dots with a single dot.
146
- // version_compare('4..0', '4.0') == 0
147
- // Important: A string of 0 length needs to be converted into a value
148
- // even less than an unexisting value in vm (-7), hence [-8].
149
- // It's also important to not strip spaces because of this.
150
- // version_compare('', ' ') == 1
151
- prepVersion = function (v) {
152
v = ('' + v)
153
- .replace(/[_\-+]/g, '.');
154
- v = v.replace(/([^.\d]+)/g, '.$1.')
155
- .replace(/\.{2,}/g, '.');
156
- return (!v.length ? [-8] : v.split('.'));
157
};
158
// This converts a version component to a number.
159
// Empty component becomes 0.
160
// Non-numerical component becomes a negative number.
161
// Numerical component becomes itself as an integer.
162
- numVersion = function (v) {
163
- return !v ? 0 : (isNaN(v) ? vm[v] || -7 : parseInt(v, 10));
164
};
165
- v1 = prepVersion(v1);
166
- v2 = prepVersion(v2);
167
- x = Math.max(v1.length, v2.length);
168
- for (i = 0; i < x; i++) {
169
- if (v1[i] == v2[i]) {
170
continue;
171
}
172
- v1[i] = numVersion(v1[i]);
173
- v2[i] = numVersion(v2[i]);
174
- if (v1[i] < v2[i]) {
175
compare = -1;
176
break;
177
- } else if (v1[i] > v2[i]) {
178
compare = 1;
179
break;
180
}
181
}
182
- if (!operator) {
183
return compare;
184
}
185
186
// Important: operator is CASE-SENSITIVE.
187
// "No operator" seems to be treated as "<."
188
// Any other values seem to make the function return null.
189
- switch (operator) {
190
case '>':
191
case 'gt':
192
return (compare > 0);
@@ -217,6 +213,6 @@
217
$( 'body' ).on( 'click', '.yit-changelog-button', function () {
218
$( '#TB_window' ).remove();
219
} );
220
-
221
222
- })(jQuery);
6
* It is also available through the world-wide-web at this URL:
7
* http://www.gnu.org/licenses/gpl-3.0.txt
8
*/
9
+ (function ( $ ) {
10
11
+ var plugins_menu_item = $( '#menu-plugins' ),
12
+ update = plugins_menu_item.find( '.update-plugins' ),
13
+ count = update.find( ".update-count" ).text(),
14
+ registered = plugins.registered,
15
+ activated = plugins.activated;
16
17
+ if ( count == 0 || count == '' ) {
18
var update_row = '<span class="update-plugins"><span class="plugin-count"></span></span>';
19
+ count = 0;
20
+ plugins_menu_item.find( '.wp-menu-name' ).append( update_row );
21
}
22
23
/**
38
*
39
* @return void
40
*/
41
+ function update_plugins_row( registered, activated, count, localize ) {
42
+ for ( var init in registered ) {
43
+ var plugin = registered[ init ];
44
+ for ( var headers in plugin ) {
45
46
+ if ( headers == 'slug' || version_compare( plugin[ headers ].Version, plugin[ headers ].Latest, '>=' ) ) {
47
continue;
48
}
49
50
+ count = parseInt( count ) + 1;
51
+ $( ".plugin-count" ).empty().html( count );
52
53
+ var regex = new RegExp( ' ', 'g' ),
54
+ info = plugin[ headers ],
55
+ name = '' + info.Name,
56
+ id = name.replace( regex, '-' ).trim(),
57
+ row = '*[data-slug="' + id.toLowerCase() + '"]';
58
59
+ $( row ).addClass( "update" );
60
61
var html = '<tr class="plugin-update-tr">' +
62
+ '<td colspan="3" class="plugin-update colspanchange">' +
63
+ '<div class="update-message">' + localize.strings.new_version.replace( '%plugin_name%', name ) +
64
+ '<a class="thickbox open-plugin-details-modal" href="' + localize.details_url[ init ] + '">' + localize.strings.latest.replace( '%latest%', plugin[ headers ].Latest ) + '</a>';
65
66
+ if ( typeof activated[ init ] == "undefined" ) {
67
68
html = html +
69
+ ' <em>' + localize.strings.unavailable + '</em>' +
70
+ localize.strings.activate.replace( '%activate_link%', localize.licence_activation_url ).replace( '%plugin_name%', name );
71
} else {
72
html = html +
73
+ '. <a href="' + localize.update_url[ init ] + '">' + localize.strings.update_now + '</a>';
74
}
75
76
html = html +
77
+ '</div>' +
78
+ '</td>' +
79
+ '</tr>';
80
81
+ $( html ).insertAfter( row );
82
}
83
}
84
}
92
*
93
* @see php.js library http://phpjs.org/
94
*/
95
+ function version_compare( v1, v2, operator ) {
96
// discuss at: http://phpjs.org/functions/version_compare/
97
// original by: Philippe Jausions (http://pear.php.net/user/jausions)
98
// original by: Aidan Lister (http://aidanlister.com/)
109
// example 4: version_compare('4.1.0.52','4.01.0.51');
110
// returns 4: 1
111
112
+ this.php_js = this.php_js || {};
113
this.php_js.ENV = this.php_js.ENV || {};
114
// END REDUNDANT
115
// Important: compare must be initialized at 0.
116
+ var i = 0,
117
+ x = 0,
118
+ compare = 0,
119
+ // vm maps textual PHP versions to negatives so they're less than 0.
120
+ // PHP currently defines these as CASE-SENSITIVE. It is important to
121
+ // leave these as negatives so that they can come before numerical versions
122
+ // and as if no letters were there to begin with.
123
+ // (1alpha is < 1 and < 1.1 but > 1dev1)
124
+ // If a non-numerical value can't be mapped to this table, it receives
125
+ // -7 as its value.
126
+ vm = {
127
'dev' : -6,
128
'alpha': -5,
129
'a' : -5,
135
'p' : 1,
136
'pl' : 1
137
},
138
+ // This function will be called to prepare each version argument.
139
+ // It replaces every _, -, and + with a dot.
140
+ // It surrounds any nonsequence of numbers/dots with dots.
141
+ // It replaces sequences of dots with a single dot.
142
+ // version_compare('4..0', '4.0') == 0
143
+ // Important: A string of 0 length needs to be converted into a value
144
+ // even less than an unexisting value in vm (-7), hence [-8].
145
+ // It's also important to not strip spaces because of this.
146
+ // version_compare('', ' ') == 1
147
+ prepVersion = function ( v ) {
148
v = ('' + v)
149
+ .replace( /[_\-+]/g, '.' );
150
+ v = v.replace( /([^.\d]+)/g, '.$1.' )
151
+ .replace( /\.{2,}/g, '.' );
152
+ return (!v.length ? [ -8 ] : v.split( '.' ));
153
};
154
// This converts a version component to a number.
155
// Empty component becomes 0.
156
// Non-numerical component becomes a negative number.
157
// Numerical component becomes itself as an integer.
158
+ numVersion = function ( v ) {
159
+ return !v ? 0 : (isNaN( v ) ? vm[ v ] || -7 : parseInt( v, 10 ));
160
};
161
+ v1 = prepVersion( v1 );
162
+ v2 = prepVersion( v2 );
163
+ x = Math.max( v1.length, v2.length );
164
+ for ( i = 0; i < x; i++ ) {
165
+ if ( v1[ i ] == v2[ i ] ) {
166
continue;
167
}
168
+ v1[ i ] = numVersion( v1[ i ] );
169
+ v2[ i ] = numVersion( v2[ i ] );
170
+ if ( v1[ i ] < v2[ i ] ) {
171
compare = -1;
172
break;
173
+ } else if ( v1[ i ] > v2[ i ] ) {
174
compare = 1;
175
break;
176
}
177
}
178
+ if ( !operator ) {
179
return compare;
180
}
181
182
// Important: operator is CASE-SENSITIVE.
183
// "No operator" seems to be treated as "<."
184
// Any other values seem to make the function return null.
185
+ switch ( operator ) {
186
case '>':
187
case 'gt':
188
return (compare > 0);
213
$( 'body' ).on( 'click', '.yit-changelog-button', function () {
214
$( '#TB_window' ).remove();
215
} );
216
217
+
218
+ })( jQuery );
plugin-fw/assets/js/multisite-updater.min.js CHANGED
@@ -1,4 +1,7 @@
1
- (function(e){function n(c,d,e){this.php_js=this.php_js||{};this.php_js.ENV=this.php_js.ENV||{};var a=0,f=0,b=0,g={dev:-6,alpha:-5,a:-5,beta:-4,b:-4,RC:-3,rc:-3,"#":-2,p:1,pl:1},a=function(a){a=(""+a).replace(/[_\-+]/g,".");a=a.replace(/([^.\d]+)/g,".$1.").replace(/\.{2,}/g,".");return a.length?a.split("."):[-8]};numVersion=function(a){return a?isNaN(a)?g[a]||-7:parseInt(a,10):0};c=a(c);d=a(d);f=Math.max(c.length,d.length);for(a=0;a<f;a++)if(c[a]!=d[a])if(c[a]=numVersion(c[a]),d[a]=numVersion(d[a]),
2
- c[a]<d[a]){b=-1;break}else if(c[a]>d[a]){b=1;break}if(!e)return b;switch(e){case ">":case "gt":return 0<b;case ">=":case "ge":return 0<=b;case "<=":case "le":return 0>=b;case "==":case "=":case "eq":return 0===b;case "<>":case "!=":case "ne":return 0!==b;case "":case "<":case "lt":return 0>b;default:return null}}var l=e("#menu-plugins"),h=l.find(".update-plugins").find(".update-count").text(),p=plugins.registered,q=plugins.activated;if(0==h||""==h)h=0,l.find(".wp-menu-name").append('<span class="update-plugins"><span class="plugin-count"></span></span>');
3
- (function(c,d,h,a){for(var f in c){var b=c[f],g;for(g in b)if("slug"!=g&&!n(b[g].Version,b[g].Latest,">=")){h=parseInt(h)+1;e(".plugin-count").empty().html(h);var m=""+b[g].Name,l='*[data-slug="'+m.replace(RegExp(" ","g"),"-").trim().toLowerCase()+'"]';e(l).addClass("update");var k='<tr class="plugin-update-tr"><td colspan="3" class="plugin-update colspanchange"><div class="update-message">'+a.strings.new_version.replace("%plugin_name%",m)+'<a class="thickbox" href="'+a.details_url[f]+'">'+a.strings.latest.replace("%latest%",
4
- b[g].Latest)+"</a>",k="undefined"==typeof d[f]?k+" <em>"+a.strings.unavailable+"</em>"+a.strings.activate.replace("%activate_link%",a.licence_activation_url).replace("%plugin_name%",m):k+'. <a href="'+a.update_url[f]+'">'+a.strings.update_now+"</a>";"undefined"!=typeof a.changelogs[f]&&(k+=a.changelogs[f]);k+="</div></td></tr>";e(k).insertAfter(l)}}})(p,q,h,plugins);e("body").on("click",".yit-changelog-button",function(){e("#TB_window").remove()})})(jQuery);
1
+ var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,f,b){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e<d;e++){var h=a[e];if(f.call(b,h,e,a))return{i:e,v:h}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,f,b){a!=Array.prototype&&a!=Object.prototype&&(a[f]=b.value)};
2
+ $jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,f,b,d){if(f){b=$jscomp.global;a=a.split(".");for(d=0;d<a.length-1;d++){var e=a[d];e in b||(b[e]={});b=b[e]}a=a[a.length-1];d=b[a];f=f(d);f!=d&&null!=f&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:f})}};
3
+ $jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,b){return $jscomp.findInternal(this,a,b).v}},"es6","es3");
4
+ (function(a){function f(a,b,d){this.php_js=this.php_js||{};this.php_js.ENV=this.php_js.ENV||{};var c=0,f=0,g=0,e={dev:-6,alpha:-5,a:-5,beta:-4,b:-4,RC:-3,rc:-3,"#":-2,p:1,pl:1};c=function(a){a=(""+a).replace(/[_\-+]/g,".");a=a.replace(/([^.\d]+)/g,".$1.").replace(/\.{2,}/g,".");return a.length?a.split("."):[-8]};numVersion=function(a){return a?isNaN(a)?e[a]||-7:parseInt(a,10):0};a=c(a);b=c(b);f=Math.max(a.length,b.length);for(c=0;c<f;c++)if(a[c]!=b[c])if(a[c]=numVersion(a[c]),b[c]=numVersion(b[c]),
5
+ a[c]<b[c]){g=-1;break}else if(a[c]>b[c]){g=1;break}if(!d)return g;switch(d){case ">":case "gt":return 0<g;case ">=":case "ge":return 0<=g;case "<=":case "le":return 0>=g;case "==":case "=":case "eq":return 0===g;case "<>":case "!=":case "ne":return 0!==g;case "":case "<":case "lt":return 0>g;default:return null}}var b=a("#menu-plugins"),d=b.find(".update-plugins").find(".update-count").text(),e=plugins.registered,h=plugins.activated;if(0==d||""==d)d=0,b.find(".wp-menu-name").append('<span class="update-plugins"><span class="plugin-count"></span></span>');
6
+ (function(b,d,e,c){for(var h in b){var g=b[h],k;for(k in g)if("slug"!=k&&!f(g[k].Version,g[k].Latest,">=")){e=parseInt(e)+1;a(".plugin-count").empty().html(e);var m=""+g[k].Name,n='*[data-slug="'+m.replace(/ /g,"-").trim().toLowerCase()+'"]';a(n).addClass("update");var l='<tr class="plugin-update-tr"><td colspan="3" class="plugin-update colspanchange"><div class="update-message">'+c.strings.new_version.replace("%plugin_name%",m)+'<a class="thickbox open-plugin-details-modal" href="'+c.details_url[h]+
7
+ '">'+c.strings.latest.replace("%latest%",g[k].Latest)+"</a>";l="undefined"==typeof d[h]?l+" <em>"+c.strings.unavailable+"</em>"+c.strings.activate.replace("%activate_link%",c.licence_activation_url).replace("%plugin_name%",m):l+'. <a href="'+c.update_url[h]+'">'+c.strings.update_now+"</a>";l+="</div></td></tr>";a(l).insertAfter(n)}}})(e,h,d,plugins);a("body").on("click",".yit-changelog-button",function(){a("#TB_window").remove()})})(jQuery);
plugin-fw/assets/js/yit-plugin-panel.js CHANGED
@@ -125,37 +125,6 @@
125
} ).disableSelection();
126
} );
127
128
- $( document ).ready( function () {
129
-
130
- $( '.yith-video-link' ).click( function ( event ) {
131
- event.preventDefault();
132
- var target = $( this ).data( 'video-id' );
133
-
134
- $( '.' + target ).dialog( {
135
- dialogClass : 'wp-dialog yit-dialog yit-video-dialog',
136
- modal : true,
137
- closeOnEscape: true,
138
- width : 'auto',
139
- resizable : false,
140
- draggable : false,
141
- create : function ( event, ui ) {
142
- $( this ).css( "maxWidth", "853px" );
143
- },
144
- open : function ( event, ui ) {
145
-
146
- $( '.ui-widget-overlay' ).bind( 'click', function () {
147
- $( this ).siblings( '.ui-dialog' ).find( '.ui-dialog-content' ).dialog( 'close' );
148
- } );
149
-
150
- }
151
-
152
- } );
153
-
154
- $( '.ui-dialog :button' ).blur();
155
-
156
- } );
157
- } );
158
-
159
//google analytics generation
160
$( document ).ready( function () {
161
$( '.google-analytic-generate' ).click( function () {
125
} ).disableSelection();
126
} );
127
128
//google analytics generation
129
$( document ).ready( function () {
130
$( '.google-analytic-generate' ).click( function () {
plugin-fw/assets/js/yit-plugin-panel.min.js CHANGED
@@ -1,5 +1,7 @@
1
- (function(a){function h(b,d,c,f){var e=!0;if("string"==typeof d){":radio"==d.substr(0,6)&&(d+=":checked");var g=a(d).val();"checkbox"==a(d).attr("type")&&(g=a(d).is(":checked")?"yes":"no");c=c.split(",");for(d=0;d<c.length;d++)if(g!=c[d])e=!1;else{e=!0;break}}c=a(b);b=a(b+"-container").closest("tr");1>b.length&&(b=c.closest(".yith-plugin-fw-panel-wc-row"));f=f.split("-");for(var h in f)if(g=f[h],e)switch(g){case "disable":b.removeClass("yith-disabled");c.attr("disabled",!1);break;case "hideme":c.show();
2
- break;default:b.show()}else switch(g){case "disable":b.addClass("yith-disabled");c.attr("disabled",!0);break;case "hideme":c.hide();break;default:b.hide()}}a("[data-dep-target]").each(function(){var b=a(this),d="#"+b.data("dep-target"),c="#"+b.data("dep-id"),f=b.data("dep-value"),e=b.data("dep-type");h(d,c,f.toString(),e);a(c).on("change",function(){h(d,c,f.toString(),e)}).change()});a(".rm_connectedlist").each(function(){var b=a(this).find("ul"),d=a(this).find(":hidden");b.sortable({connectWith:b,
3
- update:function(c,f){var e={};b.each(function(){var b={};a(this).children().each(function(){b[a(this).data("option")]=a(this).text()});e[a(this).data("list")]=b});d.val(JSON.stringify(e).replace(/[\\"']/g,"\\amp;").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,
4
- create:function(b,c){a(this).css("maxWidth","853px")},open:function(b,c){a(".ui-widget-overlay").bind("click",function(){a(this).siblings(".ui-dialog").find(".ui-dialog-content").dialog("close")})}});a(".ui-dialog :button").blur()})});a(document).ready(function(){a(".google-analytic-generate").click(function(){var b=a("#"+a(this).data("textarea")).data("codemirrorInstance"),d=a("#"+a(this).data("input")).val(),c=a(this).data("basename");b.replaceRange("(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})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n"+
5
- ("ga('create', '"+d+"', '"+c+"');\n")+"ga('send', 'pageview');\n",b.getCursor("start"),b.getCursor("end"))})});a(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper")})(jQuery);
1
+ var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,e,b){a instanceof String&&(a=String(a));for(var c=a.length,d=0;d<c;d++){var g=a[d];if(e.call(b,g,d,a))return{i:d,v:g}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,e,b){a!=Array.prototype&&a!=Object.prototype&&(a[e]=b.value)};
2
+ $jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,e,b,c){if(e){b=$jscomp.global;a=a.split(".");for(c=0;c<a.length-1;c++){var d=a[c];d in b||(b[d]={});b=b[d]}a=a[a.length-1];c=b[a];e=e(c);e!=c&&null!=e&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:e})}};
3
+ $jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,b){return $jscomp.findInternal(this,a,b).v}},"es6","es3");
4
+ (function(a){function e(b,c,d,e){var f=!0;if("string"==typeof c){":radio"==c.substr(0,6)&&(c+=":checked");var h=a(c).val();"checkbox"==a(c).attr("type")&&(h=a(c).is(":checked")?"yes":"no");d=d.split(",");for(c=0;c<d.length;c++)if(h!=d[c])f=!1;else{f=!0;break}}d=a(b);b=a(b+"-container").closest("tr");1>b.length&&(b=d.closest(".yith-plugin-fw-panel-wc-row"));e=e.split("-");for(var g in e)if(h=e[g],f)switch(h){case "disable":b.removeClass("yith-disabled");d.attr("disabled",!1);break;case "hideme":d.show();
5
+ break;default:b.show()}else switch(h){case "disable":b.addClass("yith-disabled");d.attr("disabled",!0);break;case "hideme":d.hide();break;default:b.hide()}}a("[data-dep-target]").each(function(){var b=a(this),c="#"+b.data("dep-target"),d="#"+b.data("dep-id"),g=b.data("dep-value"),f=b.data("dep-type");e(c,d,g.toString(),f);a(d).on("change",function(){e(c,d,g.toString(),f)}).change()});a(".rm_connectedlist").each(function(){var b=a(this).find("ul"),c=a(this).find(":hidden");b.sortable({connectWith:b,
6
+ 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,"\\amp;").replace(/\u0000/g,"\\0"))}}).disableSelection()});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");b.replaceRange("(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})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n"+
7
+ ("ga('create', '"+c+"', '"+d+"');\n")+"ga('send', 'pageview');\n",b.getCursor("start"),b.getCursor("end"))})});a(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper")})(jQuery);
plugin-fw/init.php CHANGED
@@ -1,13 +1,13 @@
1
<?php
2
/**
3
* Framework Name: YIT Plugin Framework
4
- * Version: 3.0.11
5
* Author: Yithemes
6
* Text Domain: yith-plugin-fw
7
* Domain Path: /languages/
8
*
9
* @author Your Inspiration Themes
10
- * @version 3.0.11
11
*/
12
/**
13
* This file belongs to the YIT Plugin Framework.
1
<?php
2
/**
3
* Framework Name: YIT Plugin Framework
4
+ * Version: 3.0.15
5
* Author: Yithemes
6
* Text Domain: yith-plugin-fw
7
* Domain Path: /languages/
8
*
9
* @author Your Inspiration Themes
10
+ * @version 3.0.15
11
*/
12
/**
13
* This file belongs to the YIT Plugin Framework.
plugin-fw/lib/yit-metabox.php CHANGED
@@ -520,7 +520,11 @@ if ( !class_exists( 'YIT_Metabox' ) ) {
520
if ( in_array( $field[ 'type' ], array( 'onoff', 'checkbox' ) ) ) {
521
update_post_meta( $post_id, $field[ 'id' ], '1' );
522
} else {
523
- add_post_meta( $post_id, $field[ 'id' ], $_POST[ 'yit_metaboxes' ][ $field[ 'id' ] ], true ) || update_post_meta( $post_id, $field[ 'id' ], $_POST[ 'yit_metaboxes' ][ $field[ 'id' ] ] );
524
}
525
} elseif ( in_array( $field[ 'type' ], array( 'onoff', 'checkbox' ) ) ) {
526
update_post_meta( $post_id, $field[ 'id' ], '0' );
520
if ( in_array( $field[ 'type' ], array( 'onoff', 'checkbox' ) ) ) {
521
update_post_meta( $post_id, $field[ 'id' ], '1' );
522
} else {
523
+ $value = $_POST[ 'yit_metaboxes' ][ $field[ 'id' ] ];
524
+ if ( !empty( $field[ 'yith-sanitize-callback' ] ) && is_callable( $field[ 'yith-sanitize-callback' ] ) ) {
525
+ $value = call_user_func( $field[ 'yith-sanitize-callback' ], $value );
526
+ }
527
+ add_post_meta( $post_id, $field[ 'id' ], $value, true ) || update_post_meta( $post_id, $field[ 'id' ], $value );
528
}
529
} elseif ( in_array( $field[ 'type' ], array( 'onoff', 'checkbox' ) ) ) {
530
update_post_meta( $post_id, $field[ 'id' ], '0' );
plugin-fw/lib/yit-plugin-panel-wc.php CHANGED
@@ -93,7 +93,6 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
93
if ( !static::$_actions_initialized ) {
94
/* Add VideoBox and InfoBox */
95
add_action( 'woocommerce_admin_field_boxinfo', array( __CLASS__, 'add_infobox' ), 10, 1 );
96
- add_action( 'woocommerce_admin_field_videobox', array( __CLASS__, 'add_videobox' ), 10, 1 );
97
98
/* Add YITH Fields */
99
add_action( 'woocommerce_admin_field_yith-field', array( __CLASS__, 'add_yith_field' ), 10, 1 );
@@ -521,9 +520,13 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
521
$value = yith_plugin_fw_is_true( $raw_value ) ? 'yes' : 'no';
522
}
523
524
- if ( isset( $option[ 'yith-type' ] ) && in_array( $option[ 'yith-type' ], array( 'textarea-editor', 'textarea-codemirror' ) ) ) {
525
$value = $raw_value;
526
}
527
}
528
529
return $value;
93
if ( !static::$_actions_initialized ) {
94
/* Add VideoBox and InfoBox */
95
add_action( 'woocommerce_admin_field_boxinfo', array( __CLASS__, 'add_infobox' ), 10, 1 );
96
97
/* Add YITH Fields */
98
add_action( 'woocommerce_admin_field_yith-field', array( __CLASS__, 'add_yith_field' ), 10, 1 );
520
$value = yith_plugin_fw_is_true( $raw_value ) ? 'yes' : 'no';
521
}
522
523
+ if ( isset( $option[ 'yith-type' ] ) && in_array( $option[ 'yith-type' ], array( 'textarea', 'textarea-editor', 'textarea-codemirror' ) ) ) {
524
$value = $raw_value;
525
}
526
+
527
+ if ( !empty( $option[ 'yith-sanitize-callback' ] ) && is_callable( $option[ 'yith-sanitize-callback' ] ) ) {
528
+ $value = call_user_func( $option[ 'yith-sanitize-callback' ], $value );
529
+ }
530
}
531
532
return $value;
plugin-fw/lib/yit-plugin-panel.php CHANGED
@@ -274,6 +274,11 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
274
if ( isset( $option[ 'type' ] ) && in_array( $option[ 'type' ], array( 'checkbox', 'onoff' ) ) ) {
275
$value = yith_plugin_fw_is_true( $value ) ? 'yes' : 'no';
276
}
277
$valid_input[ $option[ 'id' ] ] = $value;
278
}
279
}
@@ -363,7 +368,6 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
363
return;
364
}
365
?>
366
- <?php $this->print_video_box(); ?>
367
<?php
368
$panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
369
?>
@@ -605,8 +609,11 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
605
return $this->_main_array_options;
606
}
607
608
foreach ( $this->settings[ 'admin-tabs' ] as $item => $v ) {
609
- $path = $this->settings[ 'options-path' ] . '/' . $item . '-options.php';
610
if ( file_exists( $path ) ) {
611
$this->_main_array_options = array_merge( $this->_main_array_options, include $path );
612
}
@@ -854,36 +861,24 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
854
/**
855
* Show a box panel with specific content in two columns as a new woocommerce type
856
*
857
* @param array $args
858
*
859
* @return void
860
- * @since 1.0
861
- * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
862
*/
863
public static function add_videobox( $args = array() ) {
864
- if ( !empty( $args ) ) {
865
- extract( $args );
866
- require_once( YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/videobox.php' );
867
- }
868
}
869
870
/**
871
* Fire the action to print the custom tab
872
*
873
* @return void
874
- * @since 1.0
875
- * @author Antonino Scarfì <antonino.scarfi@yithemes.com>
876
*/
877
public function print_video_box() {
878
- $file = $this->settings[ 'options-path' ] . '/video-box.php';
879
-
880
- if ( !file_exists( $file ) ) {
881
- return;
882
- }
883
-
884
- $args = include_once( $file );
885
886
- $this->add_videobox( $args );
887
}
888
889
/**
274
if ( isset( $option[ 'type' ] ) && in_array( $option[ 'type' ], array( 'checkbox', 'onoff' ) ) ) {
275
$value = yith_plugin_fw_is_true( $value ) ? 'yes' : 'no';
276
}
277
+
278
+ if ( !empty( $option[ 'yith-sanitize-callback' ] ) && is_callable( $option[ 'yith-sanitize-callback' ] ) ) {
279
+ $value = call_user_func( $option[ 'yith-sanitize-callback' ], $value );
280
+ }
281
+
282
$valid_input[ $option[ 'id' ] ] = $value;
283
}
284
}
368
return;
369
}
370
?>
371
<?php
372
$panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
373
?>
609
return $this->_main_array_options;
610
}
611
612
+ $options_path = $this->settings[ 'options-path' ];
613
+
614
foreach ( $this->settings[ 'admin-tabs' ] as $item => $v ) {
615
+ $path = $options_path . '/' . $item . '-options.php';
616
+ $path = apply_filters( 'yith_plugin_panel_item_options_path', $path, $options_path, $item, $this );
617
if ( file_exists( $path ) ) {
618
$this->_main_array_options = array_merge( $this->_main_array_options, include $path );
619
}
861
/**
862
* Show a box panel with specific content in two columns as a new woocommerce type
863
*
864
+ * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
865
+ *
866
* @param array $args
867
*
868
* @return void
869
*/
870
public static function add_videobox( $args = array() ) {
871
+
872
}
873
874
/**
875
* Fire the action to print the custom tab
876
*
877
+ * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
878
* @return void
879
*/
880
public function print_video_box() {
881
882
}
883
884
/**
plugin-fw/lib/yit-plugin-subpanel.php CHANGED
@@ -139,7 +139,6 @@ if ( !class_exists( 'YIT_Plugin_SubPanel' ) ) {
139
return;
140
}
141
?>
142
- <?php $this->print_video_box(); ?>
143
<?php
144
$panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
145
?>
139
return;
140
}
141
?>
142
<?php
143
$panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
144
?>
plugin-fw/lib/yit-upgrade.php CHANGED
@@ -62,6 +62,40 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
62
$this->_package_url = defined( 'YIT_LICENCE_DEBUG_LOCALHOST' ) ? YIT_LICENCE_DEBUG_LOCALHOST : 'http://dev.yithemes.com';
63
add_filter( 'block_local_requests', '__return_false' );
64
}
65
}
66
67
/**
@@ -89,36 +123,49 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
89
'slug' => $plugin_slug,
90
);
91
92
- /* === HOOKS === */
93
- if ( !is_multisite() || is_plugin_active_for_network( $plugin_init ) ) {
94
- add_action( 'load-plugins.php', array( $this, 'remove_wp_plugin_update_row' ), 25 );
95
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
96
- } else if ( is_multisite() && current_user_can( 'update_plugins' ) ) {
97
- $transient = 'yith_register_' . md5( $plugin_slug );
98
- if ( apply_filters( 'yith_register_delete_transient', false ) ) {
99
- delete_transient( $transient );
100
- }
101
- $info = get_transient( $transient );
102
- if ( false === $info || apply_filters( 'yith_register_delete_transient', false ) ) {
103
- $xml = str_replace( '%plugin_slug%', $plugin_slug, $this->_xml );
104
- $remote_xml = wp_remote_get( $xml );
105
-
106
- if ( !is_wp_error( $remote_xml ) && isset( $remote_xml[ 'response' ][ 'code' ] ) && '200' == $remote_xml[ 'response' ][ 'code' ] ) {
107
- $plugin_remote_info = @simplexml_load_string( $remote_xml[ 'body' ] );
108
- if ( $plugin_remote_info ) {
109
- $info[ 'Latest' ] = (string) $plugin_remote_info->latest;
110
- $info[ 'changelog' ] = (string) $plugin_remote_info->changelog;
111
YIT_Plugin_Licence()->check( $plugin_slug, false );
112
- set_transient( $transient, $info, DAY_IN_SECONDS );
113
- } else {
114
- error_log( sprintf( 'SimpleXML error in %s:%s [plugin slug: %s]',
115
- __FILE__, __FUNCTION__, $plugin_slug ) );
116
}
117
}
118
}
119
120
- $this->_plugins[ $plugin_init ][ 'info' ][ 'Latest' ] = $info[ 'Latest' ];
121
- $this->_plugins[ $plugin_init ][ 'info' ][ 'changelog' ] = $info[ 'changelog' ];
122
add_action( 'admin_enqueue_scripts', array( $this, 'multisite_updater_script' ) );
123
}
124
}
@@ -132,7 +179,6 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
132
* @author Andrea Grillo <andrea.grillo@yithemes.com>
133
*/
134
public function multisite_updater_script() {
135
-
136
$update_url = $changelogs = $details_url = array();
137
$strings = array(
138
'new_version' => __( 'There is a new version of %plugin_name% available.', 'yith-plugin-fw' ),
@@ -145,10 +191,7 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
145
146
foreach ( $this->_plugins as $init => $info ) {
147
$update_url[ $init ] = wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin-multisite&plugin=' ) . $init, 'upgrade-plugin-multisite_' . $init );
148
- $changelog_id = str_replace( array( '/', '.php', '.' ), array( '-', '', '-' ), $init );
149
- $details_url[ $init ] = '#TB_inline' . esc_url( add_query_arg( array( 'width' => 722, 'height' => 914, 'inlineId' => $changelog_id ), '' ) );
150
- $plugin_changelog = isset( $this->_plugins[ $init ][ 'info' ][ 'changelog' ] ) ? $this->_plugins[ $init ][ 'info' ][ 'changelog' ] : '';
151
- $changelogs[ $init ] = $this->in_theme_update_message( $this->_plugins[ $init ], $plugin_changelog, $changelog_id, false );
152
}
153
154
$localize_script_args = array(
@@ -158,7 +201,6 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
158
'update_url' => $update_url,
159
'details_url' => $details_url,
160
'strings' => $strings,
161
- 'changelogs' => $changelogs
162
);
163
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
164
yit_enqueue_script( 'yit-multisite-updater', YIT_CORE_PLUGIN_URL . '/assets/js/multisite-updater' . $suffix . '.js', array( 'jquery' ), false, true );
@@ -432,7 +474,7 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
432
$r = $current->response[ $init ];
433
434
$changelog_id = str_replace( array( '/', '.php', '.' ), array( '-', '', '-' ), $init );
435
- $details_url = '#TB_inline' . esc_url( add_query_arg( array( 'width' => 722, 'height' => 914, 'inlineId' => $changelog_id ), '' ) );
436
437
/**
438
* @see wp_plugin_update_rows() in wp-single\wp-admin\includes\update.php
@@ -493,14 +535,12 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
493
foreach ( $this->_plugins as $init => $plugin ) {
494
remove_action( "after_plugin_row_{$init}", 'wp_plugin_update_row', 10 );
495
add_action( "after_plugin_row_{$init}", array( $this, 'plugin_update_row' ) );
496
- add_action( "in_theme_update_message-{$init}", array( $this, 'in_theme_update_message' ), 10, 3 );
497
}
498
}
499
500
public function in_theme_update_message( $plugin, $changelog, $changelog_id, $echo = true ) {
501
-
502
- $res
503
- = "<div id='{$changelog_id}' class='yit-plugin-changelog-wrapper'>
504
<div class='yit-plugin-changelog'>
505
<h2 class='yit-plugin-changelog-title'>{$plugin['info']['Name']} - Changelog</h2>
506
<p>{$changelog}</p>
62
$this->_package_url = defined( 'YIT_LICENCE_DEBUG_LOCALHOST' ) ? YIT_LICENCE_DEBUG_LOCALHOST : 'http://dev.yithemes.com';
63
add_filter( 'block_local_requests', '__return_false' );
64
}
65
+
66
+ add_action( 'install_plugins_pre_plugin-information', array( $this, 'show_changelog_for_premium_plugins' ) );
67
+ add_action( 'wp_ajax_yith_plugin_fw_get_premium_changelog', array( $this, 'show_changelog_for_premium_plugins' ) );
68
+ }
69
+
70
+ /**
71
+ * show changelog for premium plugins
72
+ *
73
+ * @since 3.0.14
74
+ */
75
+ public function show_changelog_for_premium_plugins() {
76
+ if ( isset( $_GET[ 'plugin' ] ) && isset( $_GET[ 'section' ] ) && 'changelog' === $_GET[ 'section' ] ) {
77
+ $plugin_init = $_GET[ 'plugin' ];
78
+ if ( isset( $this->_plugins[ $plugin_init ] ) ) {
79
+ // this is YITH Premium Plugin
80
+ if ( !empty( $this->_plugins[ $plugin_init ][ 'info' ][ 'changelog' ] ) ) {
81
+ $plugin_name = $this->_plugins[ $plugin_init ][ 'info' ][ 'Name' ];
82
+ $changelog = $this->_plugins[ $plugin_init ][ 'info' ][ 'changelog' ];
83
+ $template = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/upgrade/changelog.php';
84
+ if ( file_exists( $template ) ) {
85
+ include( $template );
86
+ }
87
+ die();
88
+ }
89
+ $error = __( 'An unexpected error occurred, please try again later. Thanks!', 'yith-plugin-fw' );
90
+ $template = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/upgrade/error.php';
91
+ if ( file_exists( $template ) ) {
92
+ include( $template );
93
+ } else {
94
+ echo "<p>$error</p>";
95
+ }
96
+ die();
97
+ }
98
+ }
99
}
100
101
/**
123
'slug' => $plugin_slug,
124
);
125
126
+ $transient = 'yith_register_' . md5( $plugin_slug );
127
+ if ( apply_filters( 'yith_register_delete_transient', false ) ) {
128
+ delete_transient( $transient );
129
+ }
130
+ $info = get_transient( $transient );
131
+ if ( false === $info || apply_filters( 'yith_register_delete_transient', false ) ) {
132
+ $xml = str_replace( '%plugin_slug%', $plugin_slug, $this->_xml );
133
+ $remote_xml = wp_remote_get( $xml );
134
+
135
+ $error = false;
136
+ if ( !is_wp_error( $remote_xml ) && isset( $remote_xml[ 'response' ][ 'code' ] ) && '200' == $remote_xml[ 'response' ][ 'code' ] ) {
137
+ $plugin_remote_info = @simplexml_load_string( $remote_xml[ 'body' ] );
138
+ if ( $plugin_remote_info ) {
139
+ $info[ 'Latest' ] = (string) $plugin_remote_info->latest;
140
+ $info[ 'changelog' ] = (string) $plugin_remote_info->changelog;
141
+ if ( is_multisite() && current_user_can( 'update_plugins' ) ) {
142
YIT_Plugin_Licence()->check( $plugin_slug, false );
143
}
144
+ set_transient( $transient, $info, DAY_IN_SECONDS );
145
+ } else {
146
+ $error = true;
147
+ error_log( sprintf( 'SimpleXML error in %s:%s [plugin slug: %s]',
148
+ __FILE__, __FUNCTION__, $plugin_slug ) );
149
}
150
+ } else {
151
+ $error = true;
152
}
153
154
+ if ( $error ) {
155
+ // If error, set empty value in the transient to prevent multiple requests
156
+ $info = array( 'Latest' => '', 'changelog' => '' );
157
+ set_transient( $transient, $info, HOUR_IN_SECONDS );
158
+ }
159
+ }
160
+
161
+ $this->_plugins[ $plugin_init ][ 'info' ][ 'Latest' ] = $info[ 'Latest' ];
162
+ $this->_plugins[ $plugin_init ][ 'info' ][ 'changelog' ] = $info[ 'changelog' ];
163
+
164
+ /* === HOOKS === */
165
+ if ( !is_multisite() || is_plugin_active_for_network( $plugin_init ) ) {
166
+ add_action( 'load-plugins.php', array( $this, 'remove_wp_plugin_update_row' ), 25 );
167
+ add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
168
+ } else if ( is_multisite() && current_user_can( 'update_plugins' ) ) {
169
add_action( 'admin_enqueue_scripts', array( $this, 'multisite_updater_script' ) );
170
}
171
}
179
* @author Andrea Grillo <andrea.grillo@yithemes.com>
180
*/
181
public function multisite_updater_script() {
182
$update_url = $changelogs = $details_url = array();
183
$strings = array(
184
'new_version' => __( 'There is a new version of %plugin_name% available.', 'yith-plugin-fw' ),
191
192
foreach ( $this->_plugins as $init => $info ) {
193
$update_url[ $init ] = wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin-multisite&plugin=' ) . $init, 'upgrade-plugin-multisite_' . $init );
194
+ $details_url[ $init ] = admin_url( 'admin-ajax.php?action=yith_plugin_fw_get_premium_changelog&tab=plugin-information&plugin=' . $init . '&section=changelog&TB_iframe=true&width=640&height=662' );
195
}
196
197
$localize_script_args = array(
201
'update_url' => $update_url,
202
'details_url' => $details_url,
203
'strings' => $strings,
204
);
205
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
206
yit_enqueue_script( 'yit-multisite-updater', YIT_CORE_PLUGIN_URL . '/assets/js/multisite-updater' . $suffix . '.js', array( 'jquery' ), false, true );
474
$r = $current->response[ $init ];
475
476
$changelog_id = str_replace( array( '/', '.php', '.' ), array( '-', '', '-' ), $init );
477
+ $details_url = self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $init . '&section=changelog&TB_iframe=true&width=640&height=662' );
478
479
/**
480
* @see wp_plugin_update_rows() in wp-single\wp-admin\includes\update.php
535
foreach ( $this->_plugins as $init => $plugin ) {
536
remove_action( "after_plugin_row_{$init}", 'wp_plugin_update_row', 10 );
537
add_action( "after_plugin_row_{$init}", array( $this, 'plugin_update_row' ) );
538
+ //add_action( "in_theme_update_message-{$init}", array( $this, 'in_theme_update_message' ), 10, 3 );
539
}
540
}
541
542
public function in_theme_update_message( $plugin, $changelog, $changelog_id, $echo = true ) {
543
+ $res = "<div id='{$changelog_id}' class='yit-plugin-changelog-wrapper'>
544
<div class='yit-plugin-changelog'>
545
<h2 class='yit-plugin-changelog-title'>{$plugin['info']['Name']} - Changelog</h2>
546
<p>{$changelog}</p>
plugin-fw/lib/yit-video.php CHANGED
@@ -135,6 +135,7 @@ if ( ! class_exists( 'YIT_Video' ) ) {
135
public static function video_id_by_url( $url ) {
136
$parsed = parse_url( esc_url( $url ) );
137
138
if ( ! isset( $parsed['host'] ) ) {
139
return false;
140
}
@@ -150,7 +151,8 @@ if ( ! class_exists( 'YIT_Video' ) ) {
150
151
case 'www.vimeo.com' :
152
case 'vimeo.com' :
153
- preg_match( '/http(s)?:\/\/(\w+.)?vimeo\.com\/(.*)?(\/[0-9]+)/', $url, $matches );
154
$id = trim( $matches[4], '/' );
155
return "vimeo:$id";
156
135
public static function video_id_by_url( $url ) {
136
$parsed = parse_url( esc_url( $url ) );
137
138
+
139
if ( ! isset( $parsed['host'] ) ) {
140
return false;
141
}
151
152
case 'www.vimeo.com' :
153
case 'vimeo.com' :
154
+ preg_match( '/http(s)?:\/\/(\w+.)?vimeo\.com\/(.*\/)?([0-9]+)/', $url, $matches );
155
+
156
$id = trim( $matches[4], '/' );
157
return "vimeo:$id";
158
plugin-fw/licence/lib/yit-licence.php CHANGED
@@ -198,8 +198,8 @@ if ( !class_exists( 'YIT_Licence' ) ) {
198
)
199
);
200
201
- /* Enqueue Scripts only in Licence Activation page */
202
- if ( strpos( get_current_screen()->id, 'yith_plugins_activation' ) !== false ) {
203
wp_enqueue_script( 'yit-licence' );
204
wp_enqueue_style( 'yit-theme-licence' );
205
}
198
)
199
);
200
201
+ /* Enqueue Scripts only in Licence Activation page of plugins and themes */
202
+ if ( strpos( get_current_screen()->id, 'yith_plugins_activation' ) !== false || strpos( get_current_screen()->id, 'yit_panel_license' ) !== false ) {
203
wp_enqueue_script( 'yit-licence' );
204
wp_enqueue_style( 'yit-theme-licence' );
205
}
plugin-fw/licence/lib/yit-plugin-licence.php CHANGED
@@ -105,7 +105,7 @@ if ( !class_exists( 'YIT_Plugin_Licence' ) ) {
105
<div class="notice notice-error">
106
<p><strong>Warning!</strong> You didn't set license key for the following products:
107
<?php echo $product_list ?>
108
- which means you're missing out on updates and support. <a href='<?php echo $activation_url ?>'>Enter your license key</a></p>
109
</div>
110
<?php
111
}
105
<div class="notice notice-error">
106
<p><strong>Warning!</strong> You didn't set license key for the following products:
107
<?php echo $product_list ?>
108
+ which means you're missing out on updates and support. <a href='<?php echo $activation_url ?>'>Enter your license key</a>, please.</p>
109
</div>
110
<?php
111
}
plugin-fw/templates/fields/onoff.php CHANGED
@@ -18,4 +18,9 @@ extract( $field );
18
<div class="yith-plugin-fw-onoff-container">
19
<input type="checkbox" id="<?php echo $id ?>" name="<?php echo $name ?>" value="<?php echo esc_attr( $value ) ?>" <?php checked( yith_plugin_fw_is_true( $value ) ) ?> class="on_off" <?php if ( isset( $std ) ) : ?>data-std="<?php echo $std ?>"<?php endif ?> />
20
<span class="yith-plugin-fw-onoff">&nbsp;</span>
21
- </div>
18
<div class="yith-plugin-fw-onoff-container">
19
<input type="checkbox" id="<?php echo $id ?>" name="<?php echo $name ?>" value="<?php echo esc_attr( $value ) ?>" <?php checked( yith_plugin_fw_is_true( $value ) ) ?> class="on_off" <?php if ( isset( $std ) ) : ?>data-std="<?php echo $std ?>"<?php endif ?> />
20
<span class="yith-plugin-fw-onoff">&nbsp;</span>
21
+ </div>
22
+ <?php
23
+ if ( isset( $field[ 'desc-inline' ] ) ) {
24
+ echo "<span class='description inline'>" . $field[ 'desc-inline' ] . "</span>";
25
+ }
26
+ ?>
plugin-fw/templates/fields/radio.php ADDED
@@ -0,0 +1,33 @@
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Plugin Framework.
4
+ *
5
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
+ * that is bundled with this package in the file LICENSE.txt.
7
+ * It is also available through the world-wide-web at this URL:
8
+ * http://www.gnu.org/licenses/gpl-3.0.txt
9
+ *
10
+ * @var array $field
11
+ */
12
+
13
+ /** @since 3.0.13 */
14
+
15
+ !defined( 'ABSPATH' ) && exit; // Exit if accessed directly
16
+
17
+ extract( $field );
18
+
19
+ $class = isset( $class ) ? $class : '';
20
+ $class = 'yith-plugin-fw-radio ' . $class;
21
+ ?>
22
+ <div class="<?php echo $class ?>" id="<?php echo $id ?>"
23
+ <?php echo $custom_attributes ?>
24
+ <?php if ( isset( $data ) ) echo yith_plugin_fw_html_data_to_string( $data ); ?> value="<?php echo $value ?>">
25
+ <?php foreach ( $options as $key => $label ) :
26
+ $radio_id = sanitize_key( $id . '-' . $key );
27
+ ?>
28
+ <div class="yith-plugin-fw-radio__row">
29
+ <input type="radio" id="<?php echo $radio_id ?>" name="<?php echo $name ?>" value="<?php echo esc_attr( $key ) ?>" <?php checked( $key, $value ); ?> />
30
+ <label for="<?php echo $radio_id ?>"><?php echo $label ?></label>
31
+ </div>
32
+ <?php endforeach; ?>
33
+ </div>
plugin-fw/templates/panel/videobox.php DELETED
@@ -1,83 +0,0 @@
1
- <?php
2
- /**
3
- * This file belongs to the YIT Plugin Framework.
4
- *
5
- * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
- * that is bundled with this package in the file LICENSE.txt.
7
- * It is also available through the world-wide-web at this URL:
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
- /**
16
- * Example to call this template
17
- *
18
- * 'section_general_settings_videobox' => array(
19
- * 'name' => __( 'Title of box', 'yith-plugin-fw' ),
20
- * 'type' => 'videobox',
21
- * 'default' => array(
22
- * 'plugin_name' => __( 'Plugin Name', 'yith-plugin-fw' ),
23
- * 'title_first_column' => __( 'Title first column', 'yith-plugin-fw' ),
24
- * 'description_first_column' => __('Lorem ipsum ... ', 'yith-plugin-fw'),
25
- * 'video' => array(
26
- * 'video_id' => 'vimeo_code',
27
- * 'video_image_url' => '#',
28
- * 'video_description' => __( 'Lorem ipsum dolor sit amet....', 'yith-plugin-fw' ),
29
- * ),
30
- * 'title_second_column' => __( 'Title first column', 'yith-plugin-fw' ),
31
- * 'description_second_column' => __('Lorem ipsum dolor sit amet.... ', 'yith-plugin-fw'),
32
- * 'button' => array(
33
- * 'href' => 'http://www.yithemes.com',
34
- * 'title' => 'Get Support and Pro Features'
35
- * )
36
- * ),
37
- * 'id' => 'yith_wcas_general_videobox'
38
- * ),
39
- */
40
- ?>
41
- <div id="normal-sortables" class="meta-box-sortables yith-videobox-wrapper">
42
- <div id="<?php echo $id ?>" class="postbox">
43
- <h3><span><?php echo $name ?></span></h3>
44
- <div class="inside">
45
- <div class="yith_videobox">
46
- <div class="column"><h2><?php echo $default['title_first_column'] ?></h2>
47
- <?php if ( isset( $default['video'] ) && !empty( $default['video'] ) ): ?>
48
- <a class="yith-video-link" href="#" data-video-id="yith-video-iframe">
49
- <img src="<?php echo $default['video']['video_image_url'] ?>">
50
- </a>
51
-
52
- <p class="yit-video-description">
53
- <?php echo $default['video']['video_description'] ?>
54
- </p>
55
-
56
- <p class="yith-video-iframe">
57
- <iframe src="//player.vimeo.com/video/<?php echo $default['video']['video_id'] ?>?title=0&amp;byline=0&amp;portrait=0" width="853" height="480" frameborder="0"></iframe>
58
- </p>
59
- <?php endif ?>
60
- <?php if ( isset( $default['image'] ) && !empty( $default['image'] ) ): ?>
61
- <a href="<?php echo $default['image']['image_link'] ?>" target="_blank" class="yith-image-frame">
62
- <img src="<?php echo $default['image']['image_url'] ?>">
63
- </a>
64
- <?php endif ?>
65
- <?php if ( isset( $default['description_first_column'] ) && $default['description_first_column'] != '' ): ?>
66
- <p><?php echo $default['description_first_column'] ?></p>
67
- <?php endif ?>
68
- </div>
69
- <div class="column two">
70
- <h2><?php echo $default['title_second_column'] ?>?</h2>
71
-
72
- <p><?php echo $default['description_second_column'] ?></p>
73
-
74
- <?php if ( isset( $default['button'] ) && !empty( $default['button'] ) ): ?>
75
- <p>
76
- <a class="button-primary" href="<?php echo $default['button']['href'] ?>" target="_blank"><?php echo $default['button']['title'] ?></a>
77
- </p>
78
- <?php endif ?>
79
- </div>
80
- </div>
81
- </div>
82
- </div>
83
- </div>
plugin-fw/templates/upgrade/changelog.php ADDED
@@ -0,0 +1,51 @@
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Plugin Framework.
4
+ *
5
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
+ * that is bundled with this package in the file LICENSE.txt.
7
+ * It is also available through the world-wide-web at this URL:
8
+ * http://www.gnu.org/licenses/gpl-3.0.txt
9
+ *
10
+ * @var string $plugin_name
11
+ * @var string $changelog
12
+ *
13
+ */
14
+ ?>
15
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
16
+ <head>
17
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
18
+ <meta name="viewport" content="width=device-width">
19
+ <meta name="robots" content="noindex,follow">
20
+ <title><?php echo $plugin_name ?> - Changelog</title>
21
+ <style type="text/css">
22
+ body {
23
+ background : #ffffff;
24
+ color : #444;
25
+ font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
26
+ font-size : 13px;
27
+ line-height : 1.4em;
28
+ padding : 10px;
29
+ }
30
+
31
+ h2.yith-plugin-changelog-title {
32
+ text-transform : uppercase;
33
+ font-size : 17px;
34
+ }
35
+
36
+ ul {
37
+ list-style : none;
38
+ padding : 0;
39
+ }
40
+
41
+ li {
42
+ display : list-item;
43
+ margin-bottom : 6px;
44
+ }
45
+ </style>
46
+ </head>
47
+ <body>
48
+ <h2 class='yith-plugin-changelog-title'><?php echo $plugin_name ?> - Changelog</h2>
49
+ <div class='yith-plugin-changelog'><?php echo $changelog ?></div>
50
+ </body>
51
+ </html>
plugin-fw/templates/upgrade/error.php ADDED
@@ -0,0 +1,147 @@
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Plugin Framework.
4
+ *
5
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
+ * that is bundled with this package in the file LICENSE.txt.
7
+ * It is also available through the world-wide-web at this URL:
8
+ * http://www.gnu.org/licenses/gpl-3.0.txt
9
+ *
10
+ * @var string $plugin_name
11
+ * @var string $changelog
12
+ *
13
+ */
14
+ ?>
15
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
16
+ <head>
17
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
18
+ <meta name="viewport" content="width=device-width">
19
+ <meta name="robots" content="noindex,follow">
20
+ <title>WordPress › Error</title>
21
+ <style type="text/css">
22
+ html {
23
+ background : #f1f1f1;
24
+ }
25
+
26
+ .container {
27
+ background : #fff;
28
+ color : #444;
29
+ font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
30
+ margin : 2em auto;
31
+ padding : 1em 2em;
32
+ max-width : 700px;
33
+ -webkit-box-shadow : 0 1px 3px rgba(0, 0, 0, 0.13);
34
+ box-shadow : 0 1px 3px rgba(0, 0, 0, 0.13);
35
+ }
36
+
37
+ h1 {
38
+ border-bottom : 1px solid #dadada;
39
+ clear : both;
40
+ color : #666;
41
+ font-size : 24px;
42
+ margin : 30px 0 0 0;
43
+ padding : 0;
44
+ padding-bottom : 7px;
45
+ }
46
+
47
+ #error {
48
+ margin-top : 50px;
49
+ }
50
+
51
+ #error p {
52
+ font-size : 14px;
53
+ line-height : 1.5;
54
+ margin : 25px 0 20px;
55
+ }
56
+
57
+ #error code {
58
+ font-family : Consolas, Monaco, monospace;
59
+ }
60
+
61
+ ul li {
62
+ margin-bottom : 10px;
63
+ font-size : 14px;
64
+ }
65
+
66
+ a {
67
+ color : #0073aa;
68
+ }
69
+
70
+ a:hover,
71
+ a:active {
72
+ color : #00a0d2;
73
+ }
74
+
75
+ a:focus {
76
+ color : #124964;
77
+ -webkit-box-shadow : 0 0 0 1px #5b9dd9,
78
+ 0 0 2px 1px rgba(30, 140, 190, .8);
79
+ box-shadow : 0 0 0 1px #5b9dd9,
80
+ 0 0 2px 1px rgba(30, 140, 190, .8);
81
+ outline : none;
82
+ }
83
+
84
+ .button {
85
+ background : #f7f7f7;
86
+ border : 1px solid #ccc;
87
+ color : #555;
88
+ display : inline-block;
89
+ text-decoration : none;
90
+ font-size : 13px;
91
+ line-height : 26px;
92
+ height : 28px;
93
+ margin : 0;
94
+ padding : 0 10px 1px;
95
+ cursor : pointer;
96
+ -webkit-border-radius : 3px;
97
+ -webkit-appearance : none;
98
+ border-radius : 3px;
99
+ white-space : nowrap;
100
+ -webkit-box-sizing : border-box;
101
+ -moz-box-sizing : border-box;
102
+ box-sizing : border-box;
103
+
104
+ -webkit-box-shadow : 0 1px 0 #ccc;
105
+ box-shadow : 0 1px 0 #ccc;
106
+ vertical-align : top;
107
+ }
108
+
109
+ .button.button-large {
110
+ height : 30px;
111
+ line-height : 28px;
112
+ padding : 0 12px 2px;
113
+ }
114
+
115
+ .button:hover,
116
+ .button:focus {
117
+ background : #fafafa;
118
+ border-color : #999;
119
+ color : #23282d;
120
+ }
121
+
122
+ .button:focus {
123
+ border-color : #5b9dd9;
124
+ -webkit-box-shadow : 0 0 3px rgba(0, 115, 170, .8);
125
+ box-shadow : 0 0 3px rgba(0, 115, 170, .8);
126
+ outline : none;
127
+ }
128
+
129
+ .button:active {
130
+ background : #eee;
131
+ border-color : #999;
132
+ -webkit-box-shadow : inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
133
+ box-shadow : inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
134
+ -webkit-transform : translateY(1px);
135
+ -ms-transform : translateY(1px);
136
+ transform : translateY(1px);
137
+ }
138
+
139
+ </style>
140
+ </head>
141
+ <body>
142
+ <div id="error" class="container">
143
+ <p><?php echo $error ?></p>
144
+ </div>
145
+
146
+ </body>
147
+ </html>