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 
14 class Message
15 {
16 
17  # ---- PUBLIC INTERFACE --------------------------------------------------
18 
19  const OK = 0;
20  const NONEXISTENT = 1;
21 
22  const PARENTTYPE_TOPIC = 1;
24 
27 
35  public function __construct($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 = self::OK;
67  }
68  }
69  }
70 
74  public function Delete()
75  {
76  if ($this->ErrorStatus == self::OK)
77  {
78  $this->DB->Query("DELETE FROM Messages WHERE MessageId = ".$this->MessageId);
79  }
80  }
81 
86 
91  public function MessageId()
92  {
93  return $this->MessageId;
94  }
95 
100  public function PosterName()
101  {
102  $PosterName = new CWUser((int)$this->PosterId());
103  return $PosterName->Get("UserName");
104  }
105 
110  public function PosterEmail()
111  {
112  $PosterName = new CWUser((int)$this->PosterId());
113  return $PosterName->Get("EMail");
114  }
115 
121  public function EditorId($NewValue = DB_NOVALUE)
122  {
123  return $this->UpdateValue("EditorId", $NewValue);
124  }
125 
133  public function ParentId($NewValue = DB_NOVALUE)
134  {
135  return $this->UpdateValue("ParentId", $NewValue);
136  }
137 
145  public function ParentType($NewValue = DB_NOVALUE)
146  {
147  return $this->UpdateValue("ParentType", $NewValue);
148  }
149 
155  public function DatePosted($NewValue = DB_NOVALUE)
156  {
157  return $this->UpdateValue("DatePosted", $NewValue);
158  }
159 
165  public function DateEdited($NewValue = DB_NOVALUE)
166  {
167  return $this->UpdateValue("DateEdited", $NewValue);
168  }
169 
175  public function PosterId($NewValue = DB_NOVALUE)
176  {
177  return $this->UpdateValue("PosterId", $NewValue);
178  }
179 
185  public function Subject($NewValue = DB_NOVALUE)
186  {
187  return $this->UpdateValue("Subject", $NewValue);
188  }
189 
195  public function Body($NewValue = DB_NOVALUE)
196  {
197  return $this->UpdateValue("Body", $NewValue);
198  }
199 
204  public function GetErrorStatus()
205  {
206  return $this->ErrorStatus;
207  }
208 
211  # ---- PRIVATE INTERFACE -------------------------------------------------
212 
213  private $MessageId;
214  private $DB;
215  private $DBFields;
216  private $ErrorStatus;
217 
225  private function UpdateValue($FieldName, $NewValue)
226  {
227  if ($this->ErrorStatus == self::OK)
228  {
229  return $this->DB->UpdateValue(
230  "Messages", $FieldName, $NewValue,
231  "MessageId = '".$this->MessageId."'", $this->DBFields, TRUE);
232  }
233  else
234  {
235  return NULL;
236  }
237  }
238 }
DateEdited($NewValue=DB_NOVALUE)
Get or set the date the message was last edited.
Definition: Message.php:165
MessageId()
Get this message&#39;s messageId.
Definition: Message.php:91
Abstraction for forum messages and resource comments.
Definition: Message.php:14
GetErrorStatus()
Retrieve the error status.
Definition: Message.php:204
SQL database abstraction object with smart query caching.
Definition: Database.php:22
const PARENTTYPE_TOPIC
Definition: Message.php:22
const PARENTTYPE_RESOURCE
Definition: Message.php:23
Subject($NewValue=DB_NOVALUE)
Get or set the message subject.
Definition: Message.php:185
PosterEmail()
Get the email address of the most recent poster.
Definition: Message.php:110
const NONEXISTENT
Definition: Message.php:20
const OK
Definition: Message.php:19
__construct($MessageId=NULL)
Object constructor.
Definition: Message.php:35
Body($NewValue=DB_NOVALUE)
Get or set the message body.
Definition: Message.php:195
PosterName()
Get the CWIS username of the most recent poster.
Definition: Message.php:100
const DB_NOVALUE
Definition: Database.php:1541
EditorId($NewValue=DB_NOVALUE)
Get the CWIS user ID of the most recent editor.
Definition: Message.php:121
DatePosted($NewValue=DB_NOVALUE)
Get or set the date posted.
Definition: Message.php:155
Delete()
Delete this message from the underlying database.
Definition: Message.php:74
ParentId($NewValue=DB_NOVALUE)
Get or set the ParentId.
Definition: Message.php:133
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:175
ParentType($NewValue=DB_NOVALUE)
Get or set the ParentType.
Definition: Message.php:145