[ Index ]
 

Code source de Zen Cart E-Commerce Shopping Cart 1.3.7.1

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/includes/functions/ -> banner.php (source)

   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  ?>


Généré le : Mon Nov 26 16:45:43 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics