Version Description
/ 21.02.2017 * Featured plugins updated - added Membership plugin * Minor issues fix
Download this release
Release Info
Developer | supsystic.com |
Plugin | Popup by Supsystic |
Version | 1.8.8 |
Comparing to | |
See all releases |
Code changes from version 1.9.1 to 1.8.8
- config.php +1 -1
- js/admin.options.js +0 -5
- modules/mail/engines/class.phpmailer.php +21 -77
- modules/popup/js/frontend.popup.js +3 -16
- modules/popup/mod.php +1 -2
- modules/popup/views/popup.php +0 -3
- modules/statistics/views/tpl/statPopupEditTab.php +0 -13
- pps.php +1 -1
- readme.txt +37 -56
config.php
CHANGED
@@ -48,7 +48,7 @@
|
|
48 |
define('PPS_EOL', "\n");
|
49 |
|
50 |
define('PPS_PLUGIN_INSTALLED', true);
|
51 |
-
define('PPS_VERSION', '1.
|
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.8.8');
|
52 |
define('PPS_USER', 'user');
|
53 |
|
54 |
define('PPS_CLASS_PREFIX', 'ppsc');
|
js/admin.options.js
CHANGED
@@ -301,7 +301,6 @@ function ppsInitStickyItem() {
|
|
301 |
});
|
302 |
}
|
303 |
function ppsInitCustomCheckRadio(selector) {
|
304 |
-
if(!jQuery.fn.iCheck) return;
|
305 |
if(!selector)
|
306 |
selector = document;
|
307 |
jQuery(selector).find('input').iCheck('destroy').iCheck({
|
@@ -329,19 +328,15 @@ function ppsInitCustomCheckRadio(selector) {
|
|
329 |
});
|
330 |
}
|
331 |
function ppsCheckDestroy(checkbox) {
|
332 |
-
if(!jQuery.fn.iCheck) return;
|
333 |
jQuery(checkbox).iCheck('destroy');
|
334 |
}
|
335 |
function ppsCheckDestroyArea(selector) {
|
336 |
-
if(!jQuery.fn.iCheck) return;
|
337 |
jQuery(selector).find('input[type=checkbox]').iCheck('destroy');
|
338 |
}
|
339 |
function ppsCheckUpdate(checkbox) {
|
340 |
-
if(!jQuery.fn.iCheck) return;
|
341 |
jQuery(checkbox).iCheck('update');
|
342 |
}
|
343 |
function ppsCheckUpdateArea(selector) {
|
344 |
-
if(!jQuery.fn.iCheck) return;
|
345 |
jQuery(selector).find('input[type=checkbox]').iCheck('update');
|
346 |
}
|
347 |
function ppsGetTxtEditorVal(id) {
|
301 |
});
|
302 |
}
|
303 |
function ppsInitCustomCheckRadio(selector) {
|
|
|
304 |
if(!selector)
|
305 |
selector = document;
|
306 |
jQuery(selector).find('input').iCheck('destroy').iCheck({
|
328 |
});
|
329 |
}
|
330 |
function ppsCheckDestroy(checkbox) {
|
|
|
331 |
jQuery(checkbox).iCheck('destroy');
|
332 |
}
|
333 |
function ppsCheckDestroyArea(selector) {
|
|
|
334 |
jQuery(selector).find('input[type=checkbox]').iCheck('destroy');
|
335 |
}
|
336 |
function ppsCheckUpdate(checkbox) {
|
|
|
337 |
jQuery(checkbox).iCheck('update');
|
338 |
}
|
339 |
function ppsCheckUpdateArea(selector) {
|
|
|
340 |
jQuery(selector).find('input[type=checkbox]').iCheck('update');
|
341 |
}
|
342 |
function ppsGetTxtEditorVal(id) {
|
modules/mail/engines/class.phpmailer.php
CHANGED
@@ -31,7 +31,7 @@ class PHPMailer
|
|
31 |
* The PHPMailer Version number.
|
32 |
* @var string
|
33 |
*/
|
34 |
-
public $Version = '5.2.
|
35 |
|
36 |
/**
|
37 |
* Email priority.
|
@@ -692,7 +692,7 @@ class PHPMailer
|
|
692 |
$subject = $this->encodeHeader($this->secureHeader($subject));
|
693 |
}
|
694 |
|
695 |
-
//Can't use additional_parameters in safe_mode
|
696 |
//@link http://php.net/manual/en/function.mail.php
|
697 |
if (ini_get('safe_mode') or !$this->UseSendmailOptions or is_null($params)) {
|
698 |
$result = @mail($to, $subject, $body, $header);
|
@@ -1364,24 +1364,19 @@ class PHPMailer
|
|
1364 |
*/
|
1365 |
protected function sendmailSend($header, $body)
|
1366 |
{
|
1367 |
-
|
1368 |
-
if (!empty($this->Sender) and self::isShellSafe($this->Sender)) {
|
1369 |
if ($this->Mailer == 'qmail') {
|
1370 |
-
$
|
1371 |
} else {
|
1372 |
-
$
|
1373 |
}
|
1374 |
} else {
|
1375 |
if ($this->Mailer == 'qmail') {
|
1376 |
-
$
|
1377 |
} else {
|
1378 |
-
$
|
1379 |
}
|
1380 |
}
|
1381 |
-
|
1382 |
-
// TODO: If possible, this should be changed to escapeshellarg. Needs thorough testing.
|
1383 |
-
$sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender);
|
1384 |
-
|
1385 |
if ($this->SingleTo) {
|
1386 |
foreach ($this->SingleToArray as $toAddr) {
|
1387 |
if (!@$mail = popen($sendmail, 'w')) {
|
@@ -1427,40 +1422,6 @@ class PHPMailer
|
|
1427 |
return true;
|
1428 |
}
|
1429 |
|
1430 |
-
/**
|
1431 |
-
* Fix CVE-2016-10033 and CVE-2016-10045 by disallowing potentially unsafe shell characters.
|
1432 |
-
*
|
1433 |
-
* Note that escapeshellarg and escapeshellcmd are inadequate for our purposes, especially on Windows.
|
1434 |
-
* @param string $string The string to be validated
|
1435 |
-
* @see https://github.com/PHPMailer/PHPMailer/issues/924 CVE-2016-10045 bug report
|
1436 |
-
* @access protected
|
1437 |
-
* @return boolean
|
1438 |
-
*/
|
1439 |
-
protected static function isShellSafe($string)
|
1440 |
-
{
|
1441 |
-
// Future-proof
|
1442 |
-
if (escapeshellcmd($string) !== $string
|
1443 |
-
or !in_array(escapeshellarg($string), array("'$string'", "\"$string\""))
|
1444 |
-
) {
|
1445 |
-
return false;
|
1446 |
-
}
|
1447 |
-
|
1448 |
-
$length = strlen($string);
|
1449 |
-
|
1450 |
-
for ($i = 0; $i < $length; $i++) {
|
1451 |
-
$c = $string[$i];
|
1452 |
-
|
1453 |
-
// All other characters have a special meaning in at least one common shell, including = and +.
|
1454 |
-
// Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here.
|
1455 |
-
// Note that this does permit non-Latin alphanumeric characters based on the current locale.
|
1456 |
-
if (!ctype_alnum($c) && strpos('@_-.', $c) === false) {
|
1457 |
-
return false;
|
1458 |
-
}
|
1459 |
-
}
|
1460 |
-
|
1461 |
-
return true;
|
1462 |
-
}
|
1463 |
-
|
1464 |
/**
|
1465 |
* Send mail using the PHP mail() function.
|
1466 |
* @param string $header The message headers
|
@@ -1480,13 +1441,10 @@ class PHPMailer
|
|
1480 |
|
1481 |
$params = null;
|
1482 |
//This sets the SMTP envelope sender which gets turned into a return-path header by the receiver
|
1483 |
-
if (!empty($this->Sender)
|
1484 |
-
|
1485 |
-
if (self::isShellSafe($this->Sender)) {
|
1486 |
-
$params = sprintf('-f%s', $this->Sender);
|
1487 |
-
}
|
1488 |
}
|
1489 |
-
if (
|
1490 |
$old_from = ini_get('sendmail_from');
|
1491 |
ini_set('sendmail_from', $this->Sender);
|
1492 |
}
|
@@ -1540,10 +1498,10 @@ class PHPMailer
|
|
1540 |
if (!$this->smtpConnect($this->SMTPOptions)) {
|
1541 |
throw new phpmailerException($this->lang('smtp_connect_failed'), self::STOP_CRITICAL);
|
1542 |
}
|
1543 |
-
if (
|
1544 |
-
$smtp_from = $this->Sender;
|
1545 |
-
} else {
|
1546 |
$smtp_from = $this->From;
|
|
|
|
|
1547 |
}
|
1548 |
if (!$this->smtp->mail($smtp_from)) {
|
1549 |
$this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError()));
|
@@ -2492,7 +2450,6 @@ class PHPMailer
|
|
2492 |
|
2493 |
/**
|
2494 |
* Add an attachment from a path on the filesystem.
|
2495 |
-
* Never use a user-supplied path to a file!
|
2496 |
* Returns false if the file could not be found or read.
|
2497 |
* @param string $path Path to the attachment.
|
2498 |
* @param string $name Overrides the attachment name.
|
@@ -3018,7 +2975,6 @@ class PHPMailer
|
|
3018 |
* displayed inline with the message, not just attached for download.
|
3019 |
* This is used in HTML messages that embed the images
|
3020 |
* the HTML refers to using the $cid value.
|
3021 |
-
* Never use a user-supplied path to a file!
|
3022 |
* @param string $path Path to the attachment.
|
3023 |
* @param string $cid Content ID of the attachment; Use this to reference
|
3024 |
* the content when using an embedded image in HTML.
|
@@ -3382,14 +3338,12 @@ class PHPMailer
|
|
3382 |
* Create a message body from an HTML string.
|
3383 |
* Automatically inlines images and creates a plain-text version by converting the HTML,
|
3384 |
* overwriting any existing values in Body and AltBody.
|
3385 |
-
*
|
3386 |
-
* $basedir is prepended when handling relative URLs, e.g. <img src="/images/a.png"> and must not be empty
|
3387 |
* will look for an image file in $basedir/images/a.png and convert it to inline.
|
3388 |
-
* If you don't
|
3389 |
-
* If you don't want to apply these transformations to your HTML, just set Body and AltBody directly.
|
3390 |
* @access public
|
3391 |
* @param string $message HTML message string
|
3392 |
-
* @param string $basedir
|
3393 |
* @param boolean|callable $advanced Whether to use the internal HTML to text converter
|
3394 |
* or your own custom converter @see PHPMailer::html2text()
|
3395 |
* @return string $message The transformed message Body
|
@@ -3398,10 +3352,6 @@ class PHPMailer
|
|
3398 |
{
|
3399 |
preg_match_all('/(src|background)=["\'](.*)["\']/Ui', $message, $images);
|
3400 |
if (array_key_exists(2, $images)) {
|
3401 |
-
if (strlen($basedir) > 1 && substr($basedir, -1) != '/') {
|
3402 |
-
// Ensure $basedir has a trailing /
|
3403 |
-
$basedir .= '/';
|
3404 |
-
}
|
3405 |
foreach ($images[2] as $imgindex => $url) {
|
3406 |
// Convert data URIs into embedded images
|
3407 |
if (preg_match('#^data:(image[^;,]*)(;base64)?,#', $url, $match)) {
|
@@ -3419,24 +3369,18 @@ class PHPMailer
|
|
3419 |
$message
|
3420 |
);
|
3421 |
}
|
3422 |
-
|
3423 |
-
|
3424 |
-
if (
|
3425 |
-
// Only process relative URLs if a basedir is provided (i.e. no absolute local paths)
|
3426 |
-
!empty($basedir)
|
3427 |
-
// Ignore URLs containing parent dir traversal (..)
|
3428 |
-
&& (strpos($url, '..') === false)
|
3429 |
// Do not change urls that are already inline images
|
3430 |
-
&& substr($url, 0, 4) !== 'cid:'
|
3431 |
-
// Do not change absolute URLs, including anonymous protocol
|
3432 |
-
&& !preg_match('#^[a-z][a-z0-9+.-]*:?//#i', $url)
|
3433 |
-
) {
|
3434 |
$filename = basename($url);
|
3435 |
$directory = dirname($url);
|
3436 |
if ($directory == '.') {
|
3437 |
$directory = '';
|
3438 |
}
|
3439 |
$cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2
|
|
|
|
|
|
|
3440 |
if (strlen($directory) > 1 && substr($directory, -1) != '/') {
|
3441 |
$directory .= '/';
|
3442 |
}
|
31 |
* The PHPMailer Version number.
|
32 |
* @var string
|
33 |
*/
|
34 |
+
public $Version = '5.2.17';
|
35 |
|
36 |
/**
|
37 |
* Email priority.
|
692 |
$subject = $this->encodeHeader($this->secureHeader($subject));
|
693 |
}
|
694 |
|
695 |
+
//Can't use additional_parameters in safe_mode
|
696 |
//@link http://php.net/manual/en/function.mail.php
|
697 |
if (ini_get('safe_mode') or !$this->UseSendmailOptions or is_null($params)) {
|
698 |
$result = @mail($to, $subject, $body, $header);
|
1364 |
*/
|
1365 |
protected function sendmailSend($header, $body)
|
1366 |
{
|
1367 |
+
if ($this->Sender != '') {
|
|
|
1368 |
if ($this->Mailer == 'qmail') {
|
1369 |
+
$sendmail = sprintf('%s -f%s', escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender));
|
1370 |
} else {
|
1371 |
+
$sendmail = sprintf('%s -oi -f%s -t', escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender));
|
1372 |
}
|
1373 |
} else {
|
1374 |
if ($this->Mailer == 'qmail') {
|
1375 |
+
$sendmail = sprintf('%s', escapeshellcmd($this->Sendmail));
|
1376 |
} else {
|
1377 |
+
$sendmail = sprintf('%s -oi -t', escapeshellcmd($this->Sendmail));
|
1378 |
}
|
1379 |
}
|
|
|
|
|
|
|
|
|
1380 |
if ($this->SingleTo) {
|
1381 |
foreach ($this->SingleToArray as $toAddr) {
|
1382 |
if (!@$mail = popen($sendmail, 'w')) {
|
1422 |
return true;
|
1423 |
}
|
1424 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1425 |
/**
|
1426 |
* Send mail using the PHP mail() function.
|
1427 |
* @param string $header The message headers
|
1441 |
|
1442 |
$params = null;
|
1443 |
//This sets the SMTP envelope sender which gets turned into a return-path header by the receiver
|
1444 |
+
if (!empty($this->Sender)) {
|
1445 |
+
$params = sprintf('-f%s', $this->Sender);
|
|
|
|
|
|
|
1446 |
}
|
1447 |
+
if ($this->Sender != '' and !ini_get('safe_mode')) {
|
1448 |
$old_from = ini_get('sendmail_from');
|
1449 |
ini_set('sendmail_from', $this->Sender);
|
1450 |
}
|
1498 |
if (!$this->smtpConnect($this->SMTPOptions)) {
|
1499 |
throw new phpmailerException($this->lang('smtp_connect_failed'), self::STOP_CRITICAL);
|
1500 |
}
|
1501 |
+
if ('' == $this->Sender) {
|
|
|
|
|
1502 |
$smtp_from = $this->From;
|
1503 |
+
} else {
|
1504 |
+
$smtp_from = $this->Sender;
|
1505 |
}
|
1506 |
if (!$this->smtp->mail($smtp_from)) {
|
1507 |
$this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError()));
|
2450 |
|
2451 |
/**
|
2452 |
* Add an attachment from a path on the filesystem.
|
|
|
2453 |
* Returns false if the file could not be found or read.
|
2454 |
* @param string $path Path to the attachment.
|
2455 |
* @param string $name Overrides the attachment name.
|
2975 |
* displayed inline with the message, not just attached for download.
|
2976 |
* This is used in HTML messages that embed the images
|
2977 |
* the HTML refers to using the $cid value.
|
|
|
2978 |
* @param string $path Path to the attachment.
|
2979 |
* @param string $cid Content ID of the attachment; Use this to reference
|
2980 |
* the content when using an embedded image in HTML.
|
3338 |
* Create a message body from an HTML string.
|
3339 |
* Automatically inlines images and creates a plain-text version by converting the HTML,
|
3340 |
* overwriting any existing values in Body and AltBody.
|
3341 |
+
* $basedir is used when handling relative image paths, e.g. <img src="images/a.png">
|
|
|
3342 |
* will look for an image file in $basedir/images/a.png and convert it to inline.
|
3343 |
+
* If you don't want to apply these transformations to your HTML, just set Body and AltBody yourself.
|
|
|
3344 |
* @access public
|
3345 |
* @param string $message HTML message string
|
3346 |
+
* @param string $basedir base directory for relative paths to images
|
3347 |
* @param boolean|callable $advanced Whether to use the internal HTML to text converter
|
3348 |
* or your own custom converter @see PHPMailer::html2text()
|
3349 |
* @return string $message The transformed message Body
|
3352 |
{
|
3353 |
preg_match_all('/(src|background)=["\'](.*)["\']/Ui', $message, $images);
|
3354 |
if (array_key_exists(2, $images)) {
|
|
|
|
|
|
|
|
|
3355 |
foreach ($images[2] as $imgindex => $url) {
|
3356 |
// Convert data URIs into embedded images
|
3357 |
if (preg_match('#^data:(image[^;,]*)(;base64)?,#', $url, $match)) {
|
3369 |
$message
|
3370 |
);
|
3371 |
}
|
3372 |
+
} elseif (substr($url, 0, 4) !== 'cid:' && !preg_match('#^[a-z][a-z0-9+.-]*://#i', $url)) {
|
3373 |
+
// Do not change urls for absolute images (thanks to corvuscorax)
|
|
|
|
|
|
|
|
|
|
|
3374 |
// Do not change urls that are already inline images
|
|
|
|
|
|
|
|
|
3375 |
$filename = basename($url);
|
3376 |
$directory = dirname($url);
|
3377 |
if ($directory == '.') {
|
3378 |
$directory = '';
|
3379 |
}
|
3380 |
$cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2
|
3381 |
+
if (strlen($basedir) > 1 && substr($basedir, -1) != '/') {
|
3382 |
+
$basedir .= '/';
|
3383 |
+
}
|
3384 |
if (strlen($directory) > 1 && substr($directory, -1) != '/') {
|
3385 |
$directory .= '/';
|
3386 |
}
|
modules/popup/js/frontend.popup.js
CHANGED
@@ -1,8 +1,7 @@
|
|
1 |
var g_ppsWindowLoaded = false
|
2 |
, g_ppsIsPageCached = false
|
3 |
, g_ppsIsPageCachedChecked = false
|
4 |
-
, g_ppsShowCallbacks = {}
|
5 |
-
, g_ppsClks = {};
|
6 |
jQuery(document).ready(function(){
|
7 |
if(typeof(ppsPopupsFromFooter) !== 'undefined' && ppsPopupsFromFooter && ppsPopupsFromFooter.length) {
|
8 |
ppsPopups = typeof(ppsPopups) === 'undefined' ? [] : ppsPopups;
|
@@ -50,12 +49,6 @@ jQuery(window).load(function(){
|
|
50 |
}
|
51 |
}
|
52 |
});
|
53 |
-
function _ppsAddPopUpClick( popupId, btn ) {
|
54 |
-
g_ppsClks[ popupId ] = btn;
|
55 |
-
}
|
56 |
-
function _ppsGetPopUpClick( popupId ) {
|
57 |
-
return g_ppsClks[ popupId ];
|
58 |
-
}
|
59 |
function _ppsCheckPopupOnFollowClk( lnk ) {
|
60 |
var href = lnk.href
|
61 |
, hash = lnk.hash
|
@@ -96,7 +89,6 @@ function _ppsBindOnElementClickPopups() {
|
|
96 |
_ppsCheckPopupOnFollowClk( this );
|
97 |
return true;
|
98 |
}
|
99 |
-
_ppsAddPopUpClick( popupId, this );
|
100 |
if(!_ppsPopupBindDelay(popupId, 'show_on_click_on_el_delay', 'show_on_click_on_el_enb_delay')) {
|
101 |
ppsShowPopup( popupId );
|
102 |
}
|
@@ -122,7 +114,6 @@ function _ppsBindOnElementClickPopups() {
|
|
122 |
.attr('title', str_replace(title, matched[0], ''))
|
123 |
.click(function(){
|
124 |
var popupId = jQuery(this).data('popup-id');
|
125 |
-
_ppsAddPopUpClick( popupId, this );
|
126 |
if(!_ppsPopupBindDelay(popupId, 'show_on_click_on_el_delay', 'show_on_click_on_el_enb_delay')) {
|
127 |
ppsShowPopup( popupId );
|
128 |
}
|
@@ -493,8 +484,6 @@ function _ppsPopupSetActionDone( popup, action, smType, params ) {
|
|
493 |
jQuery(document).trigger('ppsAfterPopupsActionDone', {popup: popup, action: action, smType: smType});
|
494 |
}
|
495 |
function _ppsPopupAddStat( popup, action, smType, isUnique ) {
|
496 |
-
if(popup && popup.params && popup.params.tpl.dsbl_stats) // Stats is disabled
|
497 |
-
return;
|
498 |
jQuery.sendFormPps({
|
499 |
msgElID: 'noMessages'
|
500 |
, data: {mod: 'statistics', action: 'add', id: popup.id, type: action, sm_type: smType, is_unique: isUnique, 'connect_hash': popup.connect_hash}
|
@@ -591,10 +580,8 @@ function _ppsIframesForReload(params) {
|
|
591 |
if(shell.find('iframe')) {
|
592 |
shell.find('iframe').each(function(){
|
593 |
var src = jQuery(this).attr('src');
|
594 |
-
if(src) {
|
595 |
-
|
596 |
-
this.src = this.src; // Reoad iframe
|
597 |
-
}
|
598 |
}
|
599 |
});
|
600 |
}
|
1 |
var g_ppsWindowLoaded = false
|
2 |
, g_ppsIsPageCached = false
|
3 |
, g_ppsIsPageCachedChecked = false
|
4 |
+
, g_ppsShowCallbacks = {};
|
|
|
5 |
jQuery(document).ready(function(){
|
6 |
if(typeof(ppsPopupsFromFooter) !== 'undefined' && ppsPopupsFromFooter && ppsPopupsFromFooter.length) {
|
7 |
ppsPopups = typeof(ppsPopups) === 'undefined' ? [] : ppsPopups;
|
49 |
}
|
50 |
}
|
51 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
function _ppsCheckPopupOnFollowClk( lnk ) {
|
53 |
var href = lnk.href
|
54 |
, hash = lnk.hash
|
89 |
_ppsCheckPopupOnFollowClk( this );
|
90 |
return true;
|
91 |
}
|
|
|
92 |
if(!_ppsPopupBindDelay(popupId, 'show_on_click_on_el_delay', 'show_on_click_on_el_enb_delay')) {
|
93 |
ppsShowPopup( popupId );
|
94 |
}
|
114 |
.attr('title', str_replace(title, matched[0], ''))
|
115 |
.click(function(){
|
116 |
var popupId = jQuery(this).data('popup-id');
|
|
|
117 |
if(!_ppsPopupBindDelay(popupId, 'show_on_click_on_el_delay', 'show_on_click_on_el_enb_delay')) {
|
118 |
ppsShowPopup( popupId );
|
119 |
}
|
484 |
jQuery(document).trigger('ppsAfterPopupsActionDone', {popup: popup, action: action, smType: smType});
|
485 |
}
|
486 |
function _ppsPopupAddStat( popup, action, smType, isUnique ) {
|
|
|
|
|
487 |
jQuery.sendFormPps({
|
488 |
msgElID: 'noMessages'
|
489 |
, data: {mod: 'statistics', action: 'add', id: popup.id, type: action, sm_type: smType, is_unique: isUnique, 'connect_hash': popup.connect_hash}
|
580 |
if(shell.find('iframe')) {
|
581 |
shell.find('iframe').each(function(){
|
582 |
var src = jQuery(this).attr('src');
|
583 |
+
if(src.indexOf('www.google.com/maps/embed') !== -1) {
|
584 |
+
this.src = this.src; // Reoad iframe
|
|
|
|
|
585 |
}
|
586 |
});
|
587 |
}
|
modules/popup/mod.php
CHANGED
@@ -8,8 +8,7 @@ class popupPps extends modulePps {
|
|
8 |
|
9 |
public function init() {
|
10 |
dispatcherPps::addFilter('mainAdminTabs', array($this, 'addAdminTab'));
|
11 |
-
|
12 |
-
add_action($mainCheckActionName, array($this, 'checkPopupShow'));
|
13 |
add_shortcode(PPS_SHORTCODE_CLICK, array($this, 'showPopupOnClick'));
|
14 |
add_action('wp_footer', array($this, 'collectFooterRender'), 0);
|
15 |
add_filter('wp_nav_menu_objects', array($this, 'checkMenuItemsForPopUps'));
|
8 |
|
9 |
public function init() {
|
10 |
dispatcherPps::addFilter('mainAdminTabs', array($this, 'addAdminTab'));
|
11 |
+
add_action('template_redirect', array($this, 'checkPopupShow'));
|
|
|
12 |
add_shortcode(PPS_SHORTCODE_CLICK, array($this, 'showPopupOnClick'));
|
13 |
add_action('wp_footer', array($this, 'collectFooterRender'), 0);
|
14 |
add_filter('wp_nav_menu_objects', array($this, 'checkMenuItemsForPopUps'));
|
modules/popup/views/popup.php
CHANGED
@@ -787,9 +787,6 @@ class popupViewPps extends viewPps {
|
|
787 |
? $popup['params']['tpl']['fb_like_opts'][ $fKey ]
|
788 |
: (isset($fData['def']) ? $fData['def'] : '');
|
789 |
}
|
790 |
-
if(is_array($value)) {
|
791 |
-
$value = implode(',', $value);
|
792 |
-
}
|
793 |
$res .= ' '. $dataKey.'="'. $value. '"';
|
794 |
}
|
795 |
if(isset($popup['params']['tpl']['width']) && !empty($popup['params']['tpl']['width'])) {
|
787 |
? $popup['params']['tpl']['fb_like_opts'][ $fKey ]
|
788 |
: (isset($fData['def']) ? $fData['def'] : '');
|
789 |
}
|
|
|
|
|
|
|
790 |
$res .= ' '. $dataKey.'="'. $value. '"';
|
791 |
}
|
792 |
if(isset($popup['params']['tpl']['width']) && !empty($popup['params']['tpl']['width'])) {
|
modules/statistics/views/tpl/statPopupEditTab.php
CHANGED
@@ -88,16 +88,3 @@
|
|
88 |
<?php } else { ?>
|
89 |
<h4><?php printf(__('You have no statistics for "%s" PopUp for now. Setup its options and wait until users will view it on your site.', PPS_LANG_CODE), $this->popup['label'])?></h4>
|
90 |
<?php }?>
|
91 |
-
<table class="form-table" style="width: auto;">
|
92 |
-
<tr>
|
93 |
-
<th scope="row" style="min-width: 250px;">
|
94 |
-
<?php _e('Disable Statistics', PPS_LANG_CODE)?>
|
95 |
-
<i class="fa fa-question supsystic-tooltip" title="<?php echo esc_html(__('You can disable collecting all statistics at all. This is not recomended, but if you need this - you can do it.', PPS_LANG_CODE))?>"></i>
|
96 |
-
</th>
|
97 |
-
<td>
|
98 |
-
<?php echo htmlPps::checkbox('params[tpl][dsbl_stats]', array(
|
99 |
-
'checked' => (isset($this->popup['params']['tpl']['dsbl_stats']) ? $this->popup['params']['tpl']['dsbl_stats'] : false),
|
100 |
-
))?>
|
101 |
-
</td>
|
102 |
-
</tr>
|
103 |
-
</table>
|
88 |
<?php } else { ?>
|
89 |
<h4><?php printf(__('You have no statistics for "%s" PopUp for now. Setup its options and wait until users will view it on your site.', PPS_LANG_CODE), $this->popup['label'])?></h4>
|
90 |
<?php }?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
7 |
* Author: supsystic.com
|
8 |
* Author URI: https://supsystic.com
|
9 |
**/
|
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.8.8
|
7 |
* Author: supsystic.com
|
8 |
* Author URI: https://supsystic.com
|
9 |
**/
|
readme.txt
CHANGED
@@ -1,46 +1,46 @@
|
|
1 |
=== Popup by Supsystic ===
|
2 |
Contributors: supsystic.com
|
3 |
-
Donate link:
|
4 |
Tags: popup, full screen popup, html popup, wordpress popup, popup contact form, popup builder, modal popup, video popup, youtube popup, social popup, facebook popup, christmas
|
5 |
-
Tested up to: 4.7.
|
6 |
-
Stable tag: 1.
|
7 |
|
8 |
Popup by Supsystic the best way to convert visitors into subscribers, followers & customers. Create any type of popup with preset popup builder templates
|
9 |
|
10 |
== Description ==
|
11 |
|
12 |
-
[Popup by Supsystic](
|
13 |
|
14 |
= Christmas special popup templates pack! =
|
15 |
|
16 |
-
Grab visitors attention with Christmas templates. The highest conversion with positive amotions. More about [Christmas popup templates](
|
17 |
|
18 |
Popup types:
|
19 |
|
20 |
-
* [Subscription / Mail List Building](
|
21 |
-
* [Contact Form](
|
22 |
-
* [Facebook](
|
23 |
-
* [Video](
|
24 |
-
* [Social Buttons](
|
25 |
-
* [Full Screen](
|
26 |
-
* [HTML](
|
27 |
-
* [Notification Bar](
|
28 |
-
* [Age Verivication](
|
29 |
|
30 |
= Main Features =
|
31 |
|
32 |
-
* 30+ Mobile-ready [Popup Templates](
|
33 |
-
* [Popup Placement](
|
34 |
-
* [Popup Triggers](
|
35 |
* Different Popup types. Subscriptions, Contact Form, YouTube Popup, Google Maps, Full Screen, Image Popup, Login/Registration, Age Verification
|
36 |
|
37 |
= More Popup Options =
|
38 |
|
39 |
-
* [Optin, Social and Link Locks](
|
40 |
* Subscription Services Integration (WordPress, MailChimp, Aweber and more)
|
41 |
-
* [A/B Split Tests](
|
42 |
-
* [Real Time Statistic](
|
43 |
-
* [20+ Popup Opening Animations](
|
44 |
|
45 |
= Popup Builder =
|
46 |
|
@@ -54,7 +54,7 @@ In order to make visitors feel comfortable with popup on the site, in our Popup
|
|
54 |
|
55 |
= Layered Popup Style =
|
56 |
|
57 |
-
Lots of first time popup users think where to place popup or at least how to place popuping popup as they want, because everybody understand that popup must be both gentle and appropriate. New technologies of popup builders and methodologies of popup masters inspired us to provide [Layered PopUp Style](
|
58 |
"Layered PopUp Style").
|
59 |
|
60 |
You can find this popup option following the pass: Popup plugin> Create new popup> Design> Popup Location. Here you see gratified Popup Layout with name of the site places for popup to appear.
|
@@ -100,7 +100,7 @@ Locking content with popup builder can be also successfully practised for shops
|
|
100 |
|
101 |
= Popup Plugin Support =
|
102 |
|
103 |
-
Popup Customers Support is the only one tool to help you survive in Popup Plugins World. [Contact us](
|
104 |
|
105 |
= Popup Translations =
|
106 |
|
@@ -181,11 +181,11 @@ To get more popup custom fields in new popup:
|
|
181 |
* The default Popup fields (Name and Email) is stable. New Popup fields created independently in Popup – you can edit or delete in any moment.
|
182 |
|
183 |
Save your New Popup changes to popup purchases.
|
184 |
-
To know more detail of popup fields builder go [here](
|
185 |
|
186 |
= How to add Contact Form into Popup? =
|
187 |
|
188 |
-
Supsystic [PopUp](
|
189 |
|
190 |
Contact Form can be integrated in Popup by several clicks, while this popup builder mix will give you a great popuping result. With Popup plugin Contact Form will fascinate your eyes focus to make you rich popup site owner. Such Popup mutation can be inserted in anywhere on your site. Note, that all Popup functions of will be accessible in your Contact Form. It’s an ideal way for those clients who want to gather the emails of the users, but not popup subscribers.
|
191 |
|
@@ -224,9 +224,9 @@ Yes. Light compliant Popup plugin backup can close the Popup window, just set th
|
|
224 |
|
225 |
== Screenshots ==
|
226 |
|
227 |
-
1. [Christmas popup templates pack](
|
228 |
|
229 |
-
2. Subscription popup templates. All [Popup Examples](
|
230 |
|
231 |
3. Facebook like popup
|
232 |
|
@@ -238,7 +238,7 @@ Yes. Light compliant Popup plugin backup can close the Popup window, just set th
|
|
238 |
|
239 |
7. Social Buttons and contact form with popup
|
240 |
|
241 |
-
8. [Popup WordPress plugin](
|
242 |
|
243 |
== Other Notes ==
|
244 |
|
@@ -279,25 +279,6 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
|
|
279 |
|
280 |
== Changelog ==
|
281 |
|
282 |
-
= 1.9.1 / 11.04.2017
|
283 |
-
* ActiveCampaign - fix Tags functionality
|
284 |
-
* Minor issues fix
|
285 |
-
* Code improvements
|
286 |
-
|
287 |
-
= 1.9.0 / 23.03.2017
|
288 |
-
* Possibility to show PopUp right near clicked element (or any other element on page)
|
289 |
-
* Small code improvements
|
290 |
-
* Access module improvements
|
291 |
-
* Compatibility with other WordPress plugins, that modify/remove iCheck library
|
292 |
-
* Compatibility with plugins/themes/WordPress setup when WP_USE_THEMES is not defined, or defined as "false"
|
293 |
-
|
294 |
-
= 1.8.9 / 14.03.2017
|
295 |
-
* Updated PHP Mailer library to latest version
|
296 |
-
* Fix issues with some Facebook PopUp settings output
|
297 |
-
* Possibility to disable PopUp Statistics
|
298 |
-
* Fix possible issue with iframe without src in PopUp
|
299 |
-
* Minor fix for SendGrid updated API integration
|
300 |
-
|
301 |
= 1.8.8 / 21.02.2017
|
302 |
* Featured plugins updated - added Membership plugin
|
303 |
* Minor issues fix
|
@@ -352,7 +333,7 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
|
|
352 |
* Forgot Password link for Login PopUps functionality added
|
353 |
|
354 |
= 1.8.2 / 29.11.2016 =
|
355 |
-
* Added [Christmas popup templates pack](
|
356 |
* Minor issues fix
|
357 |
|
358 |
= 1.8.1 / 23.11.2016 =
|
@@ -800,7 +781,7 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
|
|
800 |
* Added new template "Girl"
|
801 |
* Added Italian language
|
802 |
* Fix of English language strings in the plugin code
|
803 |
-
* Fix Custom Subscribe fields for Aweber - PRO
|
804 |
* Fix Name field submit for MailChimp (added full value in submit request - with First Name and Last Name)
|
805 |
* Correct translations for plugin Settings admin tab
|
806 |
* Added hide for IPs list functionality
|
@@ -892,10 +873,10 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
|
|
892 |
* Fixed popup conflict with Twig autoloaded re-defining in other plugins or themes
|
893 |
* Facebook PopUp - correct language detection
|
894 |
* Correct displaying usual embed iframes with Google Maps in PopUp
|
895 |
-
* PRO popup - added options: Close only after action, after time passed -
|
896 |
-
* PRO popup - added options: Show at the bottom of the page, after Inactivity, after User Comment option, after Purchasing (Checkout) -
|
897 |
-
* PRO popup - Possibility to subscribe with Facebook -
|
898 |
-
* PRO popup - Possibility to set user role for plugin usage (not just admin) -
|
899 |
* Some popup minor spelling issues fix
|
900 |
* Core popup code improvements
|
901 |
|
@@ -939,7 +920,7 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
|
|
939 |
* Added popup link to documentation about usage code - HTML and CSS - editor
|
940 |
* Correct popup process shortcode from any place (not only from post/page content) - sidebars, external themes/plugins, etc.
|
941 |
* Minor fixes for base templates
|
942 |
-
* PRO - On Exit functionality integration -
|
943 |
* Fix issue - with multiple time showing when "On Click" mode is enabled and animation is added
|
944 |
* Added usual posts to list where show or not popup
|
945 |
|
@@ -965,9 +946,9 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
|
|
965 |
* Main PopUp edit tabs sticky functionality - make it work with some standard notifications
|
966 |
* Show PopUp label always on top of edit tabs on PopUp edit screen - more user-friendly
|
967 |
* Option to show PopUp - after scroll window - right after scroll or with delay
|
968 |
-
* Layered popup integration -
|
969 |
* Additional popup modification for "Click On" show mode - to make sure it work with more content editor systems
|
970 |
-
* A/B popup testing - tests should stay tests even after whole design change - fixed -
|
971 |
* Admin popup list table - do not stick header line (call too much problems and don't need this)
|
972 |
* Correct show popup on mobile devices - every size, every type
|
973 |
* Fix sticky edit PopUp tabs scroll position
|
1 |
=== Popup by Supsystic ===
|
2 |
Contributors: supsystic.com
|
3 |
+
Donate link: http://supsystic.com/plugins/popup-plugin
|
4 |
Tags: popup, full screen popup, html popup, wordpress popup, popup contact form, popup builder, modal popup, video popup, youtube popup, social popup, facebook popup, christmas
|
5 |
+
Tested up to: 4.7.2
|
6 |
+
Stable tag: 1.8.8
|
7 |
|
8 |
Popup by Supsystic the best way to convert visitors into subscribers, followers & customers. Create any type of popup with preset popup builder templates
|
9 |
|
10 |
== Description ==
|
11 |
|
12 |
+
[Popup by Supsystic](http://supsystic.com/plugins/popup-plugin?utm_source=wordpress&utm_medium=description&utm_campaign=popup "Popup WordPress Plugin") get more newsletter subscribers, promote new products, deliver special offers anf get more social followers.
|
13 |
|
14 |
= Christmas special popup templates pack! =
|
15 |
|
16 |
+
Grab visitors attention with Christmas templates. The highest conversion with positive amotions. More about [Christmas popup templates](http://supsystic.com/blog/christmas-popup-templates-pack "Christmas popup templates").
|
17 |
|
18 |
Popup types:
|
19 |
|
20 |
+
* [Subscription / Mail List Building](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_127 "Mail List Building Popup")
|
21 |
+
* [Contact Form](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_206 "Contact Form Popup")
|
22 |
+
* [Facebook](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_104 "Facebook Popup")
|
23 |
+
* [Video](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_103 "Video Popup")
|
24 |
+
* [Social Buttons](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_186 "Social Buttons Popup")
|
25 |
+
* [Full Screen](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_157 "Full Screen Popup")
|
26 |
+
* [HTML](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_208 "HTML Popup")
|
27 |
+
* [Notification Bar](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_157 "Notification Bar")
|
28 |
+
* [Age Verivication](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_158 "Age Verification Popup")
|
29 |
|
30 |
= Main Features =
|
31 |
|
32 |
+
* 30+ Mobile-ready [Popup Templates](http://supsystic.com/popup-examples/ "WordPress Plugin Popup Templates")
|
33 |
+
* [Popup Placement](http://supsystic.com/popup-placement/ "Popup Placement"). Modal Popup, Fullscreen Popup, Info Bar, Fly-in, Slide In Popup
|
34 |
+
* [Popup Triggers](http://supsystic.com/displaying-popup-configuration/ "Popup Triggers"). When to show / close popup, whom to show, show on next pages, time to display
|
35 |
* Different Popup types. Subscriptions, Contact Form, YouTube Popup, Google Maps, Full Screen, Image Popup, Login/Registration, Age Verification
|
36 |
|
37 |
= More Popup Options =
|
38 |
|
39 |
+
* [Optin, Social and Link Locks](http://supsystic.com/lock-content/ "Content Lock")
|
40 |
* Subscription Services Integration (WordPress, MailChimp, Aweber and more)
|
41 |
+
* [A/B Split Tests](http://supsystic.com/what-is-ab-testing/ "A / B Split Test")
|
42 |
+
* [Real Time Statistic](http://supsystic.com/statistics/ "Real Time Popup Statistic")
|
43 |
+
* [20+ Popup Opening Animations](http://supsystic.com/popup-opening-animations/ "Popup Openin Animation")
|
44 |
|
45 |
= Popup Builder =
|
46 |
|
54 |
|
55 |
= Layered Popup Style =
|
56 |
|
57 |
+
Lots of first time popup users think where to place popup or at least how to place popuping popup as they want, because everybody understand that popup must be both gentle and appropriate. New technologies of popup builders and methodologies of popup masters inspired us to provide [Layered PopUp Style]( http://supsystic.com/popup-placement/
|
58 |
"Layered PopUp Style").
|
59 |
|
60 |
You can find this popup option following the pass: Popup plugin> Create new popup> Design> Popup Location. Here you see gratified Popup Layout with name of the site places for popup to appear.
|
100 |
|
101 |
= Popup Plugin Support =
|
102 |
|
103 |
+
Popup Customers Support is the only one tool to help you survive in Popup Plugins World. [Contact us](http://supsystic.com/plugins/popup-plugin?utm_source=wordpress&utm_medium=contactus&utm_campaign=popup "Contact Us"), if your Popup Lifes come down or you need a Powerful Popup Advice from experienced Popup Backing Masters and your dreams come true!
|
104 |
|
105 |
= Popup Translations =
|
106 |
|
181 |
* The default Popup fields (Name and Email) is stable. New Popup fields created independently in Popup – you can edit or delete in any moment.
|
182 |
|
183 |
Save your New Popup changes to popup purchases.
|
184 |
+
To know more detail of popup fields builder go [here](http://supsystic.com/subscribe-custom-fields-builder/ "here").
|
185 |
|
186 |
= How to add Contact Form into Popup? =
|
187 |
|
188 |
+
Supsystic [PopUp](http://http//supsystic.com/plugins/popup-plugin/ "PopUp") and [Contact Form](http://http//supsystic.com/plugins/contact-form-plugin/ "Contact Form") are lightly customizable. Beginners and Seniors will find advantages like user-friendly interface and a great number of functionality.
|
189 |
|
190 |
Contact Form can be integrated in Popup by several clicks, while this popup builder mix will give you a great popuping result. With Popup plugin Contact Form will fascinate your eyes focus to make you rich popup site owner. Such Popup mutation can be inserted in anywhere on your site. Note, that all Popup functions of will be accessible in your Contact Form. It’s an ideal way for those clients who want to gather the emails of the users, but not popup subscribers.
|
191 |
|
224 |
|
225 |
== Screenshots ==
|
226 |
|
227 |
+
1. [Christmas popup templates pack](http://supsystic.com/blog/christmas-popup-templates-pack "Christmas popup templates")
|
228 |
|
229 |
+
2. Subscription popup templates. All [Popup Examples](http://supsystic.com/popup-examples?utm_source=wordpress&utm_medium=second_screenshot&utm_campaign=popup "Popup Examples")
|
230 |
|
231 |
3. Facebook like popup
|
232 |
|
238 |
|
239 |
7. Social Buttons and contact form with popup
|
240 |
|
241 |
+
8. [Popup WordPress plugin](http://supsystic.com/plugins/popup-plugin?utm_source=wordpress&utm_medium=first_screenshot&utm_campaign=popup "Popup WordPress plugin")
|
242 |
|
243 |
== Other Notes ==
|
244 |
|
279 |
|
280 |
== Changelog ==
|
281 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
282 |
= 1.8.8 / 21.02.2017
|
283 |
* Featured plugins updated - added Membership plugin
|
284 |
* Minor issues fix
|
333 |
* Forgot Password link for Login PopUps functionality added
|
334 |
|
335 |
= 1.8.2 / 29.11.2016 =
|
336 |
+
* Added [Christmas popup templates pack](http://supsystic.com/blog/christmas-popup-templates-pack "Christmas popup templates")
|
337 |
* Minor issues fix
|
338 |
|
339 |
= 1.8.1 / 23.11.2016 =
|
781 |
* Added new template "Girl"
|
782 |
* Added Italian language
|
783 |
* Fix of English language strings in the plugin code
|
784 |
+
* Fix Custom Subscribe fields for Aweber - PRO http://supsystic.com/plugins/popup-plugin/
|
785 |
* Fix Name field submit for MailChimp (added full value in submit request - with First Name and Last Name)
|
786 |
* Correct translations for plugin Settings admin tab
|
787 |
* Added hide for IPs list functionality
|
873 |
* Fixed popup conflict with Twig autoloaded re-defining in other plugins or themes
|
874 |
* Facebook PopUp - correct language detection
|
875 |
* Correct displaying usual embed iframes with Google Maps in PopUp
|
876 |
+
* PRO popup - added options: Close only after action, after time passed - http://supsystic.com/plugins/popup-plugin/
|
877 |
+
* PRO popup - added options: Show at the bottom of the page, after Inactivity, after User Comment option, after Purchasing (Checkout) - http://supsystic.com/plugins/popup-plugin/
|
878 |
+
* PRO popup - Possibility to subscribe with Facebook - http://supsystic.com/plugins/popup-plugin/
|
879 |
+
* PRO popup - Possibility to set user role for plugin usage (not just admin) - http://supsystic.com/plugins/popup-plugin/
|
880 |
* Some popup minor spelling issues fix
|
881 |
* Core popup code improvements
|
882 |
|
920 |
* Added popup link to documentation about usage code - HTML and CSS - editor
|
921 |
* Correct popup process shortcode from any place (not only from post/page content) - sidebars, external themes/plugins, etc.
|
922 |
* Minor fixes for base templates
|
923 |
+
* PRO - On Exit functionality integration - http://supsystic.com/plugins/popup-plugin/
|
924 |
* Fix issue - with multiple time showing when "On Click" mode is enabled and animation is added
|
925 |
* Added usual posts to list where show or not popup
|
926 |
|
946 |
* Main PopUp edit tabs sticky functionality - make it work with some standard notifications
|
947 |
* Show PopUp label always on top of edit tabs on PopUp edit screen - more user-friendly
|
948 |
* Option to show PopUp - after scroll window - right after scroll or with delay
|
949 |
+
* Layered popup integration - http://supsystic.com/plugins/popup-plugin/
|
950 |
* Additional popup modification for "Click On" show mode - to make sure it work with more content editor systems
|
951 |
+
* A/B popup testing - tests should stay tests even after whole design change - fixed - http://supsystic.com/plugins/popup-plugin/
|
952 |
* Admin popup list table - do not stick header line (call too much problems and don't need this)
|
953 |
* Correct show popup on mobile devices - every size, every type
|
954 |
* Fix sticky edit PopUp tabs scroll position
|