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

Version Description

  • Added support for uppercase {country_ISO2} and lowercase {country_iso2} tag (Pro only)
  • Removed inclusion of dummy css and js file
  • Bug fix: Client-side dynamic blocks were not enabled if not using W3 Total Cache
Download this release

Release Info

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

Code changes from version 2.0.8 to 2.0.9

ad-inserter.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Plugin Name: Ad Inserter
4
- Version: 2.0.8
5
  Description: Insert any ad or code into Wordpress. Perfect for all kinds of ads. Simply enter any ad or HTML/Javascript/PHP code and select where and how you want to display it.
6
  Author: Igor Funa
7
  Author URI: http://igorfuna.com/
@@ -11,7 +11,12 @@ Plugin URI: http://adinserter.pro/documentation
11
  /*
12
  Change Log
13
 
14
- Ad Inserter 2.0.8 - 6 January 2016
 
 
 
 
 
15
  - Added support for client-side rotation (works with caching)
16
  - Added support for server-side rotation with W3 Total Cache
17
  - Added support for client-side country detection (works with caching, Pro only)
@@ -420,10 +425,13 @@ add_action ('init', 'ai_init_hook');
420
 
421
  add_action( 'wp', 'ai_wp_hook');
422
 
423
- if ($adH->get_enable_manual ())
 
 
 
424
  add_action ('wp_head', 'ai_wp_head_hook');
425
 
426
- if ($adF->get_enable_manual ())
427
  add_action ('wp_footer', 'ai_wp_footer_hook');
428
 
429
  if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0)
@@ -435,8 +443,6 @@ add_action ('save_post', 'ai_save_meta_box_data_hook');
435
 
436
  if (function_exists ('ai_hooks')) ai_hooks ();
437
 
438
- add_action ('wp_enqueue_scripts', 'ai_enqueue_scripts_hook');
439
-
440
  add_filter ('plugin_action_links_'.plugin_basename (__FILE__), 'ai_plugin_action_links');
441
  add_filter ('plugin_row_meta', 'ai_set_plugin_meta', 10, 2);
442
  add_action ('wp_ajax_ai_data', 'ai_data');
@@ -876,15 +882,17 @@ function ai_admin_enqueue_scripts ($hook_suffix) {
876
  }
877
  }
878
 
879
- function ai_enqueue_scripts_hook () {
880
- global $ai_wp_data, $ai_wp_data, $ai_total_plugin_time;
881
 
882
- if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
883
- ai_log ("WP ENQUEUE SCRIPTS START");
884
- $start_time = microtime ();
885
- }
 
886
 
887
- $style = "#wp-admin-bar-ai-toolbar-settings .ab-icon:before {
 
888
  content: '\\f111';
889
  top: 2px;
890
  color: rgba(240,245,250,.6)!important;
@@ -922,16 +930,17 @@ function ai_enqueue_scripts_hook () {
922
  }
923
  #wp-admin-bar-ai-toolbar-positions .up-icon:before {
924
  font: 400 20px/1 dashicons;
925
- }";
 
926
 
927
- if ($ai_wp_data [CLIENT_SIDE_DETECTION] || get_remote_debugging () || ($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0)
928
- wp_enqueue_style ('ai-frontend', plugins_url ('includes/dummy.txt', __FILE__), array (), null);
 
929
 
930
- if ($ai_wp_data [CLIENT_SIDE_DETECTION])
931
- wp_add_inline_style ('ai-frontend', get_viewport_css ());
932
 
933
- if (get_remote_debugging () || ($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0)
934
- wp_add_inline_style ('ai-frontend', $style);
935
 
936
  // $rotation_script = ' jQuery (function ($) {
937
  // $("div.ai-rotate").each (function () {
@@ -944,7 +953,7 @@ function ai_enqueue_scripts_hook () {
944
  // });
945
  //';
946
 
947
- $rotation_script = 'jQuery(function($){$("div.ai-rotate").each(function(){var rotate_options=$(".ai-rotate-option",this);var random_index=Math.floor(Math.random()*rotate_options.length);rotate_options.hide();$(rotate_options[random_index]).css({"display":"","visibility":"","position":"","width":"","height":"","top":"","left":""});$(this).css({"position":""})})});';
948
 
949
  // $ip_address_detection_script = ' jQuery (function ($) {
950
  // function getParameterByName (name, url) {
@@ -1070,22 +1079,15 @@ function ai_enqueue_scripts_hook () {
1070
  // });
1071
  //';
1072
 
1073
- $ip_address_detection_script = 'jQuery(function($){function getParameterByName(name,url){if(!url)url=window.location.href;name=name.replace(/[\[\]]/g,"\\$&");var regex=new RegExp("[?&]"+name+"(=([^&#]*)|&|#|$)"),results=regex.exec(url);if(!results)return null;if(!results[2])return"";return decodeURIComponent(results[2].replace(/\+/g," "))}var nonce="'.wp_create_nonce ("adinserter_data").'";var site_url="'.wp_make_link_relative (get_site_url()).'";var page=site_url+"/wp-admin/admin-ajax.php?action=ai_data&ip-data=ip-address-country&ai_check="+nonce;var debug_ip_address=getParameterByName("ai-debug-ip-address");
1074
  if(debug_ip_address!=null)page+="&ai-debug-ip-address="+debug_ip_address;var debug_ip_address=getParameterByName("ai-debug-country");if(debug_ip_address!=null)page+="&ai-debug-country="+debug_ip_address;var enable_block=false;$.get(page,function(ip_data){$("div.ai-ip-data").each(function(){var ip_data_array=ip_data.split(",");var ip_address=ip_data_array[0];var country=ip_data_array[1];var block_div=$("."+$(this).attr("class-name"));enable_block=true;var found=false;var ip_addresses_list=$(this).attr("ip-addresses");
1075
  if(typeof ip_addresses_list!="undefined"){var ip_address_array=ip_addresses_list.split(",");var ip_address_list_type=$(this).attr("ip-address-list");$.each(ip_address_array,function(index,list_ip_address){if(list_ip_address.charAt(0)=="*")if(list_ip_address.charAt(list_ip_address.length-1)=="*"){list_ip_address=list_ip_address.substr(1,list_ip_address.length-2);if(ip_address.indexOf(list_ip_address)!=-1){found=true;return false}}else{list_ip_address=list_ip_address.substr(1);if(ip_address.substr(-list_ip_address.length)==
1076
  list_ip_address){found=true;return false}}else if(list_ip_address.charAt(list_ip_address.length-1)=="*"){list_ip_address=list_ip_address.substr(0,list_ip_address.length-1);if(ip_address.indexOf(list_ip_address)==0){found=true;return false}}else if(list_ip_address=="#"&&ip_address==""){found=true;return false}else if(list_ip_address==ip_address){found=true;return false}});switch(ip_address_list_type){case "B":if(found)enable_block=false;break;case "W":if(!found)enable_block=false;break}}if(enable_block){var countries_list=
1077
  $(this).attr("countries");if(typeof countries_list!="undefined"){var country_array=countries_list.split(",");var country_list_type=$(this).attr("country-list");var found=false;$.each(country_array,function(index,list_country){if(list_country==country){found=true;return false}});switch(country_list_type){case "B":if(found)enable_block=false;break;case "W":if(!found)enable_block=false;break}}}$(this).css({"visibility":"","position":"","width":"","height":"","z-index":""});block_div.css({"visibility":"",
1078
  "position":"","z-index":""});if(!enable_block){$(this).hide();block_div.hide()}})}).fail(function(){$("div.ai-ip-data").each(function(){$(this).css({"display":"none","visibility":"","position":"","width":"","height":"","z-index":""})})})});';
1079
 
1080
- if (get_dynamic_blocks () == AI_DYNAMIC_BLOCKS_CLIENT_SIDE) {
1081
- wp_enqueue_script ('ai-frontend-js', plugins_url ('includes/dummy.txt', __FILE__), array ('jquery'), null, true);
1082
- wp_add_inline_script ('ai-frontend-js', $rotation_script);
1083
- wp_add_inline_script ('ai-frontend-js', $ip_address_detection_script);
1084
- }
1085
 
1086
- if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
1087
- $ai_total_plugin_time += microtime () - $start_time;
1088
- ai_log ("WP ENQUEUE SCRIPTS END\n");
1089
  }
1090
  }
1091
 
@@ -1338,6 +1340,8 @@ function ai_wp_head_hook () {
1338
  $start_time = microtime ();
1339
  }
1340
 
 
 
1341
  $ai_wp_data [AI_CONTEXT] = AI_CONTEXT_NONE;
1342
 
1343
  $obj = $block_object [AI_HEADER_OPTION_NAME];
@@ -1364,6 +1368,8 @@ function ai_wp_footer_hook () {
1364
  $start_time = microtime ();
1365
  }
1366
 
 
 
1367
  $ai_wp_data [AI_CONTEXT] = AI_CONTEXT_FOOTER;
1368
 
1369
  $obj = $block_object [AI_FOOTER_OPTION_NAME];
1
  <?php
2
  /*
3
  Plugin Name: Ad Inserter
4
+ Version: 2.0.9
5
  Description: Insert any ad or code into Wordpress. Perfect for all kinds of ads. Simply enter any ad or HTML/Javascript/PHP code and select where and how you want to display it.
6
  Author: Igor Funa
7
  Author URI: http://igorfuna.com/
11
  /*
12
  Change Log
13
 
14
+ Ad Inserter 2.0.9 - 8 January 2017
15
+ - Added support for uppercase and lowercase {country_iso2} tag (Pro only)
16
+ - Removed inclusion of dummy css and js file
17
+ - Bug fix: Client-side dynamic blocks were not enabled if not using W3 Total Cache
18
+
19
+ Ad Inserter 2.0.8 - 6 January 2017
20
  - Added support for client-side rotation (works with caching)
21
  - Added support for server-side rotation with W3 Total Cache
22
  - Added support for client-side country detection (works with caching, Pro only)
425
 
426
  add_action( 'wp', 'ai_wp_hook');
427
 
428
+ if ($adH->get_enable_manual () ||
429
+ $ai_wp_data [CLIENT_SIDE_DETECTION] ||
430
+ get_remote_debugging () ||
431
+ ($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0)
432
  add_action ('wp_head', 'ai_wp_head_hook');
433
 
434
+ if ($adF->get_enable_manual () || get_dynamic_blocks () == AI_DYNAMIC_BLOCKS_CLIENT_SIDE)
435
  add_action ('wp_footer', 'ai_wp_footer_hook');
436
 
437
  if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0)
443
 
444
  if (function_exists ('ai_hooks')) ai_hooks ();
445
 
 
 
446
  add_filter ('plugin_action_links_'.plugin_basename (__FILE__), 'ai_plugin_action_links');
447
  add_filter ('plugin_row_meta', 'ai_set_plugin_meta', 10, 2);
448
  add_action ('wp_ajax_ai_data', 'ai_data');
882
  }
883
  }
884
 
885
+ function add_head_inline_styles_and_scripts () {
886
+ global $ai_wp_data;
887
 
888
+ if ($ai_wp_data [CLIENT_SIDE_DETECTION] || get_admin_toolbar_debugging () && (get_remote_debugging () || ($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0)) {
889
+ echo "<style type='text/css'>\n";
890
+
891
+ if ($ai_wp_data [CLIENT_SIDE_DETECTION])
892
+ echo get_viewport_css ();
893
 
894
+ if (get_admin_toolbar_debugging () && (get_remote_debugging () || ($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0))
895
+ echo "#wp-admin-bar-ai-toolbar-settings .ab-icon:before {
896
  content: '\\f111';
897
  top: 2px;
898
  color: rgba(240,245,250,.6)!important;
930
  }
931
  #wp-admin-bar-ai-toolbar-positions .up-icon:before {
932
  font: 400 20px/1 dashicons;
933
+ }
934
+ ";
935
 
936
+ echo "</style>\n";
937
+ }
938
+ }
939
 
940
+ function add_footer_inline_scripts () {
 
941
 
942
+ if (get_dynamic_blocks () == AI_DYNAMIC_BLOCKS_CLIENT_SIDE) {
943
+ echo "<script type='text/javascript'>\n";
944
 
945
  // $rotation_script = ' jQuery (function ($) {
946
  // $("div.ai-rotate").each (function () {
953
  // });
954
  //';
955
 
956
+ echo 'jQuery(function($){$("div.ai-rotate").each(function(){var rotate_options=$(".ai-rotate-option",this);var random_index=Math.floor(Math.random()*rotate_options.length);rotate_options.hide();$(rotate_options[random_index]).css({"display":"","visibility":"","position":"","width":"","height":"","top":"","left":""});$(this).css({"position":""})})});';
957
 
958
  // $ip_address_detection_script = ' jQuery (function ($) {
959
  // function getParameterByName (name, url) {
1079
  // });
1080
  //';
1081
 
1082
+ echo 'jQuery(function($){function getParameterByName(name,url){if(!url)url=window.location.href;name=name.replace(/[\[\]]/g,"\\$&");var regex=new RegExp("[?&]"+name+"(=([^&#]*)|&|#|$)"),results=regex.exec(url);if(!results)return null;if(!results[2])return"";return decodeURIComponent(results[2].replace(/\+/g," "))}var nonce="'.wp_create_nonce ("adinserter_data").'";var site_url="'.wp_make_link_relative (get_site_url()).'";var page=site_url+"/wp-admin/admin-ajax.php?action=ai_data&ip-data=ip-address-country&ai_check="+nonce;var debug_ip_address=getParameterByName("ai-debug-ip-address");
1083
  if(debug_ip_address!=null)page+="&ai-debug-ip-address="+debug_ip_address;var debug_ip_address=getParameterByName("ai-debug-country");if(debug_ip_address!=null)page+="&ai-debug-country="+debug_ip_address;var enable_block=false;$.get(page,function(ip_data){$("div.ai-ip-data").each(function(){var ip_data_array=ip_data.split(",");var ip_address=ip_data_array[0];var country=ip_data_array[1];var block_div=$("."+$(this).attr("class-name"));enable_block=true;var found=false;var ip_addresses_list=$(this).attr("ip-addresses");
1084
  if(typeof ip_addresses_list!="undefined"){var ip_address_array=ip_addresses_list.split(",");var ip_address_list_type=$(this).attr("ip-address-list");$.each(ip_address_array,function(index,list_ip_address){if(list_ip_address.charAt(0)=="*")if(list_ip_address.charAt(list_ip_address.length-1)=="*"){list_ip_address=list_ip_address.substr(1,list_ip_address.length-2);if(ip_address.indexOf(list_ip_address)!=-1){found=true;return false}}else{list_ip_address=list_ip_address.substr(1);if(ip_address.substr(-list_ip_address.length)==
1085
  list_ip_address){found=true;return false}}else if(list_ip_address.charAt(list_ip_address.length-1)=="*"){list_ip_address=list_ip_address.substr(0,list_ip_address.length-1);if(ip_address.indexOf(list_ip_address)==0){found=true;return false}}else if(list_ip_address=="#"&&ip_address==""){found=true;return false}else if(list_ip_address==ip_address){found=true;return false}});switch(ip_address_list_type){case "B":if(found)enable_block=false;break;case "W":if(!found)enable_block=false;break}}if(enable_block){var countries_list=
1086
  $(this).attr("countries");if(typeof countries_list!="undefined"){var country_array=countries_list.split(",");var country_list_type=$(this).attr("country-list");var found=false;$.each(country_array,function(index,list_country){if(list_country==country){found=true;return false}});switch(country_list_type){case "B":if(found)enable_block=false;break;case "W":if(!found)enable_block=false;break}}}$(this).css({"visibility":"","position":"","width":"","height":"","z-index":""});block_div.css({"visibility":"",
1087
  "position":"","z-index":""});if(!enable_block){$(this).hide();block_div.hide()}})}).fail(function(){$("div.ai-ip-data").each(function(){$(this).css({"display":"none","visibility":"","position":"","width":"","height":"","z-index":""})})})});';
1088
 
 
 
 
 
 
1089
 
1090
+ echo "\n</script>\n";
 
 
1091
  }
1092
  }
1093
 
1340
  $start_time = microtime ();
1341
  }
1342
 
1343
+ add_head_inline_styles_and_scripts ();
1344
+
1345
  $ai_wp_data [AI_CONTEXT] = AI_CONTEXT_NONE;
1346
 
1347
  $obj = $block_object [AI_HEADER_OPTION_NAME];
1368
  $start_time = microtime ();
1369
  }
1370
 
1371
+ add_footer_inline_scripts ();
1372
+
1373
  $ai_wp_data [AI_CONTEXT] = AI_CONTEXT_FOOTER;
1374
 
1375
  $obj = $block_object [AI_FOOTER_OPTION_NAME];
class.php CHANGED
@@ -849,7 +849,7 @@ abstract class ai_CodeBlock extends ai_BaseCodeBlock {
849
 
850
  $processed_code = do_shortcode ($this->replace_ai_tags ($this->ai_getCode ()));
851
  $dynamic_blocks = get_dynamic_blocks ();
852
- if ($force_server_side_code || defined ('AI_NO_W3TC')) $dynamic_blocks = AI_DYNAMIC_BLOCKS_SERVER_SIDE;
853
 
854
  if (strpos ($processed_code, AD_ROTATE_SEPARATOR) !== false) {
855
  $ads = explode (AD_ROTATE_SEPARATOR, $processed_code);
849
 
850
  $processed_code = do_shortcode ($this->replace_ai_tags ($this->ai_getCode ()));
851
  $dynamic_blocks = get_dynamic_blocks ();
852
+ if ($force_server_side_code || ($dynamic_blocks == AI_DYNAMIC_BLOCKS_SERVER_SIDE_W3TC && defined ('AI_NO_W3TC'))) $dynamic_blocks = AI_DYNAMIC_BLOCKS_SERVER_SIDE;
853
 
854
  if (strpos ($processed_code, AD_ROTATE_SEPARATOR) !== false) {
855
  $ads = explode (AD_ROTATE_SEPARATOR, $processed_code);
constants.php CHANGED
@@ -11,7 +11,7 @@ if (!defined( 'AD_INSERTER_NAME'))
11
  define ('AD_INSERTER_NAME', 'Ad Inserter');
12
 
13
  if (!defined( 'AD_INSERTER_VERSION'))
14
- define ('AD_INSERTER_VERSION', '2.0.8');
15
 
16
  if (!defined ('AD_INSERTER_PLUGIN_BASENAME'))
17
  define ('AD_INSERTER_PLUGIN_BASENAME', plugin_basename (__FILE__));
11
  define ('AD_INSERTER_NAME', 'Ad Inserter');
12
 
13
  if (!defined( 'AD_INSERTER_VERSION'))
14
+ define ('AD_INSERTER_VERSION', '2.0.9');
15
 
16
  if (!defined ('AD_INSERTER_PLUGIN_BASENAME'))
17
  define ('AD_INSERTER_PLUGIN_BASENAME', plugin_basename (__FILE__));
css/ad-inserter.css CHANGED
@@ -1,5 +1,5 @@
1
  #data {
2
- font-family: "2.0.8"; /* Used for version number of the file */
3
  }
