CWIS Developer Documentation
Message.php
Go to the documentation of this file.
1 <?PHP
2 #
3 # FILE: Message.php
4 #
5 # Part of the Collection Workflow Integration System (CWIS)
6 # Copyright 2012-2013 Edward Almasy and Internet Scout Research Group
7 # http://scout.wisc.edu/cwis
8 #
9 
15 class Message {
16 
17  # ---- PUBLIC INTERFACE --------------------------------------------------
18 
19  const OK = 0;
20  const NONEXISTENT = 1;
21 
22  const PARENTTYPE_TOPIC = 1;
24 
27 
35  function Message($MessageId = NULL)
36  {
37  $this->ErrorStatus = self::NONEXISTENT;
38  $this->DB = new Database();
39 
40  # no ID supplied
41  if (is_null($MessageId))
42  {
43  # add record to database with that ID
44  $this->DB->Query("INSERT INTO Messages (MessageId) VALUES (NULL)");
45  $this->DB->Query("SELECT LAST_INSERT_ID() AS Id FROM Messages");
46 
47  if ($this->DB->NumRowsSelected())
48  {
49  $this->MessageId = intval($this->DB->FetchField("Id"));
50  $this->ErrorStatus = self::OK;
51  }
52  }
53 
54  # ID supplied
55  else
56  {
57  $this->DB->Query("
58  SELECT * FROM Messages
59  WHERE MessageId = '".intval($MessageId)."'");
60 
61  if ($this->DB->NumRowsSelected())
62  {
63  # set attributes to values returned by database
64  $this->DBFields = $this->DB->FetchRow();
65  $this->MessageId = intval($this->DBFields["MessageId"]);
66  $this->ErrorStatus = Message::OK;
67  }
68  }
69  }
70 
74  function Delete()
75  {
76  if ($this->ErrorStatus == Message::OK)
77  {
78  $this->DB->Query("DELETE FROM Messages WHERE MessageId = ".$this->MessageId);
79  }
80  }
81 
86 
91  function MessageId() { return $this->MessageId; }
92 
97  function PosterName()
98  {
99  $PosterName = new CWUser((int)$this->PosterId());
100  return $PosterName->Get("UserName");
101  }
102 
107  function PosterEmail()
108  {
109  $PosterName = new CWUser((int)$this->PosterId());
110  return $PosterName->Get("EMail");
111  }
112 
117  function EditorId($NewValue = DB_NOVALUE) { return $this->UpdateValue("EditorId", $NewValue); }
118 
126  function ParentId($NewValue = DB_NOVALUE) { return $this->UpdateValue("ParentId", $NewValue); }
127 
135  function ParentType($NewValue = DB_NOVALUE) { return $this->UpdateValue("ParentType", $NewValue); }
136 
142  function DatePosted($NewValue = DB_NOVALUE) { return $this->UpdateValue("DatePosted", $NewValue); }
143 
149  function DateEdited($NewValue = DB_NOVALUE) { return $this->UpdateValue("DateEdited", $NewValue); }
150 
156  function PosterId($NewValue = DB_NOVALUE) { return $this->UpdateValue("PosterId", $NewValue); }
157 
163  function Subject($NewValue = DB_NOVALUE) { return $this->UpdateValue("Subject", $NewValue); }
164 
170  function Body($NewValue = DB_NOVALUE) { return $this->UpdateValue("Body", $NewValue); }
171 
176  function GetErrorStatus() { return $this->ErrorStatus; }
177 
180  # ---- PRIVATE INTERFACE -------------------------------------------------
181 
182  private $MessageId;
183  private $DB;
184  private $DBFields;
185  private $ErrorStatus;
186 
194  private function UpdateValue($FieldName, $NewValue)
195  {
196  if ($this->ErrorStatus == Message::OK)
197  {
198  return $this->DB->UpdateValue("Messages", $FieldName, $NewValue,
199  "MessageId = '".$this->MessageId."'", $this->DBFields, TRUE);
200  }
201  else
202  {
203  return NULL;
204  }
205  }
206 }
Message($MessageId=NULL)
Object constructor.
Definition: Message.php:35
DateEdited($NewValue=DB_NOVALUE)
Get or set the date the message was last edited.
Definition: Message.php:149
MessageId()
Get this message's messageId.
Definition: Message.php:91
Abstraction for forum messages and resource comments.
Definition: Message.php:15
GetErrorStatus()
Retrieve the error status.
Definition: Message.php:176
SQL database abstraction object with smart query caching.
const PARENTTYPE_TOPIC
Definition: Message.php:22
const DB_NOVALUE
const PARENTTYPE_RESOURCE
Definition: Message.php:23
Subject($NewValue=DB_NOVALUE)
Get or set the message subject.
Definition: Message.php:163
PosterEmail()
Get the email address of the most recent poster.
Definition: Message.php:107
const NONEXISTENT
Definition: Message.php:20
const OK
Definition: Message.php:19
PHP
Definition: OAIClient.php:39
Body($NewValue=DB_NOVALUE)
Get or set the message body.
Definition: Message.php:170
PosterName()
Get the CWIS username of the most recent poster.
Definition: Message.php:97
EditorId($NewValue=DB_NOVALUE)
Get the CWIS user ID of the most recent editor.
Definition: Message.php:117
DatePosted($NewValue=DB_NOVALUE)
Get or set the date posted.
Definition: Message.php:142
Delete()
Delete this message from the underlying database.
Definition: Message.php:74
ParentId($NewValue=DB_NOVALUE)
Get or set the ParentId.
Definition: Message.php:126
CWIS-specific user class.
Definition: CWUser.php:13
PosterId($NewValue=DB_NOVALUE)
Get or set the poster id (e.g., the author) for this message.
Definition: Message.php:156
ParentType($NewValue=DB_NOVALUE)
Get or set the ParentType.
Definition: Message.php:135