Ad Inserter – WordPress Ads Management with AdSense Header Integration - Version 2.6.15

Version Description

  • No ad blocking detection actions for crawlers and bots
  • Fix for processing Ad Inserter shortcodes inside HTML tags
  • Few minor bug fixes, cosmetic changes and code improvements
Download this release

Release Info

Developer spacetime
Plugin Icon 128x128 Ad Inserter – WordPress Ads Management with AdSense Header Integration
Version 2.6.15
Comparing to
See all releases

Code changes from version 2.6.14 to 2.6.15

ad-inserter.php CHANGED
@@ -2,19 +2,26 @@
2
 
3
  /*
4
  Plugin Name: Ad Inserter
5
- Version: 2.6.14
6
  Description: Ad management with many advanced advertising features to insert ads at optimal positions
7
  Author: Igor Funa
8
  Author URI: http://igorfuna.com/
9
  Plugin URI: https://adinserter.pro/documentation
10
  Text Domain: ad-inserter
11
  Domain Path: /languages
 
 
12
  */
13
 
14
  /*
15
 
16
  Change Log
17
 
 
 
 
 
 
18
  Ad Inserter 2.6.14 - 2020-09-07
19
  - Added support to insert [embed] shortcodes
20
  - Few minor bug fixes, cosmetic changes and code improvements
@@ -2357,7 +2364,8 @@ function ai_get_js ($js_name, $replace_js_data = true) {
2357
  $script = @file_get_contents (AD_INSERTER_PLUGIN_DIR."includes/js/$js_name.js");
2358
  } else $script = @file_get_contents (AD_INSERTER_PLUGIN_DIR."includes/js/$js_name.min.js");
2359
  if (!$replace_js_data) return $script;
2360
- return ai_replace_js_data ($script, $js_name);
 
2361
  }
2362
 
2363
  function ai_randomize_properties ($style, $z_index_min = null, $z_index_max = null) {
@@ -2756,8 +2764,8 @@ function add_footer_inline_scripts () {
2756
  echo ai_get_js ('ai-rotation');
2757
  }
2758
  // VIEWPORT separators or CHECK viewport
2759
- if ($client_side_dynamic_blocks || $ai_wp_data [AI_CLIENT_SIDE_DETECTION] || $ai_wp_data [AI_CLIENT_SIDE_INSERTION]) {
2760
- if ($ai_wp_data [AI_MOBILE_DETECT_JS]) {
2761
  echo ai_get_js ('ai-mobile-detect');
2762
  }
2763
  echo ai_get_js ('ai-lists');
@@ -3375,7 +3383,9 @@ function ai_wp_head_hook () {
3375
  }
3376
  }
3377
 
3378
- if (!get_disable_js_code () && ($ai_wp_data [AI_WP_DEBUGGING] & (AI_DEBUG_POSITIONS | AI_DEBUG_BLOCKS)) != 0 || (isset ($_GET [AI_URL_DEBUG_PROCESSING_FE]) && $_GET [AI_URL_DEBUG_PROCESSING_FE] != 0)) {
 
 
3379
  echo "<script>\n", ai_get_js ('ai-errors-head', false), "</script>\n";
3380
  }
3381
 
@@ -3709,7 +3719,10 @@ function ai_wp_footer_hook () {
3709
  echo get_code_debug_block (' ' . __('Footer code', 'ad-inserter') . ' ' . ($footer->get_enable_manual () ? '' : ' ' . _x('DISABLED', 'Footer code', 'ad-inserter')), '...&lt;/body&gt;', strlen ($footer_code).' ' . _n('character inserted', 'characters inserted', strlen ($footer_code), 'ad-inserter'), $footer->ai_getCode (), $footer_code);
3710
  }
3711
 
3712
- if (!get_disable_js_code () && ($ai_wp_data [AI_WP_DEBUGGING] & (AI_DEBUG_POSITIONS | AI_DEBUG_BLOCKS)) != 0 || (isset ($_GET [AI_URL_DEBUG_PROCESSING_FE]) && $_GET [AI_URL_DEBUG_PROCESSING_FE] != 0)) {
 
 
 
3713
  $class_0 = AI_DEBUG_STATUS_CLASS.' status-error';
3714
  $class_1 = AI_DEBUG_STATUS_CLASS.' status-ok';
3715
  $javascript_text = "<section class='ai-js-0 $class_0'>" . __('JAVASCRIPT NOT WORKING', 'ad-inserter') . "</section><section class='ai-js-1 $class_1' style='display: none;'>" . __('NO JAVASCRIPT ERRORS', 'ad-inserter') . "</section><section class='ai-js-2 $class_0' style='display: none;'>" . __('JAVASCRIPT ERRORS', 'ad-inserter') . "</section>";
@@ -3799,7 +3812,9 @@ function ai_amp_footer_hook () {
3799
  echo get_page_type_debug_info ('AMP ') , "\n";
3800
  }
3801
 
3802
- if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0 && isset ($_GET [AI_URL_DEBUG_PROCESSING_FE]) && $_GET [AI_URL_DEBUG_PROCESSING_FE] != 0) {
 
 
3803
  echo "\n<pre class='ai-processing-log'>\n\n";
3804
  ai_write_debug_info (true);
3805
  echo "\n</pre>\n";
@@ -9986,6 +10001,14 @@ function ai_process_viewport_separators ($code, $viewport_shortcode_data) {
9986
  function replace_ai_tags ($content, $general_tag = '') {
9987
  global $ai_wp_data;
9988
 
 
 
 
 
 
 
 
 
9989
  if (strpos ($content, '{') === false) return $content;
9990
 
9991
  if (isset ($ai_wp_data [AI_SHORTCODES]['atts']) && is_array ($ai_wp_data [AI_SHORTCODES]['atts']) && !empty ($ai_wp_data [AI_SHORTCODES]['atts'])) {
@@ -10088,8 +10111,10 @@ function replace_ai_tags ($content, $general_tag = '') {
10088
  $wp_categories = get_the_category();
10089
  if (!empty ($wp_categories)) {
10090
  foreach ($wp_categories as $single_category) {
10091
- $categories_array [] = str_replace (array ("&amp;", "#"), array ("and", ""), isset ($single_category->name) ? $single_category->name : '');
10092
- $category_slugs_array [] = $single_category->slug;
 
 
10093
  }
10094
 
10095
  $categories = implode (',', $categories_array);
2
 
3
  /*
4
  Plugin Name: Ad Inserter
5
+ Version: 2.6.15
6
  Description: Ad management with many advanced advertising features to insert ads at optimal positions
7
  Author: Igor Funa
8
  Author URI: http://igorfuna.com/
9
  Plugin URI: https://adinserter.pro/documentation
10
  Text Domain: ad-inserter
11
  Domain Path: /languages
12
+ Requires at least: 4.6
13
+ Requires PHP: 5.6
14
  */
15
 
