0, 'name' => 'image') , Array('id' => 1, 'name' => 'text') ); $ad_engine_ad_deck = Array(); $ad_slot = 0; // Ad Comparison function ad_engine_ad_cmp($a, $b) { if ( $a['cat_name'] == $b['cat_name']) { if ( $a['co_name'] == $b['co_name']) { if ( $a['ad_name'] == $b['ad_name']) { return 0; } return ($a['ad_name'] < $b['ad_name']) ? -1 : 1; } return ($a['co_name'] < $b['co_name']) ? -1 : 1; } return ($a['cat_name'] < $b['cat_name']) ? -1 : 1; } function ad_engine_get_ad_deck() { $jads = ad_engine_get_counts(); $ad_deck = Array(); $iter = 0; while($iter <= $jads['ads']) { $tmp = get_option('ad_engine_' . $iter); if(isset($tmp['ad_name'])) $ad_deck[] = $tmp; $iter++; } uasort($ad_deck, ad_engine_ad_cmp); return $ad_deck; } // Ad Group Compare function (Used for Sort) function ad_engine_category_cmp($a, $b) { if ($a['name'] == $b['name']) { return 0; } return ($a['name'] < $b['name']) ? -1 : 1; } function ad_engine_get_cat_deck() { $jads = ad_engine_get_counts(); $cat_deck = Array(); $iter = 0; while($iter <= $jads['categories']) { $tmp = get_option('ad_engine_cat_' . $iter); if(isset($tmp['id'])) $cat_deck[] = $tmp; $iter++; } uasort($cat_deck, ad_engine_category_cmp); return $cat_deck; } // Client Group Compare function (Used for Sort) function ad_engine_client_cmp($a, $b) { if ($a['name'] == $b['name']) { return 0; } return ($a['name'] < $b['name']) ? -1 : 1; } function ad_engine_get_client_deck() { $jads = ad_engine_get_counts(); $client_deck = Array(); $iter = 0; while($iter <= $jads['clients']) { $tmp = get_option('ad_engine_client_' . $iter); if(isset($tmp['co_id'])) $client_deck[] = $tmp; $iter++; } uasort($client_deck, ad_engine_client_cmp); return $client_deck; } // Compare items in an array used by the dropdown function function ad_engine_dropdown_cmp($a, $b) { if ($a['name'] == $b['name']) { return 0; } return ($a['name'] < $b['name']) ? -1 : 1; } function ad_engine_form_dropdown($label, $id, $list, $value, $name = '') { uasort($list, ad_engine_dropdown_cmp); if($name == '') { $name = $id; } $output = sprintf("
%s:
\n"; return($output); } function ad_engine_get_counts() { $jads = get_option ('ad_engine'); if(!isset($jads['clients'])) $jads['clients'] = 0; if(!isset($jads['categories'])) $jads['categories'] = 0; if(!isset($jads['ads'])) $jads['ads'] = 0; return($jads); } function ad_engine_ad_data($ad_id) { $tmp = get_option('ad_engine_' . $ad_id); $wud = wp_upload_dir(); $fdir = $wud['basedir'] . "/ad_engine"; $wdir = $wud['baseurl'] . "/ad_engine"; $fname = sprintf("%s/%d-ad.png", $fdir, $tmp['ad_id']); $wname = sprintf("%s/%d-ad.png", $wdir, $tmp['ad_id']); $rval = Array(); if(file_exists($fname)) $rval['img'] = $wname; else $rval['img'] = ""; if(isset($tmp['ad_text'])) $rval['text'] = $tmp['ad_text']; else $rval['text'] = ""; $tmp['ad_shown']++; update_option('ad_engine_' . $tmp['ad_id'] , $tmp); return($rval); } function ad_engine_ad_form($client_list, $ad) { global $ad_engine_types; $cat_deck = ad_engine_get_cat_deck(); $client_deck = ad_engine_get_client_deck(); $output = '
Name
'; $output .= ad_engine_form_dropdown("Ad Group", "ad_cat", $cat_deck, $ad['ad_cat']); $output .= ad_engine_form_dropdown("Client", "ad_client", $client_list, $ad['ad_client']); $output .= '
Link
'; //$output .= ad_engine_form_dropdown("Ad Type", "ad_type", $ad_engine_types, $ad['ad_type']); $wud = wp_upload_dir(); $fname = $wud['baseurl'] . "/ad_engine/" . $ad['ad_id'] . "-ad.png"; $output .= '
Text
Image
Impressions purchased ( 0 to disable, -1 for infinite)
Impressions Shown
Clicks
'; return $output; } function ad_engine_new_form() { global $_GET; $jads = ad_engine_get_counts(); $new_ad = Array( ); $client_list = Array(); $iter = 1; while($iter <= $jads['clients']) { $tmp = get_option('ad_engine_client_' . $iter); $client_list[] = Array('id' => $tmp['co_id'], 'name' => $tmp['name']); $iter++; } $output = '
'; $output .= ad_engine_ad_form( $client_list, $new_ad); $output .= '
'; echo $output; } function ad_engine_edit_form() { global $_GET; $jads = ad_engine_get_counts(); $ad = get_option('ad_engine_' . $_GET['id']); $cat = get_option('ad_engine_cat_' . $ad['ad_cat']); //$cat_list = Array(Array('id' => $cat['id'], 'name' => $cat['name'])); $cat_list = Array(); $client = get_option('ad_engine_client_' . $ad['ad_client']); //$client_list = Array(Array('id' => $client['co_id'], 'name' => $client['name'])); $client_list = Array(); $iter = 1; while($iter <= $jads['categories']) { $tmp = get_option('ad_engine_cat_' . $iter); if(isset($tmp['id'])) { $cat_list[] = Array('id' => $tmp['id'], 'name' => $tmp['name']); } $iter++; } $iter = 1; while($iter <= $jads['clients']) { $tmp = get_option('ad_engine_client_' . $iter); if(isset($tmp['co_id'])) { $client_list[] = Array('id' => $tmp['co_id'], 'name' => $tmp['name']); } $iter++; } $output = '
'; $output .= ad_engine_ad_form( $client_list, $ad); $output .= '
'; echo $output; } function ad_engine_form() { global $_POST; $jads = ad_engine_get_counts(); $ad_deck = ad_engine_get_ad_deck(); $output = "

