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