banner.php
来自「this the oscommerce 3.0 aplha 4」· PHP 代码 · 共 244 行
PHP
244 行
<?php/* $Id: banner.php 1498 2007-03-29 14:04:50Z hpdl $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2004 osCommerce This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License v2 (1991) as published by the Free Software Foundation.*/ class osC_Banner {/* Public variables */ var $show_duplicates_in_group = false;/* Private variables */ var $_exists_id, $_shown_ids = array();/* Class constructor */ function osC_Banner() { if (SERVICE_BANNER_SHOW_DUPLICATE == 'True') { $this->show_duplicates_in_group = true; } }/* Public methods */ function activate($id) { $this->_setStatus($id, true); } function activateAll() { global $osC_Database; $Qbanner = $osC_Database->query('select banners_id, date_scheduled from :table_banners where date_scheduled != ""'); $Qbanner->bindTable(':table_banners', TABLE_BANNERS); $Qbanner->execute(); if ($Qbanner->numberOfRows() > 0) { while ($Qbanner->next()) { if (osC_DateTime::getNow() >= $Qbanner->value('date_scheduled')) { $this->activate($Qbanner->valueInt('banners_id')); } } } $Qbanner->freeResult(); } function expire($id) { $this->_setStatus($id, false); } function expireAll() { global $osC_Database; $Qbanner = $osC_Database->query('select b.banners_id, b.expires_date, b.expires_impressions, sum(bh.banners_shown) as banners_shown from :table_banners b, :table_banners_history bh where b.status = 1 and b.banners_id = bh.banners_id group by b.banners_id'); $Qbanner->bindTable(':table_banners', TABLE_BANNERS); $Qbanner->bindTable(':table_banners_history', TABLE_BANNERS_HISTORY); $Qbanner->execute(); if ($Qbanner->numberOfRows() > 0) { while ($Qbanner->next()) { if (!osc_empty($Qbanner->value('expires_date'))) { if (osC_DateTime::getNow() >= $Qbanner->value('expires_date')) { $this->expire($Qbanner->valueInt('banners_id')); } } elseif (!osc_empty($Qbanner->valueInt('expires_impressions'))) { if ( ($Qbanner->valueInt('expires_impressions') > 0) && ($Qbanner->valueInt('banners_shown') >= $Qbanner->valueInt('expires_impressions')) ) { $this->expire($Qbanner->valueInt('banners_id')); } } } } $Qbanner->freeResult(); } function isActive($id) { global $osC_Database; $Qbanner = $osC_Database->query('select banners_id from :table_banners where status = 1 and banners_id = :banners_id'); $Qbanner->bindTable(':table_banners', TABLE_BANNERS); $Qbanner->bindInt(':banners_id', $id); $Qbanner->execute(); if ($Qbanner->numberOfRows() > 0) { return true; } return false; } function exists($group) { global $osC_Database; $Qbanner = $osC_Database->query('select banners_id from :table_banners where status = 1 and banners_group = :banners_group'); if ( ($this->show_duplicates_in_group === false) && (sizeof($this->_shown_ids) > 0) ) { $Qbanner->appendQuery('and banners_id not in (:banner_ids)'); $Qbanner->bindRaw(':banner_ids', implode(',', $this->_shown_ids)); } $Qbanner->bindTable(':table_banners', TABLE_BANNERS); $Qbanner->bindValue(':banners_group', $group); $Qbanner->executeRandom(); if ($Qbanner->numberOfRows() > 0) { $this->_exists_id = $Qbanner->valueInt('banners_id'); return true; } return false; } function display($id = '') { global $osC_Database; $banner_string = false; if (empty($id) && isset($this->_exists_id) && is_numeric($this->_exists_id)) { $id = $this->_exists_id; unset($this->_exists_id); } $Qbanner = $osC_Database->query('select * from :table_banners where banners_id = :banners_id and status = 1'); $Qbanner->bindTable(':table_banners', TABLE_BANNERS); $Qbanner->bindInt(':banners_id', $id); $Qbanner->execute(); if ($Qbanner->numberOfRows() > 0) { if (!osc_empty($Qbanner->value('banners_html_text'))) { $banner_string = $Qbanner->value('banners_html_text'); } else { $banner_string = osc_link_object(osc_href_link(FILENAME_REDIRECT, 'action=banner&goto=' . $Qbanner->valueInt('banners_id')), osc_image(DIR_WS_IMAGES . $Qbanner->value('banners_image'), $Qbanner->value('banners_title')), 'target="_blank"'); } $this->_updateDisplayCount($Qbanner->valueInt('banners_id')); if ($this->show_duplicates_in_group === false) { $this->_shown_ids[] = $Qbanner->valueInt('banners_id'); } } $Qbanner->freeResult(); return $banner_string; } function getURL($id, $increment_click = false) { global $osC_Database; $url = false; $Qbanner = $osC_Database->query('select banners_url from :table_banners where banners_id = :banners_id and status = 1'); $Qbanner->bindTable(':table_banners', TABLE_BANNERS); $Qbanner->bindInt(':banners_id', $id); $Qbanner->execute(); if ($Qbanner->numberOfRows() > 0) { $url = $Qbanner->value('banners_url'); if ($increment_click === true) { $this->_updateClickCount($id); } } $Qbanner->freeResult(); return $url; }/* Private methods */ function _setStatus($id, $active) { global $osC_Database; if ($active === true) { $Qbanner = $osC_Database->query('update :table_banners set status = 1, date_status_change = now(), date_scheduled = NULL where banners_id = :banners_id'); $Qbanner->bindTable(':table_banners', TABLE_BANNERS); $Qbanner->bindInt(':banners_id', $id); $Qbanner->execute(); } else { $Qbanner = $osC_Database->query('update :table_banners set status = 0, date_status_change = now() where banners_id = :banners_id'); $Qbanner->bindTable(':table_banners', TABLE_BANNERS); $Qbanner->bindInt(':banners_id', $id); $Qbanner->execute(); } $Qbanner->freeResult(); } function _updateDisplayCount($id) { global $osC_Database; $Qcheck = $osC_Database->query('select count(*) as count from :table_banners_history where banners_id = :banners_id and date_format(banners_history_date, "%Y%m%d") = date_format(now(), "%Y%m%d")'); $Qcheck->bindTable(':table_banners_history', TABLE_BANNERS_HISTORY); $Qcheck->bindInt(':banners_id', $id); $Qcheck->execute(); if ($Qcheck->valueInt('count') > 0) { $Qbanner = $osC_Database->query('update :table_banners_history set banners_shown = banners_shown + 1 where banners_id = :banners_id and date_format(banners_history_date, "%Y%m%d") = date_format(now(), "%Y%m%d")'); } else { $Qbanner = $osC_Database->query('insert into :table_banners_history (banners_id, banners_shown, banners_history_date) values (:banners_id, 1, now())'); } $Qbanner->bindTable(':table_banners_history', TABLE_BANNERS_HISTORY); $Qbanner->bindInt(':banners_id', $id); $Qbanner->execute(); $Qcheck->freeResult(); $Qbanner->freeResult(); } function _updateClickCount($id) { global $osC_Database; $Qcheck = $osC_Database->query('select count(*) as count from :table_banners_history where banners_id = :banners_id and date_format(banners_history_date, "%Y%m%d") = date_format(now(), "%Y%m%d")'); $Qcheck->bindTable(':table_banners_history', TABLE_BANNERS_HISTORY); $Qcheck->bindInt(':banners_id', $id); $Qcheck->execute(); if ($Qcheck->valueInt('count') > 0) { $Qbanner = $osC_Database->query('update :table_banners_history set banners_clicked = banners_clicked + 1 where banners_id = :banners_id and date_format(banners_history_date, "%Y%m%d") = date_format(now(), "%Y%m%d")'); } else { $Qbanner = $osC_Database->query('insert into :table_banners_history (banners_id, banners_clicked, banners_history_date) values (:banners_id, 1, now())'); } $Qbanner->bindTable(':table_banners_history', TABLE_BANNERS_HISTORY); $Qbanner->bindInt(':banners_id', $id); $Qbanner->execute(); $Qcheck->freeResult(); $Qbanner->freeResult(); } }?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?