new Ad_ShoppingAds, $_adsensem['defaults'] = array(); $_adsensem['account-ids'] = array(); $_adsensem['be-nice'] = ADSENSEM_BE_NICE; $_adsensem['version'] = ADSENSEM_VERSION; $deluxe=get_option('acmetech_adsensedeluxe'); if(is_array($deluxe)){adsensem_admin::add_notice('upgrade adsense-deluxe','AdSense Manager has detected a previous installation of AdSense Deluxe. Import settings?','yn');} $update_adsensem = true; } else if(adsensem_admin::version_upgrade($_adsensem['version'],ADSENSEM_VERSION)){ require('class-upgrade.php'); //Backup cycle $backup=get_option('plugin_adsensem_backup'); $backup[adsensem_admin::major_version($_adsensem['version'])]=$_adsensem; update_option('plugin_adsensem_backup',$backup); adsensem_upgrade::go(); $update_adsensem=true; } if($update_adsensem){ update_option('plugin_adsensem', $_adsensem); } } function major_version($v){ $mv=explode('.', $v); return $mv[0]; //Return major version } function version_upgrade($old,$new){ $ov=explode('.', $old); $nv=explode('.', $new); if($nv[0]>$ov[0]){ return true; } else if($nv[0]==$ov[0]){ if($nv[1]>$ov[1]){ return true; } else if($nv[1]==$ov[1]){ if($nv[2]>$ov[2]){ return true; } } } //else return false; } /* NOTIFICATION FUNCTIONS Functions below output notices to update the user on import options, issues with the data imported etc. */ function admin_notices(){ global $_adsensem; ?> $notice){ ?>
AdSense Manager',$notice['text']); ?>
$value) { if(is_array($value)){ ?> 'Use Default'); if(is_array(current($list))){$default=array('Default'=>$default);} //If optgroups in use, move the default into one. Smart. ?>

{_form_settings_.$formelement}(); ?>
$network){ $count--; if( $network['display']===false ) { continue; } if( $network['www-signup']!='' ){ ?>1){echo ', ';} else if($count==1){echo ' and ';} } } function sort_ad_step($a,$b){ $sort_network=strcmp( $GLOBALS['_adsensem_sort_ads_by_network'][$a]->network(), $GLOBALS['_adsensem_sort_ads_by_network'][$b]->network() ); if($sort_network==0){ //Same network, sort name return strcmp($a,$b); } else {return $sort_network;} } /* Sort ads by the network they're on, allows Manage Ads display to show grouped */ function sort_ads_by_network($ads){ $GLOBALS['_adsensem_sort_ads_by_network']=$ads; //Needed to pass data into the comparison function uksort($ads,array('adsensem_admin','sort_ad_step')); $GLOBALS['_adsensem_sort_ads_by_network']=''; return $ads; } /* IMPORTING AND SAVING FUNCTIONS Functions below are for running the import process from ad network code and for checking the validity of submitted values, e.g. for names */ function import_ad($code){ global $_adsensem_networks; $imported=false; //We're attempting to import code $code=stripslashes($code); foreach ($_adsensem_networks as $network => $n){ if(call_user_func(array($network,'import_detect_network'),$code)) { $ad=new $network; $ad->import_settings($code); $imported=true; break; //leave the foreach loop } } if(!$imported){$ad=new Ad_Code(); $ad->import_settings($code);} return $ad; } function validate_name($name,$network=false){ global $_adsensem,$_adsensem_networks; $name=sanitize_title($name); if($name==''){ if($network){ $base=$_adsensem_networks[$network]['shortname']; } else { $base='ad'; } } else { $base=$name; } $a=0; while (isset($_adsensem['ads'][$name]) || ($name=='')){ $a++; $name=$base . '-' . $a; } return $name; } /* PROCESS ADMIN/EDITING SUBMISSION Takes submission from the admin Manage ads area and processes it to save results, import code & update */ /* Define and manage AdSense ad blocks for your Wordpress setup */ function admin_manage() { // Get our options and see if we're handling a form submission. global $_adsensem, $_adsensem_networks; $update_adsensem=false; ; /* Submissions from the manage ads listing at the top of the page */ //if ( $_POST['adsensem-submit']=='manage' ) { switch ($_POST['adsensem-mode'].':'.$_POST['adsensem-action']){ case 'manage:copy unit': //Copy selected advert $copyto=adsensem_admin::validate_name($_POST['adsensem-action-target']); $_adsensem['ads'][$copyto]=adsensem_clone($_adsensem['ads'][$_POST['adsensem-action-target']]); //clone() php4 hack $_adsensem['ads'][$copyto]->name=$copyto; //update internal name reference $_adsensem['ads']=adsensem_admin::sort_ads_by_network($_adsensem['ads']); $update_adsensem=true; break; case 'manage:delete unit': //Delete selected advert if($_POST['adsensem-action-target']!=$_adsensem['default-ad']){ unset($_adsensem['ads'][$_POST['adsensem-action-target']]); $update_adsensem=true; } break; case 'manage:set default': //Set selected advert as default $_adsensem['default-ad']=$_POST['adsensem-default-name']; $update_adsensem=true; break; case 'save:edit new': $name=adsensem_admin::validate_name($_POST['adsensem-name']); $_adsensem['ads'][$name] = new $_POST['adsensem-action-target']; //temporary to access network-specific functions $_adsensem['ads'][$name]->name=$name; //Update internal name reference (always, to ensure accuracy) $_adsensem['ads'][$name]->save_settings(); $_POST['adsensem-mode']='manage'; $_POST['adsensem-action']=''; $update_adsensem=true; break; case 'save:edit unit': case 'apply:edit unit': /* Changing the name of an Ad, copy and delete old */ if($_POST['adsensem-name']!=$_POST['adsensem-name-old']){ $name=adsensem_admin::validate_name($_POST['adsensem-name']); $_adsensem['ads'][$name]=adsensem_clone($_adsensem['ads'][$_POST['adsensem-name-old']]); //$_adsensem['ads'][$name]->name=$name; //Update object-held name unset($_adsensem['ads'][$_POST['adsensem-name-old']]); /* We can now use the new $name from this point forward, lovely */ /* Update default if neccessary */ if($_adsensem['default-ad']==$_POST['adsensem-name-old']){$_adsensem['default-ad']=$name;} $_adsensem['ads'][$name]->name=$name; //Update internal name reference (always, to ensure accuracy) } else {$name=stripslashes($_POST['adsensem-name']);} $_adsensem['ads'][$name]->save_settings(); if($_POST['adsensem-mode']!=='apply'){//Only for Save (Apply leave as is, return to edit page) $_POST['adsensem-mode']='manage'; $_POST['adsensem-action']='';} $update_adsensem=true; break; case 'save:restore defaults': $temp = new $_POST['adsensem-action-target']; //temporary to access network-specific functions $temp->reset_defaults(); $_POST['adsensem-mode']='edit'; $_POST['adsensem-action']='edit defaults'; $update_adsensem=true; break; case 'save:edit defaults': $temp = new $_POST['adsensem-action-target']; //temporary to access network-specific functions $temp->save_settings(); $_adsensem['defaults'][$_POST['adsensem-action-target']]=$temp->p; $_POST['adsensem-mode']='manage'; $_POST['adsensem-action']=''; $update_adsensem=true; break; case 'import:edit code': $ad=new Ad_Code; $ad->save_settings(); //adsensem_admin::import_ad($_POST['adsensem-code']); $name=adsensem_admin::validate_name($_POST['adsensem-name'],$ad->network()); $_adsensem['ads'][$name]=$ad; $_adsensem['ads'][$name]->name=$name; //Forces imported unit into the edit mode for changes $_POST['adsensem-action']='edit unit'; $_POST['adsensem-action-target']=$name; $update_adsensem=true; $sort_adsensem=true; break; case 'import:edit unit': $ad=adsensem_admin::import_ad($_POST['adsensem-code']); $name=adsensem_admin::validate_name($_POST['adsensem-name'],$ad->network()); $_adsensem['ads'][$name]=$ad; $_adsensem['ads'][$name]->name=$name; //Ensure that account-id passed to defaults when it does not match current submission //if($_adsensem['defaults'][$ad->network()]['account-id']!==$ad->p['account-id']){$_adsensem['defaults'][$ad->network()]['account-id']=$ad->p['account-id'];} //Forces imported unit into the edit mode for changes $_POST['adsensem-action']='edit unit'; $_POST['adsensem-action-target']=$name; $update_adsensem=true; break; case 'import:edit defaults': $ad=adsensem_admin::import_ad($_POST['adsensem-code']); if($ad->network=='Ad_Code'){$_POST['adsensem-action']=''; break;} $_adsensem['defaults'][$ad->network()]=$ad->p; //Forces imported unit into the edit mode for changes, to skip change mode to 'manage'; $_POST['adsensem-action']='edit defaults'; $_POST['adsensem-action-target']=$ad->network(); $update_adsensem=true; break; case 'manage:edit unit': //Pass through stuff to switch modes between pages. case 'manage:edit defaults': case 'import:edit new': $_POST['adsensem-mode']='edit'; break; default: $_POST['adsensem-mode']='manage'; $_POST['adsensem-action']=''; } //End switch cases //Set default ad if it is currently incorrect and there is a valid ad object available if( (!is_object($_adsensem['ads'][$_adsensem['default-ad']]) ) && ( count($_adsensem['ads']>0) ) ){ $_adsensem['default-ad']=key($_adsensem['ads']); $update_adsensem==true; } if($update_adsensem){ $_adsensem['ads']=adsensem_admin::sort_ads_by_network($_adsensem['ads']); update_option('plugin_adsensem', $_adsensem); } if($_POST['adsensem-mode']=='manage'){ //Managing (i.e. not Importing, or editing) //If not in edit mode, output the ad listing/tables ////if((sizeof($_adsensem['ads'])==false) || (sizeof($_adsensem['ads'])==0) ){ adsensem_admin::admin_manage_table(); //Only if ads available to list // } adsensem_admin::admin_manage_create(); } else { //If in edit mode, output the editing form (create, edit, defaults, etc.) adsensem_admin::admin_manage_edit(); } } /* MAIN INTERFACE FUNCTIONS Output the HTML for the main user interface in admin mode - including managing ads and initiating edit forms */ function admin_manage_table(){ // Get our options and see if we're handling a form submission. global $_adsensem, $_adsensem_networks; ?>

Manage Ads

$ad) { if($ad->network()!==$previous_network){ if($previous_network!==''){ ?>network()); $previous_network=$ad->network(); $shade=0; } /* The below hides ads from other networks while editing a given network */ //if(($_POST['adsensem-edit-network']!='') && ($ad['network']!=$_POST['adsensem-edit-network'])){continue;} ?>p)){ ?>
NameSlotColoursFormatAlternateNotesModifyDA
         
Create Ads...
p))&&(!array_key_exists('channel',$ad->p))){ echo 'class="disabled"'; } ?> style="text-align:center">p['slot'], ENT_QUOTES); ?>p['channel']!=''){echo htmlspecialchars('/'.$ad->p['channel'], ENT_QUOTES) ;} ?>           p['adformat'], ENT_QUOTES); ?> p['alternate-ad'], ENT_QUOTES); ?> p['notes'], ENT_QUOTES); ?> checked >