4
 
5
  #blocked-warning {
1
  #data {
2
+ font-family: "2.0.9"; /* Used for version number of the file */
3
  }
4
 
5
  #blocked-warning {
includes/dummy.txt DELETED
File without changes
js/ad-inserter.js CHANGED
@@ -1,4 +1,4 @@
1
- var javascript_version = "2.0.8";
2
  var ignore_key = true;
3
  var start = 1;
4
  var end = 16;
1
+ var javascript_version = "2.0.9";
2
  var ignore_key = true;
3
  var start = 1;
4
  var end = 16;
readme.txt CHANGED
@@ -473,6 +473,22 @@ To blacklist both enter `yourdomain.com, #`
473
  This is disabled by default. Uncheck Error 404 Page checkbox.
474
 
475
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
476
  = How can I enable or disable ads on group of similar pages? =
477
 
478
  If those pages have something in common in the url (page address) then you can block them with url patterns.
@@ -618,6 +634,11 @@ AD CODE RIGHT
618
 
619
  == Changelog ==
620
 
 
 
 
 
 
621
  = 2.0.8 =
622
  - Added support for client-side rotation (works with caching)
623
  - Added support for server-side rotation with W3 Total Cache
@@ -902,6 +923,10 @@ AD CODE RIGHT
902
 