16
  /*
17
 
18
  Change Log
19
 
20
+ Ad Inserter 2.6.15 - 2020-10-02
21
+ - No ad blocking detection actions for crawlers and bots
22
+ - Fix for processing Ad Inserter shortcodes inside HTML tags
23
+ - Few minor bug fixes, cosmetic changes and code improvements
24
+
25
  Ad Inserter 2.6.14 - 2020-09-07
26
  - Added support to insert [embed] shortcodes
27
  - Few minor bug fixes, cosmetic changes and code improvements
2364
  $script = @file_get_contents (AD_INSERTER_PLUGIN_DIR."includes/js/$js_name.js");
2365
  } else $script = @file_get_contents (AD_INSERTER_PLUGIN_DIR."includes/js/$js_name.min.js");
2366
  if (!$replace_js_data) return $script;
2367
+ // return ai_replace_js_data ($script, $js_name);
2368
+ return ai_replace_js_data ($script);
2369
  }
2370
 
2371
  function ai_randomize_properties ($style, $z_index_min = null, $z_index_max = null) {
2764
  echo ai_get_js ('ai-rotation');
2765
  }
2766
  // VIEWPORT separators or CHECK viewport
2767
+ if ($client_side_dynamic_blocks || $ai_wp_data [AI_CLIENT_SIDE_DETECTION] || $ai_wp_data [AI_CLIENT_SIDE_INSERTION] || $adb_code) {
2768
+ if ($ai_wp_data [AI_MOBILE_DETECT_JS] || $adb_code) {
2769
  echo ai_get_js ('ai-mobile-detect');
2770
  }
2771
  echo ai_get_js ('ai-lists');
3383
  }
3384
  }
3385
 
3386
+ if (!get_disable_js_code () &&
3387
+ (get_remote_debugging () || ($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0) &&
3388
+ (($ai_wp_data [AI_WP_DEBUGGING] & (AI_DEBUG_POSITIONS | AI_DEBUG_BLOCKS)) != 0 || (isset ($_GET [AI_URL_DEBUG_PROCESSING_FE]) && $_GET [AI_URL_DEBUG_PROCESSING_FE] != 0))) {
3389
  echo "<script>\n", ai_get_js ('ai-errors-head', false), "</script>\n";
3390
  }
3391
 
3719
  echo get_code_debug_block (' ' . __('Footer code', 'ad-inserter') . ' ' . ($footer->get_enable_manual () ? '' : ' ' . _x('DISABLED', 'Footer code', 'ad-inserter')), '...&lt;/body&gt;', strlen ($footer_code).' ' . _n('character inserted', 'characters inserted', strlen ($footer_code), 'ad-inserter'), $footer->ai_getCode (), $footer_code);
3720
  }
3721
 
3722
+ if (!get_disable_js_code () &&
3723
+ (get_remote_debugging () || ($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0) &&
3724
+ (($ai_wp_data [AI_WP_DEBUGGING] & (AI_DEBUG_POSITIONS | AI_DEBUG_BLOCKS)) != 0 || (isset ($_GET [AI_URL_DEBUG_PROCESSING_FE]) && $_GET [AI_URL_DEBUG_PROCESSING_FE] != 0))) {
3725
+
3726
  $class_0 = AI_DEBUG_STATUS_CLASS.' status-error';
3727
  $class_1 = AI_DEBUG_STATUS_CLASS.' status-ok';
3728
  $javascript_text = "<section class='ai-js-0 $class_0'>" . __('JAVASCRIPT NOT WORKING', 'ad-inserter') . "</section><section class='ai-js-1 $class_1' style='display: none;'>" . __('NO JAVASCRIPT ERRORS', 'ad-inserter') . "</section><section class='ai-js-2 $class_0' style='display: none;'>" . __('JAVASCRIPT ERRORS', 'ad-inserter') . "</section>";
3812
  echo get_page_type_debug_info ('AMP ') , "\n";
3813
  }
3814
 
3815
+ if ((get_remote_debugging () || ($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0) &&
3816
+ ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0 &&
3817
+ isset ($_GET [AI_URL_DEBUG_PROCESSING_FE]) && $_GET [AI_URL_DEBUG_PROCESSING_FE] != 0) {
3818
  echo "\n<pre class='ai-processing-log'>\n\n";
3819
  ai_write_debug_info (true);
3820
  echo "\n</pre>\n";
10001
  function replace_ai_tags ($content, $general_tag = '') {
10002
  global $ai_wp_data;
10003
 
10004
+ if (preg_match_all ('#[ADINSERTER (.+)]#i', $content, $matches)) {
10005
+ if (count ($matches [0])) {
10006
+ foreach ($matches [0] as $match) {
10007
+ $content = str_replace ($match, do_shortcode ($match), $content);
10008
+ }
10009
+ }
10010
+ }
10011
+
10012
  if (strpos ($content, '{') === false) return $content;
10013
 
10014
  if (isset ($ai_wp_data [AI_SHORTCODES]['atts']) && is_array ($ai_wp_data [AI_SHORTCODES]['atts']) && !empty ($ai_wp_data [AI_SHORTCODES]['atts'])) {
10111
  $wp_categories = get_the_category();
10112
  if (!empty ($wp_categories)) {
10113
  foreach ($wp_categories as $single_category) {
10114
+ if (isset ($single_category->slug)) {
10115
+ $categories_array [] = str_replace (array ("&amp;", "#"), array ("and", ""), isset ($single_category->name) ? $single_category->name : '');
10116
+ $category_slugs_array [] = $single_category->slug;
10117
+ }
10118
  }
10119
 
10120
  $categories = implode (',', $categories_array);
class.php CHANGED
@@ -3069,8 +3069,11 @@ abstract class ai_CodeBlock extends ai_BaseCodeBlock {
3069
  unset ($ai_wp_data [AI_SHORTCODES]['viewport']);
3070
 
3071
  $ai_wp_data [AI_CURRENT_BLOCK_NUMBER] = $this->number;
 
3072
  // $code = $this->replace_ai_tags (do_shortcode ($this->ai_getCode (), true)); // Does not expand shortcodes inside HTML <div id='div-gpt-ad-1234567890-[ADINSERTER counter="block"]'>
3073
- $ai_code = str_replace ('<', '<ad-inserter-dummy-tag>', $this->ai_getCode ());
 
 
3074
 
3075
  $replace_embed = false;
3076
  if (stripos ($ai_code, 'embed]') !== false) {
@@ -3079,7 +3082,7 @@ abstract class ai_CodeBlock extends ai_BaseCodeBlock {
3079
  $ai_code = str_ireplace (array ('[embed]', '[/embed]'), array ('[#embed#]', '[#/embed#]'), $ai_code);
3080
  }
3081
 
3082
- $code = replace_ai_tags (do_shortcode ($ai_code), $this->get_ad_general_tag());
3083
 
3084
  if ($replace_embed) {
3085
  $code = str_ireplace (array ('[#embed#]', '[#/embed#]'), array ('[embed]', '[/embed]'), $code);
@@ -3087,7 +3090,7 @@ abstract class ai_CodeBlock extends ai_BaseCodeBlock {
3087
  $code = $GLOBALS[ 'wp_embed']->run_shortcode ($code);
3088
  }
3089
 
3090
- $code = str_replace ('<ad-inserter-dummy-tag>', '<', $code);
3091
 
3092
  unset ($ai_wp_data [AI_CURRENT_BLOCK_NUMBER]);
3093
 
@@ -4672,11 +4675,11 @@ abstract class ai_CodeBlock extends ai_BaseCodeBlock {
4672
  elseif ($viewports_insertion && $html_element_insertion) {
4673
  $this->counters = '<span class="ai-selector-counter"></span>';
4674
  $block_code = $this->base64_encode_w3tc (ai_strip_js_markers ($this->get_code_for_insertion ($include_viewport_classes, $hidden_widgets, $code_only)));
4675
- $selector = $this->get_html_selector (true);
4676
  $viewport_classes = trim ($this->get_viewport_classes ());
4677
 
4678
  $serverside_insertion_code = "<div class='ai-viewports $viewport_classes $block_id' data-insertion='$insertion' data-selector='$selector' data-code='[#AI_CODE#]' data-block='{$this->number}'></div>\n";
4679
- if (!get_disable_js_code ()) {
4680
  // Try to insert it immediately. If the code is server-side inserted before the HTML element, it will be client-side inserted after DOM ready (remaining .ai-viewports)
4681
  $js_code = "ai_insert_viewport_code ('$block_id');";
4682
  $js_code = $this->ai_check_wait_for ($js_code);
@@ -4686,10 +4689,10 @@ abstract class ai_CodeBlock extends ai_BaseCodeBlock {
4686
  else { // only HTML element insertion
4687
  $this->counters = '<span class="ai-selector-counter"></span>';
4688
  $block_code = $this->base64_encode_w3tc (ai_strip_js_markers ($this->get_code_for_insertion ($include_viewport_classes, $hidden_widgets, $code_only)));
4689
- $selector = $this->get_html_selector (true);
4690
 
4691
  $serverside_insertion_code = '';
4692
- if (!get_disable_js_code ()) {
4693
  $js_code = "ai_insert ('$insertion', '$selector', b64d ('[#AI_CODE#]'));";
4694
  $js_code = $this->ai_check_wait_for ($js_code);
4695
  $serverside_insertion_code .= $this->ai_js_dom_ready ($js_code);
@@ -7378,37 +7381,39 @@ echo '</body>
7378
  $cats_listed = explode (",", $categories);
7379
 
7380
  foreach ($wp_categories as $wp_category) {
7381
- foreach ($cats_listed as $cat_disabled){
7382
 
7383
- $check_parent = true;
7384
- $check_childern = false;
7385
 
7386
- $cat_disabled = trim ($cat_disabled);
7387
- if (substr ($cat_disabled, - 1) == '*') {
7388
- $check_childern = true;
7389
- $cat_disabled = rtrim ($cat_disabled, '*');
7390
- }
7391
- elseif (substr ($cat_disabled, - 1) == '+') {
7392
- $check_parent = false;
7393
- $check_childern = true;
7394
- $cat_disabled = rtrim ($cat_disabled, '+');
7395
- }
 
 
 
7396
 
7397
- $wp_category_name = strtolower ($wp_category->cat_name);
7398
- $wp_category_slug = strtolower ($wp_category->slug);
7399
 
7400
- if ($check_parent) {
7401
- if ($wp_category_name == $cat_disabled || $wp_category_slug == $cat_disabled) {
7402
- return false;
 
7403
  }
7404
- }
7405
 
7406
- if ($check_childern) {
7407
- if (ai_post_is_in_child_categories ($cat_disabled)) {
7408
- return false;
 
7409
  }
7410
  }
7411
- }
7412
  }
7413
  return true;
7414
 
@@ -7419,39 +7424,40 @@ echo '</body>
7419
  $cats_listed = explode (",", $categories);
7420
 
7421
  foreach ($wp_categories as $wp_category) {
7422
- foreach ($cats_listed as $cat_enabled) {
7423
 
7424
- $check_parent = true;
7425
- $check_childern = false;
7426
 
7427
- $cat_enabled = trim ($cat_enabled);
 
7428
 
7429
- if (substr ($cat_enabled, - 1) == '*') {
7430
- $check_childern = true;
7431
- $cat_enabled = rtrim ($cat_enabled, '*');
7432
- }
7433
- elseif (substr ($cat_enabled, - 1) == '+') {
7434
- $check_parent = false;
7435
- $check_childern = true;
7436
- $cat_enabled = rtrim ($cat_enabled, '+');
7437
- }
7438
 
7439
- $wp_category_name = strtolower ($wp_category->cat_name);
7440
- $wp_category_slug = strtolower ($wp_category->slug);
 
 
 
 
 
 
 
7441
 
7442
- if ($check_parent) {
7443
- if ($wp_category_name == $cat_enabled || $wp_category_slug == $cat_enabled) {
7444
- return true;
 
 
 
 
7445
  }
7446
- }
7447
 
7448
- if ($check_childern) {
7449
- if (ai_post_is_in_child_categories ($cat_enabled)) {
7450
- return true;
 
7451
  }
7452
  }
7453
-
7454
- }
7455
  }
7456
  return false;
7457
  }
3069
  unset ($ai_wp_data [AI_SHORTCODES]['viewport']);
3070
 
3071
  $ai_wp_data [AI_CURRENT_BLOCK_NUMBER] = $this->number;
3072
+
3073
  // $code = $this->replace_ai_tags (do_shortcode ($this->ai_getCode (), true)); // Does not expand shortcodes inside HTML <div id='div-gpt-ad-1234567890-[ADINSERTER counter="block"]'>
3074
+ // $ai_code = do_shortcode ($this->ai_getCode (), true); // Does not expand shortcodes inside HTML <div id='div-gpt-ad-1234567890-[ADINSERTER counter="block"]'>
3075
+ // $ai_code = str_replace ('<', '<ad-inserter-dummy-tag>', $ai_code); // Causes issues with [su_list] shortcodes
3076
+ $ai_code = $this->ai_getCode ();
3077
 
3078
  $replace_embed = false;
3079
  if (stripos ($ai_code, 'embed]') !== false) {
3082
  $ai_code = str_ireplace (array ('[embed]', '[/embed]'), array ('[#embed#]', '[#/embed#]'), $ai_code);
3083
  }
3084
 
3085
+ $code = do_shortcode (replace_ai_tags ($ai_code, $this->get_ad_general_tag()));
3086
 
3087
  if ($replace_embed) {
3088
  $code = str_ireplace (array ('[#embed#]', '[#/embed#]'), array ('[embed]', '[/embed]'), $code);
3090
  $code = $GLOBALS[ 'wp_embed']->run_shortcode ($code);
3091
  }
3092
 
3093
+ // $code = str_replace ('<ad-inserter-dummy-tag>', '<', $code);
3094
 
3095
  unset ($ai_wp_data [AI_CURRENT_BLOCK_NUMBER]);
3096
 
4675
  elseif ($viewports_insertion && $html_element_insertion) {
4676
  $this->counters = '<span class="ai-selector-counter"></span>';
4677
  $block_code = $this->base64_encode_w3tc (ai_strip_js_markers ($this->get_code_for_insertion ($include_viewport_classes, $hidden_widgets, $code_only)));
4678
+ $selector = trim ($this->get_html_selector (true));
4679
  $viewport_classes = trim ($this->get_viewport_classes ());
4680
 
4681
  $serverside_insertion_code = "<div class='ai-viewports $viewport_classes $block_id' data-insertion='$insertion' data-selector='$selector' data-code='[#AI_CODE#]' data-block='{$this->number}'></div>\n";
4682
+ if (!empty ($selector) && !get_disable_js_code ()) {
4683
  // Try to insert it immediately. If the code is server-side inserted before the HTML element, it will be client-side inserted after DOM ready (remaining .ai-viewports)
4684
  $js_code = "ai_insert_viewport_code ('$block_id');";
4685
  $js_code = $this->ai_check_wait_for ($js_code);
4689
  else { // only HTML element insertion
4690
  $this->counters = '<span class="ai-selector-counter"></span>';
4691
  $block_code = $this->base64_encode_w3tc (ai_strip_js_markers ($this->get_code_for_insertion ($include_viewport_classes, $hidden_widgets, $code_only)));
4692
+ $selector = trim ($this->get_html_selector (true));
4693
 
4694
  $serverside_insertion_code = '';
4695
+ if (!empty ($selector) && !get_disable_js_code ()) {
4696
  $js_code = "ai_insert ('$insertion', '$selector', b64d ('[#AI_CODE#]'));";
4697
  $js_code = $this->ai_check_wait_for ($js_code);
4698
  $serverside_insertion_code .= $this->ai_js_dom_ready ($js_code);
7381
  $cats_listed = explode (",", $categories);
7382
 
7383
  foreach ($wp_categories as $wp_category) {
 
7384
 
7385
+ if (isset ($wp_category->cat_name) && isset ($wp_category->slug))
7386
+ foreach ($cats_listed as $cat_disabled) {
7387
 
7388
+ $check_parent = true;
7389
+ $check_childern = false;
7390
+
7391
+ $cat_disabled = trim ($cat_disabled);
7392
+ if (substr ($cat_disabled, - 1) == '*') {
7393
+ $check_childern = true;
7394
+ $cat_disabled = rtrim ($cat_disabled, '*');
7395
+ }
7396
+ elseif (substr ($cat_disabled, - 1) == '+') {
7397
+ $check_parent = false;
7398
+ $check_childern = true;
7399
+ $cat_disabled = rtrim ($cat_disabled, '+');
7400
+ }
7401
 
7402
+ $wp_category_name = strtolower ($wp_category->cat_name);
7403
+ $wp_category_slug = strtolower ($wp_category->slug);
7404
 
7405
+ if ($check_parent) {
7406
+ if ($wp_category_name == $cat_disabled || $wp_category_slug == $cat_disabled) {
7407
+ return false;
7408
+ }
7409
  }
 
7410
 
7411
+ if ($check_childern) {
7412
+ if (ai_post_is_in_child_categories ($cat_disabled)) {
7413
+ return false;
7414
+ }
7415
  }
7416
  }
 
7417
  }
7418
  return true;
7419
 
7424
  $cats_listed = explode (",", $categories);
7425
 
7426
  foreach ($wp_categories as $wp_category) {
 
7427
 
7428
+ if (isset ($wp_category->cat_name) && isset ($wp_category->slug))
7429
+ foreach ($cats_listed as $cat_enabled) {
7430
 
7431
+ $check_parent = true;
7432
+ $check_childern = false;
7433
 
7434
+ $cat_enabled = trim ($cat_enabled);
 
 
 
 
 
 
 
 
7435
 
7436
+ if (substr ($cat_enabled, - 1) == '*') {
7437
+ $check_childern = true;
7438
+ $cat_enabled = rtrim ($cat_enabled, '*');
7439
+ }
7440
+ elseif (substr ($cat_enabled, - 1) == '+') {
7441
+ $check_parent = false;
7442
+ $check_childern = true;
7443
+ $cat_enabled = rtrim ($cat_enabled, '+');
7444
+ }
7445
 
7446
+ $wp_category_name = strtolower ($wp_category->cat_name);
7447
+ $wp_category_slug = strtolower ($wp_category->slug);
7448
+
7449
+ if ($check_parent) {
7450
+ if ($wp_category_name == $cat_enabled || $wp_category_slug == $cat_enabled) {
7451
+ return true;
7452
+ }
7453
  }
 
7454
 
7455
+ if ($check_childern) {
7456
+ if (ai_post_is_in_child_categories ($cat_enabled)) {
7457
+ return true;
7458
+ }
7459
  }
7460
  }
 
 
7461
  }
7462
  return false;
7463
  }
constants.php CHANGED
@@ -31,7 +31,7 @@ if (!defined( 'AD_INSERTER_NAME'))
31
  define ('AD_INSERTER_NAME', 'Ad Inserter');
32
 
33
  if (!defined( 'AD_INSERTER_VERSION'))
34
- define ('AD_INSERTER_VERSION', '2.6.14');
35
 
36
  if (!defined ('AD_INSERTER_PLUGIN_BASENAME'))
37
  define ('AD_INSERTER_PLUGIN_BASENAME', plugin_basename (__FILE__));
31
  define ('AD_INSERTER_NAME', 'Ad Inserter');
32
 
33
  if (!defined( 'AD_INSERTER_VERSION'))
34
+ define ('AD_INSERTER_VERSION', '2.6.15');
35
 
36
  if (!defined ('AD_INSERTER_PLUGIN_BASENAME'))
37
  define ('AD_INSERTER_PLUGIN_BASENAME', plugin_basename (__FILE__));
css/ai-settings.css CHANGED
@@ -1,5 +1,5 @@
1
  #ai-data {
2
- font-family: "2.6.14"; /* Used for version number of the file */
3
  }
