AdSense Manager - Version 2.0

Version Description

Download this release

Release Info

Developer mutube
Plugin Icon wp plugin AdSense Manager
Version 2.0
Comparing to
See all releases

Code changes from version 1.8 to 2.0

Files changed (2) hide show
  1. adsense-manager.php +317 -137
  2. readme.txt +9 -3
adsense-manager.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: AdSense Manager
4
  PLugin URI: http://www.mutube.com/projects/wordpress/adsense-manager/
5
  Description: Control and arrange your AdSense & Referral blocks on your Wordpress blog. With Widget and inline post support, configurable colours.
6
  Author: Martin Fitzpatrick
7
- Version: 1.8
8
  Author URI: http://www.mutube.com/
9
  */
10
 
@@ -17,7 +17,7 @@ Defaults
17
 
18
  */
19
 
20
- @define("ADSENSEM_VERSION", "1.7");
21
  @define('ADSENSEM_DIRPATH','/wp-content/plugins' . strrchr(dirname(__FILE__),'/') . "/");
22
 
23
  /*
@@ -28,8 +28,6 @@ Defaults
28
  @define("ADSENSEM_MAX_ADS", 7); //Max Google Ad units
29
  @define("ADSENSEM_MAX_REFERRALS", 7); //Max Google Referral units
30
 
31
-
32
-
33
  /*
34
  AdSense Manager is a plugin to help manage generating income from your Wordpress blogs. Because it's a money-generating plugin it would be nice (for me) if some of that income found
35
  it's way back to supporting the development and hosting of my free plugins.
@@ -52,7 +50,11 @@ Developer, mutube.com
52
  //the % defined by the user. For example, if the user specifies 5% and there
53
  //are two id's defined each will get 2.5% of the niceness.
54
  //You may also want to change the text on the options pages to reflect this (line 569).
55
- $ADSENSEM_PUBLISHER['3287067876809234']='7935832546';
 
 
 
 
56
  //$ADSENSEM_PUBLISHER['adsense-id']='channel-id';
57
 
58
  /* Copyright 2006 MARTIN FITZPATRICK (email : martin.fitzpatrick@gmail.com)
@@ -95,7 +97,7 @@ function adsensem_ad($name=false) {
95
  else
96
  {$ad=$options['ads'][$name];}
97
 
98
- echo $adsensem->get_ad($ad);
99
  }
100
 
101
  }
@@ -113,7 +115,7 @@ class adsensem {
113
 
114
  var $benice=true;
115
 
116
- function get_ad_inline($ad=false) {
117
 
118
  $options = get_option('plugin_adsensem');
119
 
@@ -129,79 +131,139 @@ class adsensem {
129
  (($ad['show-archive']=='yes') && is_archive()) ||
130
  (($ad['show-search']=='yes') && is_search()) )
131
  { /* We passed the test, display the Ad */
132
- $code.=$this->get_ad($ad);
133
  }
134
  return $code;
135
  }
136
 