"; $output .= __("Advertisements","Advertisements"); $output .= "Add New"; $output .= "

"; $output .= "\n\n\n"; for($iter = 0; $iter < count($ad_deck); $iter++) { $cl = get_option('ad_engine_client_' . $ad_deck[$iter]['ad_client']); $ct = get_option('ad_engine_cat_' . $ad_deck[$iter]['ad_cat']); $ad_deck[$iter]['cat_name'] = $ct['name']; $ad_deck[$iter]['co_name'] = $cl['name']; } uasort($ad_deck, ad_engine_ad_cmp); while($ad = array_shift($ad_deck)) { $output .= sprintf("\n" , admin_url("admin.php?page=ad-engine-edit&id=" . $ad['ad_id']) , $ad['ad_name'] , $ad['cat_name'] , $ad['co_name'] , $ad['ad_shown'] , $ad['ad_imp'] , $ad['ad_clicks'] , ($ad['ad_shown']) ? ($ad['ad_clicks'] / $ad['ad_shown'] * 100) : 0 , admin_url("admin.php?page=ad-engine-menu&action=ad_delete&id=" . $ad['ad_id']) ); } $output .= '
NameAd GroupClientImpressionsClicksActions
%s%s%s%s / %s%d (%0.2f%%)Delete

'; echo $output; } function ad_engine_client_edit_form() { global $_GET; $jads = ad_engine_get_counts(); $nClient = get_option('ad_engine_client_' . $_GET['id']); ?>
">
Client
Contact Name
Contact Email
Contact Phone
Client
Contact Name
Contact Email
Contact Phone
'; echo $output; } function ad_engine_client_form() { global $_POST; $jads = ad_engine_get_counts(); $client_deck = ad_engine_get_client_deck(); ?>

">Add New

" , admin_url("admin.php?page=ad-engine-client-edit&id=" . $client['co_id']) , $client['name'] , $client['ct_name'] , $client['ct_email'] , $client['ct_phone'] , admin_url("admin.php?page=ad-engine-client-menu&action=client_delete&id=" . $client['co_id']) ); } ?>
ClientContact NameContact EmailContact PhoneActions
%s%s%s%sDelete
" id="ad_engine_form">
Ad Group

/>

">
Ad Group

/>

"; $output .= __("Ad Groups","Ad Groups"); $output .= "Add New"; $output .= "

