[phpBB Debug] PHP Warning: in file [ROOT]/includes/crs/crs_misc_functions.php on line 37: mime_content_type(): Empty filename or path
[phpBB Debug] PHP Warning: in file [ROOT]/includes/crs/crs_misc_functions.php on line 37: mime_content_type(): Empty filename or path
Zen Cart 源代码 banner.php

Zen Cart 源代码 banner.php




下载文件

文件名: banner.php
文件类型: PHP文件
文件大小: 8.57 KiB
MD5: 31678591c554c4fa6e4818774d1d6edc

banner.php - 关闭高亮
  1. <?php
  2. /**
  3.  * banner functions
  4.  *
  5.  * @package functions
  6.  * @copyright Copyright 2003-2010 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 15580 2010-02-25 15:53:36Z 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 = NULL
  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. ?>


cron