SPTUserFactory.php
Go to the documentation of this file.00001 <?PHP
00002
00003 #
00004 # FILE: SPTUserFactory.php
00005 #
00006 # Part of the Scout Portal Toolkit
00007 # Copyright 2003 Internet Scout Project
00008 # http://scout.wisc.edu
00009 #
00010
00011 class SPTUserFactory extends UserFactory
00012 {
00013
00014 # ---- PUBLIC INTERFACE --------------------------------------------------
00015
00019 public function __construct()
00020 {
00021 global $Session;
00022
00023 # create database handle for parent and local use
00024 $this->DB = new SPTDatabase();
00025
00026 # call parent constructor with the global or our own session
00027 parent::__construct((isset($Session)) ? $Session : new Session($this->DB));
00028 }
00029
00036 public function GetTopContributors($Limit = 5)
00037 {
00038 # assume no users will be found
00039 $Users = array();
00040
00041 # fetch the top contributors
00042 $this->DB->Query("SELECT U.*"
00043 ." FROM APUsers U, Resources R"
00044 ." WHERE U.UserId = R.LastModifiedById"
00045 ." GROUP BY R.LastModifiedById"
00046 ." ORDER BY COUNT(*) DESC"
00047 ." LIMIT ".intval($Limit));
00048 $UserIds = $this->DB->FetchColumn("UserId");
00049
00050 # for each user id found
00051 foreach ($UserIds as $UserId)
00052 {
00053 $Users[$UserId] = new SPTUser($UserId);
00054 }
00055
00056 # return the newest users
00057 return $Users;
00058 }
00059
00066 public function GetMostRecentContributors($Limit = 5)
00067 {
00068 # assume no users will be found
00069 $Users = array();
00070
00071 # fetch the top contributors
00072 $this->DB->Query("SELECT U.*"
00073 ." FROM APUsers U, Resources R"
00074 ." WHERE U.UserId = R.LastModifiedById"
00075 ." GROUP BY U.UserId"
00076 ." ORDER BY MAX(R.DateLastModified) DESC"
00077 ." LIMIT ".intval($Limit));
00078 $UserIds = $this->DB->FetchColumn("UserId");
00079
00080 # for each user id found
00081 foreach ($UserIds as $UserId)
00082 {
00083 $Users[$UserId] = new SPTUser($UserId);
00084 }
00085
00086 # return the newest users
00087 return $Users;
00088 }
00089
00090 # ---- PRIVATE INTERFACE -------------------------------------------------
00091
00092 }
00093
00094 ?>