[ Index ] |
|
Code source de Zen Cart E-Commerce Shopping Cart 1.3.7.1 |
1 <?php 2 /** 3 * banner functions 4 * 5 * @package functions 6 * @copyright Copyright 2003-2006 Zen Cart Development Team 7 * @copyright Portions Copyright 2003 osCommerce 8 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0 9 * @version $Id: banner.php 4439 2006-09-10 03:37:03Z ajeh $ 10 */ 11 12 //// 13 // Set the status of a banner 14 function zen_set_banner_status($banners_id, $status) { 15 global $db; 16 if ($status == '1') { 17 $sql = "update " . TABLE_BANNERS . " 18 set status = 1, date_status_change = now(), date_scheduled = '' 19 where banners_id = '" . (int)$banners_id . "'"; 20 21 return $db->Execute($sql); 22 23 } elseif ($status == '0') { 24 $sql = "update " . TABLE_BANNERS . " 25 set status = 0, date_status_change = now() 26 where banners_id = '" . (int)$banners_id . "'"; 27 28 return $db->Execute($sql); 29 30 } else { 31 return -1; 32 } 33 } 34 35 //// 36 // Auto activate banners 37 function zen_activate_banners() { 38 global $db; 39 $banners_query = "select banners_id, date_scheduled 40 from " . TABLE_BANNERS . " 41 where date_scheduled != NULL"; 42 43 $banners = $db->Execute($banners_query); 44 45 if ($banners->RecordCount() > 0) { 46 while (!$banners->EOF) { 47 if (date('Y-m-d H:i:s') >= $banners->fields['date_scheduled']) { 48 zen_set_banner_status($banners->fields['banners_id'], '1'); 49 } 50 $banners->MoveNext(); 51 } 52 } 53 } 54 55 //// 56 // Auto expire banners 57 function zen_expire_banners() { 58 global $db; 59 $banners_query = "select b.banners_id, b.expires_date, b.expires_impressions, 60 sum(bh.banners_shown) as banners_shown 61 from " . TABLE_BANNERS . " b, " . TABLE_BANNERS_HISTORY . " bh 62 where b.status = 1 63 and b.banners_id = bh.banners_id 64 group by b.banners_id, b.expires_date, b.expires_impressions"; 65 66 $banners = $db->Execute($banners_query); 67 68 if ($banners->RecordCount() > 0) { 69 while (!$banners->EOF) { 70 if (zen_not_null($banners->fields['expires_date'])) { 71 if (date('Y-m-d H:i:s') >= $banners->fields['expires_date']) { 72 zen_set_banner_status($banners->fields['banners_id'], '0'); 73 } 74 } elseif (zen_not_null($banners->fields['expires_impressions'])) { 75 if ( ($banners->fields['expires_impressions'] > 0) && ($banners->fields['banners_shown'] >= $banners->fields['expires_impressions']) ) { 76 zen_set_banner_status($banners->fields['banners_id'], '0'); 77 } 78 } 79 $banners->MoveNext(); 80 } 81 } 82 } 83 84 //// 85 // Display a banner from the specified group or banner id ($identifier) 86 function zen_display_banner($action, $identifier) { 87 global $db, $request_type; 88 89 switch ($request_type) { 90 case ('SSL'): 91 $my_banner_filter=" and banners_on_ssl= " . "1 "; 92 break; 93 case ('NONSSL'): 94 $my_banner_filter=''; 95 break; 96 } 97 98 if ($action == 'dynamic') { 99 $new_banner_search = zen_build_banners_group($identifier); 100 101 $banners_query = "select count(*) as count 102 from " . TABLE_BANNERS . " 103 where status = '1' " . 104 $new_banner_search . $my_banner_filter; 105 106 $banners = $db->Execute($banners_query); 107 108 if ($banners->fields['count'] > 0) { 109 $banner = $db->Execute("select banners_id, banners_title, banners_image, banners_html_text, banners_open_new_windows, banners_url 110 from " . TABLE_BANNERS . " 111 where status = 1 " . 112 $new_banner_search . $my_banner_filter . " order by rand()"); 113 114 } else { 115 return '<p class="alert">ZEN ERROR! (zen_display_banner(' . $action . ', ' . $identifier . ') -> No banners with group \'' . $identifier . '\' found!</p>'; 116 } 117 } elseif ($action == 'static') { 118 if (is_object($identifier)) { 119 $banner = $identifier; 120 } else { 121 $banner_query = "select banners_id, banners_title, banners_image, banners_html_text, banners_open_new_windows, banners_url 122 from " . TABLE_BANNERS . " 123 where status = 1 124 and banners_id = '" . (int)$identifier . "'" . $my_banner_filter; 125 126 $banner = $db->Execute($banner_query); 127 128 if ($banner->RecordCount() < 1) { 129 //return '<strong>ZEN ERROR! (zen_display_banner(' . $action . ', ' . $identifier . ') -> Banner with ID \'' . $identifier . '\' not found, or status inactive</strong>'; 130 } 131 } 132 } else { 133 return '<p class="alert">ZEN ERROR! (zen_display_banner(' . $action . ', ' . $identifier . ') -> Unknown $action parameter value - it must be either \'dynamic\' or \'static\'</p>'; 134 } 135 136 if (zen_not_null($banner->fields['banners_html_text'])) { 137 $banner_string = $banner->fields['banners_html_text']; 138 } else { 139 if ($banner->fields['banners_url'] == '') { 140 $banner_string = zen_image(DIR_WS_IMAGES . $banner->fields['banners_image'], $banner->fields['banners_title']); 141 } else { 142 if ($banner->fields['banners_open_new_windows'] == '1') { 143 $banner_string = '<a href="' . zen_href_link(FILENAME_REDIRECT, 'action=banner&goto=' . $banner->fields['banners_id']) . '" target="_blank">' . zen_image(DIR_WS_IMAGES . $banner->fields['banners_image'], $banner->fields['banners_title']) . '</a>'; 144 } else { 145 $banner_string = '<a href="' . zen_href_link(FILENAME_REDIRECT, 'action=banner&goto=' . $banner->fields['banners_id']) . '">' . zen_image(DIR_WS_IMAGES . $banner->fields['banners_image'], $banner->fields['banners_title']) . '</a>'; 146 } 147 } 148 } 149 150 zen_update_banner_display_count($banner->fields['banners_id']); 151 152 return $banner_string; 153 } 154 155 //// 156 // Check to see if a banner exists 157 function zen_banner_exists($action, $identifier) { 158 global $db, $request_type; 159 160 switch ($request_type) { 161 case ('SSL'): 162 $my_banner_filter=" and banners_on_ssl= " . "1 "; 163 break; 164 case ('NONSSL'): 165 $my_banner_filter=''; 166 break; 167 } 168 169 if ($action == 'dynamic') { 170 $new_banner_search = zen_build_banners_group($identifier); 171 return $db->Execute("select banners_id, banners_title, banners_image, banners_html_text, banners_open_new_windows, banners_url 172 from " . TABLE_BANNERS . " 173 where status = 1 " . 174 $new_banner_search . $my_banner_filter . " order by rand()"); 175 } elseif ($action == 'static') { 176 $banner_query = "select banners_id, banners_title, banners_image, banners_html_text, banners_open_new_windows, banners_url 177 from " . TABLE_BANNERS . " 178 where status = 1 179 and banners_id = '" . (int)$identifier . "'" . $my_banner_filter; 180 181 return $banner = $db->Execute($banner_query); 182 } else { 183 return false; 184 } 185 } 186 187 //// 188 // Update the banner display statistics 189 function zen_update_banner_display_count($banner_id) { 190 global $db; 191 $banner_check = $db->Execute(sprintf(SQL_BANNER_CHECK_QUERY, (int)$banner_id)); 192 193 if ($banner_check->fields['count'] > 0) { 194 195 $db->Execute(sprintf(SQL_BANNER_CHECK_UPDATE, (int)$banner_id)); 196 197 } else { 198 $sql = "insert into " . TABLE_BANNERS_HISTORY . " 199 (banners_id, banners_shown, banners_history_date) 200 values ('" . (int)$banner_id . "', 1, now())"; 201 202 $db->Execute($sql); 203 } 204 } 205 206 //// 207 // Update the banner click statistics 208 function zen_update_banner_click_count($banner_id) { 209 global $db; 210 $db->Execute(sprintf(SQL_BANNER_UPDATE_CLICK_COUNT, (int)$banner_id)); 211 } 212 213 //// 214 // build banner groups 215 function zen_build_banners_group($selected_banners) { 216 $selected_banners = explode(':', $selected_banners); 217 $size = sizeof($selected_banners); 218 if ($size == 1) { 219 $new_banner_search = " banners_group = '" . $selected_banners[0] . "'"; 220 } else { 221 for ($i=0, $n=$size; $i<$n; $i+=1) { 222 $new_banner_search .= " banners_group = '" . $selected_banners[$i] . "'"; 223 if ($i+1 < $n) { 224 $new_banner_search .= ' or '; 225 } 226 } 227 } 228 if ($new_banner_search != '') { 229 $new_banner_search = ' and (' . $new_banner_search . ')'; 230 } 231 return $new_banner_search; 232 } 233 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Mon Nov 26 16:45:43 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |