'; $__ACMETECH_AD_PARTNER__ = "1881826992"; //-- //-- CONSTANTS //-- define('ADSDEL_OPTIONS_ID', 'acmetech_adsensedeluxe'); //-- //-- OUTPUTS debugging info in html comments on blog pages. //-- $__AdSDelx_Debug__ = false; //-- //-- If set to false, live adsense ads displayed in Post editing preview //-- $__AdSDelx_USE_PREV_PLACEHOLDER = true; /* adsense-deluxe This function replaces or tags with actual Google Adsense code */ if (function_exists('is_plugin_page') && is_plugin_page()) : AdsenseDeluxeOptionsPanel(); // check here to see if the broken 1.5 options page feature is fixed else : function adsense_deluxe_insert_ads($data) { global $__AdSDelx_USE_PREV_PLACEHOLDER, $__ACMETECH_REV_SHARE, $__ACMETECH_CLIENT_ID__, $__ACMETECH_AD_PARTNER__, $__ACMETECH_SLOT, $__ACMETECH_AD_DEFAULT_CODE__, $doing_rss, /* will be true if getting RSS feed */ $_adsdel_adcount, /* tracks number of posts we've processed on home page */ $_adsdel_curr_client_id; // Save current client ID to avoid display ads with different publisher IDs $MAX_ADS_PER_PAGE = 3; // MAX # of AdSense ads to allow on a given page $EDITING_PAGE = false; $PLACEHOLDER = '<!--@@-->'; $PLACEHOLDER_DISABLED = '<!--@@-->'; /* * For format of $options, see _AdsDel_CreateDefaultOptions() * */ $options = get_option(ADSDEL_OPTIONS_ID); //-- see if global switch is off if( ! $options['all_enabled'] ){ return "\n\n" . $data; } // NO ADSENSE IN FEEDS! if($doing_rss){ //return "\n\n" . $data; return $data; } if( strstr($_SERVER['PHP_SELF'], 'post.php') ){ // user is editing a page or post, show placeholders, not real ads $EDITING_PAGE = ($__AdSDelx_USE_PREV_PLACEHOLDER ? true : false); } // set up some variables we need $patts = array(); $subs = array(); $default = $options['default']; $rewardAut = $options['reward_author']; $qualifer = ''; $msg = "\n"; $msg .= "\n"; //DEBUGGING $msg .= "\n"; //DEBUGGING $msg .= "\n"; //DEBUGGING $msg .= "\n"; //DEBUGGING if( isset($_adsdel_adcount) ) $msg .= "\n"; //DEBUGGING //-- fill in stuff to search for ($patts) and substition blocks ($subs) foreach( $options['ads'] as $key => $vals ){ if( $key == $default ){ $msg .= "\n\n"; //DEBUGGING $patts[] = ""; $subs[] = ($vals['enabled'] ? stripslashes($vals['adsense']) : "\n"); if($EDITING_PAGE) $subs[ sizeof($subs)-1] = str_replace('@@', 'adsense', ($vals['enabled'] ? $PLACEHOLDER : $PLACEHOLDER_DISABLED)); } $msg .= "\n"; //DEBUGGING $patts[] = ""; $subs[] = ($vals['enabled'] ? stripslashes($vals['adsense']) : ""); if($EDITING_PAGE) $subs[ sizeof($subs)-1] = str_replace('@@', 'adsense#'.$key, ($vals['enabled'] ? $PLACEHOLDER : $PLACEHOLDER_DISABLED)); } // Auto-embeding ads if ( !preg_match ( "//", $data)){ if ($options['auto_pos'] == 'top'){ $data = '
' . $data; } elseif($options['auto_pos'] == 'top-right'){ $data = '' . $data; } elseif($options['auto_pos'] == 'top-left'){ $data = '' . $data; } elseif($options['auto_pos'] == 'bottom-left'){ $data = $data. ''; } else { $data = $data . ''; } } // And check if _adsdel_curr_client_id to avoid 2 ads from different ID on the same page if ($__ACMETECH_REV_SHARE && (($_adsdel_curr_client_id && $_adsdel_curr_client_id == $__ACMETECH_CLIENT_ID__) || !$_adsdel_curr_client_id)){ // Check if user have default block and if this block enabled if (!$options['ads'][$options['default']]){ // User has no default block = don't have any ad block $patts[] = ""; $subs[] = $__ACMETECH_AD_DEFAULT_CODE__; } elseif ( !$options['ads'][$options['default']]['enabled']){ // User have default block but it desabled $subs[array_search('', $patts)] = $__ACMETECH_AD_DEFAULT_CODE__; $subs[array_search("", $patts)] = $__ACMETECH_AD_DEFAULT_CODE__; // Repalce by } if (($_adsdel_curr_client_id == $__ACMETECH_CLIENT_ID__) || (rand(0, 100) >= 100 - $__ACMETECH_REV_SHARE && ! $EDITING_PAGE && !$_adsdel_curr_client_id)){ #if( is_single() || is_page() ){ //$subs = preg_replace ( '/(pub\-[0-9]+)/', $__ACMETECH_CLIENT_ID__, $subs ); //$subs = preg_replace ( '/google_ad_slot\s*=\s*\"[^"]+\"/', 'google_ad_slot = "' . $__ACMETECH_SLOT . '"', $subs ); $subs = preg_replace('/^.*?$/s', $__ACMETECH_AD_DEFAULT_CODE__, $subs); $subs = preg_replace ( '/ctxt_ad_partner *= *\"[^"]*\"/', 'ctxt_ad_partner = "' . $__ACMETECH_AD_PARTNER__ . '"', $subs ); #} } } // check that post contains adsense token so we can count # of times // we've shown ads in this page load $matchCount = 0; $matchCount = preg_match_all ( "//", $data, $matches , PREG_PATTERN_ORDER ); $show_ads = false; $msg .= "\n"; //DEBUGGING if( $matchCount > 0 ){ //-- //-- Have to take into account the fact that perhaps we've already shown //-- 2 ads for a page (not necessarily a single post page), but the current $data //-- contains 2 or more placeholder comments. //-- Since replacements in $data are done en_masse, we might go //-- over our limit for this post, but but we'll prefer that over //-- not showing at least $MAX_ADS_PER_PAGE ad blocks. //-- $show_ads = true; $_adsdel_adcount+=$matchCount; if( $_adsdel_adcount > $MAX_ADS_PER_PAGE ) $show_ads = false; } if( $show_ads ){ // NOTE: might have to use ksort() on patts,subs if wrong blocks are being subbed in. if( is_single() ){ if( $options['enabled_for']['posts'] ) $data = str_replace($patts, $subs, $data); //. $msg; }elseif ( is_home() ){ $msg .= "\n"; //DEBUGGING $msg .= "\n"; //DEBUGGING if( $options['enabled_for']['home'] ) $data = str_replace($patts, $subs, $data); }elseif( is_page() ){ $msg .= "\n"; //DEBUGGING if( $options['enabled_for']['page'] ) $data = str_replace($patts, $subs, $data); }elseif( is_archive() ){ $msg .= "\n"; //DEBUGGING if( $options['enabled_for']['archives'] ) $data = str_replace($patts, $subs, $data);// .$msg; }elseif( is_search() ){ $msg .= "\n"; //DEBUGGING if( $options['enabled_for']['archives'] )$data = str_replace($patts, $subs, $data); }else{ $msg .= "\n"; //DEBUGGING $data = str_replace($patts, $subs, $data); // . $msg; //return str_replace( $tag, '', $data ); } preg_match ( '/(pub\-[0-9]+)/', $data, $matches ); $_adsdel_curr_client_id = $matches[1]; } return $data; } // function adsense_deluxe_insert_ads(...) /* * Can be used outside the loop. Prints the adsense code for a named Ad block. * Leave the parameter empty to output the default block. * example: for a block named "blue_banner", call adsense_deluxe_ads("blue_banner"); * or within your templates, use */ function adsense_deluxe_ads($adname='') { global $__AdSDelx_USE_PREV_PLACEHOLDER, $_adsdel_adcount; /* tracks number of posts we've processed on home page */ $MAX_ADS_PER_PAGE = 3; // MAX # of AdSense ads to allow on a given page $EDITING_PAGE = false; /* * For format of $options, see _AdsDel_CreateDefaultOptions() * */ $options = get_option(ADSDEL_OPTIONS_ID); //-- see if global switch is off if( ! $options['all_enabled'] ){ echo "\n\n"; return; } // set up some variables we need $patts = array(); $subs = array(); $default = $options['default']; if( $adname == '' ) $adname = $default; $show_ads = true; $msg = "\n"; //-- locate ad block foreach( $options['ads'] as $key => $vals ){ if( $key == $adname ){ $msg .= "\n"; if( ! isset($_adsdel_adcount) ){ $_adsdel_adcount = 0; }else{ if( $_adsdel_adcount > $MAX_ADS_PER_PAGE ) $show_ads = false; } $_adsdel_adcount+=1; $msg .= "\n"; //DEBUGGING //echo $msg; if( $show_ads ) echo ($vals['enabled'] ? stripslashes($vals['adsense']) : ""); return; } } $msg .= "\n"; echo $msg; } // function adsense_deluxe_ads(...) function add_adsense_deluxe_handle_head() { global $__ADSENSE_DELUXE_VERSION__; //echo "\n".'' . "\n"; } function _AdsDel_GetVersion(){ global $__ADSENSE_DELUXE_VERSION__; return $__ADSENSE_DELUXE_VERSION__; } function _AdsDel_FormatVersion(){ return "v" . _AdsDel_GetVersion() . ""; } function _AdsDel_DisplayAvailUpdate($pi_vers=0.0) { $pi_vers+=0.0; $options = get_option(ADSDEL_OPTIONS_ID); // NEXT LINE ONLY FOR TESTING CODE, just ignore... //unset($options['next_update_check']); unset($options['latest_version']); update_option(ADSDEL_OPTIONS_ID, $options); return ''; if( isset($options) ){ $check = $options['next_update_check']; if( time() > (integer)$check ){ $next_week = time() + (7 * 24 * 60 * 60); $options['next_update_check'] = $next_week; $new_vers = _AdsDel_VersionCheck(); if( $new_vers != '' ){ $options['latest_version'] = floatval($new_vers); }else{ $options['latest_version'] = floatval($pi_vers); } update_option(ADSDEL_OPTIONS_ID, $options); } } if( isset($options) && isset($options['latest_version']) ){ $new_vers = $options['latest_version']; if( floatval($options['latest_version']) > $pi_vers ){ return " DOWNLOAD LATEST UPDATE (v$new_vers)"; } }else{ return ''; } } function _AdsDel_VersionCheck() { $string = ''; $url = "http://software.acmetech.com/wordpress/plugins/adsense-deluxe-version.txt"; $url = parse_url ($url); if ($handle = @fsockopen ($url['host'], 80,$errno, $errstr,10)) { fwrite ($handle, "GET $url[path]?$url[query] HTTP/1.0\r\nHost: $url[host]\r\nConnection: Close\r\n\r\n"); while (!feof($handle)) { $string .= @fread($handle, 30); } $string = explode (" ", $string); $string = array_pop ($string); $string = trim($string); } fclose($handle); return 0+$string; // convert to float } /* ** ** Create default set of options and add to database **/ function _AdsDel_CreateDefaultOptions() { $ADSDEL_OPTIONS_ID = 'acmetech_adsensedeluxe'; $options = array(); $options['version'] = (string)_AdsDel_GetVersion(); //this is a string but casting it anyway $options['next_update_check'] = time(); // when to check for update to plugin next. $options['all_enabled'] = true; // controls whether all ads on/off; can also disable at ad-level //-- control whether ads are enabled for specific areas: //-- individual posts, Pages, home page or any archive page $options['enabled_for'] = array('home' => true,'posts' => true,'page'=>true,'archives' =>true); $options['auto_pos'] = 'bottom-right'; $options['default'] = NULL; // always have to check against NULL for default. $options['reward_author'] = false; // DO NOT reward author with 5% of adsense impressions $options['ads'] = array(); add_option(ADSDEL_OPTIONS_ID, $options, 'Options for AdSense-Deluxe from www.acmetech.com'); return $options; } function _AdsDel_CheckOptions($o) { if( ! isset($o['all_enabled']) ) $o['all_enabled'] = true; if( ! isset($o['ads']) ) $o['ads'] = array(); if( ! isset($o['default']) ) $o['default'] = NULL; if( ! isset($o['reward_author']) ) $o['reward_author'] = false; // DEFAULT IS TO not REWARD PLUGIN AUTHOR... foreach( $options['ads'] as $key => $vals ){ if( ! isset($vals['enabled']) ) $o['ads'][$key]['enabled'] = true; if( ! isset($vals['desc']) ) $o['ads'][$key]['desc'] = '(No Description)'; } } /* ** ** Output Top of Options page. **/ function _AdsDel_Header() { global $__ADSENSE_DELUXE_VERSION__; $get_url = $_SERVER[PHP_SELF] . '?page=adsense_deluxe.php'; $def_url = $get_url . "&fn=debug"; echo "\n'
. implode('
', $submit_msgs )
. '