"; $output .= "\n\n\n"; $max = count($cat_deck); $iter = 0; while($category = array_shift($cat_deck)) { $output .= sprintf("\n" , admin_url("admin.php?page=ad-engine-category-edit&id=" . $category['id']), $category['name'] , admin_url("admin.php?page=ad-engine-category-menu&action=cat_delete&id=" . $category['id']) ); } $output .= '
Ad Group NameAction
%sDelete
'; echo $output; } function ad_engine_menu() { $capability = 'moderate_comments'; add_menu_page( 'Advertisements' , 'Ad Engine' , $capability , 'ad-engine-menu' , 'ad_engine_form'); add_submenu_page( 'ad-engine-menu' ,'New Ad' ,'New Ad' , $capability , 'ad-engine-new' , 'ad_engine_new_form'); add_submenu_page( 'ad-engine-menu' ,'Edit Ad' ,'Edit Ad' , $capability , 'ad-engine-edit' , 'ad_engine_edit_form'); add_submenu_page( 'ad-engine-menu' ,'Clients' ,'Clients' , $capability , 'ad-engine-client-menu' , 'ad_engine_client_form'); add_submenu_page( 'ad-engine-client-menu' ,'New Client' ,'New Client' , $capability , 'ad-engine-client-new' , 'ad_engine_client_new_form'); add_submenu_page( 'ad-engine-client-menu' ,'Edit Client' ,'Edit Client' , $capability , 'ad-engine-client-edit' , 'ad_engine_client_edit_form'); add_submenu_page( 'ad-engine-menu' ,'Ad Groups' ,'Ad Groups' , $capability , 'ad-engine-category-menu' , 'ad_engine_category_form'); add_submenu_page( 'ad-engine-category-menu' ,'New Ad Group' ,'New Ad Group' , $capability , 'ad-engine-category-new' , 'ad_engine_category_new_form'); add_submenu_page( 'ad-engine-category-menu' ,'Edit Ad Group' ,'Edit Ad Group' , $capability , 'ad-engine-category-edit' , 'ad_engine_category_edit_form'); } if (is_admin()) { add_action('admin_menu', 'ad_engine_menu'); } function ad_engine_init() { $jads = ad_engine_get_counts(); if(isset($_GET['cancel']) || isset($_POST['cancel'])) { return; } else if(isset($_GET['ae_get_data'])) { echo json_encode(ad_engine_ad_data($_GET['ae_get_data'])); die(); } else if(isset($_GET['ae_redirect'])) { $tmp = get_option('ad_engine_' . intval($_GET['ae_redirect'])); $tmp['ad_id'] = intval($_GET['ae_redirect']); if(isset($tmp['ad_clicks'])) $tmp['ad_clicks']++; else $tmp['ad_clicks'] = 1; update_option('ad_engine_' . $tmp['ad_id'] , $tmp); header('Location: ' . $tmp['ad_link']); die(); } // Client Processing else if(isset($_POST['save_ad']) || isset($_POST['new_ad'])) { $nClient = Array(); $nClient['ad_name'] = esc_html(stripslashes($_POST['ad_name']), ENT_QUOTES); $nClient['ad_cat'] = esc_html(stripslashes($_POST['ad_cat']), ENT_QUOTES); $nClient['ad_client'] = esc_html(stripslashes($_POST['ad_client']), ENT_QUOTES); $nClient['ad_imp'] = esc_html(stripslashes($_POST['ad_imp']), ENT_QUOTES); $nClient['ad_shown'] = esc_html(stripslashes($_POST['ad_shown']), ENT_QUOTES); $nClient['ad_clicks'] = esc_html(stripslashes($_POST['ad_clicks']), ENT_QUOTES); $nClient['ad_text'] = esc_html(stripslashes($_POST['ad_text']), ENT_QUOTES); $nClient['ad_link'] = esc_html(stripslashes($_POST['ad_link']), ENT_QUOTES); if(isset($_POST['save_ad'])) { $nClient['ad_id'] = $_POST['ad_id']; } else { $jads['ads']++; $nClient['ad_id'] = $jads['ads']; } update_option('ad_engine_' . $nClient['ad_id'] , $nClient); } else if(isset($_GET['action']) && ($_GET['action'] == "ad_delete")) { delete_option('ad_engine_' . $_GET["id"]); } // Client Processing else if(isset($_POST['update_client'])) { $nClient = Array(); $nClient['name'] = esc_html(stripslashes($_POST['name']), ENT_QUOTES); $nClient['ct_name'] = esc_html(stripslashes($_POST['ct_name']), ENT_QUOTES); $nClient['ct_email'] = esc_html(stripslashes($_POST['ct_email']), ENT_QUOTES); $nClient['ct_phone'] = esc_html(stripslashes($_POST['ct_phone']), ENT_QUOTES); $nClient['co_id'] = $_POST['co_id']; $nClient['id'] = $_POST['co_id']; update_option('ad_engine_client_' . $nClient['co_id'] , $nClient, ENT_QUOTES); } else if(isset($_POST['new_client'])) { $nClient = Array(); $nClient['name'] = esc_html(stripslashes($_POST['name']), ENT_QUOTES); $nClient['ct_name'] = esc_html(stripslashes($_POST['ct_name']), ENT_QUOTES); $nClient['ct_email'] = esc_html(stripslashes($_POST['ct_email']), ENT_QUOTES); $nClient['ct_phone'] = esc_html(stripslashes($_POST['ct_phone']), ENT_QUOTES); $jads['clients']++; $nClient['co_id'] = $jads['clients']; $nClient['id'] = $jads['clients']; update_option('ad_engine_client_' . $nClient['id'] , $nClient); } else if(isset($_GET['action']) && ($_GET['action'] == "client_delete")) { delete_option('ad_engine_client_' . $_GET['id']); } // Ad Group Processing else if(isset($_POST['new_category']) || isset($_POST['save_category'])) { $nClient = Array(); $nClient['name'] = esc_html(stripslashes($_POST['name']), ENT_QUOTES); $nClient['cat_carousel'] = $_POST['cat_carousel']; if(isset($_POST['new_category'])) { $jads['categories']++; $nClient['id'] = $jads['categories']; } else { $nClient['id'] = $_POST['id']; } update_option('ad_engine_cat_' . $nClient['id'] , $nClient); } else if(isset($_GET['action']) && ($_GET['action'] == "cat_delete")) { delete_option('ad_engine_cat_' . $_GET['id'] ); } if(isset($_FILES['ad_image'])) { $wud = wp_upload_dir(); $dir = $wud['basedir'] . "/ad_engine"; if(! is_dir($dir)) mkdir($dir, 755, true); $fname = sprintf("%s/%d-ad.png", $dir, $nClient['ad_id']); move_uploaded_file($_FILES['ad_image']['tmp_name'], $fname); } update_option('ad_engine', $jads); } add_action('init', 'ad_engine_init', 1); function ad_engine_admin_style() { ?> 1, ), $atts)); global $ad_slot; $title = "Advertisement"; $jads = ad_engine_get_counts(); $iter = 0; while($iter <= $jads['categories']) { $tmp = get_option('ad_engine_cat_' . $iter); if(isset($tmp['id']) && (strtolower($tmp['name']) == strtolower($ad_group)) ) { $ag = $tmp; } $iter++; } $ag_id = $ag['id']; $output = "