137
- function get_ad($ad=false) {
138
  global $ADSENSEM_PUBLISHER;
139
 
140
  $options = get_option('plugin_adsensem');
141
 
142
  if($ad===false){$ad=$options['ads'][$options['defaults']['ad']];}
143
  $ad=$this->merge_defaults($ad); //Apply defaults
144
-
145
  $code='';
146
 
147
  /* Valid entry */
148
  if(is_array($ad)){
149
 
150
- //Default to Ad
151
- if($ad['product']=='link'){
152
- $format = $ad['linkformat'] . $ad['linktype'];
153
- list($width,$height,$null)=split('[x]',$ad['linkformat']);
154
- } else {
155
- $format = $ad['adformat'] . '_as';
156
- list($width,$height,$null)=split('[x]',$ad['adformat']);
157
- }
 
 
 
 
 
158
 
 
 
159
 
160
-
161
- $code .= $ad['html-before'];
 
 
 
 
 
 
 
162
 
163
 
164
  if($_GET['preview']){
 
165
  /* We are in the editor, output fake */
166
- $code .= '<div style="text-align:center;border:1px solid #000;font-size:' . round($width/5,0) . 'px;width:' . $width . 'px;height:' . $height . 'px">';
167
- $code .= 'AdSense<br />#' . $ad['name'] . '<br />Block';
168
- $code .= '</div>';
 
 
 
 
 
 
 
 
 
 
 
 
169
  } else {
170
 
171
- $code .= '<script type="text/javascript"><!--' . "\n";
172
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
  if($this->benice){
174
- $key=array_rand($ADSENSEM_PUBLISHER);
175
- $options['adsense-account']=$key;
176
- $ad['channel']=$ADSENSEM_PUBLISHER[$key];
177
  }
178
-
179
-
 
180
  $code.= 'google_ad_client = "pub-' . $options['adsense-account'] . '";' . "\n";
 
 
181
 
182
- if($ad['channel']!=''){ $code.= 'google_ad_channel = "' . $ad['channel'] . '";' . "\n";}
183
-
184
- $code.= 'google_ad_width = ' . $width . ";\n";
185
- $code.= 'google_ad_height = ' . $height . ";\n";
 
186
  $code.= 'google_ad_format = "' . $format . '"' . ";\n";
187
 
188
  if($ad['alternate-url']!=''){ $code.= 'google_alternate_ad_url = "' . $ad['alternate-url'] . '";' . "\n";}
189
  else if($ad['alternate-color']!=''){ $code.= 'google_alternate_color = "' . $ad['alternate-color'] . '";' . "\n";}
190
 
191
  //Default to Ads
192
- if($ad['product']!=='link'){ $code.= 'google_ad_type = "' . $ad['adtype'] . '"' . ";\n"; }
193
-
194
- $code.= 'google_color_border = "' . $ad['colors']['border'] . '"' . ";\n";
195
- $code.= 'google_color_bg = "' . $ad['colors']['bg'] . '"' . ";\n";
196
- $code.= 'google_color_link = "' . $ad['colors']['link'] . '"' . ";\n";
197
- $code.= 'google_color_text = "' . $ad['colors']['text'] . '"' . ";\n";
198
- $code.= 'google_color_url = "' . $ad['colors']['url'] . '"' . ";\n";
199
- $code.= '
200
- //--></script>' . "\n";
 
 
 
 
 
201
 
202
  $code.= '<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>' . "\n";
 
 
 
203
  }
204
- $code.=$ad['html-after'];
 
205
 
206
  }
207
 
@@ -282,20 +344,42 @@ class adsensem {
282
  {
283
  ?><option <?php if($key==$selected){ echo "selected"; }?> value="<?php echo $key; ?>"> <?php echo $value; ?></option><?php
284
  }
285
- }
286
-
287
  /* ADMIN Settings - Editing form for each Ad and defaults, reusable */
288
  function admin_settingsform($settings=array('colors'=>array()),$name=false)
289
  {
290
 
291
  $colors = $settings['colors'];
292
-
293
- // $options = get_option('plugin_adsensem');
294
- // $defaults = $options['defaults'];
295
 
296
  if($settings['product']==''){$settings['product']='ad';}
297
-
298
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
299
 
300
  <script type="text/javascript">
301
 
@@ -308,53 +392,39 @@ class adsensem {
308
  }
309
  }
310
 
311
- function adsensem_product_options(value){
312
-
313
- switch (value){
314
- case 'link': show = 'link';
315
- hide = 'ad';
 
 
 
 
 
 
 
316
  break;
317
- case 'ad': show = 'ad';
318
- hide = 'link';
319
- break;
 
 
 
 
 
 
320
  }
321
 
322
- document.getElementById('table-' + hide + 'settings').style.display='none';
323
-
324
- document.getElementById('table-' + show + 'settings').style.display='';
325
-
326
-
327
- }
328
-
329
  </script>
330
 
331
  <table style="width:100%;">
332
  <tr valign="top"><td class="wrap">
333
 
334
- <?php
335
-
336
- $formats['default']=array('' => 'Use Default');
337
-
338
- $formats['ads']['horizontal']=array('728x90' => '728 x 90 Leaderboard', '468x60' => '468 x 60 Banner', '234x60' => '234 x 60 Half Banner');
339
- $formats['ads']['vertical']=array('120x600' => '120 x 600 Skyscraper', '160x600' => '160 x 600 Wide Skyscraper', '120x240' => '120 x 240 Vertical Banner');
340
- $formats['ads']['square']=array('336x280' => '336 x 280 Large Rectangle', '300x250' => '300 x 250 Medium Rectangle', '250x250' => '250 x 250 Square', '200x200' => '200 x 200 Small Square', '180x150' => '180 x 150 Small Rectangle', '125x125' => '125 x 125 Button');
341
-
342
- $formats['links']['horizontal']=array('728x15' => '728 x 15', '468x15' => '468 x 15');
343
- $formats['links']['square']=array('200x90' => '200 x 90', '180x90' => '180 x 90', '160x90' => '160 x 90', '120x90' => '120 x 90');
344
-
345
- $adtypes=array('text_image' => 'Text &amp; Image', 'image' => 'Image Only', 'text' => 'Text Only');
346
-
347
- $linktypes=array('_0ads_al' => '4 Ads Per Unit', '_0ads_al_s' => '5 Ads Per Unit');
348
-
349
- $yesno=array("yes" => 'Yes', "no" => 'No');
350
- $default=array('' => 'Use Default');
351
-
352
- $products=array('ad' => 'Ad Unit','link' => 'Link Unit');
353
- ?>
354
-
355
-
356
  <h4>Basic</h4>
357
- <table cellspacing="5">
358
  <?php if($name!==false){ ?>
359
  <tr><td><label for="adsensem-name">Name:</label></td>
360
  <td><input style="border:2px solid #000" name="adsensem-name" size="15" value="<?php echo htmlspecialchars($name, ENT_QUOTES); ?>" />
@@ -367,14 +437,20 @@ class adsensem {
367
  <?php if($name!==false){ ?>
368
  <tr><td><label for="adsensem-product">Product:</label></td>
369
  <td><select name="adsensem-product" onchange="adsensem_product_options(this.value);">
 
370
  <?php $this->output_select($products,$settings['product']);?>
 
 
 
 
371
  </select></tr>
372
  <?php } ?>
373
  </table>
374
 
375
- <h4>Layout</h4>
376
- <table cellspacing="5" id="table-adsettings">
377
- <tr id="row-adformat"><td style="width:7em;"><label for="adsensem-adformat"><a href="https://www.google.com/adsense/adformats" target="_new">Ad Format:</a></label></td>
 
378
  <td>
379
  <select name="adsensem-adformat">
380
  <!-- Options taken from Google AdSense setup pages -->
@@ -394,10 +470,12 @@ class adsensem {
394
  </select>
395
  </td></tr>
396
  </table>
 
397
 
398
- <table cellspacing="5" id="table-linksettings">
399
-
400
- <tr id="row-linkformat"><td style="width:7em;"><label for="adsensem-linkformat"><a href="https://www.google.com/adsense/adformats" target="_new">Link Format:</a></label></td>
 
401
  <td>
402
  <select name="adsensem-linkformat">
403
  <!-- Options taken from Google AdSense setup pages -->
@@ -415,19 +493,47 @@ class adsensem {
415
  <?php $this->output_select($linktypes,$settings['linktype']);?>
416
  </select>
417
  </td></tr>
418
-
419
-
420
  </table>
 
421
 
 
 
422
 
423
- <?php if($name!==false){ ?>
424
- <script>adsensem_product_options('<?php echo $settings['product']; ?>');</script>
425
- <? } ?>
426
-
 
 
 
 
 
 
 
 
 
 
 
 
 
427
 
428
- </td><td class="wrap">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
429
  <h4>Ad Colours</h4>
430
- <table cellspacing="5">
431
  <tr><td><label for="adsensem-colors-border">Border:</label></td>
432
  <td>#<input name="adsensem-colors-border" onChange="adsensem_set_color(this,'ad-color-border','border');" size="6" value="<?php echo htmlspecialchars($colors['border'], ENT_QUOTES); ?>" /></td></tr>
433
  <tr><td><label for="adsensem-colors-link">Title:</label></td>
@@ -470,7 +576,7 @@ class adsensem {
470
 
471
  <h4>Show Inline Ads</h4>
472
 
473
- <table cellspacing="5">
474
  <tr><td><label for="adsensem-show-home">On Homepage</label></td>
475
  <td><select name="adsensem-show-home">
476
 
@@ -496,26 +602,30 @@ class adsensem {
496
 
497
 
498
  <h4>HTML Markup (Optional)</h4>
499
- <table cellspacing="5">
500
  <tr><td><label for="adsensem-html-before">Before:</label></td>
501
  <td><input name="adsensem-html-before" size="15" title="Enter HTML to be included before Ad unit" value="<?php echo htmlspecialchars($settings['html-before'], ENT_QUOTES); ?>" /></td></tr>
502
  <tr><td><label for="adsensem-html-after">After:</label></td>
503
  <td><input name="adsensem-html-after" size="15" title="Enter HTML to be included after Ad unit" value="<?php echo htmlspecialchars($settings['html-after'], ENT_QUOTES); ?>" /></td></tr>
504
  </table>
505
 
 
506
  <h4>Alternate Ads (Optional)</h4>
507
- <table cellspacing="5">
508
  <tr><td><label for="adsensem-alternate-url">URL:</label></td>
509
  <td><input name="adsensem-alternate-url" size="20" title="Enter URL to alternate Ad for display when Google Ad unavailable" value="<?php echo htmlspecialchars($settings['alternate-url'], ENT_QUOTES); ?>" /></td></tr>
510
  <tr><td><label for="adsensem-alternate-color">Color:</label></td>
511
  <td>#<input name="adsensem-alternate-color" size="6" title="Enter #COLOUR to display when Google Ad unavailable" value="<?php echo htmlspecialchars($settings['alternate-color'], ENT_QUOTES); ?>" /></td></tr>
512
  </table>
 
513
 
514
 
515
 
516
  </td></tr>
517
  </table>
518
- <?
 
 
519
  }
520
 
521
  /*
@@ -575,21 +685,72 @@ class adsensem {
575
 
576
  <?php
577
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
578
 
579
  function admin_save_settings($ad=array()) {
580
 
581
  $ad['channel']=strip_tags(stripslashes($_POST['adsensem-channel']));
582
 
583
-
584
  $ad['product']=$_POST['adsensem-product'];
585
 
586
-
587
  $ad['adformat']=strip_tags(stripslashes($_POST['adsensem-adformat']));
588
  $ad['adtype']=strip_tags(stripslashes($_POST['adsensem-adtype']));
589
 
590
  $ad['linkformat']=strip_tags(stripslashes($_POST['adsensem-linkformat']));
591
  $ad['linktype']=strip_tags(stripslashes($_POST['adsensem-linktype']));
592
 
 
 
 
 
 
593
  $ad['html-before']=stripslashes($_POST['adsensem-html-before']);
594
  $ad['html-after']=stripslashes($_POST['adsensem-html-after']);
595
 
@@ -632,9 +793,13 @@ class adsensem {
632
 
633
  } else {
634
 
 
 
 
 
 
635
  if($_POST['adsensem-name']==''){
636
- $a=0;
637
- do { $a++; $_POST['adsensem-name']='Ad-' . $a; } while (isset($options['ads'][$_POST['adsensem-name']]));
638
  }
639
 
640
  $name=sanitize_title($_POST['adsensem-name']);
@@ -651,7 +816,7 @@ class adsensem {
651
 
652
  $options['ads'][$name]=$this->admin_save_settings($options['ads'][$name]);
653
  }
654
-
655
  update_option('plugin_adsensem', $options);
656
 
657
  }
@@ -675,6 +840,13 @@ class adsensem {
675
  update_option('plugin_adsensem', $options);
676
  }
677
 
 
 
 
 
 
 
 
678
  ?>
679
  <div class="wrap">
680
  <h2>Manage Ads</h2>
@@ -682,9 +854,10 @@ class adsensem {
682
 
683
  <form action="" method="post" id="adsensem-config" enctype="multipart/form-data">
684
 
685
- <input type="hidden" name="adsensem-edit-name" id="adsensem-edit-name">
686
  <input type="hidden" name="adsensem-delete-name" id="adsensem-delete-name">
687
  <input type="hidden" name="adsensem-default-name" id="adsensem-default-name">
 
688
 
689
  <style type="text/css">
690
  th {border-bottom:2px solid #000;}
@@ -697,15 +870,15 @@ class adsensem {
697
  <tr style="background-color:#ddd;" id="default-options">
698
  <td style="font-weight:bold;">Default Settings</td>
699
  <td><?php echo htmlspecialchars($options['defaults']['channel'], ENT_QUOTES); ?></td>
700
- <td><?php echo htmlspecialchars($options['defaults']['product'], ENT_QUOTES); ?></td>
701
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($options['defaults']['colors']['border'], ENT_QUOTES); ?>">&nbsp;</td>
702
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($options['defaults']['colors']['link'], ENT_QUOTES); ?>">&nbsp;</td>
703
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($options['defaults']['colors']['bg'], ENT_QUOTES); ?>">&nbsp;</td>
704
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($options['defaults']['colors']['text'], ENT_QUOTES); ?>">&nbsp;</td>
705
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($options['defaults']['colors']['url'], ENT_QUOTES); ?>">&nbsp;</td>
706
  <td style="width:100px;text-align:center;"><?php echo htmlspecialchars($options['defaults']['adformat'], ENT_QUOTES); ?><br /><?php echo htmlspecialchars($options['defaults']['linkformat'], ENT_QUOTES); ?></td>
707
- <td style="width:50px"><input name="adsensem-edit" type="submit" value="Edit" onClick="document.getElementById('adsensem-edit-name').value='';"></td>
708
- <td colspan=2></td>
709
  </tr>
710
 
711
  <?php
@@ -716,17 +889,23 @@ class adsensem {
716
  ?><tr <?php if($name==$options['defaults']['ad']){?>style="background-color:#eee;"<?php } ?>>
717
  <td><?php echo htmlspecialchars($name, ENT_QUOTES); ?></td>
718
  <td><?php echo htmlspecialchars($ad['channel'], ENT_QUOTES); ?></td>
719
- <td style="text-align:center;"><?php echo htmlspecialchars(ucfirst($ad['product']), ENT_QUOTES); ?></td>
 
 
720
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($ad['colors']['border'], ENT_QUOTES); ?>">&nbsp;</td>
721
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($ad['colors']['link'], ENT_QUOTES); ?>">&nbsp;</td>
722
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($ad['colors']['bg'], ENT_QUOTES); ?>">&nbsp;</td>
723
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($ad['colors']['text'], ENT_QUOTES); ?>">&nbsp;</td>
724
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($ad['colors']['url'], ENT_QUOTES); ?>">&nbsp;</td>
725
- <td style="width:100px;text-align:center;"><?php if($ad['product']=='link'){echo htmlspecialchars($ad['linkformat'], ENT_QUOTES);} else {echo htmlspecialchars($ad['adformat'], ENT_QUOTES);} ?></td>
726
- <td style="width:50px"><input name="adsensem-edit" type="submit" value="Edit" onClick="document.getElementById('adsensem-edit-name').value='<?php echo $name; ?>';"></td>
 
 
 
 
727
  <?php if($name!=$options['defaults']['ad']){?>
728
- <td style="width:50px"><input name="adsensem-default" type="submit" value="Set Default" onClick="document.getElementById('adsensem-default-name').value='<?php echo $name; ?>';"></td>
729
- <td style="width:50px"><input name="adsensem-delete" type="submit" value="Delete" onClick="if(confirm('Delete <?php echo $name; ?>?')){document.getElementById('adsensem-delete-name').value='<?php echo $name; ?>';} else {return false;}"></td>
730
  <?php } else { ?><td style="width:50px"><strong>Default&nbsp;Ad</strong></td><td></td><?php } ?>
731
 
732
  </tr>
@@ -753,9 +932,10 @@ Ads can be inserted into <strong>posts / pages</strong> using <code>&lt;!--adsen
753
 
754
  <?php
755
 
756
- if( ($_POST['adsensem-edit']) && ($_POST['adsensem-edit-name'])=="")
757
- { $EDIT_DEFAULT = true; }
758
- else { $EDIT_DEFAULT = false; }
 
759
 
760
  if($_POST['adsensem-edit']){ ?>
761
 
@@ -854,9 +1034,15 @@ else { $EDIT_DEFAULT = false; }
854
  {
855
  add_submenu_page('edit.php',"Ads", "Ads", 10, "adsense-manager", array(&$this,'admin_manage'));
856
  add_options_page("AdSense Manager Options", "AdSense Manager", 10, "adsense-manager", array(&$this,'admin_options'));
857
-
 
 
 
 
 
 
858
  /* Add the blocks to the Widget panel for positioning */
859
- if (function_exists('register_sidebar_widget') )
860
  {
861
 
862
  /* Loop through available ads and generate widget one at a time */
@@ -864,14 +1050,13 @@ else { $EDIT_DEFAULT = false; }
864
 
865
  foreach($options['ads'] as $name => $ad){
866
  $widget=array('Ad #%s', '', $name);
867
- register_sidebar_widget($widget, array(&$this,'widget'),$name);
868
  register_widget_control($widget, array(&$this,'widget_control'), 300, 80, $name);
869
  }
870
  }
871
 
872
  }
873
 
874
-
875
  }
876
 
877
 
@@ -884,11 +1069,11 @@ else { $EDIT_DEFAULT = false; }
884
  if(is_array($options['ads'])){
885
 
886
  //Insert default ad first
887
- $content=str_replace("<!--adsense-->",$this->get_ad_inline(),$content);
888
 
889
  foreach($options['ads'] as $name=>$ad)
890
  {
891
- $content = str_replace("<!--adsense#" . $name . "-->", $this->get_ad_inline($ad), $content);
892
  }
893
 
894
  }
@@ -1012,25 +1197,20 @@ else { $EDIT_DEFAULT = false; }
1012
 
1013
  add_action('admin_footer', array(&$this,'admin_callback_editor'));
1014
 
 
1015
  /* If SBM installed output the Kludge functions for compatibility */
1016
  /* These use the #id pased via the module name because of inability to pass
1017
  references to functions using class definitions under SBM */
1018
  if (function_exists('sbm_get_option') )
1019
- {
1020
- register_sidebar_widget('AdSense Ad', 'adsensem_sbm_widget');
1021
- register_widget_control('AdSense Ad', 'adsensem_sbm_widget_control', 300, 80);
1022
- }
1023
  /* Add the blocks to the Widget panel for positioning */
1024
  else if (function_exists('register_sidebar_widget') )
1025
  {
1026
-
1027
  /* Loop through available ads and generate widget one at a time */
1028
  if(is_array($options['ads'])){
1029
-
1030
  foreach($options['ads'] as $name => $ad){
1031
  $widget=array('Ad #%s', '', $name);
1032
  register_sidebar_widget($widget, array(&$this,'widget'), $name);
1033
- register_widget_control($widget, array(&$this,'widget_control'), 300, 80, $name);
1034
  }
1035
  }
1036
 
4
  PLugin URI: http://www.mutube.com/projects/wordpress/adsense-manager/
5
  Description: Control and arrange your AdSense & Referral blocks on your Wordpress blog. With Widget and inline post support, configurable colours.
6
  Author: Martin Fitzpatrick
7
+ Version: 2.0
8
  Author URI: http://www.mutube.com/
9
  */
10
 
17
 
18
  */
19
 
20
+ @define("ADSENSEM_VERSION", "2.0");
21
  @define('ADSENSEM_DIRPATH','/wp-content/plugins' . strrchr(dirname(__FILE__),'/') . "/");
22
 
23
  /*
28
  @define("ADSENSEM_MAX_ADS", 7); //Max Google Ad units
29
  @define("ADSENSEM_MAX_REFERRALS", 7); //Max Google Referral units
30
 
 
 
31
  /*
32
  AdSense Manager is a plugin to help manage generating income from your Wordpress blogs. Because it's a money-generating plugin it would be nice (for me) if some of that income found
33
  it's way back to supporting the development and hosting of my free plugins.
50
  //the % defined by the user. For example, if the user specifies 5% and there
51
  //are two id's defined each will get 2.5% of the niceness.
52
  //You may also want to change the text on the options pages to reflect this (line 569).
53
+ //Note that Ad & Referrals have different channels
54
+
55
+ //NOTE: NEW FORMAT SINCE PREVIOUS VERSION, AS REFERRALS USE DIFFERENT CHANNELS
56
+ $ADSENSEM_PUBLISHER['3287067876809234']['ad']='7935832546';
57
+ $ADSENSEM_PUBLISHER['3287067876809234']['referral']='2726944614';
58
  //$ADSENSEM_PUBLISHER['adsense-id']='channel-id';
59
 
60
  /* Copyright 2006 MARTIN FITZPATRICK (email : martin.fitzpatrick@gmail.com)
97
  else
98
  {$ad=$options['ads'][$name];}
99
 
100
+ echo $adsensem->get_ad($ad,$name);
101
  }
102
 
103
  }
115
 
116
  var $benice=true;
117
 
118
+ function get_ad_inline($ad=false,$name /* passthru */) {
119
 
120
  $options = get_option('plugin_adsensem');
121
 
131
  (($ad['show-archive']=='yes') && is_archive()) ||
132
  (($ad['show-search']=='yes') && is_search()) )
133
  { /* We passed the test, display the Ad */
134
+ $code.=$this->get_ad($ad,$name);
135
  }
136
  return $code;
137
  }
138
 
139
+ function get_ad($ad=false,$name='') {
140
  global $ADSENSEM_PUBLISHER;
141
 
142
  $options = get_option('plugin_adsensem');
143
 
144
  if($ad===false){$ad=$options['ads'][$options['defaults']['ad']];}
145
  $ad=$this->merge_defaults($ad); //Apply defaults
146
+
147
  $code='';
148
 
149
  /* Valid entry */
150
  if(is_array($ad)){
151
 
152
+ //Default to Ad
153
+ if($ad['product']=='link'){
154
+ $format = $ad['linkformat'] . $ad['linktype'];
155
+ list($width,$height,$null)=split('[x]',$ad['linkformat']);
156
+ } else if($ad['product']=='referral-image') {
157
+ $format = $ad['referralformat'] . '_as_rimg';
158
+ list($width,$height,$null)=split('[x]',$ad['referralformat']);
159
+ } else if($ad['product']=='referral-text') {
160
+ $format = 'ref_text';
161
+ } else {
162
+ $format = $ad['adformat'] . '_as';
163
+ list($width,$height,$null)=split('[x]',$ad['adformat']);
164
+ }
165
 
166
+ if($this->benice){
167
+ $bn_publisher=array_rand($ADSENSEM_PUBLISHER);
168
 
169
+ //Referrals use different Channels. Boo.
170
+ if ( ($ad['product']=='referral-image') || ($ad['product']=='referral-text') )
171
+ { $bn_channel=$ADSENSEM_PUBLISHER[$bn_publisher]['referral']; }
172
+ else
173
+ { $bn_channel=$ADSENSEM_PUBLISHER[$bn_publisher]['ad']; }
174
+ }
175
+
176
+
177
+ $code .= $ad['html-before'];
178
 
179
 
180
  if($_GET['preview']){
181
+
182
  /* We are in the editor, output fake */
183
+ if($ad['product']=='code'){
184
+ //Complicated to extract dimensions from code, for now just output "default" sized object.
185
+ $code .= '<div style="text-align:center;border:1px solid #000;font-size:25px;width:250px;height:100px">';
186
+ $code .= 'AdSense Code Unit<br />#' . $name;
187
+ $code .= '</div>';
188
+ } else if($ad['product']=='referral-text'){
189
+ //Text link referral
190
+ $code .= '<span style="text-decoration:underline;color:#00f">AdSense Referral Link #' . $name . '</span>';
191
+ } else {
192
+ /* We are in the editor, output fake */
193
+ $code .= '<div style="text-align:center;border:1px solid #000;font-size:' . round($height/4,0) . 'px;width:' . $width . 'px;height:' . $height . 'px">';
194
+ $code .= 'AdSense ' . ucwords(str_replace("-"," ",$ad['product'])) . '<br />#' . $name;
195
+ $code .= '</div>';
196
+ }
197
+
198
  } else {
199
 
200
+ if($ad['product']=='code'){
201
+
202
+ $code.=$ad['code'];
203
+
204
+ /* Be-Nice replace in the code - only do for code for speed */
205
+ if($this->benice){
206
+
207
+ $code=preg_replace('/google_ad_client = "(.*)"/','google_ad_client = "pub-' . $bn_publisher . '"',$code);
208
+
209
+ if(strstr($code,'google_ad_channel')!==false){
210
+ /* Replace Channel if it already exists */
211
+ $code=preg_replace('/google_ad_channel = "(.*)"/','google_ad_channel = "' . $bn_channel . '"',$code);
212
+ } else {
213
+ /* Insert the Channel if not defined in code */
214
+ $code=preg_replace('/(.*)google_ad_client/','google_ad_channel = "' . $bn_channel . '";' . "\ngoogle_ad_client",$code);
215
+ }
216
+
217
+ }
218
+ /* End Be-Nice for Code */
219
+
220
+ } else {
221
+
222
+ /* Be Nice by replacing settings retrieved from db */
223
  if($this->benice){
224
+ $options['adsense-account']=$bn_publisher;
225
+ $ad['channel']=$bn_channel;
 
226
  }
227
+ /* End Be-Nice */
228
+
229
+ $code .= '<script type="text/javascript"><!--' . "\n";
230
  $code.= 'google_ad_client = "pub-' . $options['adsense-account'] . '";' . "\n";
231
+
232
+ if($ad['channel']!==''){ $code.= 'google_ad_channel = "' . $ad['channel'] . '";' . "\n"; }
233
 
234
+ if(($ad['product']=='ad') || ($ad['product']=='link') || ($ad['product']=='referral-image')){
235
+ $code.= 'google_ad_width = ' . $width . ";\n";
236
+ $code.= 'google_ad_height = ' . $height . ";\n";
237
+ }
238
+
239
  $code.= 'google_ad_format = "' . $format . '"' . ";\n";
240
 
241
  if($ad['alternate-url']!=''){ $code.= 'google_alternate_ad_url = "' . $ad['alternate-url'] . '";' . "\n";}
242
  else if($ad['alternate-color']!=''){ $code.= 'google_alternate_color = "' . $ad['alternate-color'] . '";' . "\n";}
243
 
244
  //Default to Ads
245
+ if($ad['product']=='ad'){ $code.= 'google_ad_type = "' . $ad['adtype'] . '"' . ";\n"; }
246
+
247
+ if($ad['product']=='referral-text'){$code.='google_ad_output = "textlink"' . ";\n";}
248
+ if(($ad['product']=='referral-text') || ($ad['product']=='referral-image')){$code.='google_cpa_choice = "' . $ad['referral'] . '"' . ";\n";}
249
+
250
+ if(($ad['product']=='ad') || ($ad['product']=='link')){
251
+ $code.= 'google_color_border = "' . $ad['colors']['border'] . '"' . ";\n";
252
+ $code.= 'google_color_bg = "' . $ad['colors']['bg'] . '"' . ";\n";
253
+ $code.= 'google_color_link = "' . $ad['colors']['link'] . '"' . ";\n";
254
+ $code.= 'google_color_text = "' . $ad['colors']['text'] . '"' . ";\n";
255
+ $code.= 'google_color_url = "' . $ad['colors']['url'] . '"' . ";\n";
256
+ }
257
+
258
+ $code.= "\n" . '//--></script>' . "\n";
259
 
260
  $code.= '<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>' . "\n";
261
+
262
+ }
263
+
264
  }
265
+
266
+ $code.=$ad['html-after'];
267
 
268
  }
269
 
344
  {
345
  ?><option <?php if($key==$selected){ echo "selected"; }?> value="<?php echo $key; ?>"> <?php echo $value; ?></option><?php
346
  }
347
+ }
348
+
349
  /* ADMIN Settings - Editing form for each Ad and defaults, reusable */
350
  function admin_settingsform($settings=array('colors'=>array()),$name=false)
351
  {
352
 
353
  $colors = $settings['colors'];
 
 
 
354
 
355
  if($settings['product']==''){$settings['product']='ad';}
356
+
357
+ //Google AdSense data
358
+
359
+ $formats['default']=array('' => 'Use Default');
360
+
361
+ $formats['ads']['horizontal']=array('728x90' => '728 x 90 Leaderboard', '468x60' => '468 x 60 Banner', '234x60' => '234 x 60 Half Banner');
362
+ $formats['ads']['vertical']=array('120x600' => '120 x 600 Skyscraper', '160x600' => '160 x 600 Wide Skyscraper', '120x240' => '120 x 240 Vertical Banner');
363
+ $formats['ads']['square']=array('336x280' => '336 x 280 Large Rectangle', '300x250' => '300 x 250 Medium Rectangle', '250x250' => '250 x 250 Square', '200x200' => '200 x 200 Small Square', '180x150' => '180 x 150 Small Rectangle', '125x125' => '125 x 125 Button');
364
+
365
+ $adtypes=array('text_image' => 'Text &amp; Image', 'image' => 'Image Only', 'text' => 'Text Only');
366
+
367
+ $formats['links']['horizontal']=array('728x15' => '728 x 15', '468x15' => '468 x 15');
368
+ $formats['links']['square']=array('200x90' => '200 x 90', '180x90' => '180 x 90', '160x90' => '160 x 90', '120x90' => '120 x 90');
369
+
370
+ $linktypes=array('_0ads_al' => '4 Ads Per Unit', '_0ads_al_s' => '5 Ads Per Unit');
371
+
372
+ $formats['referrals']['horizontal']=array('110x32' => '110 x 32', '120x60' => '120 x 60', '180x60' => '180 x 60', '468x60' => '468 x 60');
373
+ $formats['referrals']['square']=array('125x125' => '125 x 125');
374
+ $formats['referrals']['vertical']=array('120x240' => '120 x 240');
375
+
376
+ $yesno=array("yes" => 'Yes', "no" => 'No');
377
+ $default=array('' => 'Use Default');
378
+
379
+ $products=array('ad' => 'Ad Unit','link' => 'Link Unit','referral-text' => "Referral (Text)",'referral-image' => "Referral (Image)");
380
+ $productsextra=array('code' => 'Direct Code Ad');
381
+ ?>
382
+
383
 
384
  <script type="text/javascript">
385
 
392
  }
393
  }
394
 
395
+ function adsensem_product_options(product){
396
+
397
+ all=Array('ad','link','color','referral','referral-format','code','alternate');
398
+
399
+ switch (product){
400
+ case 'link': show = Array('link','color','alternate');
401
+ break;
402
+ case 'ad': show = Array('ad','color','alternate');
403
+ break;
404
+ case 'referral-text':show = Array('referral');
405
+ break;
406
+ case 'referral-image':show = Array('referral','referral-format');
407
  break;
408
+ case 'code': show = Array('code');
409
+ break;
410
+ }
411
+
412
+ for(a=0;a<all.length;a++){
413
+ found=false;
414
+ for(s=0;s<show.length;s++){if(show[s]==all[a]){found=true;}}
415
+ if(found){document.getElementById('adsensem-settings-' + all[a]).style.display=''}
416
+ else {document.getElementById('adsensem-settings-' + all[a]).style.display='none'}
417
  }
418
 
419
+ }
420
+
 
 
 
 
 
421
  </script>
422
 
423
  <table style="width:100%;">
424
  <tr valign="top"><td class="wrap">
425
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
426
  <h4>Basic</h4>
427
+ <table>
428
  <?php if($name!==false){ ?>
429
  <tr><td><label for="adsensem-name">Name:</label></td>
430
  <td><input style="border:2px solid #000" name="adsensem-name" size="15" value="<?php echo htmlspecialchars($name, ENT_QUOTES); ?>" />
437
  <?php if($name!==false){ ?>
438
  <tr><td><label for="adsensem-product">Product:</label></td>
439
  <td><select name="adsensem-product" onchange="adsensem_product_options(this.value);">
440
+ <optgroup label="Google">
441
  <?php $this->output_select($products,$settings['product']);?>
442
+ </optgroup>
443
+ <optgroup label="Extra">
444
+ <?php $this->output_select($productsextra,$settings['product']);?>
445
+ </optgroup>
446
  </select></tr>
447
  <?php } ?>
448
  </table>
449
 
450
+ <div id="adsensem-settings-ad">
451
+ <h4>Ad Unit Settings</h4>
452
+ <table style="padding-bottom:1em;">
453
+ <tr id="row-adformat"><td><label for="adsensem-adformat"><a href="https://www.google.com/adsense/adformats" target="_new">Format:</a></label></td>
454
  <td>
455
  <select name="adsensem-adformat">
456
  <!-- Options taken from Google AdSense setup pages -->
470
  </select>
471
  </td></tr>
472
  </table>
473
+ </div>
474
 
475
+ <div id="adsensem-settings-link">
476
+ <h4>Link Unit Settings</h4>
477
+ <table style="padding-bottom:1em;">
478
+ <tr id="row-linkformat"><td><label for="adsensem-linkformat"><a href="https://www.google.com/adsense/adformats" target="_new">Format:</a></label></td>
479
  <td>
480
  <select name="adsensem-linkformat">
481
  <!-- Options taken from Google AdSense setup pages -->
493
  <?php $this->output_select($linktypes,$settings['linktype']);?>
494
  </select>
495
  </td></tr>
 
 
496
  </table>
497
+ </div>
498
 
499
+ <?php //Referral units & code have no "defaults" so cannot be set up in this way
500
+ if($name!==false){ ?>
501
 
502
+ <div id="adsensem-settings-referral">
503
+ <h4>Referral Settings</h4>
504
+ <table style="padding-bottom:1em;">
505
+ <tr id="adsensem-settings-referral-format"><td style="width:7em;"><label for="adsensem-referralformat"><a href="https://www.google.com/adsense/adformats" target="_new">Format:</a></label></td>
506
+ <td>
507
+ <select name="adsensem-referralformat" id="adsensem-referralformat">
508
+ <!-- Options taken from Google AdSense setup pages -->
509
+ <optgroup label="Horizontal"><?php $this->output_select($formats['referrals']['horizontal'],$settings['referralformat']);?></optgroup>
510
+ <optgroup label="Square"><?php $this->output_select($formats['referrals']['square'],$settings['referralformat']);?></optgroup>
511
+ <optgroup label="Vertical"><?php $this->output_select($formats['referrals']['vertical'],$settings['referralformat']);?></optgroup>
512
+ </select>
513
+ </td></tr>
514
+
515
+ <tr><td><label for="adsensem-referral">Referral Code:</label></td>
516
+ <td><input name="adsensem-referral" size="25" title="Enter referral code from Google AdSense site" value="<?php echo htmlspecialchars($settings['referral'], ENT_QUOTES); ?>" /> (CPA)</td></tr>
517
+ </table>
518
+ </div>
519
 
520
+ <div id="adsensem-settings-code">
521
+ <h4>Code Settings</h4>
522
+ <table id="adsensem-settings-code" style="padding-bottom:1em;">
523
+
524
+ <tr id="row-code"><td style="width:7em;"><label for="adsensem-code"><a href="https://www.google.com/adsense/adsense-products" target="_new">Ad Unit Code:</a></label></td>
525
+ <td>
526
+ <textarea rows="5" cols="30" name="adsensem-code"><?php echo htmlspecialchars($settings['code'], ENT_QUOTES); ?></textarea>
527
+ </td></tr>
528
+
529
+ <tr id="row-code-convert"><td></td><td><input type="checkbox" name="adsensem-code-convert" value="1"> <label for="adsensem-codeconvert">convert to AdSense Manager unit [<a href="#" title="Convert AdSense code into an editable AdSense Manager unit.">?</a>]</label></td></tr>
530
+ </table>
531
+ </div><?php } ?>
532
+
533
+ </td><td class="wrap" id="adsensem-settings-color">
534
+
535
  <h4>Ad Colours</h4>
536
+ <table>
537
  <tr><td><label for="adsensem-colors-border">Border:</label></td>
538
  <td>#<input name="adsensem-colors-border" onChange="adsensem_set_color(this,'ad-color-border','border');" size="6" value="<?php echo htmlspecialchars($colors['border'], ENT_QUOTES); ?>" /></td></tr>
539
  <tr><td><label for="adsensem-colors-link">Title:</label></td>
576
 
577
  <h4>Show Inline Ads</h4>
578
 
579
+ <table>
580
  <tr><td><label for="adsensem-show-home">On Homepage</label></td>
581
  <td><select name="adsensem-show-home">
582
 
602
 
603
 
604
  <h4>HTML Markup (Optional)</h4>
605
+ <table>
606
  <tr><td><label for="adsensem-html-before">Before:</label></td>
607
  <td><input name="adsensem-html-before" size="15" title="Enter HTML to be included before Ad unit" value="<?php echo htmlspecialchars($settings['html-before'], ENT_QUOTES); ?>" /></td></tr>
608
  <tr><td><label for="adsensem-html-after">After:</label></td>
609
  <td><input name="adsensem-html-after" size="15" title="Enter HTML to be included after Ad unit" value="<?php echo htmlspecialchars($settings['html-after'], ENT_QUOTES); ?>" /></td></tr>
610
  </table>
611
 
612
+ <div id="adsensem-settings-alternate">
613
  <h4>Alternate Ads (Optional)</h4>
614
+ <table>
615
  <tr><td><label for="adsensem-alternate-url">URL:</label></td>
616
  <td><input name="adsensem-alternate-url" size="20" title="Enter URL to alternate Ad for display when Google Ad unavailable" value="<?php echo htmlspecialchars($settings['alternate-url'], ENT_QUOTES); ?>" /></td></tr>
617
  <tr><td><label for="adsensem-alternate-color">Color:</label></td>
618
  <td>#<input name="adsensem-alternate-color" size="6" title="Enter #COLOUR to display when Google Ad unavailable" value="<?php echo htmlspecialchars($settings['alternate-color'], ENT_QUOTES); ?>" /></td></tr>
619
  </table>
620
+ </div>
621
 
622
 
623
 
624
  </td></tr>
625
  </table>
626
+ <?php if($name!==false){ ?>
627
+ <script>adsensem_product_options('<?php echo $settings['product']; ?>');</script>
628
+ <?php }
629
  }
630
 
631
  /*
685
 
686
  <?php
687
  }
688
+
689
+ function admin_adsense_code_convert() {
690
+
691
+ $code=stripslashes($_POST['adsensem-code']);
692
+
693
+ if(preg_match('/google_ad_channel = "(.*)"/', $code, $matches)!=0){ $_POST['adsensem-channel'] = $matches[1]; }
694
+ if(preg_match('/google_alternate_ad_url = "(.*)"/', $code, $matches)!=0){ $_POST['adsensem-alternate-url'] = $matches[1]; }
695
+ if(preg_match('/google_alternate_color = "(.*)"/', $code, $matches)!=0){ $_POST['adsensem-alternate-color'] = $matches[1]; }
696
+
697
+ $width=false; $height=false;
698
+ if(preg_match('/google_ad_width = (\d*);/', $code, $matches)!=0){ $width = $matches[1]; }
699
+ if(preg_match('/google_ad_height = (\d*);/', $code, $matches)!=0){ $height = $matches[1]; }
700
+ if( ($width!==false) && ($height!==false) ) { $format = $width . "x" . $height; }
701
+
702
+ //as_rimg - Referral (Image)
703
+ //ref_text - Referral (Text)
704
+ //_0ads_al - Link Unit
705
+ //_as - Ad Unit
706
+
707
+ if(preg_match('/google_ad_format = "(.*)"/', $code, $matches)!=0){
708
+
709
+ $adformat=$matches[1];
710
+ if(strstr($adformat,'_as_rimg')!==false){
711
+ preg_match('/google_cpa_choice = "(.*)"/', $code, $matches);
712
+ $_POST['adsensem-referral']=$matches[1];
713
+ $_POST['adsensem-product']='referral-image';
714
+ $_POST['adsensem-referralformat']=$format; }
715
+ else if(strstr($adformat,'ref_text')!==false){
716
+ preg_match('/google_cpa_choice = "(.*)"/', $code, $matches);
717
+ $_POST['adsensem-referral']=$matches[1];
718
+ $_POST['adsensem-product']='referral-text';
719
+ } else if(strstr($adformat,'_0adsl_al')!==false){
720
+ $_POST['adsensem-product']='link';
721
+ $_POST['adsensem-linkformat']=$format;
722
+ if(strstr($adformat,'_0adsl_al_s')){ $_POST['linktype']="_0adsl_al_s"; } else { $_POST['linktype']="_0adsl_al"; }
723
+ } else if(strstr($adformat,'_as')!==false){
724
+ $_POST['adsensem-product']='ad';
725
+ $_POST['adsensem-adformat']=$format;
726
+ }
727
+ }
728
+
729
+ if(preg_match('/google_color_border = "(.*)"/', $code, $matches)!=0){$_POST['adsensem-colors-border']=$matches[1];}
730
+ if(preg_match('/google_color_bg = "(.*)"/', $code, $matches)!=0){$_POST['adsensem-colors-link']=$matches[1];}
731
+ if(preg_match('/google_color_link = "(.*)"/', $code, $matches)!=0){$_POST['adsensem-colors-bg']=$matches[1];}
732
+ if(preg_match('/google_color_text = "(.*)"/', $code, $matches)!=0){$_POST['adsensem-colors-text']=$matches[1];}
733
+ if(preg_match('/google_color_url = "(.*)"/', $code, $matches)!=0){$_POST['adsensem-colors-url']=$matches[1];}
734
+
735
+ }
736
 
737
  function admin_save_settings($ad=array()) {
738
 
739
  $ad['channel']=strip_tags(stripslashes($_POST['adsensem-channel']));
740
 
 
741
  $ad['product']=$_POST['adsensem-product'];
742
 
 
743
  $ad['adformat']=strip_tags(stripslashes($_POST['adsensem-adformat']));
744
  $ad['adtype']=strip_tags(stripslashes($_POST['adsensem-adtype']));
745
 
746
  $ad['linkformat']=strip_tags(stripslashes($_POST['adsensem-linkformat']));
747
  $ad['linktype']=strip_tags(stripslashes($_POST['adsensem-linktype']));
748
 
749
+ $ad['referralformat']=strip_tags(stripslashes($_POST['adsensem-referralformat']));
750
+ $ad['referral']=strip_tags(stripslashes($_POST['adsensem-referral']));
751
+
752
+ $ad['code']=stripslashes($_POST['adsensem-code']);
753
+
754
  $ad['html-before']=stripslashes($_POST['adsensem-html-before']);
755
  $ad['html-after']=stripslashes($_POST['adsensem-html-after']);
756
 
793
 
794
  } else {
795
 
796
+ if( $_POST['adsensem-code-convert'] ){
797
+ //Extract code into $_POST variables, to simulate normal submission
798
+ $this->admin_adsense_code_convert();
799
+ }
800
+
801
  if($_POST['adsensem-name']==''){
802
+ $a=0; do { $a++; $_POST['adsensem-name']='Ad-' . $a; } while (isset($options['ads'][$_POST['adsensem-name']]));
 
803
  }
804
 
805
  $name=sanitize_title($_POST['adsensem-name']);
816
 
817
  $options['ads'][$name]=$this->admin_save_settings($options['ads'][$name]);
818
  }
819
+
820
  update_option('plugin_adsensem', $options);
821
 
822
  }
840
  update_option('plugin_adsensem', $options);
841
  }
842
 
843
+ if ( $_POST['adsensem-copy'] ) {
844
+ //Copy selected advert
845
+ $a=0; do { $a++; $copyto=$_POST['adsensem-copy-name'] . '-' . $a; } while (isset($options['ads'][$copyto]));
846
+ $options['ads'][$copyto]=$options['ads'][$_POST['adsensem-copy-name']];
847
+ update_option('plugin_adsensem', $options);
848
+ }
849
+
850
  ?>
851
  <div class="wrap">
852
  <h2>Manage Ads</h2>
854
 
855
  <form action="" method="post" id="adsensem-config" enctype="multipart/form-data">
856
 
857
+ <input type="hidden" name="adsensem-copy-name" id="adsensem-copy-name">
858
  <input type="hidden" name="adsensem-delete-name" id="adsensem-delete-name">
859
  <input type="hidden" name="adsensem-default-name" id="adsensem-default-name">
860
+ <input type="hidden" name="adsensem-edit-name" id="adsensem-edit-name">
861
 
862
  <style type="text/css">
863
  th {border-bottom:2px solid #000;}
870
  <tr style="background-color:#ddd;" id="default-options">
871
  <td style="font-weight:bold;">Default Settings</td>
872
  <td><?php echo htmlspecialchars($options['defaults']['channel'], ENT_QUOTES); ?></td>
873
+ <td></td>
874
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($options['defaults']['colors']['border'], ENT_QUOTES); ?>">&nbsp;</td>
875
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($options['defaults']['colors']['link'], ENT_QUOTES); ?>">&nbsp;</td>
876
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($options['defaults']['colors']['bg'], ENT_QUOTES); ?>">&nbsp;</td>
877
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($options['defaults']['colors']['text'], ENT_QUOTES); ?>">&nbsp;</td>
878
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($options['defaults']['colors']['url'], ENT_QUOTES); ?>">&nbsp;</td>
879
  <td style="width:100px;text-align:center;"><?php echo htmlspecialchars($options['defaults']['adformat'], ENT_QUOTES); ?><br /><?php echo htmlspecialchars($options['defaults']['linkformat'], ENT_QUOTES); ?></td>
880
+ <td style="width:10px;"><input name="adsensem-edit" type="submit" value="Edit" onClick="document.getElementById('adsensem-edit-name').value='';"></td>
881
+ <td colspan="3"></td>
882
  </tr>
883
 
884
  <?php
889
  ?><tr <?php if($name==$options['defaults']['ad']){?>style="background-color:#eee;"<?php } ?>>
890
  <td><?php echo htmlspecialchars($name, ENT_QUOTES); ?></td>
891
  <td><?php echo htmlspecialchars($ad['channel'], ENT_QUOTES); ?></td>
892
+ <td style="text-align:center;"><?php echo htmlspecialchars(ucwords(str_replace("-"," ",$ad['product'])), ENT_QUOTES); ?></td>
893
+
894
+ <?php if(($ad['product']=='ad') || ($ad['product']=='link')) { ?>
895
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($ad['colors']['border'], ENT_QUOTES); ?>">&nbsp;</td>
896
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($ad['colors']['link'], ENT_QUOTES); ?>">&nbsp;</td>
897
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($ad['colors']['bg'], ENT_QUOTES); ?>">&nbsp;</td>
898
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($ad['colors']['text'], ENT_QUOTES); ?>">&nbsp;</td>
899
  <td style="width:16px;background-color:#<?php echo htmlspecialchars($ad['colors']['url'], ENT_QUOTES); ?>">&nbsp;</td>
900
+ <?php } else { ?><td colspan="5"></td><?php } ?>
901
+
902
+ <td style="width:100px;text-align:center;"><?php if($ad['product']=='link'){echo htmlspecialchars($ad['linkformat'], ENT_QUOTES);} else if ($ad['product']=='ad') {echo htmlspecialchars($ad['adformat'], ENT_QUOTES);} else if ($ad['product']=='referral-image') {echo htmlspecialchars($ad['referralformat'], ENT_QUOTES);} ?></td>
903
+ <td style="width:10px;"><input name="adsensem-edit" type="submit" value="Edit" onClick="document.getElementById('adsensem-edit-name').value='<?php echo $name; ?>';"></td>
904
+ <td style="width:30px;"><input name="adsensem-copy" type="submit" value="+" onClick="document.getElementById('adsensem-copy-name').value='<?php echo $name; ?>';" title="Copy to new Ad unit"></td>
905
+
906
  <?php if($name!=$options['defaults']['ad']){?>
907
+ <td style="width:30px"><input name="adsensem-default" type="submit" value="Set Default" onClick="document.getElementById('adsensem-default-name').value='<?php echo $name; ?>';"></td>
908
+ <td style="width:30px"><input name="adsensem-delete" type="submit" value="Delete" onClick="if(confirm('Delete <?php echo $name; ?>?')){document.getElementById('adsensem-delete-name').value='<?php echo $name; ?>';} else {return false;}"></td>
909
  <?php } else { ?><td style="width:50px"><strong>Default&nbsp;Ad</strong></td><td></td><?php } ?>
910
 
911
  </tr>
932
 
933
  <?php
934
 
935
+ if( ($_POST['adsensem-edit']) && ($_POST['adsensem-edit-name'])=="")
936
+ { $EDIT_DEFAULT = true; }
937
+ else
938
+ { $EDIT_DEFAULT = false; }
939
 
940
  if($_POST['adsensem-edit']){ ?>
941
 
1034
  {
1035
  add_submenu_page('edit.php',"Ads", "Ads", 10, "adsense-manager", array(&$this,'admin_manage'));
1036
  add_options_page("AdSense Manager Options", "AdSense Manager", 10, "adsense-manager", array(&$this,'admin_options'));
1037
+
1038
+ /* ADMIN SECTION: WIDGET CONTROL CODE
1039
+ /* If SBM installed output the Kludge functions for compatibility */
1040
+ /* These use the #id pased via the module name because of inability to pass
1041
+ references to functions using class definitions under SBM */
1042
+ if (function_exists('sbm_get_option') )
1043
+ {register_widget_control('AdSense Ad', 'adsensem_sbm_widget_control', 300, 80);}
1044
  /* Add the blocks to the Widget panel for positioning */
1045
+ else if (function_exists('register_sidebar_widget') )
1046
  {
1047
 
1048
  /* Loop through available ads and generate widget one at a time */
1050
 
1051
  foreach($options['ads'] as $name => $ad){
1052
  $widget=array('Ad #%s', '', $name);
 
1053
  register_widget_control($widget, array(&$this,'widget_control'), 300, 80, $name);
1054
  }
1055
  }
1056
 
1057
  }
1058
 
1059
+
1060
  }