903
  == Upgrade Notice ==
904
 
 
 
 
 
905
  = 2.0.8 =
906
  Added support for client-side rotation (works with caching), added support for W3 Total Cache, client-side country detection (works with caching, Pro only),
907
  bug fixed: Code preview did not work if Wordpress was installed in a folder, added flags to country list (Pro only)
473
  This is disabled by default. Uncheck Error 404 Page checkbox.
474
 
475
 
476
+ = Is there a way to display country flag of the visitor? =
477
+
478
+ Possible if you are using Ad Inserter Pro. In the header put the following code:
479
+
480
+ `<link rel='stylesheet' href='/wp-content/plugins/ad-inserter/css/flags.css' type='text/css' media='all' />`
481
+
482
+ In the code block use the following code for flag
483
+
484
+ `<span class="flag-icon flag-icon-{country_iso2}" style="width: 400px; height: 300px;"></span>`
485
+
486
+ Adjust width and height according to your needs. Please not that `{country_iso2}` tag works only server-side - it won't work on cached pages.
487
+ Of course, you can also use static code for flags. For example, for United States:
488
+
489
+ `<span class="flag-icon flag-icon-us" style="width: 400px; height: 300px;"></span>`
490
+
491
+
492
  = How can I enable or disable ads on group of similar pages? =
