Easy Plugin for AdSense - Version 8.13

Version Description

Serious bug fix related to multiple passes of the content filter. Introducing a verbosity option.

Download this release

Release Info

Developer manojtd
Plugin Icon 128x128 Easy Plugin for AdSense
Version 8.13
Comparing to
See all releases

Code changes from version 8.11 to 8.13

EzGA.php CHANGED
@@ -24,6 +24,7 @@ if (!class_exists("EzGA")) {
24
  'tag', 'archive', 'search', 'single', 'attachment');
25
  static $unSettable = array('Phone', 'Tablet', 'All', 'Mobile');
26
  static $noAds = false;
 
27
 
28
  static function isActive() {
29
  if (!function_exists('is_plugin_active')) {
@@ -768,42 +769,58 @@ if (!class_exists("EzGA")) {
768
  static function preFilter($content, $isWidget = false) {
769
  $plgName = self::getPlgName();
770
  if (self::$noAds) {
771
- return $content . " <!-- $plgName: PreFiltered - NoAds -->";
 
772
  }
773
- if (self::isKilled()) {
 
 
774
  self::$noAds = true;
775
- return $content . " <!-- $plgName: is Killed -->";
 
776
  }
777
  if (empty(self::$options['allow_feeds']) && is_feed()) {
 
778
  self::$noAds = true;
779
- return $content;
 
780
  }
 
781
  $metaOptions = self::getMetaOptions();
782
  if (strpos($content, "<!--noadsense-->") !== false) {
783
- self::$noAds = true;
784
  self::$metaOptions['adsense'] = 'no';
785
- return $content . " <!-- $plgName: Unfiltered [suppressed by noadsense comment] -->";
 
 
786
  }
787
  if (isset($metaOptions['adsense']) && $metaOptions['adsense'] == 'no') {
 
788
  self::$noAds = true;
789
- return $content . " <!-- $plgName: Unfiltered [suppressed by meta option adsense = no] -->";
 
790
  }
791
  if (self::isBanned()) {
 
792
  self::$noAds = true;
793
- return $content . " <!-- $plgName: Unfiltered [is in Banned IP list]-->";
 
794
  }
795
- if (!in_the_loop() && !$isWidget) {
 
796
  self::$noAds = true;
797
- return $content . " <!-- $plgName: Unfiltered [WP is not in the loop] -->";
 
798
  }
799
 
800
  self::cacheContent($content);
801
-
802
  if (!self::isSafe()) {
803
  self::$noAds = true;
804
- return $content . " <!-- $plgName: Unfiltered [Content is not Safe] -->";
 
 
805
  }
806
- return $content . " <!-- $plgName: Filtered -->";
807
  }
808
 
809
  static function showUnreal($print = true) {
@@ -971,7 +988,7 @@ if (!class_exists("EzGA")) {
971
  foreach (self::$kills as $k) {
972
  $fn = "is_$k";
973
  if (!empty(self::$options["kill_$k"]) && $fn()) {
974
- return true;
975
  }
976
  }
977
  return EzGAPro::isKilled();
24
  'tag', 'archive', 'search', 'single', 'attachment');
25
  static $unSettable = array('Phone', 'Tablet', 'All', 'Mobile');
26
  static $noAds = false;
27
+ static $noAdsReason = '';
28
 
29
  static function isActive() {
30
  if (!function_exists('is_plugin_active')) {
769
  static function preFilter($content, $isWidget = false) {
770
  $plgName = self::getPlgName();
771
  if (self::$noAds) {
772
+ $reason = self::$noAdsReason;
773
+ return $content . " <!-- $plgName: PreFiltered - NoAds [ $reason] -->\n";
774
  }
775
+ $killed = self::isKilled();
776
+ if (!empty($killed)) {
777
+ $reason = "is Killed - $killed. ";
778
  self::$noAds = true;
779
+ self::$noAdsReason .= $reason;
780
+ return $content . " <!-- $plgName: $reason -->\n";
781
  }
782
  if (empty(self::$options['allow_feeds']) && is_feed()) {
783
+ $reason = 'is Feed and not allowed. ';
784
  self::$noAds = true;
785
+ self::$noAdsReason .= $reason;
786
+ return $content . " <!-- $plgName: $reason -->\n";
787
  }
788
+
789
  $metaOptions = self::getMetaOptions();
790
  if (strpos($content, "<!--noadsense-->") !== false) {
791
+ $reason = 'Unfiltered - suppressed by noadsense comment. ';
792
  self::$metaOptions['adsense'] = 'no';
793
+ self::$noAds = true;
794
+ self::$noAdsReason .= $reason;
795
+ return $content . " <!-- $plgName: $reason -->\n";
796
  }
797
  if (isset($metaOptions['adsense']) && $metaOptions['adsense'] == 'no') {
798
+ $reason = 'Unfiltered - suppressed by meta option adsense = no. ';
799
  self::$noAds = true;
800
+ self::$noAdsReason .= $reason;
801
+ return $content . " <!-- $plgName: $reason -->\n";
802
  }
803
  if (self::isBanned()) {
804
+ $reason = 'IP is in Banned IP list. ';
805
  self::$noAds = true;
806
+ self::$noAdsReason .= $reason;
807
+ return $content . " <!-- $plgName: $reason -->\n";
808
  }
809
+ if (!in_the_loop() && !$isWidget && !is_single()) {
810
+ $reason = 'WP is not in the loop. ';
811
  self::$noAds = true;
812
+ self::$noAdsReason .= $reason;
813
+ return $content . " <!-- $plgName: $reason -->\n";
814
  }
815
 
816
  self::cacheContent($content);
 
817
  if (!self::isSafe()) {
818
  self::$noAds = true;
819
+ $reason = 'Unfiltered - Content is not Safe. ';
820
+ self::$noAdsReason .= $reason;
821
+ return $content . " <!-- $plgName: $reason -->\n";
822
  }
823
+ return $content . " <!-- $plgName: Filtered -->\n";
824
  }
825
 
826
  static function showUnreal($print = true) {
988
  foreach (self::$kills as $k) {
989
  $fn = "is_$k";
990
  if (!empty(self::$options["kill_$k"]) && $fn()) {
991
+ return $k;
992
  }
993
  }
994
  return EzGAPro::isKilled();
admin/box-ad-alignment-options.php CHANGED
@@ -26,7 +26,7 @@ $ezOptions[$top] = array('name' => __("Top", 'easy-ads'),
26
  'value' => $floatLeft,
27
  'type' => 'radio',
28
  'options' => $choices);
29
- $ezOptions[$middle] = array('name' => __("Middle1", 'easy-ads'),
30
  'help' => __("Where to show the mid-text ad block? Select left, center, right, or suppress this ad block.", 'easy-ads'),
31
  'value' => $floatRight,
32
  'type' => 'radio',
26
  'value' => $floatLeft,
27
  'type' => 'radio',
28
  'options' => $choices);
29
+ $ezOptions[$middle] = array('name' => __("Middle", 'easy-ads'),
30
  'help' => __("Where to show the mid-text ad block? Select left, center, right, or suppress this ad block.", 'easy-ads'),
31
  'value' => $floatRight,
32
  'type' => 'radio',
admin/box-suppressing-ads.php CHANGED
@@ -29,13 +29,13 @@ openBox(__("Suppressing Ad Blocks", 'easy-ads'));
29
  <strong>Select Categories/Posts/Pages</strong>
30
  </td>
31
  <td class="center-text">
32
- <a href='#' data-verb='deny' class='btn-sm btn-primary categories' data-toggle='popover' data-trigger='hover' data-placement="top" title='Select Categories' data-content='If you want to suppress ads from this <strong>Option set</strong> appearing on some categories, you can do so here. Click to bring up a category selection dialog.'>Categories</a>
33
  </td>
34
  <td class="center-text">
35
- <a href='#' data-verb='deny' class='btn-sm btn-primary posts' data-toggle='popover' data-trigger='hover' data-placement="top" title='Select Posts' data-content='You can specify that the ads from this <strong>Option set</strong> do not appear on some posts. Click to bring up a post selection dialog. This dialog can potentially be very long.'>Posts</a>
36
  </td>
37
  <td class="center-text">
38
- <a href='#' data-verb='deny' class='btn-sm btn-primary pages' data-toggle='popover' data-trigger='hover' data-placement="top" title='Select Pages' data-content='You can specify that the ads from this <strong>Option set</strong> do not appear on certain pages. Click to bring up a page selection dialog.'>Pages</a>
39
  </td>
40
  </tr>
41
  </tbody>
29
  <strong>Select Categories/Posts/Pages</strong>
30
  </td>
31
  <td class="center-text">
32
+ <a href='#' data-verb='deny' class='btn-sm btn-primary categories' data-toggle='popover' data-trigger='hover' data-placement="top" title='Select Categories' data-content='If you want to suppress ads from this <strong>Option Set</strong> appearing on some categories, you can do so here. Click to bring up a category selection dialog.'>Categories</a>
33
  </td>
34
  <td class="center-text">
35
+ <a href='#' data-verb='deny' class='btn-sm btn-primary posts' data-toggle='popover' data-trigger='hover' data-placement="top" title='Select Posts' data-content='You can specify that the ads from this <strong>Option Set</strong> do not appear on some posts. Click to bring up a post selection dialog. This dialog can potentially be very long.'>Posts</a>
36
  </td>
37
  <td class="center-text">
38
+ <a href='#' data-verb='deny' class='btn-sm btn-primary pages' data-toggle='popover' data-trigger='hover' data-placement="top" title='Select Pages' data-content='You can specify that the ads from this <strong>Option Set</strong> do not appear on certain pages. Click to bring up a page selection dialog.'>Pages</a>
39
  </td>
40
  </tr>
41
  </tbody>
admin/support.php CHANGED
@@ -7,12 +7,31 @@
7
  <li>Take a <a href="tour.php" title='Please take a tour to understand the features and capabilities of this plugin' data-toggle='tooltip'>tour</a> to familiarize yourself with the plugin interface.</li>
8
  <?php
9
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  ?>
11
- <li>Please check the <a href="http://www.thulasidas.com/plugins/<?php echo $plgSlug; ?>#faq" class="popup" title='Your question or issue may be already answered or resolved in the FAQ' data-toggle='tooltip'> Plugin FAQ</a> for answers.</li>
12
  <li>For the lite version, you may be able to get support from the <a href='https://wordpress.org/support/plugin/<?php echo $plgSlug; ?>-lite' class='popup' title='WordPress forums have community support for this plugin' data-toggle='tooltip'>WordPress support forum</a>.</li>
13
- <li>For preferential support and free updates, you can purchase a <a href='http://buy.thulasidas.com/support' class='popup' title='Support contract is only $2.95 a month, and you can cancel anytime.' data-toggle='tooltip'>support contract</a>.</li>
14
- <li>From one-off support issues, you can raise a one-time paid <a href='http://buy.thulasidas.com/ezsupport' class='popup' title='Support ticket costs $0.95 and lasts for 72 hours' data-toggle='tooltip'>support ticket</a> for prompt support.</li>
 
15
  </ul>
 
 
 
16
  <h4>Happy with this plugin?</h4>
17
  <ul>
18
  <li>Please leave a short review and rate it at <a href=https://wordpress.org/plugins/<?php echo $plgSlug; ?>-lite/" class="popup" title='Please help the author and other users by leaving a short review for this plugin and by rating it' data-toggle='tooltip'>WordPress</a>. Thanks!</li>
@@ -21,3 +40,13 @@
21
  <h4>Need Custom Services?</h4>
22
  <?php
23
  EzGA::showService();
 
 
 
 
 
 
 
 
 
 
7
  <li>Take a <a href="tour.php" title='Please take a tour to understand the features and capabilities of this plugin' data-toggle='tooltip'>tour</a> to familiarize yourself with the plugin interface.</li>
8
  <?php
9
  }
10
+ $verbose = array('name' => __('Diagnostic Comments', 'ads-ez'),
11
+ 'type' => 'checkbox',
12
+ 'help' => __('The content filter in the plugin can add diagnostic comments to the HTML code, which could have security implications. Please turn it on only if you need to contact the plugin author, or track down some bugs.', 'ads-ez'),
13
+ 'value' => 0);
14
+ $verboseBox = '<div id="verboseBox" class="col-md-12" style="display:none"><table class="table table-striped table-bordered responsive">
15
+ <thead>
16
+ <tr>
17
+ <th style="width:50%;min-width:150px">Option</th>
18
+ <th style="width:55%;min-width:80px">Value</th>
19
+ <th class="center-text" style="width:15%;min-width:50px">Help</th>
20
+ </tr>
21
+ </thead>' .
22
+ EzGA::renderOption('verbose', $verbose) .
23
+ '</tbody>
24
+ </table></div>';
25
  ?>
26
+ <li>Please check the carefully prepared <a href="http://www.thulasidas.com/plugins/<?php echo $plgSlug; ?>#faq" class="popup" title='Your question or issue may be already answered or resolved in the FAQ' data-toggle='tooltip'> Plugin FAQ</a> for answers.</li>
27
  <li>For the lite version, you may be able to get support from the <a href='https://wordpress.org/support/plugin/<?php echo $plgSlug; ?>-lite' class='popup' title='WordPress forums have community support for this plugin' data-toggle='tooltip'>WordPress support forum</a>.</li>
28
+ <li>For preferential support and free updates, you can purchase a <a href='http://buy.thulasidas.com/support' class='popup btn-xs btn-info' title='Support contract costs only $4.95 a month, and you can cancel anytime. Free updates upon request, and support for all the products from the author.' data-toggle='tooltip'>Support Contract</a>.</li>
29
+ <li>For one-off support issues, you can raise a one-time paid <a href='http://buy.thulasidas.com/ezsupport' class='popup btn-xs btn-primary' title='Support ticket costs $0.95 and lasts for 72 hours' data-toggle='tooltip'>Support Ticket</a> for prompt support.</li>
30
+ <li>Please turn on <a href='#' id="verbose" class='btn-xs btn-warning' title='Click to check the status of Dignostic Comments in your post HTML. Do not leave the diagnostic comments on unless needed for troubleshooting. It increases the bandwindth usage, and gives out some information about your filesystem.' data-toggle='tooltip'>Diagnostic Comments</a> and include a link to your blog URL when you contact the plugin author.</li>
31
  </ul>
32
+ <?php
33
+ echo $verboseBox;
34
+ ?>
35
  <h4>Happy with this plugin?</h4>
36
  <ul>
37
  <li>Please leave a short review and rate it at <a href=https://wordpress.org/plugins/<?php echo $plgSlug; ?>-lite/" class="popup" title='Please help the author and other users by leaving a short review for this plugin and by rating it' data-toggle='tooltip'>WordPress</a>. Thanks!</li>
40
  <h4>Need Custom Services?</h4>
41
  <?php
42
  EzGA::showService();
43
+ ?>
44
+ <div class="clearfix"></div>
45
+ <script>
46
+ var xeditHanlder = 'ajax/options.php';
47
+ var xparams = {};
48
+ $('#verbose').click(function (e) {
49
+ e.preventDefault();
50
+ $("#verboseBox").show();
51
+ });
52
+ </script>
easy-adsense-frontend.php CHANGED
@@ -2,13 +2,15 @@
2
 
3
  class EzAdSenseFront {
4
 
5
- var $leadin, $leadout, $options, $defaultText;
6
  static $ezMax = 3, $ezCount = 0;
7
  static $urMax = 1, $urCount = 0;
 
8
 
9
  function EzAdSenseFront() {
10
  $optionSet = EzGA::getMobileType();
11
  if ($optionSet == "Killed") {
 
12
  EzGA::$noAds = true;
13
  $optionSet = "";
14
  }
@@ -17,6 +19,8 @@ class EzAdSenseFront {
17
  // Counts and limis
18
  self::$ezMax = $this->options['max_count'];
19
  self::$urMax = $this->options['max_link'];
 
 
20
  }
21
 
22
  function ezMax() {
@@ -36,25 +40,18 @@ class EzAdSenseFront {
36
  }
37
 
38
  function mkAdBlock($slot) {
 
39
  if ($slot != 'lu' && $slot != 'gsearch') {
40
  self::$ezCount++;
41
  }
42
- $adText = $this->options["text_$slot"];
43
- $info = EzGA::info();
44
- if (empty($adText)) {
45
- $adBlock = "\n$info\n<!-- [$slot: Empty adText: " . self::$ezCount . " of " .
46
- self::$ezMax . "] -->\n";
47
  }
48
- else {
 
49
  $border = EzGA::mkBorder();
50
  $show = EzGA::$metaOptions["show_$slot"];
51
  $margin = $this->options["margin_$slot"];
52
- if (!empty($this->options['kill_linebreaks'])) {
53
- $linebreak = "";
54
- }
55
- else {
56
- $linebreak = "\n";
57
- }
58
  if (!empty($this->options['kill_inline'])) {
59
  $inline = '';
60
  }
@@ -63,19 +60,56 @@ class EzAdSenseFront {
63
  $margin . 'px;' . $border . '"';
64
  }
65
  $unreal = EzGA::showUnreal(false);
66
- $adBlock = stripslashes($linebreak . $info . $linebreak .
67
- "<!-- [$slot: " . self::$ezCount . " of " . self::$ezMax .
68
- " urCount: " . self::$urCount . " urMax: " . self::$urMax .
69
- "] -->$linebreak" .
70
- "<div class='ezAdsense adsense adsense-$slot' $inline>" .
71
  $adText .
72
  (self::$urCount++ < self::$urMax ? $unreal : '') .
73
- "</div>" . $linebreak . $info . $linebreak);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  }
 
75
  return $adBlock;
76
  }
77
 
 
 
 
 
 
 
 
 
 
 
78
  function filterContent($content) {
 
 
 
 
 
 
 
 
79
  $content = EzGA::preFilter($content);
80
  if (EzGA::$noAds) {
81
  return $content;
@@ -85,10 +119,12 @@ class EzAdSenseFront {
85
  // reserve a count for the widget
86
  self::$ezMax--;
87
  }
88
- $plgName = EzGA::getPlgName();
89
  if (self::$ezCount >= self::$ezMax) {
90
- return $content . " <!-- $plgName: Unfiltered [count: " .
91
- self::$ezCount . " is not less than " . self::$ezMax . "] -->";
 
 
 
92
  }
93
 
94
  $adMax = self::$ezMax;
@@ -157,7 +193,6 @@ class EzAdSenseFront {
157
  }
158
  if (!empty($this->options['header_leadin'])) {
159
  $this->leadin = $leadin;
160
- $leadin = '';
161
  }
162
  if (!empty($this->options['footer_leadout'])) {
163
  $this->leadout = $leadout;
2
 
3
  class EzAdSenseFront {
4
 
5
+ var $leadin, $leadout, $options, $defaultText, $verbose = false;
6
  static $ezMax = 3, $ezCount = 0;
7
  static $urMax = 1, $urCount = 0;
8
+ static $filterPass = 0, $widgetCount = 0, $info;
9
 
10
  function EzAdSenseFront() {
11
  $optionSet = EzGA::getMobileType();
12
  if ($optionSet == "Killed") {
13
+ EzGA::$noAdsReason .= 'Mobile Type says Killed. ';
14
  EzGA::$noAds = true;
15
  $optionSet = "";
16
  }
19
  // Counts and limis
20
  self::$ezMax = $this->options['max_count'];
21
  self::$urMax = $this->options['max_link'];
22
+ self::$info = EzGA::info();
23
+ $this->verbose = !empty($this->options['verbose']);
24
  }
25
 
26
  function ezMax() {
40
  }
41
 
42
  function mkAdBlock($slot) {
43
+ $adBlock = '';
44
  if ($slot != 'lu' && $slot != 'gsearch') {
45
  self::$ezCount++;
46
  }
47
+ if ($slot == 'widget') {
48
+ self::$widgetCount++;
 
 
 
49
  }
50
+ $adText = $this->options["text_$slot"];
51
+ if (!empty($adText)) {
52
  $border = EzGA::mkBorder();
53
  $show = EzGA::$metaOptions["show_$slot"];
54
  $margin = $this->options["margin_$slot"];
 
 
 
 
 
 
55
  if (!empty($this->options['kill_inline'])) {
56
  $inline = '';
57
  }
60
  $margin . 'px;' . $border . '"';
61
  }
62
  $unreal = EzGA::showUnreal(false);
63
+ $adBlock = "<div class='ezAdsense adsense adsense-$slot' $inline>" .
 
 
 
 
64
  $adText .
65
  (self::$urCount++ < self::$urMax ? $unreal : '') .
66
+ "</div>";
67
+ }
68
+ if ($this->verbose) {
69
+ $info = self::$info;
70
+ if (empty($adText)) {
71
+ $adBlock = "\n$info\n<!-- [$slot: Empty adText: " . self::$ezCount . " of " .
72
+ self::$ezMax . "] -->\n";
73
+ }
74
+ else {
75
+ if (!empty($this->options['kill_linebreaks'])) {
76
+ $linebreak = "";
77
+ }
78
+ else {
79
+ $linebreak = "\n";
80
+ }
81
+ $adBlock = "$linebreak $info $linebreak " .
82
+ "<!-- [$slot: " . self::$ezCount . " of " . self::$ezMax .
83
+ " urCount: " . self::$urCount . " urMax: " . self::$urMax .
84
+ "] -->$linebreak $adBlock $linebreak $info $linebreak";
85
+ echo "\n$info\n <!-- ezCount = " . self::$ezCount . " - incremented at:\n";
86
+ debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
87
+ echo "-->\n";
88
+ }
89
  }
90
+ $adBlock = stripslashes($adBlock);
91
  return $adBlock;
92
  }
93
 
94
+ function resetFilter() {
95
+ if (self::$filterPass > 1 && is_singular()) {
96
+ self::$ezMax = $this->options['max_count'] - self::$widgetCount;
97
+ self::$ezCount = self::$widgetCount;
98
+ if ($this->verbose) {
99
+ return " <!-- Filter Reset -->\n";
100
+ }
101
+ }
102
+ }
103
+
104
  function filterContent($content) {
105
+ ++self::$filterPass;
106
+ $filterReset = $this->resetFilter();
107
+ $plgName = EzGA::getPlgName();
108
+ if ($this->verbose) {
109
+ $content .= " <!-- $plgName: EzCount = " . self::$ezCount .
110
+ " Filter Pass = " . self::$filterPass . " -->\n";
111
+ $content .= $filterReset;
112
+ }
113
  $content = EzGA::preFilter($content);
114
  if (EzGA::$noAds) {
115
  return $content;
119
  // reserve a count for the widget
120
  self::$ezMax--;
121
  }
 
122
  if (self::$ezCount >= self::$ezMax) {
123
+ if ($this->verbose) {
124
+ $content .= " <!-- $plgName: Unfiltered [count: " .
125
+ self::$ezCount . " is not less than " . self::$ezMax . "] -->\n";
126
+ }
127
+ return $content;
128
  }
129
 
130
  $adMax = self::$ezMax;
193
  }
194
  if (!empty($this->options['header_leadin'])) {
195
  $this->leadin = $leadin;
 
196
  }
197
  if (!empty($this->options['footer_leadout'])) {
198
  $this->leadout = $leadout;
easy-adsense.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin Name: Easy Plugin for AdSense
5
  Plugin URI: http://www.thulasidas.com/adsense
6
  Description: <em>Lite Version</em>: Easiest way to show AdSense and make money from your blog. Configure it at <a href="options-general.php?page=wp-google-adsense.php">Settings &rarr; Easy AdSense Lite</a>.
7
- Version: 8.11
8
  Author: Manoj Thulasidas
9
  Author URI: http://www.thulasidas.com
10
  */
4
  Plugin Name: Easy Plugin for AdSense
5
  Plugin URI: http://www.thulasidas.com/adsense
6
  Description: <em>Lite Version</em>: Easiest way to show AdSense and make money from your blog. Configure it at <a href="options-general.php?page=wp-google-adsense.php">Settings &rarr; Easy AdSense Lite</a>.
7
+ Version: 8.13
8
  Author: Manoj Thulasidas
9
  Author URI: http://www.thulasidas.com
10
  */
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://buy.thulasidas.com/easy-adsense
4
  Tags: adsense, google adsense, ads, advertising, easy adsense, google, adsense plugin
5
  Requires at least: 2.6
6
  Tested up to: 4.1
7
- Stable tag: 8.11
8
  License: GPL2 or later
9
 
10
  Easy Plugin for AdSense manages all aspects of AdSense: insert ads into posts and sidebar, and add a Google Search box. Easiest and most complete AdSense Plugin!
@@ -50,7 +50,7 @@ Easy Plugin for AdSense is the freely distributed version of a premium plugin. T
50
 
51
  == Upgrade Notice ==
52
 
53
- Providing a downgrade path to the previous, non-AJAX version of the plugin.
54
 
55
  == Screenshots ==
56
 
@@ -148,6 +148,8 @@ A big "Thank You" to all my translators. Easy AdSense V2.6+ sports an *Easy Tran
148
 
149
  == Change Log ==
150
 
 
 
151
  * V8.11: Providing a downgrade path to the previous, non-AJAX version of the plugin. [Mar 19, 2015]
152
  * V8.10: Providing a downgrade path to the previous, non-AJAX version of the plugin. [Mar 16, 2015]
153
  * V8.09: Documentation and usability enhancements. [Mar 13, 2015]
4
  Tags: adsense, google adsense, ads, advertising, easy adsense, google, adsense plugin
5
  Requires at least: 2.6
6
  Tested up to: 4.1
7
+ Stable tag: 8.13
8
  License: GPL2 or later
9
 
10
  Easy Plugin for AdSense manages all aspects of AdSense: insert ads into posts and sidebar, and add a Google Search box. Easiest and most complete AdSense Plugin!
50
 
51
  == Upgrade Notice ==
52
 
53
+ Serious bug fix related to multiple passes of the content filter. Introducing a verbosity option.
54
 
55
  == Screenshots ==
56
 
148
 
149
  == Change Log ==
150
 
151
+ * V8.13: Serious bug fix related to multiple passes of the content filter. Introducing a verbosity option. [Mar 22, 2015]
152
+ * V8.12: Minor bug fixes, and adding diagnostic comments. [Mar 21, 2015]
153
  * V8.11: Providing a downgrade path to the previous, non-AJAX version of the plugin. [Mar 19, 2015]
154
  * V8.10: Providing a downgrade path to the previous, non-AJAX version of the plugin. [Mar 16, 2015]
155
  * V8.09: Documentation and usability enhancements. [Mar 13, 2015]
wp-google-adsense.php CHANGED
@@ -60,7 +60,7 @@ if (is_admin()) {
60
  require $this->plgDir . '/admin/no-ajax.php';
61
  $src = plugins_url("admin/index.php", __FILE__);
62
  if (!@file_get_contents($src)) {
63
- echo "<div style='padding:10px;margin:10px;font-size:1.3em;color:red;font-weight:500'>This plugin needs direct access to its files so that they can be loaded in an iFrame. Looks like you have some security setting denying the required access. Please allow access to the php files in <code>{$this->plgDir}/</code> or <em><strong>Go back to the Non-AJAX Version</strong></em> by following the directions above.</div>";
64
  return;
65
  }
66
  echo "</div>";
60
  require $this->plgDir . '/admin/no-ajax.php';
61
  $src = plugins_url("admin/index.php", __FILE__);
62
  if (!@file_get_contents($src)) {
63
+ echo "<div style='padding:10px;margin:10px;font-size:1.3em;color:red;font-weight:500'>This plugin needs direct access to its files so that they can be loaded in an iFrame. Looks like you have some security setting denying the required access. If you have an <code>.htaccess</code> file in your <code>wp-content</code> folder, please remove it or modify it to allow access to the php files in <code>{$this->plgDir}/</code>.<br> Or <em><strong>Go back to the Non-AJAX Version</strong></em> by following the directions above.</div>";
64
  return;
65
  }
66
  echo "</div>";