this for convenience var $title; //Used in widget displays only var $p; //$p holds Ad properties (e.g. dimensions etc.) - acessible through $this->p[''] and $this->p(''); see $this->pd('') for default merged var $name; //$name holds the external (array) name of unit, passed in for ease of access //Null functions, to avoid errors when sub-classes don't have required funcitons function reset_defaults_network(){} //null function save_settings_network(){} //null //Global start up functions for all network classes function Ad_Generic(){ global $_adsensem; $this->p = array(); $this->name = ''; $this->title = ''; } function network(){ return strtolower(get_class($this)); } /* Returns current setting, without defaults */ function p($key){ return $this->p[$key]; } /* Returns current setting, merged with defaults */ function pd($key){ global $_adsensem; $defaults = $_adsensem['defaults'][$this->network()]; if($this->p[$key]==''){return $defaults[$key];} else { return $this->p[$key]; } } /* Returns current default for this network */ function d($key){ global $_adsensem; return $_adsensem['defaults'][$this->network()][$key]; } /* ACCOUNT ID SPECIFIC SAVE/ETC. Allows for overriding of this in sub-ad-types, etc. to share id's between types/networks. */ function account_id(){ global $_adsensem; return $_adsensem['account-ids'][$this->network()]; } function set_account_id($aid){ global $_adsensem; $_adsensem['account-ids'][$this->network()]=$aid; } /* ALL AD, GENERIC FUNCTIONS */ function show_ad_here(){ //Extend this to include all ad-specific checks, so it can used to filter adzone groups in future. return ( ($this->counter()!==0) && ( (($this->pd('show-home')=='yes') && is_home()) || (($this->pd('show-post')=='yes') && is_single()) || (($this->pd('show-page')=='yes') && is_page()) || (($this->pd('show-archive')=='yes') && is_archive()) || (($this->pd('show-search')=='yes') && is_search()) ) ); } function can_benice(){return false;} function get_ad() { return $code = $this->pd('html-before') . $this->p('html') . $this->pd('html-after'); } function render_ad() { return ''; } function render_ad_editor() { /* We are in the editor, output fake */ $width=$this->p['width']; $height=$this->p['height']; if($width=='' || $height==''){$width=250; $height=125;} $font_size = (round($width/4,0) < round($height/4,0) )? round($width/4,0) : round($height/4,0); $code = '
'; $code .= 'Ad #' . $this->name; $code .= '
'; return $code; } function counter_id(){ return strtolower(get_class($this)); } function counter(){ global $_adsensem_counters, $_adsensem_networks; //Use get_class($this); because individual sub-types of Google ads have seperate counters. Ugly hack. if(!isset($_adsensem_counters[$this->counter_id()])){ if(isset($_adsensem_networks[strtolower(get_class($this))]['limit-ads'])){ $_adsensem_counters[$this->counter_id()]=$_adsensem_networks[strtolower(get_class($this))]['limit-ads']; } else { $_adsensem_counters[$this->counter_id()]=-1; } } return $_adsensem_counters[$this->counter_id()]; } function counter_click($n=-1){ global $_adsensem_counters; if($this->counter()!==0){$_adsensem_counters[$this->counter_id()]+=$n;} } /* GENERAL STUFF */ function reset_defaults() { global $_adsensem; $_adsensem['defaults'][$this->network()] = array ( 'show-home' => 'yes', 'show-post' => 'yes', 'show-page' => 'yes', 'show-archive' => 'yes', 'show-search' => 'yes', 'html-before' => '', 'html-after' => '', // 'limit-counter' => '0', ); $this->reset_defaults_network(); //Network specific, if they exist. update_option('plugin_adsensem', $_adsensem); } function save_settings(){ global $_adsensem; //Store account id to network default location if($_POST['adsensem-account-id']!=''){ $this->set_account_id($_POST['adsensem-account-id']); } $this->p['html-before']=stripslashes($_POST['adsensem-html-before']); $this->p['html-after']=stripslashes($_POST['adsensem-html-after']); $this->p['show-home']=$_POST['adsensem-show-home']; $this->p['show-post']=$_POST['adsensem-show-post']; $this->p['show-page']=$_POST['adsensem-show-page']; $this->p['show-archive']=$_POST['adsensem-show-archive']; $this->p['show-search']=$_POST['adsensem-show-search']; //Now import ad and save ad format data $this->p['html']=stripslashes($_POST['adsensem-html']); $this->p['notes']=$_POST['adsensem-notes']; if($this->p['adformat']=='custom'){ $this->p['width']=$_POST['adsensem-width']; $this->p['height']=$_POST['adsensem-height']; } else { list($this->p['width'],$this->p['height'],$null)=split('[x]',$this->p('adformat')); } $this->save_settings_network(); } //Convert defined ads into a simple list for outputting as alternates. Maybe limit types by network (once multiple networks supported) function get_alternate_ads(){ global $_adsensem; $compat=array(); foreach($_adsensem['ads'] as $oname => $oad){ if( ($this->network()!==$oad->network()) && ($this->pd('width')==$oad->pd('width')) && ($this->pd('height')==$oad->pd('height')) ){ $compat[$oname]=$oname; } } return $compat; } function import_detect_network($code){return false;} function _form_settings_network(){ $this->p['account-id']=$this->account_id(); //fudge; adsensem_admin::_field_input('Account ID','account-id',15,'Account ID for this network.',true); } function _form_settings_ad_unit(){ $this->p['name']=$this->name; //fudge; adsensem_admin::_field_input('Name','name',15,'Name for this Ad Unit'); ?>_form_settings_ad_unit(); adsensem_admin::_field_input('Slot ID','slot',15,'Network\'s ID for this ad slot.',true); } function _form_settings_ad_format(){ adsensem_admin::_field_input('Dimensions','adformat',15,'Dimensions of this ad unit.',true); } function _form_settings_html_code(){ ?> 'Use Default'); $yesno = array('yes' => 'Yes','no' => 'No'); adsensem_admin::_field_select('On Homepage','show-home',$yesno); adsensem_admin::_field_select('On Posts','show-post',$yesno); adsensem_admin::_field_select('On Pages','show-page',$yesno); adsensem_admin::_field_select('On Archives','show-archive',$yesno); adsensem_admin::_field_select('On Search','show-search',$yesno); // adsensem_admin::_field_input('Max Ads Per Page','limit-counter',$this->p['limit-counter'],3,'Enter max ad units/page. For unlimited, set 0.'); } function _form_settings_wrap_html_code(){ adsensem_admin::_field_input('<Before>','html-before',15,'Enter HTML to be included before Ad unit.'); adsensem_admin::_field_input('</After>','html-after',15,'Enter HTML to be included after Ad unit.'); } function _form_settings_notes(){ adsensem_admin::_field_input('Notes','notes',25,'Enter useful notes/reminders here.'); } function _form_settings_help(){ ?>

None.

_var_forms_network()); } else { adsensem_admin::dbxoutput($this->_var_forms_unit()); } adsensem_admin::dbxoutput($this->_var_forms_column1()); } function admin_manage_column2(){adsensem_admin::dbxoutput($this->_var_forms_column2());} function admin_manage_column3(){adsensem_admin::dbxoutput($this->_var_forms_column3());} } ?>