By changing the Network settings you can update all Ads on a network at once.
Default Ad indicates which Ad will be displayed in any space on your site where no specific ID is used.

Ads can be included in templates using <?php adsensem_ad('name'); ?> or <?php adsensem_ad(); ?> for the default Ad.
Ads can be inserted into posts / pages using <!--am#name--> or <!--am--> for the default Ad. Note that the old <--adsense#name--> style works too!

Create Ads

AdSense Manager supports most Ad networks including .

AdSense Slots & Other Networks

Simply paste your Ad Code below and Import!

AdSense Classic

If you prefer not to manage your AdSense ads through Google's online Slot system, you can use AdSense Manager to change colours, size and layout as in previous versions.

Simply choose the type of Ad to create below!

   

p=$_adsensem['defaults'][$_POST['adsensem-action-target']]; //Load defaults into temporary ad ?>

Edit Default Settings for ''

Edit the settings for your Ad below. To use the network defaults for any element, simply leave that section blank or select "Use Default" from the drop down menus.

name=$_POST['adsensem-action-target']; ?>

Edit ''

Edit the settings for your Ad below. To use the network defaults for any element, simply leave that section blank or select "Use Default" from the drop down menus.

Create New ''

Enter the settings for your new Ad below. To use the network defaults for any element, simply leave that section blank or select "Use Default" from the drop down menus.

Basic

admin_manage_column1(); ?>

Appearance

admin_manage_column2(); ?>

Advanced

admin_manage_column3(); ?>

AdSense Manager Options

AdSense Manager has been redesigned to be as simple to use as possible. To get you started, the instructions below will guide you through the process of adding your first ad to AdSense Manager. Once you've created the first one you can simply repeat the process to add as many ads as you like!

Getting Started

  1. Or use .
  2. Create a new ad unit using your network's ad online management system.
  3. Copy the ad code generated (Edit » Copy, from within your browser)
  4. Go to Manage » Ad Units and paste the code into the box
  5. Click Import to New Ad Unit»

If you need more help, there are detailed instructions available on our website, or check the forum and ask a question.

Be Nice!

Please support the developers of this plugin by either donating a small amount of your ad space to show our ads, or by making a donation through PayPal:

  1. I'm Being Nice and donating % of my Ad space to support development of this plugin [Eh?]
  2. I've given a a very generous donation through Paypal and got a warm fuzzy feeling.

Thanks to all those that have shown their support, it really does make a difference!