4
 
5
  #blocked-warning {
@@ -70,7 +70,8 @@ hr {
70
  color: #666;
71
  }
72
 
73
- .ai-button.ui-button.ui-corner-all.ui-widget {
 
74
  padding: 0;
75
  }
76
 
@@ -82,7 +83,7 @@ button.ai-top-button {
82
  padding: 0;
83
  }
84
 
85
- .adsense-list .ui-button-text, .select-image .ui-button-text, iab-ads-txt .ui-button-text{
86
  padding: 0.4em 0.5em;
87
  }
88
 
1
  #ai-data {
2
+ font-family: "2.6.15"; /* Used for version number of the file */
3
  }
4
 
5
  #blocked-warning {
70
  color: #666;
71
  }
72
 
73
+ /*.ai-button.ui-button.ui-corner-all.ui-widget {*/
74
+ .ai-button.ai-button-small.ui-button.ui-corner-all.ui-widget {
75
  padding: 0;
76
  }
77
 
83
  padding: 0;
84
  }
85
 
86
+ .adsense-list .ui-button-text, .select-image .ui-button-text, iab-ads-txt .ui-button-text {
87
  padding: 0.4em 0.5em;
88
  }
89
 
includes/editor.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php
2
 
3
  function ai_editor_media_buttons () {
4
- echo '<button type="button" id="use-button" class="button" style="width: 90px;" title="Use current settings"> ', __('Use', 'ad-inserter'), ' </button>';
5
- echo '<button type="button" id="reset-button" class="button" style="width: 90px;" title="Reset to the saved settings"> ', __('Reset', 'ad-inserter'), ' </button>';
6
- echo '<button type="button" id="cancel-button" class="button" style="width: 90px;" title="Use current settings"> ', __('Cancel', 'ad-inserter'), ' </button>';
7
  }
8
 
