Example #1
0
    public static function Create($p_sessionId, &$p_objectId, $p_objectTypeId = null, $p_userId = null) {
        if (empty($p_sessionId)) {
            throw new SessionIdNotSet();
        }

        $session = new Session($p_sessionId);
        if (!$session->exists()) {
            $sessionParams = array('start_time'=>strftime("%Y-%m-%d %T"));
            if (!empty($p_userId)) {
                $sessionParams['user_id'] = $p_userId;
            }
            $session->create($sessionParams);
        }
        $sessionUserId = $session->getUserId();
        if (!empty($p_userId) && !empty($sessionUserId) && $sessionUserId != $p_userId) {
            throw new InvalidUserId();
        }

        $requestObject = new RequestObject($p_objectId);
        if (!$requestObject->exists()) {
            if (empty($p_objectTypeId)) {
                throw new ObjectTypeIdNotSet();
            }
            $requestObject->create(array('object_type_id'=>$p_objectTypeId));
            $p_objectId = $requestObject->getObjectId();
        } elseif (empty($p_objectId)) {
            throw new ObjectIdNotSet();
        }

        $request = new Request($p_sessionId, $p_objectId);
        if (!$request->exists()) {
            $request->create();
        }
        if (!$request->isInStats()) {
        	$requestStats = new RequestStats($p_objectId);
        	if (!$requestStats->exists()) {
        		$requestStats->create();
        	}
        	$requestStats->incrementRequestCount();
            $request->setLastStatsUpdate();
        }
    }
Example #2
0
 /**
  * Writes the statistics (when article read).
  *
  * @param int $p_sessionId
  *      used for not writing the stats multiple times
  * @param int $p_objectId
  *      the article object whose stats shall be updated
  * @return bool
  */
 public static function UpdateStats($p_sessionId, $p_objectId)
 {
     if (!$p_sessionId || !$p_objectId) {
         return false;
     }
     $request = new Request($p_sessionId, $p_objectId);
     if (!$request->exists()) {
         $request->create();
     }
     if (!$request->isInStats()) {
         $requestStats = new RequestStats($p_objectId);
         if (!$requestStats->exists()) {
             $requestStats->create();
         }
         $requestStats->incrementRequestCount();
         $request->setLastStatsUpdate();
         return true;
     }
     return false;
 }