public static function addStatistics($event, $type = '', $objectSID = 0, $unique = false, $featured = 0, $priority = 0, $userSID = false, $price = 0, $plugin = '', $reactivate = 0) { if (!$userSID) { $userSID = SJB_UserManager::getCurrentUserSID(); $userSID = $userSID ? $userSID : 0; } $IP = $_SERVER['REMOTE_ADDR']; $params = array('ip' => $IP, 'type' => $type, 'event' => $event, 'date' => 'YEAR(CURDATE()) = YEAR(`date`) AND DAYOFYEAR(CURDATE()) = DAYOFYEAR(`date`)', 'object_sid' => $objectSID, 'limit' => 1, 'price' => $price); if (!in_array($event, array('siteView', 'viewMobileVersion'))) { $params['user_sid'] = $userSID; } $browsingEvents = array('viewListing', 'siteView', 'partneringSites', 'showInSearchResults'); if (SJB_Request::isBot() && in_array($event, $browsingEvents)) { return false; } else { if ($statistics = self::getStatistics($params)) { $statistics = array_pop($statistics); if (!$unique) { SJB_DB::query("UPDATE `statistics` SET `count` = ?n WHERE `sid` = ?n", ++$statistics['count'], $statistics['sid']); } elseif ($userSID && $statistics['user_sid'] == 0) { SJB_DB::query("UPDATE `statistics` SET `user_sid` = ?n WHERE `sid` = ?n", $userSID, $statistics['sid']); } } else { SJB_DB::query("INSERT INTO `statistics` (`user_sid`, `ip`, `event`, `object_sid`, `type`, `date`, `featured`, `priority`, `reactivate`, `price`, `plugin`) VALUES (?n, ?s, ?s, ?n, ?s, NOW(), ?n, ?n, ?n, ?f, ?s)", $userSID, $IP, $event, $objectSID, $type, $featured, $priority, $reactivate, $price, $plugin); } return true; } }
public static function incrementViewsCounterForListing($listingId, $listing) { $listingViews = SJB_DB::query('SELECT `views` FROM `listings` WHERE `sid` = ?n limit 1', $listingId); $ipAddress = SJB_Request::$remoteAddr; if (empty($listingViews) || SJB_Request::isBot() || !self::isViewCanBeCounted($listingId, $ipAddress)) { return false; } SJB_Statistics::addStatistics('viewListing', $listing->getListingTypeSID(), $listing->getSID()); self::setListingLatestViewDateByIp($listingId, $ipAddress); return SJB_DB::query('UPDATE `listings` SET `views` = `views` + 1 WHERE `sid` = ?n limit 1', $listingId); }