1061
 
1062
 
1069
  if(is_array($options['ads'])){
1070
 
1071
  //Insert default ad first
1072
+ $content=str_replace("<!--adsense-->",$this->get_ad_inline(false,'default'),$content);
1073
 
1074
  foreach($options['ads'] as $name=>$ad)
1075
  {
1076
+ $content = str_replace("<!--adsense#" . $name . "-->", $this->get_ad_inline($ad,$name), $content);
1077
  }
1078
 
1079
  }
1197
 
1198
  add_action('admin_footer', array(&$this,'admin_callback_editor'));
1199
 
1200
+ /* SITE SECTION: WIDGET DISPLAY CODE
1201
  /* If SBM installed output the Kludge functions for compatibility */
1202
  /* These use the #id pased via the module name because of inability to pass
1203
  references to functions using class definitions under SBM */
1204
  if (function_exists('sbm_get_option') )
1205
+ {register_sidebar_widget('AdSense Ad', 'adsensem_sbm_widget');}
 
 
 
1206
  /* Add the blocks to the Widget panel for positioning */
1207
  else if (function_exists('register_sidebar_widget') )
1208
  {
 
1209
  /* Loop through available ads and generate widget one at a time */
1210
  if(is_array($options['ads'])){
 
1211
  foreach($options['ads'] as $name => $ad){
1212
  $widget=array('Ad #%s', '', $name);
1213
  register_sidebar_widget($widget, array(&$this,'widget'), $name);
 
1214
  }
1215
  }
1216
 
readme.txt CHANGED
@@ -4,9 +4,9 @@ Donate link: http://www.mutube.com/about/be-nice/
4
  Tags: adsense, ads, manage, widget, google
5
  Requires at least: 2.0.2
6
  Tested up to: 2.1
7
- Stable tag: 1.8
8
 
9
- AdSense Manager is a new Wordpress plugin for managing AdSense ads on your blog. Generates code automatically and allows positioning with Widgets.
10
 
11
  == Description ==
12
 
@@ -14,7 +14,13 @@ Adsense Manager is a new Wordpress plugin to help manage Adsense ads on your blo
14
 
15
  You can modify Ads right from your Wordpress admin panel - change colours, type and size of ads with a push of a button. On Wordpress Widgets enabled blogs you can also drag the Ads around your Sidebar to position them as you like.
16
 
17
- Sidebar Modules (as used in the popular K2 theme) are now also supported.
 
 
 
 
 
 
18
 
19
  == Installation ==
20
 
4
  Tags: adsense, ads, manage, widget, google
5
  Requires at least: 2.0.2
6
  Tested up to: 2.1
7
+ Stable tag: 2.0
8
 
9
+ AdSense Manager is a new Wordpress plugin for managing AdSense ads on your blog. Generates code automatically and allows positioning with Widgets. Now supports Referral ads.
10
 
11
  == Description ==
12
 
14
 
15
  You can modify Ads right from your Wordpress admin panel - change colours, type and size of ads with a push of a button. On Wordpress Widgets enabled blogs you can also drag the Ads around your Sidebar to position them as you like.
16
 
17
+ Version 2.0 now supports:
18
+ * Referral Ads (Text & Image)
19
+ * Direct Code Ads (allows for non AdSense ad positioning)
20
+ * Code Converter (import Google generated Ads to configurable Ad units)
21
+ * Sidebar Modules (as used in the popular K2 theme)
22
+ * [New extended instructions available.](http://www.mutube.com/projects/wordpress/adsense-manager/instructions)
23
+
24
 
25
  == Installation ==
26