Version Description
/ 16.03.2021 = * Add fix for WP 5.7 * Fixed radio Buttons * Fixed checkboxes * disabled iCheck * add cookie for notices
Download this release
Release Info
Developer | supsystic.com |
Plugin | Popup by Supsystic |
Version | 1.10.3 |
Comparing to | |
See all releases |
Code changes from version 1.10.2 to 1.10.3
- classes/frame.php +23 -21
- config.php +1 -1
- js/admin.options.js +156 -17
- modules/popup/js/admin.popup.edit.js +3 -3
- modules/popup/js/admin.popup.list.js +4 -4
- pps.php +1 -1
- readme.txt +10 -2
classes/frame.php
CHANGED
@@ -15,7 +15,7 @@ class framePps {
|
|
15 |
private $_styles = array();
|
16 |
private $_stylesInitialized = false;
|
17 |
private $_useFootAssets = false;
|
18 |
-
|
19 |
private $_scriptsVars = array();
|
20 |
private $_mod = '';
|
21 |
private $_action = '';
|
@@ -23,10 +23,10 @@ class framePps {
|
|
23 |
* Object with result of executing non-ajax module request
|
24 |
*/
|
25 |
private $_res = null;
|
26 |
-
|
27 |
public function __construct() {
|
28 |
$this->_res = toeCreateObjPps('response', array());
|
29 |
-
|
30 |
}
|
31 |
static public function getInstance() {
|
32 |
static $instance;
|
@@ -107,11 +107,11 @@ class framePps {
|
|
107 |
$this->_initModules();
|
108 |
|
109 |
dispatcherPps::doAction('afterModulesInit');
|
110 |
-
|
111 |
modInstallerPps::checkActivationMessages();
|
112 |
-
|
113 |
$this->_execModules();
|
114 |
-
|
115 |
$addAssetsAction = $this->usePackAssets() && !is_admin() ? 'wp_footer' : 'init';
|
116 |
|
117 |
add_action($addAssetsAction, array($this, 'addScripts'));
|
@@ -153,7 +153,7 @@ class framePps {
|
|
153 |
if($mod) {
|
154 |
$permissions = $mod->getController()->getPermissions();
|
155 |
if(!empty($permissions)) { // Special permissions
|
156 |
-
if(isset($permissions[PPS_METHODS])
|
157 |
&& !empty($permissions[PPS_METHODS])
|
158 |
) {
|
159 |
foreach($permissions[PPS_METHODS] as $method => $permissions) { // Make case-insensitive
|
@@ -180,14 +180,14 @@ class framePps {
|
|
180 |
if(is_array($methods)) {
|
181 |
$lowerMethods = array_map('strtolower', $methods); // Make case-insensitive
|
182 |
if(in_array($action, $lowerMethods)) { // Permission for this method exists
|
183 |
-
if($currentUserPosition != $userlevel)
|
184 |
$res = false;
|
185 |
break;
|
186 |
}
|
187 |
} else {
|
188 |
$lowerMethod = strtolower($methods); // Make case-insensitive
|
189 |
if($lowerMethod == $action) { // Permission for this method exists
|
190 |
-
if($currentUserPosition != $userlevel)
|
191 |
$res = false;
|
192 |
break;
|
193 |
}
|
@@ -226,7 +226,7 @@ class framePps {
|
|
226 |
if($mod) {
|
227 |
$permissions = $mod->getController()->getPermissions();
|
228 |
if(!empty($permissions)) { // Special permissions
|
229 |
-
if(isset($permissions[PPS_METHODS])
|
230 |
&& !empty($permissions[PPS_METHODS])
|
231 |
) {
|
232 |
foreach($permissions[PPS_METHODS] as $method => $permissions) { // Make case-insensitive
|
@@ -333,7 +333,7 @@ class framePps {
|
|
333 |
}
|
334 |
return $res;
|
335 |
}
|
336 |
-
|
337 |
public function getModule($code) {
|
338 |
return (isset($this->_modules[$code]) ? $this->_modules[$code] : NULL);
|
339 |
}
|
@@ -358,10 +358,10 @@ class framePps {
|
|
358 |
wp_enqueue_script($handle, $src, $deps, $ver, $in_footer);
|
359 |
} else {
|
360 |
$this->_scripts[] = array(
|
361 |
-
'handle' => $handle,
|
362 |
-
'src' => $src,
|
363 |
-
'deps' => $deps,
|
364 |
-
'ver' => $ver,
|
365 |
'in_footer' => $in_footer,
|
366 |
'vars' => $vars
|
367 |
);
|
@@ -374,7 +374,7 @@ class framePps {
|
|
374 |
if(!empty($this->_scripts)) {
|
375 |
foreach($this->_scripts as $s) {
|
376 |
wp_enqueue_script($s['handle'], $s['src'], $s['deps'], $s['ver'], $s['in_footer']);
|
377 |
-
|
378 |
if($s['vars'] || isset($this->_scriptsVars[$s['handle']])) {
|
379 |
$vars = array();
|
380 |
if($s['vars'])
|
@@ -383,6 +383,7 @@ class framePps {
|
|
383 |
$vars = array_merge($vars, $this->_scriptsVars[$s['handle']]);
|
384 |
if($vars) {
|
385 |
foreach($vars as $k => $v) {
|
|
|
386 |
wp_localize_script($s['handle'], $k, $v);
|
387 |
}
|
388 |
}
|
@@ -393,12 +394,13 @@ class framePps {
|
|
393 |
}
|
394 |
public function addJSVar($script, $name, $val) {
|
395 |
if($this->_scriptsInitialized) {
|
|
|
396 |
wp_localize_script($script, $name, $val);
|
397 |
} else {
|
398 |
$this->_scriptsVars[$script][$name] = $val;
|
399 |
}
|
400 |
}
|
401 |
-
|
402 |
public function addStyle($handle, $src = false, $deps = array(), $ver = false, $media = 'all') {
|
403 |
$src = empty($src) ? $src : uriPps::_($src);
|
404 |
if(!$ver)
|
@@ -411,7 +413,7 @@ class framePps {
|
|
411 |
'src' => $src,
|
412 |
'deps' => $deps,
|
413 |
'ver' => $ver,
|
414 |
-
'media' => $media
|
415 |
);
|
416 |
}
|
417 |
}
|
@@ -425,13 +427,13 @@ class framePps {
|
|
425 |
}
|
426 |
//Very interesting thing going here.............
|
427 |
public function loadPlugins() {
|
428 |
-
require_once(ABSPATH. 'wp-includes/pluggable.php');
|
429 |
}
|
430 |
public function loadWPSettings() {
|
431 |
-
require_once(ABSPATH. 'wp-settings.php');
|
432 |
}
|
433 |
public function loadLocale() {
|
434 |
-
require_once(ABSPATH. 'wp-includes/locale.php');
|
435 |
}
|
436 |
public function moduleActive($code) {
|
437 |
return isset($this->_modules[$code]);
|
15 |
private $_styles = array();
|
16 |
private $_stylesInitialized = false;
|
17 |
private $_useFootAssets = false;
|
18 |
+
|
19 |
private $_scriptsVars = array();
|
20 |
private $_mod = '';
|
21 |
private $_action = '';
|
23 |
* Object with result of executing non-ajax module request
|
24 |
*/
|
25 |
private $_res = null;
|
26 |
+
|
27 |
public function __construct() {
|
28 |
$this->_res = toeCreateObjPps('response', array());
|
29 |
+
|
30 |
}
|
31 |
static public function getInstance() {
|
32 |
static $instance;
|
107 |
$this->_initModules();
|
108 |
|
109 |
dispatcherPps::doAction('afterModulesInit');
|
110 |
+
|
111 |
modInstallerPps::checkActivationMessages();
|
112 |
+
|
113 |
$this->_execModules();
|
114 |
+
|
115 |
$addAssetsAction = $this->usePackAssets() && !is_admin() ? 'wp_footer' : 'init';
|
116 |
|
117 |
add_action($addAssetsAction, array($this, 'addScripts'));
|
153 |
if($mod) {
|
154 |
$permissions = $mod->getController()->getPermissions();
|
155 |
if(!empty($permissions)) { // Special permissions
|
156 |
+
if(isset($permissions[PPS_METHODS])
|
157 |
&& !empty($permissions[PPS_METHODS])
|
158 |
) {
|
159 |
foreach($permissions[PPS_METHODS] as $method => $permissions) { // Make case-insensitive
|
180 |
if(is_array($methods)) {
|
181 |
$lowerMethods = array_map('strtolower', $methods); // Make case-insensitive
|
182 |
if(in_array($action, $lowerMethods)) { // Permission for this method exists
|
183 |
+
if($currentUserPosition != $userlevel)
|
184 |
$res = false;
|
185 |
break;
|
186 |
}
|
187 |
} else {
|
188 |
$lowerMethod = strtolower($methods); // Make case-insensitive
|
189 |
if($lowerMethod == $action) { // Permission for this method exists
|
190 |
+
if($currentUserPosition != $userlevel)
|
191 |
$res = false;
|
192 |
break;
|
193 |
}
|
226 |
if($mod) {
|
227 |
$permissions = $mod->getController()->getPermissions();
|
228 |
if(!empty($permissions)) { // Special permissions
|
229 |
+
if(isset($permissions[PPS_METHODS])
|
230 |
&& !empty($permissions[PPS_METHODS])
|
231 |
) {
|
232 |
foreach($permissions[PPS_METHODS] as $method => $permissions) { // Make case-insensitive
|
333 |
}
|
334 |
return $res;
|
335 |
}
|
336 |
+
|
337 |
public function getModule($code) {
|
338 |
return (isset($this->_modules[$code]) ? $this->_modules[$code] : NULL);
|
339 |
}
|
358 |
wp_enqueue_script($handle, $src, $deps, $ver, $in_footer);
|
359 |
} else {
|
360 |
$this->_scripts[] = array(
|
361 |
+
'handle' => $handle,
|
362 |
+
'src' => $src,
|
363 |
+
'deps' => $deps,
|
364 |
+
'ver' => $ver,
|
365 |
'in_footer' => $in_footer,
|
366 |
'vars' => $vars
|
367 |
);
|
374 |
if(!empty($this->_scripts)) {
|
375 |
foreach($this->_scripts as $s) {
|
376 |
wp_enqueue_script($s['handle'], $s['src'], $s['deps'], $s['ver'], $s['in_footer']);
|
377 |
+
|
378 |
if($s['vars'] || isset($this->_scriptsVars[$s['handle']])) {
|
379 |
$vars = array();
|
380 |
if($s['vars'])
|
383 |
$vars = array_merge($vars, $this->_scriptsVars[$s['handle']]);
|
384 |
if($vars) {
|
385 |
foreach($vars as $k => $v) {
|
386 |
+
$v = is_array($v) ? $v : array($v);
|
387 |
wp_localize_script($s['handle'], $k, $v);
|
388 |
}
|
389 |
}
|
394 |
}
|
395 |
public function addJSVar($script, $name, $val) {
|
396 |
if($this->_scriptsInitialized) {
|
397 |
+
$val = is_array($val) ? $val : array($val);
|
398 |
wp_localize_script($script, $name, $val);
|
399 |
} else {
|
400 |
$this->_scriptsVars[$script][$name] = $val;
|
401 |
}
|
402 |
}
|
403 |
+
|
404 |
public function addStyle($handle, $src = false, $deps = array(), $ver = false, $media = 'all') {
|
405 |
$src = empty($src) ? $src : uriPps::_($src);
|
406 |
if(!$ver)
|
413 |
'src' => $src,
|
414 |
'deps' => $deps,
|
415 |
'ver' => $ver,
|
416 |
+
'media' => $media
|
417 |
);
|
418 |
}
|
419 |
}
|
427 |
}
|
428 |
//Very interesting thing going here.............
|
429 |
public function loadPlugins() {
|
430 |
+
require_once(ABSPATH. 'wp-includes/pluggable.php');
|
431 |
}
|
432 |
public function loadWPSettings() {
|
433 |
+
require_once(ABSPATH. 'wp-settings.php');
|
434 |
}
|
435 |
public function loadLocale() {
|
436 |
+
require_once(ABSPATH. 'wp-includes/locale.php');
|
437 |
}
|
438 |
public function moduleActive($code) {
|
439 |
return isset($this->_modules[$code]);
|
config.php
CHANGED
@@ -48,7 +48,7 @@
|
|
48 |
define('PPS_EOL', "\n");
|
49 |
|
50 |
define('PPS_PLUGIN_INSTALLED', true);
|
51 |
-
define('PPS_VERSION', '1.10.
|
52 |
define('PPS_USER', 'user');
|
53 |
|
54 |
define('PPS_CLASS_PREFIX', 'ppsc');
|
48 |
define('PPS_EOL', "\n");
|
49 |
|
50 |
define('PPS_PLUGIN_INSTALLED', true);
|
51 |
+
define('PPS_VERSION', '1.10.3');
|
52 |
define('PPS_USER', 'user');
|
53 |
|
54 |
define('PPS_CLASS_PREFIX', 'ppsc');
|
js/admin.options.js
CHANGED
@@ -1,3 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
var ppsAdminFormChanged = [];
|
2 |
window.onbeforeunload = function(){
|
3 |
// If there are at lease one unsaved form - show message for confirnation for page leave
|
@@ -14,7 +152,7 @@ jQuery(document).ready(function(){
|
|
14 |
}
|
15 |
});
|
16 |
}
|
17 |
-
|
18 |
// Timeout - is to count only user changes, because some changes can be done auto when form is loaded
|
19 |
setTimeout(function() {
|
20 |
// If some changes was made in those forms and they were not saved - show message for confirnation before page reload
|
@@ -39,7 +177,7 @@ jQuery(document).ready(function(){
|
|
39 |
var optKey = jQuery(this).data('optkey')
|
40 |
, descShell = jQuery('#ppsFormOptDetails_'+ optKey);
|
41 |
if(descShell.length) {
|
42 |
-
if(jQuery(this).
|
43 |
descShell.slideDown( 300 );
|
44 |
} else {
|
45 |
descShell.slideUp( 300 );
|
@@ -50,7 +188,7 @@ jQuery(document).ready(function(){
|
|
50 |
ppsInitStickyItem();
|
51 |
ppsInitCustomCheckRadio();
|
52 |
//ppsInitCustomSelect();
|
53 |
-
|
54 |
jQuery('.ppsFieldsetToggled').each(function(){
|
55 |
var self = this;
|
56 |
jQuery(self).find('.ppsFieldsetContent').hide();
|
@@ -117,8 +255,8 @@ jQuery(document).ready(function(){
|
|
117 |
jQuery('input.ppsCopyTextCode').each(function(){
|
118 |
cloneWidthElement.html( str_replace(jQuery(this).val(), '<', 'P') );
|
119 |
var parentSelector = jQuery(this).data('parent-selector')
|
120 |
-
, parentWidth = (parentSelector && parentSelector != ''
|
121 |
-
? jQuery(this).parents(parentSelector+ ':first')
|
122 |
: jQuery(this).parent()
|
123 |
).width()
|
124 |
, txtWidth = cloneWidthElement.width();
|
@@ -301,6 +439,7 @@ function ppsInitStickyItem() {
|
|
301 |
});
|
302 |
}
|
303 |
function ppsInitCustomCheckRadio(selector) {
|
|
|
304 |
if(!jQuery.fn.iCheck) return;
|
305 |
if(!selector)
|
306 |
selector = document;
|
@@ -345,11 +484,11 @@ function ppsCheckUpdateArea(selector) {
|
|
345 |
jQuery(selector).find('input[type=checkbox]').iCheck('update');
|
346 |
}
|
347 |
function ppsGetTxtEditorVal(id) {
|
348 |
-
if(typeof(tinyMCE) !== 'undefined'
|
349 |
-
&& tinyMCE.get( id )
|
350 |
-
&& !jQuery('#'+ id).is(':visible')
|
351 |
-
&& tinyMCE.get( id ).getDoc
|
352 |
-
&& typeof(tinyMCE.get( id ).getDoc) == 'function'
|
353 |
&& tinyMCE.get( id ).getDoc()
|
354 |
)
|
355 |
return tinyMCE.get( id ).getContent();
|
@@ -357,12 +496,12 @@ function ppsGetTxtEditorVal(id) {
|
|
357 |
return jQuery('#'+ id).val();
|
358 |
}
|
359 |
function ppsSetTxtEditorVal(id, content) {
|
360 |
-
if(typeof(tinyMCE) !== 'undefined'
|
361 |
-
&& tinyMCE
|
362 |
-
&& tinyMCE.get( id )
|
363 |
&& !jQuery('#'+ id).is(':visible')
|
364 |
-
&& tinyMCE.get( id ).getDoc
|
365 |
-
&& typeof(tinyMCE.get( id ).getDoc) == 'function'
|
366 |
&& tinyMCE.get( id ).getDoc()
|
367 |
)
|
368 |
tinyMCE.get( id ).setContent(content);
|
@@ -501,7 +640,7 @@ function ppsInitMainPromoPopup() {
|
|
501 |
var needShow = true
|
502 |
, isRadio = jQuery(this).attr('type') == 'radio'
|
503 |
, isCheck = jQuery(this).attr('type') == 'checkbox';
|
504 |
-
if(isRadio && !jQuery(this).
|
505 |
needShow = false;
|
506 |
}
|
507 |
if(!needShow) {
|
@@ -533,4 +672,4 @@ function ppsInitMainPromoPopup() {
|
|
533 |
return false;
|
534 |
});
|
535 |
}
|
536 |
-
}
|
1 |
+
(function (factory) {
|
2 |
+
if (typeof define === 'function' && define.amd) {
|
3 |
+
// AMD (Register as an anonymous module)
|
4 |
+
define(['jquery'], factory);
|
5 |
+
} else if (typeof exports === 'object') {
|
6 |
+
// Node/CommonJS
|
7 |
+
module.exports = factory(require('jquery'));
|
8 |
+
} else {
|
9 |
+
// Browser globals
|
10 |
+
factory(jQuery);
|
11 |
+
}
|
12 |
+
}(function ($) {
|
13 |
+
|
14 |
+
var pluses = /\+/g;
|
15 |
+
|
16 |
+
function encode(s) {
|
17 |
+
return config.raw ? s : encodeURIComponent(s);
|
18 |
+
}
|
19 |
+
|
20 |
+
function decode(s) {
|
21 |
+
return config.raw ? s : decodeURIComponent(s);
|
22 |
+
}
|
23 |
+
|
24 |
+
function stringifyCookieValue(value) {
|
25 |
+
return encode(config.json ? JSON.stringify(value) : String(value));
|
26 |
+
}
|
27 |
+
|
28 |
+
function parseCookieValue(s) {
|
29 |
+
if (s.indexOf('"') === 0) {
|
30 |
+
// This is a quoted cookie as according to RFC2068, unescape...
|
31 |
+
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
32 |
+
}
|
33 |
+
|
34 |
+
try {
|
35 |
+
// Replace server-side written pluses with spaces.
|
36 |
+
// If we can't decode the cookie, ignore it, it's unusable.
|
37 |
+
// If we can't parse the cookie, ignore it, it's unusable.
|
38 |
+
s = decodeURIComponent(s.replace(pluses, ' '));
|
39 |
+
return config.json ? JSON.parse(s) : s;
|
40 |
+
} catch(e) {}
|
41 |
+
}
|
42 |
+
|
43 |
+
function read(s, converter) {
|
44 |
+
var value = config.raw ? s : parseCookieValue(s);
|
45 |
+
return $.isFunction(converter) ? converter(value) : value;
|
46 |
+
}
|
47 |
+
|
48 |
+
var config = $.cookie = function (key, value, options) {
|
49 |
+
|
50 |
+
// Write
|
51 |
+
|
52 |
+
if (arguments.length > 1 && !$.isFunction(value)) {
|
53 |
+
options = $.extend({}, config.defaults, options);
|
54 |
+
|
55 |
+
if (typeof options.expires === 'number') {
|
56 |
+
var days = options.expires, t = options.expires = new Date();
|
57 |
+
t.setMilliseconds(t.getMilliseconds() + days * 864e+5);
|
58 |
+
}
|
59 |
+
|
60 |
+
return (document.cookie = [
|
61 |
+
encode(key), '=', stringifyCookieValue(value),
|
62 |
+
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
63 |
+
options.path ? '; path=' + options.path : '',
|
64 |
+
options.domain ? '; domain=' + options.domain : '',
|
65 |
+
options.secure ? '; secure' : ''
|
66 |
+
].join(''));
|
67 |
+
}
|
68 |
+
|
69 |
+
// Read
|
70 |
+
|
71 |
+
var result = key ? undefined : {},
|
72 |
+
// To prevent the for loop in the first place assign an empty array
|
73 |
+
// in case there are no cookies at all. Also prevents odd result when
|
74 |
+
// calling $.cookie().
|
75 |
+
cookies = document.cookie ? document.cookie.split('; ') : [],
|
76 |
+
i = 0,
|
77 |
+
l = cookies.length;
|
78 |
+
|
79 |
+
for (; i < l; i++) {
|
80 |
+
var parts = cookies[i].split('='),
|
81 |
+
name = decode(parts.shift()),
|
82 |
+
cookie = parts.join('=');
|
83 |
+
|
84 |
+
if (key === name) {
|
85 |
+
// If second argument (value) is a function it's a converter...
|
86 |
+
result = read(cookie, value);
|
87 |
+
break;
|
88 |
+
}
|
89 |
+
|
90 |
+
// Prevent storing a cookie that we couldn't decode.
|
91 |
+
if (!key && (cookie = read(cookie)) !== undefined) {
|
92 |
+
result[name] = cookie;
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
return result;
|
97 |
+
};
|
98 |
+
|
99 |
+
config.defaults = {};
|
100 |
+
|
101 |
+
$.removeCookie = function (key, options) {
|
102 |
+
// Must not alter options, thus extending a fresh object...
|
103 |
+
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
|
104 |
+
return !$.cookie(key);
|
105 |
+
};
|
106 |
+
|
107 |
+
}));
|
108 |
+
|
109 |
+
if (jQuery('body').find('.supsystic-admin-notice[data-code="enb_promo_link_msg"]').length > 0) {
|
110 |
+
var dontShowPromo = jQuery.cookie('enbPromogLinkMsg3Day');
|
111 |
+
if (dontShowPromo) {
|
112 |
+
jQuery('.supsystic-admin-notice[data-code="enb_promo_link_msg"]').hide();
|
113 |
+
}
|
114 |
+
}
|
115 |
+
jQuery('body').on('click', '.supsystic-admin-notice[data-code="enb_promo_link_msg"] .notice-dismiss', function(){
|
116 |
+
jQuery.cookie('enbPromogLinkMsg3Day', true, { expires : 3});
|
117 |
+
});
|
118 |
+
|
119 |
+
if (jQuery('body').find('.supsystic-admin-notice[data-code="check_other_plugs_msg"]').length > 0) {
|
120 |
+
var dontShowPromo = jQuery.cookie('checkOtherPlugsMsg3Day');
|
121 |
+
if (dontShowPromo) {
|
122 |
+
jQuery('.supsystic-admin-notice[data-code="check_other_plugs_msg"]').hide();
|
123 |
+
}
|
124 |
+
}
|
125 |
+
jQuery('body').on('click', '.supsystic-admin-notice[data-code="check_other_plugs_msg"] .notice-dismiss', function(){
|
126 |
+
jQuery.cookie('checkOtherPlugsMsg3Day', true, { expires : 3});
|
127 |
+
});
|
128 |
+
|
129 |
+
if (jQuery('body').find('.supsystic-admin-notice[data-code="enb_stats_msg"]').length > 0) {
|
130 |
+
var dontShowPromo = jQuery.cookie('checkStatsMsg3Day');
|
131 |
+
if (dontShowPromo) {
|
132 |
+
jQuery('.supsystic-admin-notice[data-code="enb_stats_msg"]').hide();
|
133 |
+
}
|
134 |
+
}
|
135 |
+
jQuery('body').on('click', '.supsystic-admin-notice[data-code="enb_stats_msg"] .notice-dismiss', function(){
|
136 |
+
jQuery.cookie('checkStatsMsg3Day', true, { expires : 3});
|
137 |
+
});
|
138 |
+
|
139 |
var ppsAdminFormChanged = [];
|
140 |
window.onbeforeunload = function(){
|
141 |
// If there are at lease one unsaved form - show message for confirnation for page leave
|
152 |
}
|
153 |
});
|
154 |
}
|
155 |
+
|
156 |
// Timeout - is to count only user changes, because some changes can be done auto when form is loaded
|
157 |
setTimeout(function() {
|
158 |
// If some changes was made in those forms and they were not saved - show message for confirnation before page reload
|
177 |
var optKey = jQuery(this).data('optkey')
|
178 |
, descShell = jQuery('#ppsFormOptDetails_'+ optKey);
|
179 |
if(descShell.length) {
|
180 |
+
if(jQuery(this).prop('checked')) {
|
181 |
descShell.slideDown( 300 );
|
182 |
} else {
|
183 |
descShell.slideUp( 300 );
|
188 |
ppsInitStickyItem();
|
189 |
ppsInitCustomCheckRadio();
|
190 |
//ppsInitCustomSelect();
|
191 |
+
|
192 |
jQuery('.ppsFieldsetToggled').each(function(){
|
193 |
var self = this;
|
194 |
jQuery(self).find('.ppsFieldsetContent').hide();
|
255 |
jQuery('input.ppsCopyTextCode').each(function(){
|
256 |
cloneWidthElement.html( str_replace(jQuery(this).val(), '<', 'P') );
|
257 |
var parentSelector = jQuery(this).data('parent-selector')
|
258 |
+
, parentWidth = (parentSelector && parentSelector != ''
|
259 |
+
? jQuery(this).parents(parentSelector+ ':first')
|
260 |
: jQuery(this).parent()
|
261 |
).width()
|
262 |
, txtWidth = cloneWidthElement.width();
|
439 |
});
|
440 |
}
|
441 |
function ppsInitCustomCheckRadio(selector) {
|
442 |
+
return false;
|
443 |
if(!jQuery.fn.iCheck) return;
|
444 |
if(!selector)
|
445 |
selector = document;
|
484 |
jQuery(selector).find('input[type=checkbox]').iCheck('update');
|
485 |
}
|
486 |
function ppsGetTxtEditorVal(id) {
|
487 |
+
if(typeof(tinyMCE) !== 'undefined'
|
488 |
+
&& tinyMCE.get( id )
|
489 |
+
&& !jQuery('#'+ id).is(':visible')
|
490 |
+
&& tinyMCE.get( id ).getDoc
|
491 |
+
&& typeof(tinyMCE.get( id ).getDoc) == 'function'
|
492 |
&& tinyMCE.get( id ).getDoc()
|
493 |
)
|
494 |
return tinyMCE.get( id ).getContent();
|
496 |
return jQuery('#'+ id).val();
|
497 |
}
|
498 |
function ppsSetTxtEditorVal(id, content) {
|
499 |
+
if(typeof(tinyMCE) !== 'undefined'
|
500 |
+
&& tinyMCE
|
501 |
+
&& tinyMCE.get( id )
|
502 |
&& !jQuery('#'+ id).is(':visible')
|
503 |
+
&& tinyMCE.get( id ).getDoc
|
504 |
+
&& typeof(tinyMCE.get( id ).getDoc) == 'function'
|
505 |
&& tinyMCE.get( id ).getDoc()
|
506 |
)
|
507 |
tinyMCE.get( id ).setContent(content);
|
640 |
var needShow = true
|
641 |
, isRadio = jQuery(this).attr('type') == 'radio'
|
642 |
, isCheck = jQuery(this).attr('type') == 'checkbox';
|
643 |
+
if(isRadio && !jQuery(this).prop('checked')) {
|
644 |
needShow = false;
|
645 |
}
|
646 |
if(!needShow) {
|
672 |
return false;
|
673 |
});
|
674 |
}
|
675 |
+
}
|
modules/popup/js/admin.popup.edit.js
CHANGED
@@ -167,14 +167,14 @@ jQuery(document).ready(function(){
|
|
167 |
jQuery('#ppsPopupEditForm').find('[name="params[tpl][bullets]"]').val( ppsPopup.params.tpl.bullets );
|
168 |
}
|
169 |
// Some main options can have additional sub-options - "descriptions" - that need to be visible if option is checked
|
170 |
-
jQuery('#ppsPopupEditForm').find('input[name="params[main][show_on]"],input[name="params[main][close_on]"],input[name="params[main][show_to]"],input[name="params[main][show_pages]"]').change
|
171 |
var name = jQuery(this).attr('name')
|
172 |
, value = jQuery(this).val()
|
173 |
, nameReplaced = pps_str_replace( pps_str_replace( pps_str_replace(name, '][', '_'), '[', '_'), ']', '_' )
|
174 |
, nameValueReplaced = nameReplaced+ value
|
175 |
, descShell = jQuery('#ppsOptDesc_'+ nameValueReplaced);
|
176 |
if(descShell.length) {
|
177 |
-
jQuery(this).
|
178 |
}
|
179 |
}).change();
|
180 |
// Fallback for case if library was not loaded
|
@@ -314,7 +314,7 @@ jQuery(document).ready(function(){
|
|
314 |
}
|
315 |
});
|
316 |
jQuery('#ppsPopupEditForm').find('[name="params[tpl][width_measure]"]').change(function(){
|
317 |
-
if(!jQuery(this).
|
318 |
return;
|
319 |
var widthInput = jQuery('#ppsPopupEditForm').find('[name="params[tpl][width]"]');
|
320 |
if(jQuery(this).val() == '%') {
|
167 |
jQuery('#ppsPopupEditForm').find('[name="params[tpl][bullets]"]').val( ppsPopup.params.tpl.bullets );
|
168 |
}
|
169 |
// Some main options can have additional sub-options - "descriptions" - that need to be visible if option is checked
|
170 |
+
jQuery('#ppsPopupEditForm').find('input[name="params[main][show_on]"],input[name="params[main][close_on]"],input[name="params[main][show_to]"],input[name="params[main][show_pages]"]').on('change',function(){
|
171 |
var name = jQuery(this).attr('name')
|
172 |
, value = jQuery(this).val()
|
173 |
, nameReplaced = pps_str_replace( pps_str_replace( pps_str_replace(name, '][', '_'), '[', '_'), ']', '_' )
|
174 |
, nameValueReplaced = nameReplaced+ value
|
175 |
, descShell = jQuery('#ppsOptDesc_'+ nameValueReplaced);
|
176 |
if(descShell.length) {
|
177 |
+
jQuery(this).prop('checked') ? descShell.slideDown( g_ppsAnimationSpeed ) : descShell.slideUp( g_ppsAnimationSpeed );
|
178 |
}
|
179 |
}).change();
|
180 |
// Fallback for case if library was not loaded
|
314 |
}
|
315 |
});
|
316 |
jQuery('#ppsPopupEditForm').find('[name="params[tpl][width_measure]"]').change(function(){
|
317 |
+
if(!jQuery(this).prop('checked'))
|
318 |
return;
|
319 |
var widthInput = jQuery('#ppsPopupEditForm').find('[name="params[tpl][width]"]');
|
320 |
if(jQuery(this).val() == '%') {
|
modules/popup/js/admin.popup.list.js
CHANGED
@@ -4,7 +4,7 @@ jQuery(document).ready(function(){
|
|
4 |
return;
|
5 |
}
|
6 |
var tblId = 'ppsPopupTbl';
|
7 |
-
jQuery('#'+ tblId).jqGrid({
|
8 |
url: ppsTblDataUrl
|
9 |
, datatype: 'json'
|
10 |
, autowidth: true
|
@@ -32,7 +32,7 @@ jQuery(document).ready(function(){
|
|
32 |
, sortorder: 'desc'
|
33 |
, jsonReader: { repeatitems : false, id: '0' }
|
34 |
, caption: toeLangPps('Current PopUp')
|
35 |
-
, height: '100%'
|
36 |
, emptyrecords: toeLangPps('You have no PopUps for now.')
|
37 |
, multiselect: true
|
38 |
, onSelectRow: function(rowid, e) {
|
@@ -93,11 +93,11 @@ jQuery(document).ready(function(){
|
|
93 |
}, tblId);
|
94 |
}
|
95 |
});
|
96 |
-
|
97 |
jQuery('#'+ tblId+ 'EmptyMsg').insertAfter(jQuery('#'+ tblId+ '').parent());
|
98 |
jQuery('#'+ tblId+ '').jqGrid('navGrid', '#'+ tblId+ 'Nav', {edit: false, add: false, del: false});
|
99 |
jQuery('#cb_'+ tblId+ '').change(function(){
|
100 |
-
jQuery(this).
|
101 |
? jQuery('#ppsPopupRemoveGroupBtn').removeAttr('disabled')
|
102 |
: jQuery('#ppsPopupRemoveGroupBtn').attr('disabled', 'disabled');
|
103 |
});
|
4 |
return;
|
5 |
}
|
6 |
var tblId = 'ppsPopupTbl';
|
7 |
+
jQuery('#'+ tblId).jqGrid({
|
8 |
url: ppsTblDataUrl
|
9 |
, datatype: 'json'
|
10 |
, autowidth: true
|
32 |
, sortorder: 'desc'
|
33 |
, jsonReader: { repeatitems : false, id: '0' }
|
34 |
, caption: toeLangPps('Current PopUp')
|
35 |
+
, height: '100%'
|
36 |
, emptyrecords: toeLangPps('You have no PopUps for now.')
|
37 |
, multiselect: true
|
38 |
, onSelectRow: function(rowid, e) {
|
93 |
}, tblId);
|
94 |
}
|
95 |
});
|
96 |
+
|
97 |
jQuery('#'+ tblId+ 'EmptyMsg').insertAfter(jQuery('#'+ tblId+ '').parent());
|
98 |
jQuery('#'+ tblId+ '').jqGrid('navGrid', '#'+ tblId+ 'Nav', {edit: false, add: false, del: false});
|
99 |
jQuery('#cb_'+ tblId+ '').change(function(){
|
100 |
+
jQuery(this).prop('checked')
|
101 |
? jQuery('#ppsPopupRemoveGroupBtn').removeAttr('disabled')
|
102 |
: jQuery('#ppsPopupRemoveGroupBtn').attr('disabled', 'disabled');
|
103 |
});
|
pps.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Popup by Supsystic
|
4 |
* Plugin URI: https://supsystic.com/plugins/popup-plugin/
|
5 |
* Description: The Best WordPress popup plugin to help you gain more subscribers, social followers or advertisement. Responsive popups with friendly options
|
6 |
-
* Version: 1.10.
|
7 |
* Author: supsystic.com
|
8 |
* Author URI: https://supsystic.com
|
9 |
* Text Domain: popup-by-supsystic
|
3 |
* Plugin Name: Popup by Supsystic
|
4 |
* Plugin URI: https://supsystic.com/plugins/popup-plugin/
|
5 |
* Description: The Best WordPress popup plugin to help you gain more subscribers, social followers or advertisement. Responsive popups with friendly options
|
6 |
+
* Version: 1.10.3
|
7 |
* Author: supsystic.com
|
8 |
* Author URI: https://supsystic.com
|
9 |
* Text Domain: popup-by-supsystic
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: supsystic.com
|
3 |
Donate link: https://supsystic.com/plugins/popup-plugin
|
4 |
Tags: popup, popup WordPress plugin, marketing, popover, pop-up, popup builder, social popup, facebook popup, popup builder, popup maker
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 1.10.
|
7 |
|
8 |
Create elegant popup easily with Popup Builder by Supsystic. Popup with Subscription Forms, Facebook popup, Optin and Social locks, Contact Forms etc.
|
9 |
|
@@ -116,6 +116,14 @@ Enable “Redirect after close” option in Appearance setting on the Design tab
|
|
116 |
Leave us a nice review 🙂
|
117 |
|
118 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
= 1.10.2 / 15.09.2020 =
|
121 |
* Add fix for WP 5.5
|
2 |
Contributors: supsystic.com
|
3 |
Donate link: https://supsystic.com/plugins/popup-plugin
|
4 |
Tags: popup, popup WordPress plugin, marketing, popover, pop-up, popup builder, social popup, facebook popup, popup builder, popup maker
|
5 |
+
Tested up to: 5.7
|
6 |
+
Stable tag: 1.10.3
|
7 |
|
8 |
Create elegant popup easily with Popup Builder by Supsystic. Popup with Subscription Forms, Facebook popup, Optin and Social locks, Contact Forms etc.
|
9 |
|
116 |
Leave us a nice review 🙂
|
117 |
|
118 |
== Changelog ==
|
119 |
+
= 1.10.3 / 16.03.2021 =
|
120 |
+
* Add fix for WP 5.7
|
121 |
+
* Fixed radio Buttons
|
122 |
+
* Fixed checkboxes
|
123 |
+
* disabled iCheck
|
124 |
+
* add cookie for notices
|
125 |
+
|
126 |
+
|
127 |
|
128 |
= 1.10.2 / 15.09.2020 =
|
129 |
* Add fix for WP 5.5
|