ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilECSEContentDetails.php
Go to the documentation of this file.
1 <?php
2 /*
3  +-----------------------------------------------------------------------------+
4  | ILIAS open source |
5  +-----------------------------------------------------------------------------+
6  | Copyright (c) 1998-2006 ILIAS open source, University of Cologne |
7  | |
8  | This program is free software; you can redistribute it and/or |
9  | modify it under the terms of the GNU General Public License |
10  | as published by the Free Software Foundation; either version 2 |
11  | of the License, or (at your option) any later version. |
12  | |
13  | This program is distributed in the hope that it will be useful, |
14  | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16  | GNU General Public License for more details. |
17  | |
18  | You should have received a copy of the GNU General Public License |
19  | along with this program; if not, write to the Free Software |
20  | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21  +-----------------------------------------------------------------------------+
22 */
23 
33 {
34 
35  public $senders = array();
36  public $sender_index = NULL;
37  public $receivers = array();
38  public $url = array();
39  public $content_type = array();
40  public $owner = 0;
41 
42  private $receiver_info = array();
43 
44  public function __construct()
45  {
46 
47  }
48 
57  public static function getInstance($a_server_id, $a_econtent_id, $a_resource_type)
58  {
59  global $ilLog;
60 
61  try
62  {
63  include_once './Services/WebServices/ECS/classes/class.ilECSSetting.php';
64  include_once './Services/WebServices/ECS/classes/class.ilECSConnector.php';
65  $connector = new ilECSConnector(ilECSSetting::getInstanceByServerId($a_server_id));
66  $res = $connector->getResource($a_resource_type, $a_econtent_id, true);
67  if($res->getHTTPCode() == ilECSConnector::HTTP_CODE_NOT_FOUND)
68  {
69  return;
70  }
71  if(!is_object($res->getResult()))
72  {
73  $ilLog->write(__METHOD__ . ': Error parsing result. Expected result of type array.');
74  $ilLog->logStack();
75  throw new ilECSConnectorException('error parsing json');
76  }
77  }
78  catch(ilECSConnectorException $exc)
79  {
80  return;
81  }
82 
83  include_once './Services/WebServices/ECS/classes/class.ilECSEContentDetails.php';
84  $details = new self();
85  $details->loadFromJSON($res->getResult());
86  return $details;
87  }
88 
93  public function getSenders()
94  {
95  return (array) $this->senders;
96  }
97 
101  public function getFirstSender()
102  {
103  return isset($this->senders[0]) ? $this->senders[0] : 0;
104  }
105 
110  public function getMySender()
111  {
112  return $this->senders[$this->sender_index];
113  }
114 
119  public function getReceivers()
120  {
121  return (array) $this->receivers;
122  }
123 
128  public function getReceiverInfo()
129  {
130  return (array) $this->receiver_info;
131  }
132 
137  public function getUrl()
138  {
139  return $this->url;
140  }
141 
142  public function getOwner()
143  {
144  return (int) $this->owner;
145  }
146 
154  public function loadFromJson($json)
155  {
156  global $ilLog;
157 
158  if(!is_object($json))
159  {
160  $ilLog->write(__METHOD__.': Cannot load from JSON. No object given.');
161  throw new ilException('Cannot parse ECS content details.');
162  }
163 
164  foreach((array) $json->senders as $sender)
165  {
166  $this->senders[] = $sender->mid;
167  }
168 
169  $index = 0;
170  foreach((array) $json->receivers as $receiver)
171  {
172  $this->receivers[] = $receiver->mid;
173  if($receiver->itsyou and $this->sender_index === NULL)
174  {
175  $this->sender_index = $index;
176  }
177  ++$index;
178  }
179 
180  // Collect in one array
181  for($i = 0; $i < count($this->getReceivers()); ++$i)
182  {
183  $this->receiver_info[$this->sender[$i]] = $this->receivers[$i];
184  }
185 
186  if(is_object($json->owner))
187  {
188  $this->owner = (int) $json->owner->pid;
189  }
190 
191  $this->url = $json->url;
192  $this->content_type = $json->content_type;
193  return true;
194  }
195 }
196 ?>
Base class for ILIAS Exception handling.
static getInstanceByServerId($a_server_id)
Get singleton instance per server.
getMySender()
Get sender from whom we received the ressource According to the documentation the sender and receiver...
getReceiverInfo()
Get receiver info.
Presentation of ecs content details (http://...campusconnect/courselinks/id/details) ...
loadFromJson($json)
Load from JSON object.
static getInstance($a_server_id, $a_econtent_id, $a_resource_type)
Get data from server.