Open Journal Systems  3.3.0
JSONMessage.inc.php
1 <?php
2 
18 class JSONMessage {
20  var $_status;
21 
23  var $_content;
24 
26  var $_elementId;
27 
29  var $_events;
30 
33 
41  function __construct($status = true, $content = '', $elementId = '0', $additionalAttributes = null) {
42  // Set internal state.
43  $this->setStatus($status);
44  $this->setContent($content);
45  $this->setElementId($elementId);
46  if (isset($additionalAttributes)) {
47  $this->setAdditionalAttributes($additionalAttributes);
48  }
49  }
50 
55  function getStatus () {
57  }
58 
63  function setStatus($status) {
64  assert(is_bool($status));
65  $this->_status = $status;
66  }
67 
72  function getContent() {
73  return $this->_content;
74  }
75 
80  function setContent($content) {
81  $this->_content = $content;
82  }
83 
88  function getElementId() {
89  return $this->_elementId;
90  }
91 
96  function setElementId($elementId) {
97  assert(is_string($elementId) || is_numeric($elementId));
98  $this->_elementId = $elementId;
99  }
100 
106  function setEvent($eventName, $eventData = null) {
107  assert(is_string($eventName));
108 
109  // Construct the even as an associative array.
110  $event = array('name' => $eventName);
111  if(!is_null($eventData)) $event['data'] = $eventData;
112 
113  $this->_events[] = $event;
114  }
115 
128  function setGlobalEvent($eventName, $eventData = array()) {
129  assert(is_array($eventData));
130  $eventData['isGlobalEvent'] = true;
131  $this->setEvent($eventName, $eventData);
132  }
133 
138  function getEvents() {
139  return $this->_events;
140  }
141 
146  function getAdditionalAttributes() {
148  }
149 
154  function setAdditionalAttributes($additionalAttributes) {
155  assert(is_array($additionalAttributes));
156  $this->_additionalAttributes = $additionalAttributes;
157  }
158 
163  function getString() {
164  // Construct an associative array that contains all information we require.
165  $jsonObject = array(
166  'status' => $this->getStatus(),
167  'content' => $this->getContent(),
168  'elementId' => $this->getElementId(),
169  'events' => $this->getEvents(),
170  );
171  if(is_array($this->getAdditionalAttributes())) {
172  foreach($this->getAdditionalAttributes() as $key => $value) {
173  $jsonObject[$key] = $value;
174  }
175  }
176 
177  // Encode the object.
178  $json = json_encode($jsonObject);
179 
180  if ($json === false) {
181  error_log(json_last_error_msg());
182  }
183 
184  return $json;
185  }
186 }
187 
188 
JSONMessage\__construct
__construct($status=true, $content='', $elementId='0', $additionalAttributes=null)
Definition: JSONMessage.inc.php:56
JSONMessage\setGlobalEvent
setGlobalEvent($eventName, $eventData=array())
Definition: JSONMessage.inc.php:143
JSONMessage\setContent
setContent($content)
Definition: JSONMessage.inc.php:95
JSONMessage\getString
getString()
Definition: JSONMessage.inc.php:178
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
JSONMessage\getContent
getContent()
Definition: JSONMessage.inc.php:87
JSONMessage\setAdditionalAttributes
setAdditionalAttributes($additionalAttributes)
Definition: JSONMessage.inc.php:169
JSONMessage\$_elementId
$_elementId
Definition: JSONMessage.inc.php:35
JSONMessage\$_status
$_status
Definition: JSONMessage.inc.php:23
JSONMessage\getEvents
getEvents()
Definition: JSONMessage.inc.php:153
JSONMessage\$_content
$_content
Definition: JSONMessage.inc.php:29
JSONMessage\$_additionalAttributes
$_additionalAttributes
Definition: JSONMessage.inc.php:47
JSONMessage\setElementId
setElementId($elementId)
Definition: JSONMessage.inc.php:111
JSONMessage\setStatus
setStatus($status)
Definition: JSONMessage.inc.php:78
JSONMessage\setEvent
setEvent($eventName, $eventData=null)
Definition: JSONMessage.inc.php:121
JSONMessage\getStatus
getStatus()
Definition: JSONMessage.inc.php:70
JSONMessage\getAdditionalAttributes
getAdditionalAttributes()
Definition: JSONMessage.inc.php:161
JSONMessage\$_events
$_events
Definition: JSONMessage.inc.php:41
JSONMessage\getElementId
getElementId()
Definition: JSONMessage.inc.php:103