Search:

# CWIS Developers Documentation

- Main Page
- Classes
- Files

- File List
- File Members

# 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 ?>