Message.php

Go to the documentation of this file.
00001 <?PHP
00002 #
00003 #   FILE:  Message.php
00004 #
00005 #   FUNCTIONS PROVIDED:
00006 #       Message->Message($MessageId)
00007 #           - constructor
00008 #       Message->MessageId()
00009 #       Message->ParentId()
00010 #       Message->ParentyType()
00011 #       Message->DatePosted()
00012 #       Message->PosterId()
00013 #       Message->Subject()
00014 #       Message->Body()
00015 #           - methods to retrieve resource attributes
00016 #
00017 #   Part of the Scout Portal Toolkit
00018 #   Copyright 2002 Internet Scout Project
00019 #   http://scout.cs.wisc.edu
00020 #
00021 
00027 class Message {
00028 
00029     # ---- PUBLIC INTERFACE --------------------------------------------------
00030 
00031     const OK = 0;
00032     const NONEXISTENT = 1;
00033 
00036 
00044     function Message($MessageId = NULL)
00045     {
00046         $this->ErrorStatus = self::NONEXISTENT;
00047         $this->DB = new Database();
00048 
00049         # no ID supplied
00050         if (is_null($MessageId))
00051         {
00052             # add record to database with that ID
00053             $this->DB->Query("INSERT INTO Messages (MessageId) VALUES (NULL)");
00054             $this->DB->Query("SELECT LAST_INSERT_ID() AS Id FROM Messages");
00055 
00056             if ($this->DB->NumRowsSelected())
00057             {
00058                 $this->MessageId = intval($this->DB->FetchField("Id"));
00059                 $this->ErrorStatus = self::OK;
00060             }
00061         }
00062 
00063         # ID supplied
00064         else
00065         {
00066             $this->DB->Query("
00067                 SELECT * FROM Messages
00068                 WHERE MessageId = '".intval($MessageId)."'");
00069 
00070             if ($this->DB->NumRowsSelected())
00071             {
00072                 # set attributes to values returned by database
00073                 $this->DBFields = $this->DB->FetchRow();
00074                 $this->MessageId = intval($this->DBFields["MessageId"]);
00075                 $this->ErrorStatus = Message::OK;
00076             }
00077         }
00078     }
00079 
00083     function Delete()
00084     {
00085         if ($this->ErrorStatus == Message::OK)
00086         {
00087             $this->DB->Query("DELETE FROM Messages WHERE MessageId = ".$this->MessageId);
00088         }
00089     }
00090 
00095 
00100     function MessageId()    {  return $this->MessageId;  }
00101 
00106     function PosterName()
00107     {
00108         $PosterName = new User($this->DB, (int)$this->PosterId());
00109         return $PosterName->Get("UserName");
00110     }
00111 
00116     function PosterEmail()
00117     {
00118         $PosterName = new User($this->DB, (int)$this->PosterId());
00119         return $PosterName->Get("EMail");
00120     }
00121 
00129     function ParentId($NewValue = DB_NOVALUE) {  return $this->UpdateValue("ParentId", $NewValue);  }
00130 
00138     function ParentType($NewValue = DB_NOVALUE) {  return $this->UpdateValue("ParentType", $NewValue);  }
00139 
00145     function DatePosted($NewValue = DB_NOVALUE) {  return $this->UpdateValue("DatePosted", $NewValue);  }
00146 
00152     function PosterId($NewValue = DB_NOVALUE) {  return $this->UpdateValue("PosterId", $NewValue);  }
00153 
00159     function Subject($NewValue = DB_NOVALUE) {  return $this->UpdateValue("Subject", $NewValue);  }
00160 
00166     function Body($NewValue = DB_NOVALUE) {  return $this->UpdateValue("Body", $NewValue);  }
00167 
00172     function GetErrorStatus() { return $this->ErrorStatus; }
00173 
00176     # ---- PRIVATE INTERFACE -------------------------------------------------
00177 
00178     private $MessageId;
00179     private $DB;
00180     private $DBFields;
00181     private $ErrorStatus;
00182 
00183     # convenience function to supply parameters to Database->UpdateValue()
00184     private function UpdateValue($FieldName, $NewValue)
00185     {
00186         if ($this->ErrorStatus == Message::OK)
00187         {
00188             return $this->DB->UpdateValue("Messages", $FieldName, $NewValue,
00189                                           "MessageId = '".$this->MessageId."'", $this->DBFields, TRUE);
00190         }
00191         else
00192         {
00193             return NULL;
00194         }
00195     }
00196 }
00197 
00198 ?>