prefix."ad_buttons"; $structure = "CREATE TABLE $table ( id INT(9) NOT NULL AUTO_INCREMENT, ad_picture VARCHAR(100) NOT NULL, ad_link VARCHAR(80) NOT NULL, ad_text VARCHAR(80) NOT NULL, ad_views INT(9) DEFAULT 0, ad_clicks INT(9) DEFAULT 0, ad_active TINYINT(1) NOT NULL DEFAULT 0, UNIQUE KEY id (id) );"; $wpdb->query($structure); $wpdb->query("INSERT INTO $table(id, ad_picture, ad_link, ad_text, ad_views, ad_clicks, ad_active) VALUES(1, 'http://blogio.net/ad_buttons_125.jpg', 'http://blogio.net/blog/wp-ad-plugin/', 'ads powered by Ad Buttons', 1, 0, 1)"); } add_action('activate_ad-buttons/adbuttons.php', 'ad_buttons_install'); //check if user is a bot of some sort function is_bot() { $bots = array('google','yahoo','msn','jeeves','lycos','ArchitectSpider','whatuseek','BSDSeek','BullsEye'); //takes the list above and returns (google)|(yahoo)|(msn)... $regex = '('.implode($bots, ')|(').')'; //uses the generated regex above to see if those keywords are contained in the user agent variable return eregi($regex, $_SERVER['HTTP_USER_AGENT']); } function ad_buttons() { global $wpdb; $widget_adbuttons_cfg = array( 'ab_dspcnt' => '', 'ab_target' => '', 'ab_adsense' => '', 'ab_adsense_fixed' => '', 'ab_adsense_pos' => '', 'ab_adsense_pubid' => '', 'ab_adsense_channel' => '', 'ab_adsense_corners' => '', 'ab_adsense_col_border' => '', 'ab_adsense_col_title' => '', 'ab_adsense_col_bg' => '', 'ab_adsense_col_txt' => '', 'ab_adsense_col_url' => '', 'ab_width' => '', 'ab_padding' => '' ); $widget_adbuttons_cfg = get_option('widget_adbuttons_cfg'); $wp_root = get_option('home'); if($widget_adbuttons_cfg['ab_adsense']){ $ab_adsense_ad = '
'; } if($widget_adbuttons_cfg['ab_target'] == 'bnk'){ $target = " target=\"_blank\" "; } elseif($widget_adbuttons_cfg['ab_target'] == 'top'){ $target = " target=\"_top\" "; } elseif($widget_adbuttons_cfg['ab_target'] == 'non'){ $target = " "; } if($widget_adbuttons_cfg['ab_adsense']){ $ab_count = 1; } else { $ab_count = 0; } echo' '; echo '
'; $results = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."ad_buttons WHERE ad_active = 1 ORDER BY RAND()"); foreach($results as $result){ if ($ab_count < $widget_adbuttons_cfg['ab_dspcnt']) { if($widget_adbuttons_cfg['ab_adsense']){ if($widget_adbuttons_cfg['ab_adsense_pos']==$ab_count){ echo $ab_adsense_ad; } } echo"id\" $target title=\"$result->ad_text\">ad_picture\" alt=\"$result->ad_text\" vspace=\"1\" hspace=\"1\" border=\"0\">"; $ab_count = $ab_count + 1; // update view counter on the ad button if(!is_bot()) { $wpdb->query("UPDATE ".$wpdb->prefix."ad_buttons SET ad_views = ad_views + 1 WHERE id = ".$result->id); } } } if($widget_adbuttons_cfg['ab_adsense']){ if($widget_adbuttons_cfg['ab_adsense_pos']==$ab_count){ echo $ab_adsense_ad; } } echo '
'; } // add rewrite rules to support click tracking function ad_click_rewrite() { global $wp_rewrite; // add rewrite tokens $recon = '%reconments%'; $wp_rewrite->add_rewrite_tag($recon, '([A-Za-z0-9_]*)', 'recommends='); $keywords_structure = $wp_rewrite->root . "recommends/$recon/"; $keywords_rewrite = $wp_rewrite->generate_rewrite_rules($keywords_structure); $wp_rewrite->rules = $keywords_rewrite + $wp_rewrite->rules; return $wp_rewrite->rules; } add_action('generate_rewrite_rules', 'ad_click_rewrite'); function ad_buttons_settings() { global $wpdb; include 'adbuttonsadmin.php'; } function ad_buttons_stats() { global $wpdb; include 'adbuttonsstats.php'; } function ad_buttons_top() { global $wpdb; include 'adbuttonstop.php'; } function ad_buttons_act() { global $wpdb; include 'adbuttonsact.php'; } function ad_buttons_stats_actions() { add_menu_page('Ad Buttons', 'Ad Buttons', 9, __FILE__, 'ad_buttons_act', get_option('home').'/'.PLUGINDIR.'/'.dirname(plugin_basename(__FILE__)).'/ad_buttons_icon.png'); // Add a submenu to the custom top-level menu: add_submenu_page(__FILE__, 'Ad Buttons Settings', 'Settings', 9, 'ad-buttons-settings', 'ad_buttons_settings'); } add_action('admin_menu', 'ad_buttons_stats_actions'); // process ad clicks function adbuttons_getclick() { global $wpdb; if(isset($_GET['recommends'])) { $ad_id = $_GET['recommends']; if(is_numeric($ad_id)){ $results = $wpdb->get_results("SELECT ad_link FROM ".$wpdb->prefix."ad_buttons WHERE id = $ad_id LIMIT 1"); foreach($results as $result){ $send_to_url = $result->ad_link; if(!is_bot()) { $wpdb->query("UPDATE ".$wpdb->prefix."ad_buttons SET ad_clicks = ad_clicks + 1 WHERE id = ".$ad_id); } //redirect header("Location: ".$send_to_url); exit(0); } } } } // widget function widget_init_adbuttons_widget() { // Check for required functions if (!function_exists('register_sidebar_widget')) return; function adbuttons_widget($args){ extract($args); $options = get_option('widget_adbuttons_cfg'); $title = empty($options['title']) ? __('Sponsored Links') : $options['title']; ?>