493
 
494
  If those pages have something in common in the url (page address) then you can block them with url patterns.
634
 
635
  == Changelog ==
636
 
637
+ = 2.0.9 =
638
+ - Added support for uppercase {country_ISO2} and lowercase {country_iso2} tag (Pro only)
639
+ - Removed inclusion of dummy css and js file
640
+ - Bug fix: Client-side dynamic blocks were not enabled if not using W3 Total Cache
641
+
642
  = 2.0.8 =
643
  - Added support for client-side rotation (works with caching)
644
  - Added support for server-side rotation with W3 Total Cache
923
 
924
  == Upgrade Notice ==
925
 
926
+ = 2.0.9 =
927
+ Bug fix: Client-side dynamic blocks were not enabled if not using W3 Total Cache;
928
+ Added support for uppercase and lowercase {country_iso2} tag (Pro only); Removed inclusion of dummy css and js file
929
+
930
  = 2.0.8 =
931
  Added support for client-side rotation (works with caching), added support for W3 Total Cache, client-side country detection (works with caching, Pro only),
932
  bug fixed: Code preview did not work if Wordpress was installed in a folder, added flags to country list (Pro only)
settings.php CHANGED
@@ -985,7 +985,7 @@ function generate_settings_form (){
985
  <table>
986
  <?php if (function_exists ('ai_general_settings')) ai_general_settings (); ?>
987
  <tr>
988
- <td>
989
  Syntax Highlighter Theme
990
  </td>
991
  <td>
@@ -1037,7 +1037,7 @@ function generate_settings_form (){
1037
  </td>
1038
  </tr>
1039
  <tr>
1040
- <td>
1041
  Block Class Name
1042
  </td>
1043
  <td>
@@ -1045,7 +1045,7 @@ function generate_settings_form (){
1045
  </td>
1046
  </tr>
1047
  <tr>
1048
- <td style="padding-right: 10px;">
1049
  Minimum User Role for Exceptions Editing
1050
  </td>
1051
  <td>
@@ -1055,7 +1055,7 @@ function generate_settings_form (){
1055
  </td>
1056
  </tr>
1057
  <tr>
1058
- <td>
1059
  Dynamic blocks
1060
  </td>
1061
  <td>
@@ -1067,7 +1067,7 @@ function generate_settings_form (){
1067
  </td>
1068
  </tr>
1069
  <tr>
1070
- <td>
1071
  Plugin priority
1072
  </td>
1073
  <td>
985
  <table>
986
  <?php if (function_exists ('ai_general_settings')) ai_general_settings (); ?>
987
  <tr>
988
+ <td style="padding-left: 10px;">
989
  Syntax Highlighter Theme
990
  </td>
991
  <td>
1037
  </td>
1038
  </tr>
1039
  <tr>
1040
+ <td style="padding-left: 10px;">
1041
  Block Class Name
1042
  </td>
1043
  <td>
1045
  </td>
1046
  </tr>
1047
  <tr>
1048
+ <td style="padding: 0 10px;">
1049
  Minimum User Role for Exceptions Editing
1050
  </td>
1051
  <td>
1055
  </td>
1056
  </tr>
1057
  <tr>
1058
+ <td style="padding-left: 10px;">
1059
  Dynamic blocks
1060
  </td>
1061
  <td>
1067
  </td>
1068
  </tr>
1069
  <tr>
1070
+ <td style="padding-left: 10px;">
1071
  Plugin priority
1072
  </td>
1073
  <td>