Version Description
Fix chmod comparison problem.
Download this release
Release Info
Developer | reviewmylife |
Plugin | Ad Injection |
Version | 0.9.3.1 |
Comparing to | |
See all releases |
Code changes from version 0.9.3 to 0.9.3.1
- ad-injection-admin.php +5 -5
- ad-injection.php +79 -79
- readme.txt +8 -2
ad-injection-admin.php
CHANGED
@@ -94,7 +94,6 @@ case 'Save all settings':
|
|
94 |
|
95 |
adinj_update_options($options);
|
96 |
|
97 |
-
// TODO could stop this if not mfunc mode
|
98 |
adinj_write_config_file();
|
99 |
|
100 |
break;
|
@@ -167,10 +166,11 @@ function adinj_write_file($path, $content, $permission){
|
|
167 |
|
168 |
function adinj_chmod($path, $permission){
|
169 |
global $adinj_warning_msg_chmod;
|
170 |
-
$oldperm = fileperms($path);
|
171 |
-
|
172 |
-
|
173 |
-
|
|
|
174 |
}
|
175 |
|
176 |
function adinj_get_logo(){
|
94 |
|
95 |
adinj_update_options($options);
|
96 |
|
|
|
97 |
adinj_write_config_file();
|
98 |
|
99 |
break;
|
166 |
|
167 |
function adinj_chmod($path, $permission){
|
168 |
global $adinj_warning_msg_chmod;
|
169 |
+
$oldperm = substr(decoct(fileperms($path)), -3);
|
170 |
+
$newperm = decoct($permission);
|
171 |
+
if ($newperm == $oldperm) return;
|
172 |
+
chmod($path, $permission) or $adinj_warning_msg_chmod .= "<br />Warning: chmod $permission " .
|
173 |
+
"on $path failed. Current permissions: $oldperm<br /> Try manually updating the permission if problems occur.";
|
174 |
}
|
175 |
|
176 |
function adinj_get_logo(){
|
ad-injection.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Ad Injection
|
4 |
Plugin URI: http://www.reviewmylife.co.uk/blog/2010/12/06/ad-injection-plugin-wordpress/
|
5 |
Description: Injects any advert (e.g. AdSense) into your WordPress posts or widget area. Restrict who sees the ads by post length, age, referrer or IP. Cache compatible.
|
6 |
-
Version: 0.9.3
|
7 |
Author: reviewmylife
|
8 |
Author URI: http://www.reviewmylife.co.uk/
|
9 |
License: GPLv2
|
@@ -59,8 +59,8 @@ function adinj_options($reset=false){
|
|
59 |
}
|
60 |
|
61 |
function adinj_option($option){
|
62 |
-
$
|
63 |
-
return $
|
64 |
}
|
65 |
|
66 |
// TODO make the cookie domain from wp-config.php accessible to script
|
@@ -83,8 +83,8 @@ SCRIPT;
|
|
83 |
}
|
84 |
|
85 |
function adinj_quote_list($option){
|
86 |
-
$
|
87 |
-
$list = $
|
88 |
|
89 |
// I'm sure this whole thing could be done with a much simpler single
|
90 |
// line of PHP - but right now my brain isn't up to thinking about it!
|
@@ -118,111 +118,111 @@ function adinj_get_mfunc_code($adfile){
|
|
118 |
";
|
119 |
}
|
120 |
|
121 |
-
function adinj_ad_code_eval($
|
122 |
-
if (stripos($
|
123 |
-
return adinj_eval_php($
|
124 |
}
|
125 |
-
return $
|
126 |
}
|
127 |
|
128 |
function adinj_ad_code_include(){
|
129 |
$plugin_dir = ADINJ_PATH;
|
130 |
-
$
|
131 |
-
$
|
132 |
-
if ($
|
133 |
// WP Super Cache's support for mclude assumes that we will be including
|
134 |
// files from within ABSPATH. To remove this limitation we do the include
|
135 |
// using mfunc instead.
|
136 |
-
$
|
137 |
<!--mfunc include_once('$plugin_dir/adshow.php') -->
|
138 |
<?php include_once('$plugin_dir/adshow.php'); ?>
|
139 |
<!--/mfunc-->
|
140 |
";
|
141 |
}
|
142 |
-
return adinj_eval_php($
|
143 |
}
|
144 |
|
145 |
-
function adinj_add_tags($
|
146 |
-
$
|
147 |
-
if ($
|
148 |
-
$
|
149 |
-
$
|
150 |
$top = "";
|
151 |
$bottom = "";
|
152 |
-
if ($
|
153 |
-
if ($
|
154 |
|
155 |
-
if ($
|
156 |
$div = "<div style='float:left;" . $top . $bottom . "'>ADCODE</div><br clear='all' />";
|
157 |
-
} else if ($
|
158 |
$div = "<div style='" . $top . $bottom . "'><center>ADCODE</center></div>";
|
159 |
-
} else if ($
|
160 |
$div = "<div style='float:right;" . $top . $bottom . "'>ADCODE</div><br clear='all' />";
|
161 |
-
} else if ($
|
162 |
$div = "<div style='float:left;" . $top . $bottom . "margin-right:5px;'>ADCODE</div>";
|
163 |
-
} else if ($
|
164 |
$div = "<div style='float:right;" . $top . $bottom . "margin-left:5px;'>ADCODE</div>";
|
165 |
} else {
|
166 |
$div = "<div style='" . $top . $bottom . "'>ADCODE</div>";
|
167 |
}
|
168 |
if (empty($func)){
|
169 |
-
return str_replace("ADCODE", $
|
170 |
} else {
|
171 |
-
$ad = str_replace("ADCODE", "\$
|
172 |
-
return "function $func(\$
|
173 |
}
|
174 |
}
|
175 |
if (!empty($func)){
|
176 |
-
return "function $func(\$
|
177 |
}
|
178 |
-
return $
|
179 |
}
|
180 |
|
181 |
function adinj_ad_code_random(){
|
182 |
-
$
|
183 |
-
$
|
184 |
-
if ($
|
185 |
-
$
|
186 |
} else {
|
187 |
-
$
|
188 |
-
$
|
189 |
}
|
190 |
-
return adinj_ad_code_eval($
|
191 |
}
|
192 |
|
193 |
function adinj_ad_code_top(){
|
194 |
global $adinj_total_all_ads_used;
|
195 |
++$adinj_total_all_ads_used;
|
196 |
-
$
|
197 |
-
$
|
198 |
-
if ($
|
199 |
-
$
|
200 |
} else {
|
201 |
-
$
|
202 |
-
$
|
203 |
}
|
204 |
-
return adinj_ad_code_eval($
|
205 |
}
|
206 |
|
207 |
function adinj_ad_code_bottom(){
|
208 |
global $adinj_total_all_ads_used;
|
209 |
++$adinj_total_all_ads_used;
|
210 |
-
$
|
211 |
-
$
|
212 |
-
if ($
|
213 |
-
$
|
214 |
} else {
|
215 |
-
$
|
216 |
-
$
|
217 |
}
|
218 |
-
return adinj_ad_code_eval($
|
219 |
}
|
220 |
|
221 |
function read_ad_from_file($ad_path){
|
222 |
$contents = "";
|
223 |
if (file_exists($ad_path)){
|
224 |
$contents = file_get_contents($ad_path);
|
225 |
-
if ($contents === false)
|
226 |
}
|
227 |
return $contents;
|
228 |
}
|
@@ -230,8 +230,8 @@ function read_ad_from_file($ad_path){
|
|
230 |
// Based on: http://www.wprecipes.com/wordpress-hack-how-to-display-ads-on-old-posts-only
|
231 |
// Only use for pages and posts. Not for archives, categories, home page, etc.
|
232 |
function adinj_is_old_post(){
|
233 |
-
$
|
234 |
-
$days = $
|
235 |
if ($days == 0) return true;
|
236 |
if(is_single() || is_page()) {
|
237 |
$current_date = time();
|
@@ -307,8 +307,8 @@ function adinj($content, $message){
|
|
307 |
global $adinj_total_rand_ads_used, $adinj_total_all_ads_used;
|
308 |
$path = ADINJ_AD_PATH;
|
309 |
$path2 = ADINJ_AD_PATH2;
|
310 |
-
$
|
311 |
-
$mode = $
|
312 |
return $content."
|
313 |
<!--
|
314 |
[ADINJ DEBUG]
|
@@ -363,31 +363,31 @@ function adinj_inject_hook($content){
|
|
363 |
return adinj($content, $reason);
|
364 |
}
|
365 |
|
366 |
-
$
|
367 |
|
368 |
-
if ($
|
369 |
$showads = adinj_show_adverts();
|
370 |
if ($showads !== true){
|
371 |
return adinj($content, "NOADS: ad blocked at run time reason=$showads");
|
372 |
}
|
373 |
}
|
374 |
|
375 |
-
$
|
376 |
|
377 |
# Ad sandwich mode
|
378 |
if(is_page() || is_single()){
|
379 |
-
if(stripos($content, "<!--adsandwich-->") !== false) return adinj($
|
380 |
-
if(stripos($content, "<!--adfooter-->") !== false) return adinj($content.$
|
381 |
}
|
382 |
|
383 |
# Insert top and bottom ads if necesary
|
384 |
$length = strlen($content);
|
385 |
if(is_page() || is_single()){
|
386 |
-
if (adinj_do_rule_if($
|
387 |
-
$content = $
|
388 |
-
$
|
389 |
}
|
390 |
-
if (adinj_do_rule_if($
|
391 |
$content = $content.adinj_ad_code_bottom();
|
392 |
}
|
393 |
}
|
@@ -395,9 +395,9 @@ function adinj_inject_hook($content){
|
|
395 |
$num_rand_ads_to_insert = adinj_num_rand_ads_to_insert($length);
|
396 |
if ($num_rand_ads_to_insert <= 0) return adinj($content, "all ads used up");
|
397 |
|
398 |
-
if ($
|
399 |
|
400 |
-
$debug_on = $
|
401 |
if (!$debug_on) $debugtags=false;
|
402 |
|
403 |
$content_adfree_header = "";
|
@@ -499,10 +499,10 @@ function adinj_inject_hook($content){
|
|
499 |
sort($inj_positions);
|
500 |
|
501 |
// Insert ads in reverse order
|
502 |
-
$
|
503 |
global $adinj_total_rand_ads_used, $adinj_total_all_ads_used;
|
504 |
for ($adnum=sizeof($inj_positions)-1; $adnum>=0; $adnum--){
|
505 |
-
$content = substr_replace($content, $
|
506 |
++$adinj_total_rand_ads_used;
|
507 |
++$adinj_total_all_ads_used;
|
508 |
}
|
@@ -525,11 +525,11 @@ function adinj_split_by_tag($content, $tag, &$debugtags){
|
|
525 |
|
526 |
function adinj_num_rand_ads_to_insert($content_length){
|
527 |
global $adinj_total_rand_ads_used; // a page can be more than one post
|
528 |
-
$
|
529 |
if (is_single() || is_page()){
|
530 |
-
$max_num_rand_ads_to_insert = $
|
531 |
} else if (is_home()){
|
532 |
-
$max_num_rand_ads_to_insert = $
|
533 |
} else {
|
534 |
return 0;
|
535 |
//TODO Allow ads in other page types later
|
@@ -543,16 +543,16 @@ function adinj_num_rand_ads_to_insert($content_length){
|
|
543 |
return 1;
|
544 |
}
|
545 |
$length = $content_length;
|
546 |
-
if (adinj_do_rule_if($
|
547 |
return 0;
|
548 |
}
|
549 |
-
if (adinj_do_rule_if($
|
550 |
return 1;
|
551 |
}
|
552 |
-
if (adinj_do_rule_if($
|
553 |
return min(2, $max_num_rand_ads_to_insert);
|
554 |
}
|
555 |
-
if (adinj_do_rule_if($
|
556 |
return min(3, $max_num_rand_ads_to_insert);
|
557 |
}
|
558 |
return $max_num_rand_ads_to_insert;
|
@@ -570,8 +570,8 @@ function adinj_do_rule_if($rule_value, $condition, $content_length){
|
|
570 |
}
|
571 |
|
572 |
function adinj_ticked($option){
|
573 |
-
$
|
574 |
-
if (!empty($
|
575 |
return false;
|
576 |
}
|
577 |
|
3 |
Plugin Name: Ad Injection
|
4 |
Plugin URI: http://www.reviewmylife.co.uk/blog/2010/12/06/ad-injection-plugin-wordpress/
|
5 |
Description: Injects any advert (e.g. AdSense) into your WordPress posts or widget area. Restrict who sees the ads by post length, age, referrer or IP. Cache compatible.
|
6 |
+
Version: 0.9.3.1
|
7 |
Author: reviewmylife
|
8 |
Author URI: http://www.reviewmylife.co.uk/
|
9 |
License: GPLv2
|
59 |
}
|
60 |
|
61 |
function adinj_option($option){
|
62 |
+
$ops = adinj_options();
|
63 |
+
return $ops[$option];
|
64 |
}
|
65 |
|
66 |
// TODO make the cookie domain from wp-config.php accessible to script
|
83 |
}
|
84 |
|
85 |
function adinj_quote_list($option){
|
86 |
+
$ops = adinj_options();
|
87 |
+
$list = $ops[$option];
|
88 |
|
89 |
// I'm sure this whole thing could be done with a much simpler single
|
90 |
// line of PHP - but right now my brain isn't up to thinking about it!
|
118 |
";
|
119 |
}
|
120 |
|
121 |
+
function adinj_ad_code_eval($ad){
|
122 |
+
if (stripos($ad, '<?php') !== false){
|
123 |
+
return adinj_eval_php($ad);
|
124 |
}
|
125 |
+
return $ad;
|
126 |
}
|
127 |
|
128 |
function adinj_ad_code_include(){
|
129 |
$plugin_dir = ADINJ_PATH;
|
130 |
+
$ops = adinj_options();
|
131 |
+
$ad = "";
|
132 |
+
if ($ops['ad_insertion_mode'] == 'mfunc'){
|
133 |
// WP Super Cache's support for mclude assumes that we will be including
|
134 |
// files from within ABSPATH. To remove this limitation we do the include
|
135 |
// using mfunc instead.
|
136 |
+
$ad = "\n
|
137 |
<!--mfunc include_once('$plugin_dir/adshow.php') -->
|
138 |
<?php include_once('$plugin_dir/adshow.php'); ?>
|
139 |
<!--/mfunc-->
|
140 |
";
|
141 |
}
|
142 |
+
return adinj_eval_php($ad);
|
143 |
}
|
144 |
|
145 |
+
function adinj_add_tags($ad, $prefix, $func=NULL){
|
146 |
+
$ops = adinj_options();
|
147 |
+
if ($ops[$prefix . 'align'] !== ADINJ_RULE_DISABLED ||
|
148 |
+
$ops[$prefix . 'margin_top'] !== ADINJ_RULE_DISABLED ||
|
149 |
+
$ops[$prefix . 'margin_bottom'] !== ADINJ_RULE_DISABLED) {
|
150 |
$top = "";
|
151 |
$bottom = "";
|
152 |
+
if ($ops[$prefix . 'margin_top'] !== ADINJ_RULE_DISABLED) $top="margin-top:" . $ops[$prefix . 'margin_top'] . "px;";
|
153 |
+
if ($ops[$prefix . 'margin_bottom'] !== ADINJ_RULE_DISABLED) $bottom="margin-bottom:" . $ops[$prefix . 'margin_bottom'] . "px;";
|
154 |
|
155 |
+
if ($ops[$prefix . 'align'] == 'left'){
|
156 |
$div = "<div style='float:left;" . $top . $bottom . "'>ADCODE</div><br clear='all' />";
|
157 |
+
} else if ($ops[$prefix . 'align'] == 'center'){
|
158 |
$div = "<div style='" . $top . $bottom . "'><center>ADCODE</center></div>";
|
159 |
+
} else if ($ops[$prefix . 'align'] == 'right'){
|
160 |
$div = "<div style='float:right;" . $top . $bottom . "'>ADCODE</div><br clear='all' />";
|
161 |
+
} else if ($ops[$prefix . 'align'] == 'float left'){
|
162 |
$div = "<div style='float:left;" . $top . $bottom . "margin-right:5px;'>ADCODE</div>";
|
163 |
+
} else if ($ops[$prefix . 'align'] == 'float right'){
|
164 |
$div = "<div style='float:right;" . $top . $bottom . "margin-left:5px;'>ADCODE</div>";
|
165 |
} else {
|
166 |
$div = "<div style='" . $top . $bottom . "'>ADCODE</div>";
|
167 |
}
|
168 |
if (empty($func)){
|
169 |
+
return str_replace("ADCODE", $ad, $div);
|
170 |
} else {
|
171 |
+
$ad = str_replace("ADCODE", "\$ad", $div);
|
172 |
+
return "function $func(\$ad) { return \"$ad\"; }";
|
173 |
}
|
174 |
}
|
175 |
if (!empty($func)){
|
176 |
+
return "function $func(\$ad){return \$ad;}";
|
177 |
}
|
178 |
+
return $ad;
|
179 |
}
|
180 |
|
181 |
function adinj_ad_code_random(){
|
182 |
+
$ops = adinj_options();
|
183 |
+
$ad = "";
|
184 |
+
if ($ops['ad_insertion_mode'] == 'mfunc'){
|
185 |
+
$ad = adinj_get_mfunc_code(ADINJ_AD_RANDOM_FILE);
|
186 |
} else {
|
187 |
+
$ad = $ops['ad_code_random_1'];
|
188 |
+
$ad = adinj_add_tags($ad, 'rnd_');
|
189 |
}
|
190 |
+
return adinj_ad_code_eval($ad);
|
191 |
}
|
192 |
|
193 |
function adinj_ad_code_top(){
|
194 |
global $adinj_total_all_ads_used;
|
195 |
++$adinj_total_all_ads_used;
|
196 |
+
$ops = adinj_options();
|
197 |
+
$ad = "";
|
198 |
+
if ($ops['ad_insertion_mode'] == 'mfunc'){
|
199 |
+
$ad = adinj_get_mfunc_code(ADINJ_AD_TOP_FILE);
|
200 |
} else {
|
201 |
+
$ad = $ops['ad_code_top_1'];
|
202 |
+
$ad = adinj_add_tags($ad, 'top_');
|
203 |
}
|
204 |
+
return adinj_ad_code_eval($ad);
|
205 |
}
|
206 |
|
207 |
function adinj_ad_code_bottom(){
|
208 |
global $adinj_total_all_ads_used;
|
209 |
++$adinj_total_all_ads_used;
|
210 |
+
$ops = adinj_options();
|
211 |
+
$ad = "";
|
212 |
+
if ($ops['ad_insertion_mode'] == 'mfunc'){
|
213 |
+
$ad = adinj_get_mfunc_code(ADINJ_AD_BOTTOM_FILE);
|
214 |
} else {
|
215 |
+
$ad = $ops['ad_code_bottom_1'];
|
216 |
+
$ad = adinj_add_tags($ad, 'bottom_');
|
217 |
}
|
218 |
+
return adinj_ad_code_eval($ad);
|
219 |
}
|
220 |
|
221 |
function read_ad_from_file($ad_path){
|
222 |
$contents = "";
|
223 |
if (file_exists($ad_path)){
|
224 |
$contents = file_get_contents($ad_path);
|
225 |
+
if ($contents === false) return "Error: can't read from file: $ad_path";
|
226 |
}
|
227 |
return $contents;
|
228 |
}
|
230 |
// Based on: http://www.wprecipes.com/wordpress-hack-how-to-display-ads-on-old-posts-only
|
231 |
// Only use for pages and posts. Not for archives, categories, home page, etc.
|
232 |
function adinj_is_old_post(){
|
233 |
+
$ops = adinj_options();
|
234 |
+
$days = $ops['ads_on_page_older_than'];
|
235 |
if ($days == 0) return true;
|
236 |
if(is_single() || is_page()) {
|
237 |
$current_date = time();
|
307 |
global $adinj_total_rand_ads_used, $adinj_total_all_ads_used;
|
308 |
$path = ADINJ_AD_PATH;
|
309 |
$path2 = ADINJ_AD_PATH2;
|
310 |
+
$ops = adinj_options();
|
311 |
+
$mode = $ops['ad_insertion_mode'];
|
312 |
return $content."
|
313 |
<!--
|
314 |
[ADINJ DEBUG]
|
363 |
return adinj($content, $reason);
|
364 |
}
|
365 |
|
366 |
+
$ops = adinj_options();
|
367 |
|
368 |
+
if ($ops['ad_insertion_mode'] == 'direct_dynamic'){
|
369 |
$showads = adinj_show_adverts();
|
370 |
if ($showads !== true){
|
371 |
return adinj($content, "NOADS: ad blocked at run time reason=$showads");
|
372 |
}
|
373 |
}
|
374 |
|
375 |
+
$ad_include = adinj_ad_code_include();
|
376 |
|
377 |
# Ad sandwich mode
|
378 |
if(is_page() || is_single()){
|
379 |
+
if(stripos($content, "<!--adsandwich-->") !== false) return adinj($ad_include.adinj_ad_code_top().$content.adinj_ad_code_bottom(), "Ads=adsandwich");
|
380 |
+
if(stripos($content, "<!--adfooter-->") !== false) return adinj($content.$ad_include.adinj_ad_code_bottom(), "Ads=adfooter");
|
381 |
}
|
382 |
|
383 |
# Insert top and bottom ads if necesary
|
384 |
$length = strlen($content);
|
385 |
if(is_page() || is_single()){
|
386 |
+
if (adinj_do_rule_if($ops['top_ad_if_longer_than'], '<', $length)){
|
387 |
+
$content = $ad_include.adinj_ad_code_top().$content;
|
388 |
+
$ad_include = false;
|
389 |
}
|
390 |
+
if (adinj_do_rule_if($ops['bottom_ad_if_longer_than'], '<', $length)){
|
391 |
$content = $content.adinj_ad_code_bottom();
|
392 |
}
|
393 |
}
|
395 |
$num_rand_ads_to_insert = adinj_num_rand_ads_to_insert($length);
|
396 |
if ($num_rand_ads_to_insert <= 0) return adinj($content, "all ads used up");
|
397 |
|
398 |
+
if ($ad_include !== false) $content = $ad_include.$content;
|
399 |
|
400 |
+
$debug_on = $ops['debug_mode'];
|
401 |
if (!$debug_on) $debugtags=false;
|
402 |
|
403 |
$content_adfree_header = "";
|
499 |
sort($inj_positions);
|
500 |
|
501 |
// Insert ads in reverse order
|
502 |
+
$ad = adinj_ad_code_random();
|
503 |
global $adinj_total_rand_ads_used, $adinj_total_all_ads_used;
|
504 |
for ($adnum=sizeof($inj_positions)-1; $adnum>=0; $adnum--){
|
505 |
+
$content = substr_replace($content, $ad, $inj_positions[$adnum], 0);
|
506 |
++$adinj_total_rand_ads_used;
|
507 |
++$adinj_total_all_ads_used;
|
508 |
}
|
525 |
|
526 |
function adinj_num_rand_ads_to_insert($content_length){
|
527 |
global $adinj_total_rand_ads_used; // a page can be more than one post
|
528 |
+
$ops = adinj_options();
|
529 |
if (is_single() || is_page()){
|
530 |
+
$max_num_rand_ads_to_insert = $ops['max_num_of_ads'] - $adinj_total_rand_ads_used;
|
531 |
} else if (is_home()){
|
532 |
+
$max_num_rand_ads_to_insert = $ops['max_num_of_ads_home_page'] - $adinj_total_rand_ads_used;
|
533 |
} else {
|
534 |
return 0;
|
535 |
//TODO Allow ads in other page types later
|
543 |
return 1;
|
544 |
}
|
545 |
$length = $content_length;
|
546 |
+
if (adinj_do_rule_if($ops['no_random_ads_if_shorter_than'], '>', $length)){
|
547 |
return 0;
|
548 |
}
|
549 |
+
if (adinj_do_rule_if($ops['one_ad_if_shorter_than'], '>', $length)){
|
550 |
return 1;
|
551 |
}
|
552 |
+
if (adinj_do_rule_if($ops['two_ads_if_shorter_than'], '>', $length)){
|
553 |
return min(2, $max_num_rand_ads_to_insert);
|
554 |
}
|
555 |
+
if (adinj_do_rule_if($ops['three_ads_if_shorter_than'], '>', $length)){
|
556 |
return min(3, $max_num_rand_ads_to_insert);
|
557 |
}
|
558 |
return $max_num_rand_ads_to_insert;
|
570 |
}
|
571 |
|
572 |
function adinj_ticked($option){
|
573 |
+
$ops = adinj_options();
|
574 |
+
if (!empty($ops[$option])) return 'checked="checked"';
|
575 |
return false;
|
576 |
}
|
577 |
|
readme.txt
CHANGED
@@ -4,9 +4,9 @@ Donate link: http://www.reviewmylife.co.uk/blog/2010/12/06/ad-injection-plugin-w
|
|
4 |
Tags: ad injection, adsense, advert injection, advert, ad, injection, advertising, affiliate, inject, injection, insert, widget, monetize, monetise, banner, Amazon, ClickBank, TradeDoubler, Google, adBrite, post, WordPress, automatically, plugin, Adsense Injection, free
|
5 |
Requires at least: 3.0.0
|
6 |
Tested up to: 3.0.3
|
7 |
-
Stable tag: 0.9.3
|
8 |
|
9 |
-
Injects any
|
10 |
|
11 |
== Description ==
|
12 |
|
@@ -171,6 +171,9 @@ For more information visit [reviewmylife](http://www.reviewmylife.co.uk/blog/201
|
|
171 |
|
172 |
== Changelog ==
|
173 |
|
|
|
|
|
|
|
174 |
= 0.9.3 =
|
175 |
Invalidate the options cache after saving.
|
176 |
|
@@ -216,6 +219,9 @@ Fix 'Something badly wrong in num_rand_ads_to_insert' message that occurs on pag
|
|
216 |
|
217 |
== Upgrade Notice ==
|
218 |
|
|
|
|
|
|
|
219 |
= 0.9.3 =
|
220 |
If you are using mfunc mode and have added ad widgets please re-save them to regenerate the ad files (fixed from 0.9.2).
|
221 |
|
4 |
Tags: ad injection, adsense, advert injection, advert, ad, injection, advertising, affiliate, inject, injection, insert, widget, monetize, monetise, banner, Amazon, ClickBank, TradeDoubler, Google, adBrite, post, WordPress, automatically, plugin, Adsense Injection, free
|
5 |
Requires at least: 3.0.0
|
6 |
Tested up to: 3.0.3
|
7 |
+
Stable tag: 0.9.3.1
|
8 |
|
9 |
+
Injects any adverts (e.g. AdSense) into the WordPress posts or widget area. Restrict who sees ads by post length/age/referrer or IP. Cache compatible.
|
10 |
|
11 |
== Description ==
|
12 |
|
171 |
|
172 |
== Changelog ==
|
173 |
|
174 |
+
= 0.9.3.1 =
|
175 |
+
Fix chmod comparison problem.
|
176 |
+
|
177 |
= 0.9.3 =
|
178 |
Invalidate the options cache after saving.
|
179 |
|
219 |
|
220 |
== Upgrade Notice ==
|
221 |
|
222 |
+
= 0.9.3.1 =
|
223 |
+
If you are using mfunc mode and have added ad widgets with a version prior to 0.9.2 please re-save them to regenerate the ad files (fixed for upgrades from 0.9.2).
|
224 |
+
|
225 |
= 0.9.3 =
|
226 |
If you are using mfunc mode and have added ad widgets please re-save them to regenerate the ad files (fixed from 0.9.2).
|
227 |
|