9
  function ai_editor_mce_buttons ($buttons, $id) {
1
  <?php
2
 
3
  function ai_editor_media_buttons () {
4
+ echo '<button type="button" id="use-button" class="button" style="width: 90px; padding: 0 10px;" title="Use current settings"> ', __('Use', 'ad-inserter'), ' </button>';
5
+ echo '<button type="button" id="reset-button" class="button" style="width: 90px; padding: 0 10px;" title="Reset to the saved settings"> ', __('Reset', 'ad-inserter'), ' </button>';
6
+ echo '<button type="button" id="cancel-button" class="button" style="width: 90px; padding: 0 10px;" title="Use current settings"> ', __('Cancel', 'ad-inserter'), ' </button>';
7
  }
8
 
9
  function ai_editor_mce_buttons ($buttons, $id) {
includes/js/ai-adb.js CHANGED
@@ -371,95 +371,8 @@ var ai_adb_detected_actions = function(n) {
371
  (function ($) {
372
 
373
  $(window).ready(function () {
374
-
375
- // if (ai_adb_debugging) console.log ("AI AD BLOCKING block actions");
376
-
377
- // var code_inserted = false;
378
-
379
- // do {
380
- // var code_insertion = false;
381
-
382
- // // Don't use data () as the value will be cached - wrong value for tracking
383
- // $(".ai-adb-hide").each (function () {
384
- // $(this).css ({"display": "none", "visibility": "hidden"});
385
-
386
- // $(this).removeClass ('ai-adb-hide');
387
-
388
- // // Disable tracking
389
- // var wrapping_div = $(this).closest ('div[data-ai]');
390
- // if (typeof wrapping_div.attr ("data-ai") != "undefined") {
391
- // var data = JSON.parse (b64d (wrapping_div.attr ("data-ai")));
392
- // if (typeof data !== "undefined" && data.constructor === Array) {
393
- // data [1] = "";
394
-
395
- // if (ai_adb_debugging) console.log ("AI AD BLOCKING TRACKING ", b64d (wrapping_div.attr ("data-ai")), ' <= ', JSON.stringify (data));
396
-
397
- // wrapping_div.attr ("data-ai", b64e (JSON.stringify (data)));
398
- // }
399
- // }
400
-
401
- // ai_disable_processing ($(this));
402
-
403
- // if (ai_adb_debugging) {
404
- // var debug_info = $(this).data ("ai-debug");
405
- // console.log ("AI AD BLOCKING HIDE", typeof debug_info != "undefined" ? debug_info : "");
406
- // }
407
- // });
408
-
409
- // // after hide to update tracking data on replace
410
- // // Don't use data () as the value will be cached - wrong value for tracking
411
- // $(".ai-adb-show").each (function () {
412
- // $(this).css ({"display": "block", "visibility": "visible"});
413
-
414
- // $(this).removeClass ('ai-adb-show');
415
-
416
- // if (typeof $(this).data ('code') != 'undefined') {
417
- // var adb_code = b64d ($(this).data ('code'));
418
-
419
- // if (ai_adb_debugging) console.log ('AI AD BLOCKING SHOW INSERT CODE');
420
- // if (ai_adb_debugging) console.log ('');
421
-
422
- // $(this).append (adb_code);
423
-
424
- // code_insertion = true;
425
- // code_inserted = true;
426
-
427
- // // Process rotations to set versions before tracking data is set
428
- // if (typeof ai_process_elements == 'function') {
429
- // ai_process_elements ();
430
- // }
431
- // }
432
-
433
- // var tracking_data = $(this).attr ('data-ai-tracking');
434
- // if (typeof tracking_data != 'undefined') {
435
- // var wrapping_div = $(this).closest ('div[data-ai]');
436
- // if (typeof wrapping_div.attr ("data-ai") != "undefined") {
437
- // if ($(this).hasClass ('ai-no-tracking')) {
438
- // var data = JSON.parse (b64d (wrapping_div.attr ("data-ai")));
439
- // if (typeof data !== "undefined" && data.constructor === Array) {
440
- // data [1] = "";
441
- // tracking_data = b64e (JSON.stringify (data));
442
- // }
443
- // }
444
-
445
- // if (ai_adb_debugging) console.log ("AI AD BLOCKING TRACKING ", b64d (wrapping_div.attr ("data-ai")), ' <= ', b64d (tracking_data));
446
-
447
- // wrapping_div.attr ("data-ai", tracking_data);
448
- // }
449
- // }
450
-
451
- // if (ai_adb_debugging) {
452
- // var debug_info = $(this).data ("ai-debug");
453
- // console.log ("AI AD BLOCKING SHOW", typeof debug_info != "undefined" ? debug_info : "");
454
- // }
455
- // });
456
- // } while (code_insertion);
457
-
458
- // setTimeout (ai_adb_process_content, 10);
459
-
460
  ai_adb_process_blocks ();
461
 
462
-
463
  // if (code_inserted && typeof ai_process_elements == 'function') {
464
  // setTimeout (ai_process_elements, 20);
465
  // }
@@ -468,7 +381,19 @@ var ai_adb_detected_actions = function(n) {
468
  if (ai_adb_debugging) console.log ("AI AD BLOCKING action check");
469
  // AiCookies.remove (ai_adb_pgv_cookie_name, {path: "/" });
470
 
 
 
 
 
 
 
 
 
 
 
 
471
  if (ai_adb_page_views != 0) {
 
472
  var ai_adb_page_view_counter = 1;
473
  var cookie = AiCookies.get (ai_adb_pgv_cookie_name);
474
  if (typeof cookie != "undefined") ai_adb_page_view_counter = parseInt (cookie) + 1;
@@ -483,6 +408,7 @@ var ai_adb_detected_actions = function(n) {
483
  }
484
 
485
  if (ai_adb_message_cookie_lifetime != 0 && (ai_adb_action != 1 || !ai_adb_message_undismissible)) {
 
486
  var cookie = AiCookies.get (ai_adb_act_cookie_name);
487
  if (ai_adb_debugging) console.log ("AI AD BLOCKING cookie:", cookie);
488
  if (typeof cookie != "undefined" && cookie == "AI_CONST_AI_ADB_COOKIE_VALUE") {
@@ -500,8 +426,8 @@ var ai_adb_detected_actions = function(n) {
500
 
501
  if (ai_adb_action == 0) {
502
  ai_dummy = 16; // Do not remove - to prevent optimization
503
- ai_dummy ++; // Do not remove - to prevent optimization
504
  window.AI_ADB_STATUS_MESSAGE=6;
 
505
  } else {
506
  window.AI_ADB_STATUS_MESSAGE=3;
507
  ai_dummy = 13; // Do not remove - to prevent optimization
371
  (function ($) {
372
 
373
  $(window).ready(function () {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
  ai_adb_process_blocks ();
375
 
 
376
  // if (code_inserted && typeof ai_process_elements == 'function') {
377
  // setTimeout (ai_process_elements, 20);
378
  // }
381
  if (ai_adb_debugging) console.log ("AI AD BLOCKING action check");
382
  // AiCookies.remove (ai_adb_pgv_cookie_name, {path: "/" });
383
 
384
+ // Disable action for bots
385
+ if (typeof MobileDetect !== "undefined") {
386
+ var md = new MobileDetect (window.navigator.userAgent);
387
+
388
+ if (ai_adb_debugging) console.log ('AI AD BLOCKING IS BOT:', md.is ('bot'));
389
+
390
+ if (md.is ('bot')) {
391
+ ai_adb_action = 0;
392
+ }
393
+ }
394
+
395
  if (ai_adb_page_views != 0) {
396
+
397
  var ai_adb_page_view_counter = 1;
398
  var cookie = AiCookies.get (ai_adb_pgv_cookie_name);
399
  if (typeof cookie != "undefined") ai_adb_page_view_counter = parseInt (cookie) + 1;
408
  }
409
 
410
  if (ai_adb_message_cookie_lifetime != 0 && (ai_adb_action != 1 || !ai_adb_message_undismissible)) {
411
+
412
  var cookie = AiCookies.get (ai_adb_act_cookie_name);
413
  if (ai_adb_debugging) console.log ("AI AD BLOCKING cookie:", cookie);
414
  if (typeof cookie != "undefined" && cookie == "AI_CONST_AI_ADB_COOKIE_VALUE") {
426
 
427
  if (ai_adb_action == 0) {
428
  ai_dummy = 16; // Do not remove - to prevent optimization
 
429
  window.AI_ADB_STATUS_MESSAGE=6;
430
+ ai_dummy ++; // Do not remove - to prevent optimization
431
  } else {
432
  window.AI_ADB_STATUS_MESSAGE=3;
433
  ai_dummy = 13; // Do not remove - to prevent optimization
includes/js/ai-adb.min.js CHANGED
@@ -9,11 +9,11 @@ typeof f.attr("data-ai")){if(c(this).hasClass("ai-no-tracking")){var h=JSON.pars
9
  a).each(function(){c(this).removeClass("ai-adb-hide");if(0==c(this).outerHeight()&&0==c(this).closest(".ai-adb-show").length){var e=c(this).closest("div[data-ai]");if("undefined"!=typeof e.attr("data-ai")){var f=JSON.parse(b64d(e.attr("data-ai")));"undefined"!==typeof f&&f.constructor===Array&&(f[1]="",e.attr("data-ai",b64e(JSON.stringify(f))),e.addClass("ai-viewport-0").css("display","none"))}}}),c(".ai-adb-show",a).each(function(){ai_disable_processing(c(this));c(this).removeClass("ai-adb-show")})})(jQuery)}
10
  ai_adb_detection_type_log=function(a){var c=ai_adb_detection_type(a),b=jQuery("#ai-adb-events");if(0!=b.count){var d=b.text();b.text((""!=d?d+", ":d+", EVENTS: ")+a)}return c};ai_adb_detection_type=function(a){return""};
11
  var ai_adb_detected=function(a){setTimeout(function(){ai_adb_detected_actions(a)},2)},ai_disable_processing=function(a){jQuery(a).find(".ai-lazy").removeClass("ai-lazy");jQuery(a).find(".ai-manual").removeClass("ai-manual");jQuery(a).find(".ai-rotate").removeClass("ai-unprocessed").removeAttr("data-info");jQuery(a).find(".ai-list-data").removeClass("ai-list-data");jQuery(a).find(".ai-ip-data").removeClass("ai-ip-data");jQuery(a).find("[data-code]").removeAttr("data-code")},ai_adb_detected_actions=
12
- function(a){ai_adb_active||(ai_adb_active=!0,jQuery(b64d("Ym9keQ==")).attr(AI_ADB_ATTR_NAME,b64d("bWFzaw==")),function(c){c(window).ready(function(){ai_adb_process_blocks()});if(0!=ai_adb_page_views){var b=1,d=AiCookies.get(ai_adb_pgv_cookie_name);"undefined"!=typeof d&&(b=parseInt(d)+1);if(b<=ai_adb_page_views){AiCookies.set(ai_adb_pgv_cookie_name,b,{expires:365,path:"/"});window.ai_d1=b;window.AI_ADB_STATUS_MESSAGE=1;return}}if(0==ai_adb_message_cookie_lifetime||1==ai_adb_action&&ai_adb_message_undismissible)AiCookies.remove(ai_adb_act_cookie_name,
13
- {path:"/"});else{d=AiCookies.get(ai_adb_act_cookie_name);if("undefined"!=typeof d&&"AI_CONST_AI_ADB_COOKIE_VALUE"==d){window.AI_ADB_STATUS_MESSAGE=2;return}AiCookies.set(ai_adb_act_cookie_name,"AI_CONST_AI_ADB_COOKIE_VALUE",{expires:ai_adb_message_cookie_lifetime,path:"/"})}0==ai_adb_action?(ai_dummy=16,ai_dummy++,window.AI_ADB_STATUS_MESSAGE=6):(window.AI_ADB_STATUS_MESSAGE=3,ai_dummy=13);switch(ai_adb_action){case 1:ai_adb_message_undismissible?(ai_adb_overlay.find('[style*="cursor"]').css("cursor",
14
- "no-drop"),ai_adb_message_window.find('[style*="cursor"]').css("cursor","no-drop")):(ai_adb_overlay.click(function(){c(this).remove();ai_adb_message_window.remove()}),ai_adb_message_window.click(function(){c(this).remove();ai_adb_overlay.remove()}),window.onkeydown=function(g){27===g.keyCode&&(ai_adb_overlay.click(),ai_adb_message_window.click())});b=c(b64d("Ym9keQ==")).children();b.eq(Math.floor(Math.random()*b.length)).after(ai_adb_overlay);b.eq(Math.floor(Math.random()*b.length)).after(ai_adb_message_window);
15
- break;case 2:""!=ai_adb_redirection_url&&(b=!0,"http"==ai_adb_redirection_url.toLowerCase().substring(0,4)?window.location.href==ai_adb_redirection_url&&(b=!1):window.location.pathname==ai_adb_redirection_url&&(b=!1),b?(d=AiCookies.get(ai_adb_page_redirection_cookie_name),"undefined"==typeof d&&(b=new Date,b.setTime(b.getTime()+1E4),AiCookies.set(ai_adb_page_redirection_cookie_name,window.location.href,{expires:b,path:"/"}),window.location.replace(ai_adb_redirection_url))):AiCookies.remove(ai_adb_page_redirection_cookie_name,
16
- {path:"/"}))}}(jQuery))},ai_adb_undetected=function(a){ai_adb_counter++;ai_adb_active||4!=ai_adb_counter||(jQuery(b64d("Ym9keQ==")).attr(AI_ADB_ATTR_NAME,b64d("Y2xlYXI=")),ai_dummy=11,window.AI_ADB_STATUS_MESSAGE=4,ai_dummy=14,ai_adb_process_blocks())};AI_DBG_AI_DEBUG_AD_BLOCKING&&jQuery(document).ready(function(){ai_adb_detected(0)});
17
  jQuery(document).ready(function(a){a(window).ready(function(){ai_debugging_active="undefined"!==typeof ai_adb_fe_dbg;setTimeout(function(){a("#ai-adb-bar").click(function(){AiCookies.remove(ai_adb_act_cookie_name,{path:"/"});AiCookies.remove(ai_adb_pgv_cookie_name,{path:"/"});window.AI_ADB_STATUS_MESSAGE=5;ai_dummy=15})},2);if((!ai_adb_active||ai_debugging_active)&&""!=ai_adb_selectors){var c=0,b=0,d=ai_adb_selectors.split(",");a.each(d,function(e){d[e]=d[e].trim();0!=a(d[e]).length&&a(d[e]).each(function(f){var h=
18
  a(this).outerHeight();f=a(this).find(".ai-attributes");f.length&&f.each(function(){h>=a(this).outerHeight()&&(h-=a(this).outerHeight())});c++;if(0===h&&(a(document).ready(function(){ai_adb_active&&!ai_debugging_active||ai_adb_detected(4)}),b++,!ai_debugging_active))return!1})});0!=c&&0==b&&a(document).ready(function(){ai_adb_undetected(4)})}var g=b64d("aW1nI2FpLWFkYi1hZG54cw==");jQuery(g).length&&jQuery(g).on("load",function(){ai_adb_undetected(8)}).on("error",function(){ai_adb_active&&!ai_debugging_active||
19
  ai_adb_detected(8)}).attr("src",b64d("aHR0cHM6Ly9pYi5hZG54cy5jb20vZ2V0dWlkP2h0dHBzJTNBJTJGJTJGcm91dGVyLmluZm9saW5rcy5jb20lMkZkeW4lMkZhcG4tdXN5bmMlM0Z1c2VyX2lkJTNEJTI0VUlE"))})});
9
  a).each(function(){c(this).removeClass("ai-adb-hide");if(0==c(this).outerHeight()&&0==c(this).closest(".ai-adb-show").length){var e=c(this).closest("div[data-ai]");if("undefined"!=typeof e.attr("data-ai")){var f=JSON.parse(b64d(e.attr("data-ai")));"undefined"!==typeof f&&f.constructor===Array&&(f[1]="",e.attr("data-ai",b64e(JSON.stringify(f))),e.addClass("ai-viewport-0").css("display","none"))}}}),c(".ai-adb-show",a).each(function(){ai_disable_processing(c(this));c(this).removeClass("ai-adb-show")})})(jQuery)}
10
  ai_adb_detection_type_log=function(a){var c=ai_adb_detection_type(a),b=jQuery("#ai-adb-events");if(0!=b.count){var d=b.text();b.text((""!=d?d+", ":d+", EVENTS: ")+a)}return c};ai_adb_detection_type=function(a){return""};
11
  var ai_adb_detected=function(a){setTimeout(function(){ai_adb_detected_actions(a)},2)},ai_disable_processing=function(a){jQuery(a).find(".ai-lazy").removeClass("ai-lazy");jQuery(a).find(".ai-manual").removeClass("ai-manual");jQuery(a).find(".ai-rotate").removeClass("ai-unprocessed").removeAttr("data-info");jQuery(a).find(".ai-list-data").removeClass("ai-list-data");jQuery(a).find(".ai-ip-data").removeClass("ai-ip-data");jQuery(a).find("[data-code]").removeAttr("data-code")},ai_adb_detected_actions=
12
+ function(a){ai_adb_active||(ai_adb_active=!0,jQuery(b64d("Ym9keQ==")).attr(AI_ADB_ATTR_NAME,b64d("bWFzaw==")),function(c){c(window).ready(function(){ai_adb_process_blocks()});"undefined"!==typeof MobileDetect&&(new MobileDetect(window.navigator.userAgent)).is("bot")&&(ai_adb_action=0);if(0!=ai_adb_page_views){var b=1,d=AiCookies.get(ai_adb_pgv_cookie_name);"undefined"!=typeof d&&(b=parseInt(d)+1);if(b<=ai_adb_page_views){AiCookies.set(ai_adb_pgv_cookie_name,b,{expires:365,path:"/"});window.ai_d1=
13
+ b;window.AI_ADB_STATUS_MESSAGE=1;return}}if(0==ai_adb_message_cookie_lifetime||1==ai_adb_action&&ai_adb_message_undismissible)AiCookies.remove(ai_adb_act_cookie_name,{path:"/"});else{d=AiCookies.get(ai_adb_act_cookie_name);if("undefined"!=typeof d&&"AI_CONST_AI_ADB_COOKIE_VALUE"==d){window.AI_ADB_STATUS_MESSAGE=2;return}AiCookies.set(ai_adb_act_cookie_name,"AI_CONST_AI_ADB_COOKIE_VALUE",{expires:ai_adb_message_cookie_lifetime,path:"/"})}0==ai_adb_action?(ai_dummy=16,window.AI_ADB_STATUS_MESSAGE=6,
14
+ ai_dummy++):(window.AI_ADB_STATUS_MESSAGE=3,ai_dummy=13);switch(ai_adb_action){case 1:ai_adb_message_undismissible?(ai_adb_overlay.find('[style*="cursor"]').css("cursor","no-drop"),ai_adb_message_window.find('[style*="cursor"]').css("cursor","no-drop")):(ai_adb_overlay.click(function(){c(this).remove();ai_adb_message_window.remove()}),ai_adb_message_window.click(function(){c(this).remove();ai_adb_overlay.remove()}),window.onkeydown=function(g){27===g.keyCode&&(ai_adb_overlay.click(),ai_adb_message_window.click())});
15
+ b=c(b64d("Ym9keQ==")).children();b.eq(Math.floor(Math.random()*b.length)).after(ai_adb_overlay);b.eq(Math.floor(Math.random()*b.length)).after(ai_adb_message_window);break;case 2:""!=ai_adb_redirection_url&&(b=!0,"http"==ai_adb_redirection_url.toLowerCase().substring(0,4)?window.location.href==ai_adb_redirection_url&&(b=!1):window.location.pathname==ai_adb_redirection_url&&(b=!1),b?(d=AiCookies.get(ai_adb_page_redirection_cookie_name),"undefined"==typeof d&&(b=new Date,b.setTime(b.getTime()+1E4),
16
+ AiCookies.set(ai_adb_page_redirection_cookie_name,window.location.href,{expires:b,path:"/"}),window.location.replace(ai_adb_redirection_url))):AiCookies.remove(ai_adb_page_redirection_cookie_name,{path:"/"}))}}(jQuery))},ai_adb_undetected=function(a){ai_adb_counter++;ai_adb_active||4!=ai_adb_counter||(jQuery(b64d("Ym9keQ==")).attr(AI_ADB_ATTR_NAME,b64d("Y2xlYXI=")),ai_dummy=11,window.AI_ADB_STATUS_MESSAGE=4,ai_dummy=14,ai_adb_process_blocks())};AI_DBG_AI_DEBUG_AD_BLOCKING&&jQuery(document).ready(function(){ai_adb_detected(0)});
17
  jQuery(document).ready(function(a){a(window).ready(function(){ai_debugging_active="undefined"!==typeof ai_adb_fe_dbg;setTimeout(function(){a("#ai-adb-bar").click(function(){AiCookies.remove(ai_adb_act_cookie_name,{path:"/"});AiCookies.remove(ai_adb_pgv_cookie_name,{path:"/"});window.AI_ADB_STATUS_MESSAGE=5;ai_dummy=15})},2);if((!ai_adb_active||ai_debugging_active)&&""!=ai_adb_selectors){var c=0,b=0,d=ai_adb_selectors.split(",");a.each(d,function(e){d[e]=d[e].trim();0!=a(d[e]).length&&a(d[e]).each(function(f){var h=
18
  a(this).outerHeight();f=a(this).find(".ai-attributes");f.length&&f.each(function(){h>=a(this).outerHeight()&&(h-=a(this).outerHeight())});c++;if(0===h&&(a(document).ready(function(){ai_adb_active&&!ai_debugging_active||ai_adb_detected(4)}),b++,!ai_debugging_active))return!1})});0!=c&&0==b&&a(document).ready(function(){ai_adb_undetected(4)})}var g=b64d("aW1nI2FpLWFkYi1hZG54cw==");jQuery(g).length&&jQuery(g).on("load",function(){ai_adb_undetected(8)}).on("error",function(){ai_adb_active&&!ai_debugging_active||
19
  ai_adb_detected(8)}).attr("src",b64d("aHR0cHM6Ly9pYi5hZG54cy5jb20vZ2V0dWlkP2h0dHBzJTNBJTJGJTJGcm91dGVyLmluZm9saW5rcy5jb20lMkZkeW4lMkZhcG4tdXN5bmMlM0Z1c2VyX2lkJTNEJTI0VUlE"))})});
includes/js/ai-lists.js CHANGED
@@ -714,7 +714,7 @@ jQuery (function ($) {
714
  setTimeout (function() {
715
  ai_process_lists ();
716
 
717
- if ((jQuery('#ai-iab-tcf-bar').length || jQuery('.ai-list-manual').length) && typeof __tcfapi == 'function') {
718
 
719
  function ai_iab_tcf_callback (tcData, success) {
720
  if (success) {
714
  setTimeout (function() {
715
  ai_process_lists ();
716
 
717
+ if ((jQuery('#ai-iab-tcf-bar').length || jQuery('.ai-list-manual').length) && typeof __tcfapi == 'function' && typeof ai_load_blocks == 'function') {
718
 
719
  function ai_iab_tcf_callback (tcData, success) {
720
  if (success) {
includes/js/ai-lists.min.js CHANGED
@@ -13,7 +13,7 @@ e=""==q?"#":q;l.find(".ai-debug-name.ai-list-info").text(e).attr("title",F);l.fi
13
  var J=(new Date).getTime()+r,S=new Date(J);r=S.getDay();0==r?r=6:r--;B=J>=B&&J<l&&E.includes(r.toString());switch(A){case "B":B=!B}B||(b=!1);A=S.toISOString().split(".")[0].replace("T"," ");l=a(this).prevAll(".ai-debug-bar.ai-debug-scheduling");l.find(".ai-debug-name.ai-scheduling-info").text(A+" "+r);l.find(".ai-debug-name.ai-scheduling-status").text(b?ai_front.visible:ai_front.hidden);b||0==I||(l.removeClass("ai-debug-scheduling").addClass("ai-debug-fallback"),l.find(".ai-debug-name.ai-scheduling-status").text(ai_front.fallback+
14
  "="+I))}}if(g||N)return!0;a(this).css({visibility:"",position:"",width:"",height:"","z-index":""});b?(d.css({visibility:""}),d.hasClass("ai-remove-position")&&d.css({position:""}),"undefined"!=typeof a(this).data("code")&&(b=b64d(a(this).data("code")),a(this).append(b),ai_process_element(this))):e&&!B&&0!=I?(d.css({visibility:""}),d.hasClass("ai-remove-position")&&d.css({position:""}),a(this).next(".ai-fallback").removeClass("ai-fallback"),"undefined"!=typeof a(this).data("fallback-code")?(b=b64d(a(this).data("fallback-code")),
15
  a(this).append(b),ai_process_element(this)):a(this).hide(),b=d.attr("data-ai"),"undefined"!==typeof b&&!1!==b&&(b=a(this).attr("fallback-tracking"),"undefined"!==typeof b&&!1!==b&&d.attr("data-ai",b))):(a(this).hide(),d.removeAttr("data-ai").removeClass("ai-track"),d.find(".ai-debug-block").length?(d.css({visibility:""}).removeClass("ai-close"),d.hasClass("ai-remove-position")&&d.css({position:""})):d.hide());a(this).attr("data-code","");a(this).attr("data-fallback-code","");d.removeClass("ai-list-block")})}};
16
- a(document).ready(function(h){setTimeout(function(){ai_process_lists();(jQuery("#ai-iab-tcf-bar").length||jQuery(".ai-list-manual").length)&&"function"==typeof __tcfapi&&__tcfapi("addEventListener",2,function(f,z){z&&"useractioncomplete"===f.eventStatus&&(ai_tcData=f,ai_load_blocks(),jQuery("#ai-iab-tcf-status").text("DATA LOADED"),jQuery("#ai-iab-tcf-bar").addClass("status-ok").removeClass("status-error"))});if("function"==typeof ai_load_blocks)jQuery(document).on("cmplzEnableScripts",function(f){"all"===
17
- f.consentLevel&&ai_load_blocks()});jQuery("#ai-iab-tcf-bar").click(function(){AiCookies.remove("euconsent-v2",{path:"/",domain:"."+window.location.hostname});jQuery("#ai-iab-tcf-status").text("COOKIE DELETED")})},5)})});
18
  function ai_process_element(a){setTimeout(function(){"function"==typeof ai_process_rotations_in_element&&ai_process_rotations_in_element(a);"function"==typeof ai_process_lists&&ai_process_lists(jQuery("div.ai-list-data",a));"function"==typeof ai_process_ip_addresses&&ai_process_ip_addresses(jQuery("div.ai-ip-data",a));"function"==typeof ai_adb_process_blocks&&ai_adb_process_blocks(a)},5)}
19
  function getAllUrlParams(a){var k=a?a.split("?")[1]:window.location.search.slice(1);a={};if(k){k=k.split("#")[0];k=k.split("&");for(var y=0;y<k.length;y++){var p=k[y].split("="),h=void 0,f=p[0].replace(/\[\d*\]/,function(z){h=z.slice(1,-1);return""});p="undefined"===typeof p[1]?"":p[1];f=f.toLowerCase();p=p.toLowerCase();a[f]?("string"===typeof a[f]&&(a[f]=[a[f]]),"undefined"===typeof h?a[f].push(p):a[f][h]=p):a[f]=p}}return a};
13
  var J=(new Date).getTime()+r,S=new Date(J);r=S.getDay();0==r?r=6:r--;B=J>=B&&J<l&&E.includes(r.toString());switch(A){case "B":B=!B}B||(b=!1);A=S.toISOString().split(".")[0].replace("T"," ");l=a(this).prevAll(".ai-debug-bar.ai-debug-scheduling");l.find(".ai-debug-name.ai-scheduling-info").text(A+" "+r);l.find(".ai-debug-name.ai-scheduling-status").text(b?ai_front.visible:ai_front.hidden);b||0==I||(l.removeClass("ai-debug-scheduling").addClass("ai-debug-fallback"),l.find(".ai-debug-name.ai-scheduling-status").text(ai_front.fallback+
14
  "="+I))}}if(g||N)return!0;a(this).css({visibility:"",position:"",width:"",height:"","z-index":""});b?(d.css({visibility:""}),d.hasClass("ai-remove-position")&&d.css({position:""}),"undefined"!=typeof a(this).data("code")&&(b=b64d(a(this).data("code")),a(this).append(b),ai_process_element(this))):e&&!B&&0!=I?(d.css({visibility:""}),d.hasClass("ai-remove-position")&&d.css({position:""}),a(this).next(".ai-fallback").removeClass("ai-fallback"),"undefined"!=typeof a(this).data("fallback-code")?(b=b64d(a(this).data("fallback-code")),
15
  a(this).append(b),ai_process_element(this)):a(this).hide(),b=d.attr("data-ai"),"undefined"!==typeof b&&!1!==b&&(b=a(this).attr("fallback-tracking"),"undefined"!==typeof b&&!1!==b&&d.attr("data-ai",b))):(a(this).hide(),d.removeAttr("data-ai").removeClass("ai-track"),d.find(".ai-debug-block").length?(d.css({visibility:""}).removeClass("ai-close"),d.hasClass("ai-remove-position")&&d.css({position:""})):d.hide());a(this).attr("data-code","");a(this).attr("data-fallback-code","");d.removeClass("ai-list-block")})}};
16
+ a(document).ready(function(h){setTimeout(function(){ai_process_lists();(jQuery("#ai-iab-tcf-bar").length||jQuery(".ai-list-manual").length)&&"function"==typeof __tcfapi&&"function"==typeof ai_load_blocks&&__tcfapi("addEventListener",2,function(f,z){z&&"useractioncomplete"===f.eventStatus&&(ai_tcData=f,ai_load_blocks(),jQuery("#ai-iab-tcf-status").text("DATA LOADED"),jQuery("#ai-iab-tcf-bar").addClass("status-ok").removeClass("status-error"))});if("function"==typeof ai_load_blocks)jQuery(document).on("cmplzEnableScripts",
17
+ function(f){"all"===f.consentLevel&&ai_load_blocks()});jQuery("#ai-iab-tcf-bar").click(function(){AiCookies.remove("euconsent-v2",{path:"/",domain:"."+window.location.hostname});jQuery("#ai-iab-tcf-status").text("COOKIE DELETED")})},5)})});
18
  function ai_process_element(a){setTimeout(function(){"function"==typeof ai_process_rotations_in_element&&ai_process_rotations_in_element(a);"function"==typeof ai_process_lists&&ai_process_lists(jQuery("div.ai-list-data",a));"function"==typeof ai_process_ip_addresses&&ai_process_ip_addresses(jQuery("div.ai-ip-data",a));"function"==typeof ai_adb_process_blocks&&ai_adb_process_blocks(a)},5)}
19
  function getAllUrlParams(a){var k=a?a.split("?")[1]:window.location.search.slice(1);a={};if(k){k=k.split("#")[0];k=k.split("&");for(var y=0;y<k.length;y++){var p=k[y].split("="),h=void 0,f=p[0].replace(/\[\d*\]/,function(z){h=z.slice(1,-1);return""});p="undefined"===typeof p[1]?"":p[1];f=f.toLowerCase();p=p.toLowerCase();a[f]?("string"===typeof a[f]&&(a[f]=[a[f]]),"undefined"===typeof h?a[f].push(p):a[f][h]=p):a[f]=p}}return a};
js/ad-inserter.js CHANGED
@@ -1,4 +1,4 @@
1
- var javascript_version = "2.6.14";
2
  var ignore_key = true;
3
  var start = 1;
4
  var end = 16;
@@ -752,7 +752,8 @@ function change_block_alignment (block) {
752
  jQuery ("select#horizontal-position-" + block).change ();
753
  jQuery ("select#vertical-position-" + block).change ();
754
  jQuery ("input#background-" + block).change ();
755
- jQuery ("input#bkg-color-" + block).colorpicker ('setValue', jQuery ("input#bkg-color-" + block).attr ('value'));
 
756
  jQuery ("select#bkg-repeat-" + block).change ();
757
  jQuery ("select#bkg-size-" + block).change ();
758
  }
@@ -1942,8 +1943,10 @@ jQuery(document).ready (function($) {
1942
  label.addClass ('on');
1943
 
1944
  // var nonce = $(this).attr ('nonce');
1945
- var start_date = $("input#chart-start-date-" + block).attr('value');
1946
- var end_date = $("input#chart-end-date-" + block).attr('value');
 
 
1947
  var container = $("div#statistics-elements-" + block);
1948
 
1949
  var version_charts_container = $("div#ai-version-charts-" + block);
@@ -2048,8 +2051,10 @@ jQuery(document).ready (function($) {
2048
  block = block.replace ("clear-range-","");
2049
 
2050
  var delete_button = this;
2051
- var start_date = $("input#chart-start-date-" + block).attr('value');
2052
- var end_date = $("input#chart-end-date-" + block).attr('value');
 
 
2053
 
2054
  var message = '';
2055
  if (start_date == '' && end_date == '')
@@ -2131,8 +2136,10 @@ jQuery(document).ready (function($) {
2131
  disable_auto_refresh_statistics ();
2132
  var id = $(this).closest (".custom-range-controls").attr ("id");
2133
  block = id.replace ("custom-range-controls-","");
2134
- $("input#chart-start-date-"+block).attr ("value", $(this).data ("start-date"));
2135
- $("input#chart-end-date-"+block).attr ("value", $(this).data ("end-date"));
 
 
2136
  process_chart_dates (block);
2137
  $("input#load-custom-range-"+block).click ();
2138
  });
@@ -3567,26 +3574,28 @@ jQuery(document).ready (function($) {
3567
  $("select#close-button-"+block+"").val ($("select#close-button-sticky-"+block+" option:selected").attr('value'));
3568
  });
3569
 
3570
- $("input#paragraph-numbers-" + tab).change (function () {
3571
- var block = $(this).attr('id').tabIndex ();
3572
- $("input#image-numbers-"+block).val ($(this).attr ('value'));
3573
- });
3574
 
3575
- $("input#image-numbers-" + tab).change (function () {
3576
- var block = $(this).attr('id').tabIndex ();
3577
- $("input#paragraph-numbers-"+block).val ($(this).attr ('value'));
3578
- });
3579
 
3580
  $("input#filter-numbers-insertions-" + tab).on ('keyup', function () {
3581
  var block = $(this).attr('id').tabIndex ();
3582
- $("input#filter-numbers-"+block).val ($(this).attr ('value'));
 
3583
  $("select#filter-type-"+block).val (0);
3584
  $("input#invert-filter-"+block).removeAttr ('checked');
3585
  });
3586
 
3587
  $("input#filter-numbers-" + tab).on ('keyup', function () {
3588
  var block = $(this).attr('id').tabIndex ();
3589
- $("input#filter-numbers-insertions-"+block).val ($(this).attr ('value'));
 
3590
  });
3591
 
3592
  $("#html-elements-button-"+tab).click (function () {
@@ -3740,12 +3749,14 @@ jQuery(document).ready (function($) {
3740
 
3741
  var background_css = '';
3742
  if (horizontal_position == AI_STICK_HORIZONTAL_CENTER && background) {
3743
- var background_color = $("input#bkg-color-"+block).attr('value').trim ();
 
3744
  if (background_color != '') {
3745
  background_css = background_css + ' background-color: ' + background_color + ';';
3746
  }
3747
 
3748
- var background_image = $("input#bkg-image-url-"+block).attr('value').trim ();
 
3749
  if (background_image != '') {
3750
  background_css = background_css + ' background-image: url(' + background_image + ');';
3751
  }
1
+ var javascript_version = "2.6.15";
2
  var ignore_key = true;
3
  var start = 1;
4
  var end = 16;
752
  jQuery ("select#horizontal-position-" + block).change ();
753
  jQuery ("select#vertical-position-" + block).change ();
754
  jQuery ("input#background-" + block).change ();
755
+ // jQuery ("input#bkg-color-" + block).colorpicker ('setValue', jQuery ("input#bkg-color-" + block).attr ('value'));
756
+ jQuery ("input#bkg-color-" + block).colorpicker ('setValue', jQuery ("input#bkg-color-" + block).val ());
757
  jQuery ("select#bkg-repeat-" + block).change ();
758
  jQuery ("select#bkg-size-" + block).change ();
759
  }
1943
  label.addClass ('on');
1944
 
1945
  // var nonce = $(this).attr ('nonce');
1946
+ // var start_date = $("input#chart-start-date-" + block).attr('value');
1947
+ var start_date = $("input#chart-start-date-" + block).val ();
1948
+ // var end_date = $("input#chart-end-date-" + block).attr('value');
1949
+ var end_date = $("input#chart-end-date-" + block).val ();
1950
  var container = $("div#statistics-elements-" + block);
1951
 
1952
  var version_charts_container = $("div#ai-version-charts-" + block);
2051
  block = block.replace ("clear-range-","");
2052
 
2053
  var delete_button = this;
2054
+ // var start_date = $("input#chart-start-date-" + block).attr('value');
2055
+ var start_date = $("input#chart-start-date-" + block).val ();
2056
+ // var end_date = $("input#chart-end-date-" + block).attr('value');
2057
+ var end_date = $("input#chart-end-date-" + block).val ();
2058
 
2059
  var message = '';
2060
  if (start_date == '' && end_date == '')
2136
  disable_auto_refresh_statistics ();
2137
  var id = $(this).closest (".custom-range-controls").attr ("id");
2138
  block = id.replace ("custom-range-controls-","");
2139
+ // $("input#chart-start-date-"+block).attr ("value", $(this).data ("start-date"));
2140
+ $("input#chart-start-date-"+block).attr ("value", $(this).data ("start-date")).val ($(this).data ("start-date"));
2141
+ // $("input#chart-end-date-"+block).attr ("value", $(this).data ("end-date"));
2142
+ $("input#chart-end-date-"+block).attr ("value", $(this).data ("end-date")).val ($(this).data ("end-date"));
2143
  process_chart_dates (block);
2144
  $("input#load-custom-range-"+block).click ();
2145
  });
3574
  $("select#close-button-"+block+"").val ($("select#close-button-sticky-"+block+" option:selected").attr('value'));
3575
  });
3576
 
3577
+ // $("input#paragraph-numbers-" + tab).change (function () {
3578
+ // var block = $(this).attr('id').tabIndex ();
3579
+ // $("input#image-numbers-"+block).val ($(this).attr ('value'));
3580
+ // });
3581
 
3582
+ // $("input#image-numbers-" + tab).change (function () {
3583
+ // var block = $(this).attr('id').tabIndex ();
3584
+ // $("input#paragraph-numbers-"+block).val ($(this).attr ('value'));
3585
+ // });
3586
 
3587
  $("input#filter-numbers-insertions-" + tab).on ('keyup', function () {
3588
  var block = $(this).attr('id').tabIndex ();
3589
+ // $("input#filter-numbers-"+block).val ($(this).attr ('value'));
3590
+ $("input#filter-numbers-"+block).val ($(this).val ());
3591
  $("select#filter-type-"+block).val (0);
3592
  $("input#invert-filter-"+block).removeAttr ('checked');
3593
  });
3594
 
3595
  $("input#filter-numbers-" + tab).on ('keyup', function () {
3596
  var block = $(this).attr('id').tabIndex ();
3597
+ // $("input#filter-numbers-insertions-"+block).val ($(this).attr ('value'));
3598
+ $("input#filter-numbers-insertions-"+block).val ($(this).val ());
3599
  });
3600
 
3601
  $("#html-elements-button-"+tab).click (function () {
3749
 
3750
  var background_css = '';
3751
  if (horizontal_position == AI_STICK_HORIZONTAL_CENTER && background) {
3752
+ // var background_color = $("input#bkg-color-"+block).attr('value').trim ();
3753
+ var background_color = $("input#bkg-color-"+block).val ().trim ();
3754
  if (background_color != '') {
3755
  background_css = background_css + ' background-color: ' + background_color + ';';
3756
  }
3757
 
3758
+ // var background_image = $("input#bkg-image-url-"+block).attr('value').trim ();
3759
+ var background_image = $("input#bkg-image-url-"+block).val ().trim ();
3760
  if (background_image != '') {
3761
  background_css = background_css + ' background-image: url(' + background_image + ');';
3762
  }
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: ads, adsense, ad rotation, ad manager, amp, amazon, ad blocking detection,
6
  Requires at least: 4.6
7
  Tested up to: 5.5
8
  Requires PHP: 5.6
9
- Stable tag: 2.6.14
10
  License: GPLv3
11
 
12
  Manage Google AdSense, Media.net, Amazon banners, ads.txt, ad rotation, sticky widgets, AMP ads, DFP, tracking, AdSense header and footer code
@@ -335,6 +335,11 @@ If you are not happy to reveal this information and you have opted in, simply di
335
 
336
  == Changelog ==
337
 
 
 
 
 
 
338
  = 2.6.14 =
339
  - Added support to insert [embed] shortcodes
340
  - Few minor bug fixes, cosmetic changes and code improvements
@@ -458,6 +463,11 @@ For the changelog of earlier versions, please refer to the separate changelog.tx
458
 
459
  == Upgrade Notice ==
460
 
 
 
 
 
 
461
  = 2.6.14 =
462
  Added support to insert [embed] shortcodes;
463
  Few minor bug fixes, cosmetic changes and code improvements
6
  Requires at least: 4.6
7
  Tested up to: 5.5
8
  Requires PHP: 5.6
9
+ Stable tag: 2.6.15
10
  License: GPLv3
11
 
12
  Manage Google AdSense, Media.net, Amazon banners, ads.txt, ad rotation, sticky widgets, AMP ads, DFP, tracking, AdSense header and footer code
335
 
336
  == Changelog ==
337
 
338
+ = 2.6.15 =
339
+ - No ad blocking detection actions for crawlers and bots
340
+ - Fix for processing Ad Inserter shortcodes inside HTML tags
341
+ - Few minor bug fixes, cosmetic changes and code improvements
342
+
343
  = 2.6.14 =
344
  - Added support to insert [embed] shortcodes
345
  - Few minor bug fixes, cosmetic changes and code improvements
463
 
464
  == Upgrade Notice ==
465
 
466
+ = 2.6.15 =
467
+ No ad blocking detection actions for crawlers and bots;
468
+ Fix for processing Ad Inserter shortcodes inside HTML tags;
469
+ Few minor bug fixes, cosmetic changes and code improvements
470
+
471
  = 2.6.14 =
472
  Added support to insert [embed] shortcodes;
473
  Few minor bug fixes, cosmetic changes and code improvements
settings.php CHANGED
@@ -1393,16 +1393,16 @@ function generate_settings_form (){
1393
  <span id="css-label-<?php echo $block; ?>" style="display: table-cell; width: 36px; padding: 0; height: 26px; vertical-align: middle; margin: 4px 0 0 0; font-size: 14px; font-weight: bold;">CSS</span>
1394
  <input id="custom-css-<?php echo $block; ?>" style="width: 100%; display: none; font-family: monospace, Courier, 'Courier New'; font-weight: bold;" type="text" name="<?php echo AI_OPTION_CUSTOM_CSS, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_custom_css(); ?>" value="<?php echo $obj->get_custom_css(); ?>" maxlength="500" title="<?php _e ('Custom CSS code for the wrapping div', 'ad-inserter'); ?>" />
1395
  <span style="display: table-cell; vertical-align: middle; font-family: monospace, Courier, 'Courier New'; font-size: 12px; font-weight: bold; cursor: pointer; padding-left: 10px;">
1396
- <span id="css-no-wrapping-<?php echo $block; ?>" class='css-code' style="height: 26px; padding-left: 7px; display: none;"></span>
1397
- <span id="css-none-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 7px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_DEFAULT); ?></span>
1398
- <span id="css-left-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 7px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_LEFT); ?></span>
1399
- <span id="css-right-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 7px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_RIGHT); ?></span>
1400
- <span id="css-center-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 7px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_CENTER); ?></span>
1401
- <span id="css-float-left-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 7px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_FLOAT_LEFT); ?></span>
1402
- <span id="css-float-right-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-right: 7px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_FLOAT_RIGHT); ?></span>
1403
  <?php if (function_exists ('ai_style_css')) ai_style_css ($block, $obj); ?>
1404
  </span>
1405
- <span style="display:table-cell; width: 46px; padding-top: 1px;" ><button id="edit-css-button-<?php echo $block; ?>" type="button" class='ai-button' style="display: table-cell; padding: 0; margin: 0 0 0 8px;"><?php _e ('Edit', 'ad-inserter'); ?></button></span>
1406
  </div>
1407
  </div>
1408
  </div>
@@ -1416,7 +1416,7 @@ function generate_settings_form (){
1416
  &nbsp;&nbsp;
1417
  </span>
1418
  <span style="display: table-cell; width: 20px; vertical-align: middle; padding: 0 2px 2px 0;">
1419
- <button id="html-elements-button-<?php echo $block; ?>" type="button" class='ai-button' style="display: none; outline: transparent; float: right; margin-top: 1px; width: 15px; height: 15px;" title="<?php _e ('Open HTML element selector', 'ad-inserter'); ?>"></button>
1420
  </span>
1421
  <span style="display: table-cell;">
1422
  <input
@@ -1456,7 +1456,7 @@ function generate_settings_form (){
1456
  <?php _e ('Wait for', 'ad-inserter'); ?>
1457
  </span>
1458
  <span style="display: table-cell; white-space: nowrap; width: 5%; vertical-align: middle;">
1459
- <button id="wait-for-button-<?php echo $block; ?>" type="button" class='ai-button' style="display: none; outline: transparent; float: right; margin-top: 1px; width: 15px; height: 15px;" title="<?php _e ('Open HTML element selector', 'ad-inserter'); ?>"></button>
1460
  </span>
1461
  <span style="display: table-cell; white-space: nowrap; width: 50%;">
1462
  <input
@@ -1781,7 +1781,7 @@ function generate_settings_form (){
1781
  <?php _e ('Categories', 'ad-inserter'); ?>
1782
  </td>
1783
  <td>
1784
- <button id="category-button-<?php echo $block; ?>" type="button" class='ai-button' title="<?php _e ('Toggle category editor', 'ad-inserter'); ?>"></button>
1785
  </td>
1786
  <td style="padding-right: 7px; width: 92%;">
1787
  <input id="category-list-<?php echo $block; ?>" class="ai-list-lowercase ai-list-filter-cat ai-list-custom" style="width: 100%;" title="<?php _e ('Comma separated category slugs', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_CATEGORY_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_ad_block_cat(); ?>" value="<?php echo $cat_list; ?>" size="54" maxlength="1500" />
@@ -1804,7 +1804,7 @@ function generate_settings_form (){
1804
  <?php _e ('Tags', 'ad-inserter'); ?>
1805
  </td>
1806
  <td>
1807
- <button id="tag-button-<?php echo $block; ?>" type="button" class='ai-button' title="<?php _e ('Toggle tag editor', 'ad-inserter'); ?>"></button>
1808
  </td>
1809
  <td style="padding-right: 7px; width: 92%;">
1810
  <input id="tag-list-<?php echo $block; ?>" class="ai-list-lowercase ai-list-filter ai-list-custom" style="width: 100%;" title="<?php _e ('Comma separated tag slugs', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_TAG_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_ad_block_tag(); ?>" value="<?php echo $tag_list; ?>" size="54" maxlength="1500"/>
@@ -1827,7 +1827,7 @@ function generate_settings_form (){
1827
  <?php _e ('Taxonomies', 'ad-inserter'); ?>
1828
  </td>
1829
  <td>
1830
- <button id="taxonomy-button-<?php echo $block; ?>" type="button" class='ai-button' title="<?php _e ('Toggle taxonomy editor', 'ad-inserter'); ?>"></button>
1831
  </td>
1832
  <td style="padding-right: 7px; width: 92%;">
1833
  <input id="taxonomy-list-<?php echo $block; ?>" class="ai-list-lowercase ai-list-custom" style="width: 100%;" title="<?php _e ('Comma separated slugs: taxonomy, term or taxonomy:term', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_TAXONOMY_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_ad_block_taxonomy(); ?>" value="<?php echo $taxonomy_list; ?>" size="54" maxlength="500" />
@@ -1850,7 +1850,7 @@ function generate_settings_form (){
1850
  <?php _e ('Post IDs', 'ad-inserter'); ?>
1851
  </td>
1852
  <td>
1853
- <button id="id-button-<?php echo $block; ?>" type="button" class='ai-button' title="<?php _e ('Toggle post/page ID editor', 'ad-inserter'); ?>"></button>
1854
  </td>
1855
  <td style="padding-right: 7px; width: 92%;">
1856
  <input id="id-list-<?php echo $block; ?>" class="ai-list-lowercase ai-list-custom" style="width: 100%;" title="<?php _e ('Comma separated post/page IDs', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_ID_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_id_list(); ?>" value="<?php echo $id_list; ?>" size="54" maxlength="2500"/>
@@ -1873,7 +1873,7 @@ function generate_settings_form (){
1873
  <?php _e ('Urls', 'ad-inserter'); ?>
1874
  </td>
1875
  <td>
1876
- <button id="url-button-<?php echo $block; ?>" type="button" class='ai-button' title="<?php _e ('Toggle url editor', 'ad-inserter'); ?>"></button>
1877
  </td>
1878
  <td style="padding-right: 7px; width: 92%;">
1879
  <input id="url-list-<?php echo $block; ?>" class="ai-list-space ai-clean-protocol ai-clean-domain" style="width: 100%;" type="text" name="<?php echo AI_OPTION_URL_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_ad_url_list(); ?>" value="<?php echo $url_list; ?>" size="54" maxlength="2500" title="<?php _e ('Comma separated urls (page addresses) starting with / after domain name (e.g. /permalink-url, use only when you need to taget a specific url not accessible by other means). You can also use partial urls with * (/url-start*. *url-pattern*, *url-end)', 'ad-inserter'); ?>" />
@@ -1896,7 +1896,7 @@ function generate_settings_form (){
1896
  &nbsp;
1897
  </td>
1898
  <td>
1899
- <button id="url-parameter-button-<?php echo $block; ?>" type="button" class='ai-button' title="<?php _e ('Toggle url parameter and cookie editor', 'ad-inserter'); ?>"></button>
1900
  </td>
1901
  <td style="padding-right: 7px; width: 92%;">
1902
  <input id="url-parameter-list-<?php echo $block; ?>" style="width: 100%;" title="<?php _e ("Comma separated url query parameters or cookies with optional values (use 'prameter', 'prameter=value', 'cookie' or 'cookie=value')", 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_URL_PARAMETER_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_url_parameter_list(); ?>" value="<?php echo $url_parameter_list; ?>" size="54" maxlength="1500"/>
@@ -1918,7 +1918,7 @@ function generate_settings_form (){
1918
  <?php _e ('Referrers', 'ad-inserter'); ?>
1919
  </td>
1920
  <td>
1921
- <button id="referer-button-<?php echo $block; ?>" type="button" class='ai-button' title="<?php _e ('Toggle referer editor', 'ad-inserter'); ?>"></button>
1922
  </td>
1923
  <td style="padding-right: 7px; width: 92%;">
1924
  <input id="referer-list-<?php echo $block; ?>" class="ai-clean-protocol ai-only-domain ai-list-sort" style="width: 100%;" title="<?php _e ('Comma separated domains, use # for no referrer, you can also use partial domains with * (domain-start*. *domain-pattern*, *domain-end)', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_DOMAIN_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_ad_domain_list(); ?>" value="<?php echo $domain_list; ?>" size="54" maxlength="1500"/>
@@ -1940,7 +1940,7 @@ function generate_settings_form (){
1940
  <?php _e ('Clients', 'ad-inserter'); ?>
1941
  </td>
1942
  <td>
1943
- <button id="client-button-<?php echo $block; ?>" type="button" class='ai-button' title="<?php _e ('Toggle client editor', 'ad-inserter'); ?>"></button>
1944
  </td>
1945
  <td style="padding-right: 7px; width: 92%;">
1946
  <input id="client-list-<?php echo $block; ?>" class="ai-list-custom" style="width: 100%;" title="<?php _e ('Comma separated names (operating systems, browsers, devices). You can also list partial user agent strings with * (user-agent-start*. *user-agent-pattern*, *user-agent-end)', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_CLIENT_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_client_list(); ?>" value="<?php echo $client_list; ?>" size="54" maxlength="1500"/>
@@ -2911,7 +2911,7 @@ function generate_settings_form (){
2911
  </td>
2912
  <td>
2913
  <input id="custom-selectors" style="width: 95%;" type="text" name="<?php echo AI_OPTION_ADB_SELECTORS; ?>" title="<?php _e ('Comma seprarated list of selectors (.class, #id) used for additional ad blocking detection. Invisible element or element with zero height means ad blocking is present.', 'ad-inserter'); ?>" value="<?php echo get_adb_selectors (); ?>" default="" size="50" maxlength="200" />
2914
- <button id="custom-selectors-button" type="button" class='ai-button' style="display: none; outline: transparent; float: right; margin-top: 4px; width: 15px; height: 15px;" title="<?php _e ('Open HTML element selector', 'ad-inserter'); ?>"></button>
2915
  </td>
2916
  </tr>
2917
  <?php if (function_exists ('ai_adb_settings')) ai_adb_settings (); ?>
1393
  <span id="css-label-<?php echo $block; ?>" style="display: table-cell; width: 36px; padding: 0; height: 26px; vertical-align: middle; margin: 4px 0 0 0; font-size: 14px; font-weight: bold;">CSS</span>
1394
  <input id="custom-css-<?php echo $block; ?>" style="width: 100%; display: none; font-family: monospace, Courier, 'Courier New'; font-weight: bold;" type="text" name="<?php echo AI_OPTION_CUSTOM_CSS, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_custom_css(); ?>" value="<?php echo $obj->get_custom_css(); ?>" maxlength="500" title="<?php _e ('Custom CSS code for the wrapping div', 'ad-inserter'); ?>" />
1395
  <span style="display: table-cell; vertical-align: middle; font-family: monospace, Courier, 'Courier New'; font-size: 12px; font-weight: bold; cursor: pointer; padding-left: 10px;">
1396
+ <span id="css-no-wrapping-<?php echo $block; ?>" class='css-code' style="height: 26px; padding-left: 0px; display: none;"></span>
1397
+ <span id="css-none-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 0px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_DEFAULT); ?></span>
1398
+ <span id="css-left-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 0px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_LEFT); ?></span>
1399
+ <span id="css-right-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 0px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_RIGHT); ?></span>
1400
+ <span id="css-center-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 0px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_CENTER); ?></span>
1401
+ <span id="css-float-left-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 0px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_FLOAT_LEFT); ?></span>
1402
+ <span id="css-float-right-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-right: 0px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_FLOAT_RIGHT); ?></span>
1403
  <?php if (function_exists ('ai_style_css')) ai_style_css ($block, $obj); ?>
1404
  </span>
1405
+ <span style="display:table-cell; width: 46px; padding-top: 1px;" ><button id="edit-css-button-<?php echo $block; ?>" type="button" class='ai-button' style="display: table-cell; margin: 0 0 0 8px;"><?php _e ('Edit', 'ad-inserter'); ?></button></span>
1406
  </div>
1407
  </div>
1408
  </div>
1416
  &nbsp;&nbsp;
1417
  </span>
1418
  <span style="display: table-cell; width: 20px; vertical-align: middle; padding: 0 2px 2px 0;">
1419
+ <button id="html-elements-button-<?php echo $block; ?>" type="button" class='ai-button ai-button-small' style="display: none; outline: transparent; float: right; margin-top: 1px; width: 15px; height: 15px;" title="<?php _e ('Open HTML element selector', 'ad-inserter'); ?>"></button>
1420
  </span>
1421
  <span style="display: table-cell;">
1422
  <input
1456
  <?php _e ('Wait for', 'ad-inserter'); ?>
1457
  </span>
1458
  <span style="display: table-cell; white-space: nowrap; width: 5%; vertical-align: middle;">
1459
+ <button id="wait-for-button-<?php echo $block; ?>" type="button" class='ai-button ai-button-small' style="display: none; outline: transparent; float: right; margin-top: 1px; width: 15px; height: 15px;" title="<?php _e ('Open HTML element selector', 'ad-inserter'); ?>"></button>
1460
  </span>
1461
  <span style="display: table-cell; white-space: nowrap; width: 50%;">
1462
  <input
1781
  <?php _e ('Categories', 'ad-inserter'); ?>
1782
  </td>
1783
  <td>
1784
+ <button id="category-button-<?php echo $block; ?>" type="button" class='ai-button ai-button-small' title="<?php _e ('Toggle category editor', 'ad-inserter'); ?>"></button>
1785
  </td>
1786
  <td style="padding-right: 7px; width: 92%;">
1787
  <input id="category-list-<?php echo $block; ?>" class="ai-list-lowercase ai-list-filter-cat ai-list-custom" style="width: 100%;" title="<?php _e ('Comma separated category slugs', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_CATEGORY_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_ad_block_cat(); ?>" value="<?php echo $cat_list; ?>" size="54" maxlength="1500" />
1804
  <?php _e ('Tags', 'ad-inserter'); ?>
1805
  </td>
1806
  <td>
1807
+ <button id="tag-button-<?php echo $block; ?>" type="button" class='ai-button ai-button-small' title="<?php _e ('Toggle tag editor', 'ad-inserter'); ?>"></button>
1808
  </td>
1809
  <td style="padding-right: 7px; width: 92%;">
1810
  <input id="tag-list-<?php echo $block; ?>" class="ai-list-lowercase ai-list-filter ai-list-custom" style="width: 100%;" title="<?php _e ('Comma separated tag slugs', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_TAG_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_ad_block_tag(); ?>" value="<?php echo $tag_list; ?>" size="54" maxlength="1500"/>
1827
  <?php _e ('Taxonomies', 'ad-inserter'); ?>
1828
  </td>
1829
  <td>
1830
+ <button id="taxonomy-button-<?php echo $block; ?>" type="button" class='ai-button ai-button-small' title="<?php _e ('Toggle taxonomy editor', 'ad-inserter'); ?>"></button>
1831
  </td>
1832
  <td style="padding-right: 7px; width: 92%;">
1833
  <input id="taxonomy-list-<?php echo $block; ?>" class="ai-list-lowercase ai-list-custom" style="width: 100%;" title="<?php _e ('Comma separated slugs: taxonomy, term or taxonomy:term', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_TAXONOMY_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_ad_block_taxonomy(); ?>" value="<?php echo $taxonomy_list; ?>" size="54" maxlength="500" />
1850
  <?php _e ('Post IDs', 'ad-inserter'); ?>
1851
  </td>
1852
  <td>
1853
+ <button id="id-button-<?php echo $block; ?>" type="button" class='ai-button ai-button-small' title="<?php _e ('Toggle post/page ID editor', 'ad-inserter'); ?>"></button>
1854
  </td>
1855
  <td style="padding-right: 7px; width: 92%;">
1856
  <input id="id-list-<?php echo $block; ?>" class="ai-list-lowercase ai-list-custom" style="width: 100%;" title="<?php _e ('Comma separated post/page IDs', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_ID_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_id_list(); ?>" value="<?php echo $id_list; ?>" size="54" maxlength="2500"/>
1873
  <?php _e ('Urls', 'ad-inserter'); ?>
1874
  </td>
1875
  <td>
1876
+ <button id="url-button-<?php echo $block; ?>" type="button" class='ai-button ai-button-small' title="<?php _e ('Toggle url editor', 'ad-inserter'); ?>"></button>
1877
  </td>
1878
  <td style="padding-right: 7px; width: 92%;">
1879
  <input id="url-list-<?php echo $block; ?>" class="ai-list-space ai-clean-protocol ai-clean-domain" style="width: 100%;" type="text" name="<?php echo AI_OPTION_URL_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_ad_url_list(); ?>" value="<?php echo $url_list; ?>" size="54" maxlength="2500" title="<?php _e ('Comma separated urls (page addresses) starting with / after domain name (e.g. /permalink-url, use only when you need to taget a specific url not accessible by other means). You can also use partial urls with * (/url-start*. *url-pattern*, *url-end)', 'ad-inserter'); ?>" />
1896
  &nbsp;
1897
  </td>
1898
  <td>
1899
+ <button id="url-parameter-button-<?php echo $block; ?>" type="button" class='ai-button ai-button-small' title="<?php _e ('Toggle url parameter and cookie editor', 'ad-inserter'); ?>"></button>
1900
  </td>
1901
  <td style="padding-right: 7px; width: 92%;">
1902
  <input id="url-parameter-list-<?php echo $block; ?>" style="width: 100%;" title="<?php _e ("Comma separated url query parameters or cookies with optional values (use 'prameter', 'prameter=value', 'cookie' or 'cookie=value')", 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_URL_PARAMETER_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_url_parameter_list(); ?>" value="<?php echo $url_parameter_list; ?>" size="54" maxlength="1500"/>
1918
  <?php _e ('Referrers', 'ad-inserter'); ?>
1919
  </td>
1920
  <td>
1921
+ <button id="referer-button-<?php echo $block; ?>" type="button" class='ai-button ai-button-small' title="<?php _e ('Toggle referer editor', 'ad-inserter'); ?>"></button>
1922
  </td>
1923
  <td style="padding-right: 7px; width: 92%;">
1924
  <input id="referer-list-<?php echo $block; ?>" class="ai-clean-protocol ai-only-domain ai-list-sort" style="width: 100%;" title="<?php _e ('Comma separated domains, use # for no referrer, you can also use partial domains with * (domain-start*. *domain-pattern*, *domain-end)', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_DOMAIN_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_ad_domain_list(); ?>" value="<?php echo $domain_list; ?>" size="54" maxlength="1500"/>
1940
  <?php _e ('Clients', 'ad-inserter'); ?>
1941
  </td>
1942
  <td>
1943
+ <button id="client-button-<?php echo $block; ?>" type="button" class='ai-button ai-button-small' title="<?php _e ('Toggle client editor', 'ad-inserter'); ?>"></button>
1944
  </td>
1945
  <td style="padding-right: 7px; width: 92%;">
1946
  <input id="client-list-<?php echo $block; ?>" class="ai-list-custom" style="width: 100%;" title="<?php _e ('Comma separated names (operating systems, browsers, devices). You can also list partial user agent strings with * (user-agent-start*. *user-agent-pattern*, *user-agent-end)', 'ad-inserter'); ?>" type="text" name="<?php echo AI_OPTION_CLIENT_LIST, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_client_list(); ?>" value="<?php echo $client_list; ?>" size="54" maxlength="1500"/>
2911
  </td>
2912
  <td>
2913
  <input id="custom-selectors" style="width: 95%;" type="text" name="<?php echo AI_OPTION_ADB_SELECTORS; ?>" title="<?php _e ('Comma seprarated list of selectors (.class, #id) used for additional ad blocking detection. Invisible element or element with zero height means ad blocking is present.', 'ad-inserter'); ?>" value="<?php echo get_adb_selectors (); ?>" default="" size="50" maxlength="200" />
2914
+ <button id="custom-selectors-button" type="button" class='ai-button ai-button-small' style="display: none; outline: transparent; float: right; margin-top: 4px; width: 15px; height: 15px;" title="<?php _e ('Open HTML element selector', 'ad-inserter'); ?>"></button>
2915
  </td>
2916
  </tr>
2917
  <?php if (function_exists ('ai_adb_settings')) ai_adb_settings (); ?>