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
00034 const PARENTTYPE_TOPIC = 1;
00035 const PARENTTYPE_RESOURCE = 2;
00036
00039
00047 function Message($MessageId = NULL)
00048 {
00049 $this->ErrorStatus = self::NONEXISTENT;
00050 $this->DB = new Database();
00051
00052 # no ID supplied
00053 if (is_null($MessageId))
00054 {
00055 # add record to database with that ID
00056 $this->DB->Query("INSERT INTO Messages (MessageId) VALUES (NULL)");
00057 $this->DB->Query("SELECT LAST_INSERT_ID() AS Id FROM Messages");
00058
00059 if ($this->DB->NumRowsSelected())
00060 {
00061 $this->MessageId = intval($this->DB->FetchField("Id"));
00062 $this->ErrorStatus = self::OK;
00063 }
00064 }
00065
00066 # ID supplied
00067 else
00068 {
00069 $this->DB->Query("
00070 SELECT * FROM Messages
00071 WHERE MessageId = '".intval($MessageId)."'");
00072
00073 if ($this->DB->NumRowsSelected())
00074 {
00075 # set attributes to values returned by database
00076 $this->DBFields = $this->DB->FetchRow();
00077 $this->MessageId = intval($this->DBFields["MessageId"]);
00078 $this->ErrorStatus = Message::OK;
00079 }
00080 }
00081 }
00082
00086 function Delete()
00087 {
00088 if ($this->ErrorStatus == Message::OK)
00089 {
00090 $this->DB->Query("DELETE FROM Messages WHERE MessageId = ".$this->MessageId);
00091 }
00092 }
00093
00098
00103 function MessageId() { return $this->MessageId; }
00104
00109 function PosterName()
00110 {
00111 $PosterName = new User($this->DB, (int)$this->PosterId());
00112 return $PosterName->Get("UserName");
00113 }
00114
00119 function PosterEmail()
00120 {
00121 $PosterName = new User($this->DB, (int)$this->PosterId());
00122 return $PosterName->Get("EMail");
00123 }
00124
00132 function ParentId($NewValue = DB_NOVALUE) { return $this->UpdateValue("ParentId", $NewValue); }
00133
00141 function ParentType($NewValue = DB_NOVALUE) { return $this->UpdateValue("ParentType", $NewValue); }
00142
00148 function DatePosted($NewValue = DB_NOVALUE) { return $this->UpdateValue("DatePosted", $NewValue); }
00149
00155 function PosterId($NewValue = DB_NOVALUE) { return $this->UpdateValue("PosterId", $NewValue); }
00156
00162 function Subject($NewValue = DB_NOVALUE) { return $this->UpdateValue("Subject", $NewValue); }
00163
00169 function Body($NewValue = DB_NOVALUE) { return $this->UpdateValue("Body", $NewValue); }
00170
00175 function GetErrorStatus() { return $this->ErrorStatus; }
00176
00179 # ---- PRIVATE INTERFACE -------------------------------------------------
00180
00181 private $MessageId;
00182 private $DB;
00183 private $DBFields;
00184 private $ErrorStatus;
00185
00186 # convenience function to supply parameters to Database->UpdateValue()
00187 private function UpdateValue($FieldName, $NewValue)
00188 {
00189 if ($this->ErrorStatus == Message::OK)
00190 {
00191 return $this->DB->UpdateValue("Messages", $FieldName, $NewValue,
00192 "MessageId = '".$this->MessageId."'", $this->DBFields, TRUE);
00193 }
00194 else
00195 {
00196 return NULL;
00197 }
00198 }
00199 }
00200
00201 ?>