Exemplo n.º 1
0
 /**
  * Clicks the URL, incrementing the counter
  */
 function click()
 {
     $id = $this->getState('banner.id');
     // update click count
     $query = new JQuery();
     $query->update('#__banners');
     $query->set('clicks = (clicks + 1)');
     $query->where('id = ' . (int) $id);
     $this->_db->setQuery((string) $query);
     if (!$this->_db->query()) {
         JError::raiseError(500, $this->_db->getErrorMsg());
     }
     // track clicks
     $item =& $this->getItem();
     $trackClicks = $item->track_clicks;
     if ($trackClicks < 0 && $item->cid) {
         $trackClicks = $item->client_track_clicks;
     }
     if ($trackClicks < 0) {
         $config =& JComponentHelper::getParams('com_banners');
         $trackClicks = $config->get('track_clicks');
     }
     if ($trackClicks > 0) {
         $trackDate = JFactory::getDate()->toFormat('%Y-%m-%d');
         $query = new JQuery();
         $query->select('`count`');
         $query->from('#__banner_tracks');
         $query->where('track_type=2');
         $query->where('banner_id=' . (int) $id);
         $query->where('track_date=' . $this->_db->Quote($trackDate));
         $this->_db->setQuery((string) $query);
         if (!$this->_db->query()) {
             JError::raiseError(500, $this->_db->getErrorMsg());
         }
         $count = $this->_db->loadResult();
         $query = new JQuery();
         if ($count) {
             // update count
             $query->update('#__banner_tracks');
             $query->set('`count` = (`count` + 1)');
             $query->where('track_type=2');
             $query->where('banner_id=' . (int) $id);
             $query->where('track_date=' . $this->_db->Quote($trackDate));
         } else {
             // insert new count
             $query->insert('#__banner_tracks');
             $query->set('`count` = 1');
             $query->set('track_type=2');
             $query->set('banner_id=' . (int) $id);
             $query->set('track_date=' . $this->_db->Quote($trackDate));
         }
         $this->_db->setQuery((string) $query);
         if (!$this->_db->query()) {
             JError::raiseError(500, $this->_db->getErrorMsg());
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Makes impressions on a list of banners
  */
 function impress()
 {
     $trackDate = JFactory::getDate()->toFormat('%Y-%m-%d');
     $items =& $this->getItems();
     foreach ($items as $item) {
         // Increment impression made
         $id = $item->id;
         $query = new JQuery();
         $query->update('#__banners');
         $query->set('impmade = (impmade + 1)');
         $query->where('id=' . (int) $id);
         $this->_db->setQuery((string) $query);
         if (!$this->_db->query()) {
             JError::raiseError(500, $this->_db->getErrorMsg());
         }
         // track impressions
         $trackImpressions = $item->track_impressions;
         if ($trackImpressions < 0 && $item->cid) {
             $trackImpressions = $item->client_track_impressions;
         }
         if ($trackImpressions < 0) {
             $config =& JComponentHelper::getParams('com_banners');
             $trackImpressions = $config->get('track_impressions');
         }
         if ($trackImpressions > 0) {
             // is track already created ?
             $query = new JQuery();
             $query->select('`count`');
             $query->from('#__banner_tracks');
             $query->where('track_type=1');
             $query->where('banner_id=' . (int) $id);
             $query->where('track_date=' . $this->_db->Quote($trackDate));
             $this->_db->setQuery((string) $query);
             if (!$this->_db->query()) {
                 JError::raiseError(500, $this->_db->getErrorMsg());
             }
             $count = $this->_db->loadResult();
             $query = new JQuery();
             if ($count) {
                 // update count
                 $query->update('#__banner_tracks');
                 $query->set('`count` = (`count` + 1)');
                 $query->where('track_type=1');
                 $query->where('banner_id=' . (int) $id);
                 $query->where('track_date=' . $this->_db->Quote($trackDate));
             } else {
                 // insert new count
                 $query->insert('#__banner_tracks');
                 $query->set('`count` = 1');
                 $query->set('track_type=1');
                 $query->set('banner_id=' . (int) $id);
                 $query->set('track_date=' . $this->_db->Quote($trackDate));
             }
             $this->_db->setQuery((string) $query);
             if (!$this->_db->query()) {
                 JError::raiseError(500, $this->_db->getErrorMsg());
             }
         }
     }
 }
Exemplo n.º 3
0
 public static function updateReset()
 {
     $user = JFactory::getUser();
     $db = JFactory::getDBO();
     $query = new JQuery();
     $query->select('*');
     $query->from("#__banners");
     $query->where("NOW()>=`reset`");
     $query->where("`reset`!='0000-00-00 00:00:00' AND `reset`!=NULL");
     $query->where("(`checked_out`=0 OR `checked_out`=" . $db->Quote($user->id) . ")");
     $db->setQuery((string) $query);
     $rows = $db->loadObjectList();
     // Check for a database error.
     if ($db->getErrorNum()) {
         JError::raiseWarning(500, $db->getErrorMsg());
         return false;
     }
     JTable::addIncludePath(JPATH_ROOT . '/administrator/components/com_banners/tables');
     foreach ($rows as $row) {
         $purchase_type = $row->purchase_type;
         if ($purchase_type < 0 && $row->cid) {
             $client = JTable::getInstance('Client', 'BannersTable');
             $client->load($row->cid);
             $purchase_type = $client->purchase_type;
         }
         if ($purchase_type < 0) {
             $params = JComponentHelper::getParams('com_banners');
             $purchase_type = $params->get('purchase_type');
         }
         switch ($purchase_type) {
             case 1:
                 $reset = '0000-00-00 00:00:00';
                 break;
             case 2:
                 $reset = JFactory::getDate('+1 year ' . date('Y-m-d', strtotime('now')))->toMySQL();
                 break;
             case 3:
                 $reset = JFactory::getDate('+1 month ' . date('Y-m-d', strtotime('now')))->toMySQL();
                 break;
             case 4:
                 $reset = JFactory::getDate('+7 day ' . date('Y-m-d', strtotime('now')))->toMySQL();
                 break;
             case 5:
                 $reset = JFactory::getDate('+1 day ' . date('Y-m-d', strtotime('now')))->toMySQL();
                 break;
         }
         // Update the row ordering field.
         $query = new JQuery();
         $query->update('`#__banners`');
         $query->set('`reset` = ' . $db->quote($reset));
         $query->set('`impmade` = ' . $db->quote(0));
         $query->set('`clicks` = ' . $db->quote(0));
         $query->where('`id` = ' . $db->quote($row->id));
         $db->setQuery((string) $query);
         $db->query();
         // Check for a database error.
         if ($db->getErrorNum()) {
             JError::raiseWarning(500, $db->getErrorMsg());
             return false;
         }
     }
     return true;
 }