Esempio n. 1
0
 /**
  * Parse a message from an xml element.
  * @param unknown $xmlElement
  */
 public static function parseFromXml(CultureFeed_SimpleXMLElement $xmlElement)
 {
     $message = new self();
     // General properties.
     $message->id = $xmlElement->xpath_str('id');
     $message->type = $xmlElement->xpath_str('type');
     $message->status = $xmlElement->xpath_str('status');
     $message->creationDate = $xmlElement->xpath_time('creationDate');
     $message->lastReply = $xmlElement->xpath_time('lastReply');
     $message->subject = $xmlElement->xpath_str('subject');
     $message->body = $xmlElement->xpath_str('body');
     $message->role = $xmlElement->xpath_str('role');
     // Parse sender.
     $user = new CultureFeed_User();
     $user->id = $xmlElement->xpath_str('sender/rdf:id');
     $user->nick = $xmlElement->xpath_str('sender/foaf:nick');
     $user->depiction = $xmlElement->xpath_str('sender/foaf:depiction');
     $message->sender = $user;
     // Parse recipients.
     $message->recipients = array();
     $recipientElements = $xmlElement->xpath('recipients/recipient');
     if ($recipientElements) {
         foreach ($recipientElements as $recipientElement) {
             $recipient = new CultureFeed_User();
             $recipient->id = $recipientElement->xpath_str('rdf:id');
             $recipient->nick = $recipientElement->xpath_str('foaf:nick');
             $recipient->depiction = $recipientElement->xpath_str('foaf:depiction');
             $message->recipients[$recipient->id] = $recipient;
         }
     }
     $senderPageId = $xmlElement->xpath_str('senderPageId');
     if ($senderPageId) {
         $page = new CultureFeed_Cdb_Item_Page();
         $page->setId($senderPageId);
         $page->setName($xmlElement->xpath_str('senderPageName'));
         $message->senderPage = $page;
     }
     $recipientPageId = $xmlElement->xpath_str('recipientPageId');
     if ($recipientPageId) {
         $page = new CultureFeed_Cdb_Item_Page();
         $page->setId($recipientPageId);
         $page->setName($xmlElement->xpath_str('recipientPageName'));
         $message->recipientPage = $page;
     }
     // If this is a thread, parse also the child messages.
     $message->children = array();
     $childElements = $xmlElement->xpath('children/message');
     if ($childElements) {
         foreach ($childElements as $childElement) {
             $message->children[] = CultureFeed_Messages_Message::parseFromXml($childElement);
         }
     }
     return $message;
 }
Esempio n. 2
0
 /**
  * @see CultureFeed_Messages::getMessage()
  */
 public function getMessage($id)
 {
     $result = $this->oauth_client->authenticatedGetAsXml('message/' . $id);
     $xmlElement = $this->validateResult($result, CultureFeed_Messages_Default::CODE_SUCCESS);
     $threadElement = $xmlElement->xpath('/response/thread');
     return CultureFeed_Messages_Message::parseFromXml($threadElement[0]);
 }