" . $title . "

" . $this->show_ad($ag_id) . "
"; return $output; } function show_ad($category) { global $ad_engine_ad_deck; global $ad_slot; $output = ''; // This function sets global variable ad_engine_ad_deck ad_engine_get_ads($category); // Undecided on whether to nofollow this link or not. $ag = get_option('ad_engine_cat_' . $category); if($ag['cat_carousel'] == "on") { $r_ad = $ad_engine_ad_deck[$category][0]; for($iter = 0 ; $iter < count($ad_engine_ad_deck[$category]); $iter++) { $ad_list[] = $ad_engine_ad_deck[$category][$iter]['ad_id']; } $javascript = ""; } else { $r_ad = array_shift($ad_engine_ad_deck[$category]); $javascript = ''; } $ad_data = ad_engine_ad_data($r_ad['ad_id']); $fname = $ad_data['img']; $text = $ad_data['text']; $output .= sprintf("%s" , $javascript , $ad_slot , site_url() , $r_ad['ad_id'] , $fname , $text ); $ad_slot++; return $output; } /** @see WP_Widget::widget */ function widget($args, $instance) { extract($args); $title = "Advertisement"; echo $before_widget; echo $before_title . $title . $after_title; echo $this->show_ad($instance['category']); echo $after_widget; } /** @see WP_Widget::update */ function update($new_instance, $old_instance) { return $new_instance; } /** @see WP_Widget::form */ function form($instance) { global $_GET; $cat_deck = ad_engine_get_cat_deck(); $category = esc_attr($instance['category']); echo "
" . ad_engine_form_dropdown('Ad Group' , $this->get_field_id('category'), $cat_deck, $category, $this->get_field_name('category')) . "
"; } } // class ad_engine add_action('widgets_init', create_function('', 'return register_widget("ad_engine");')); function ad_engine_carousel() { ?>