예제 #1
0
 /**
  * Retrieves a DOMElement which corresponds to this element and all
  * child properties.  This is used to build an entry back into a DOM
  * and eventually XML text for application storage/persistence.
  *
  * @param DOMDocument $doc The DOMDocument used to construct DOMElements
  * @return DOMElement The DOMElement representing this element and all
  *          child properties.
  */
 public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null)
 {
     $element = parent::getDOM($doc, $majorVersion, $minorVersion);
     if ($this->_gphotoAlbumId !== null) {
         $element->appendChild($this->_gphotoAlbumId->getDOM($element->ownerDocument));
     }
     if ($this->_gphotoId !== null) {
         $element->appendChild($this->_gphotoId->getDOM($element->ownerDocument));
     }
     if ($this->_gphotoVersion !== null) {
         $element->appendChild($this->_gphotoVersion->getDOM($element->ownerDocument));
     }
     if ($this->_gphotoWidth !== null) {
         $element->appendChild($this->_gphotoWidth->getDOM($element->ownerDocument));
     }
     if ($this->_gphotoHeight !== null) {
         $element->appendChild($this->_gphotoHeight->getDOM($element->ownerDocument));
     }
     if ($this->_gphotoSize !== null) {
         $element->appendChild($this->_gphotoSize->getDOM($element->ownerDocument));
     }
     if ($this->_gphotoClient !== null) {
         $element->appendChild($this->_gphotoClient->getDOM($element->ownerDocument));
     }
     if ($this->_gphotoChecksum !== null) {
         $element->appendChild($this->_gphotoChecksum->getDOM($element->ownerDocument));
     }
     if ($this->_gphotoTimestamp !== null) {
         $element->appendChild($this->_gphotoTimestamp->getDOM($element->ownerDocument));
     }
     if ($this->_gphotoCommentingEnabled !== null) {
         $element->appendChild($this->_gphotoCommentingEnabled->getDOM($element->ownerDocument));
     }
     if ($this->_gphotoCommentCount !== null) {
         $element->appendChild($this->_gphotoCommentCount->getDOM($element->ownerDocument));
     }
     if ($this->_exifTags !== null) {
         $element->appendChild($this->_exifTags->getDOM($element->ownerDocument));
     }
     if ($this->_geoRssWhere !== null) {
         $element->appendChild($this->_geoRssWhere->getDOM($element->ownerDocument));
     }
     return $element;
 }
예제 #2
0
 /**
  * Creates individual Entry objects of the appropriate type and
  * stores them as members of this entry based upon DOM data.
  *
  * @param DOMNode $child The DOMNode to process
  */
 protected function takeChildFromDOM($child)
 {
     $absoluteNodeName = $child->namespaceURI . ':' . $child->localName;
     switch ($absoluteNodeName) {
         case $this->lookupNamespace('gphoto') . ':' . 'albumid':
             $albumId = new Extension\AlbumId();
             $albumId->transferFromDOM($child);
             $this->_gphotoAlbumId = $albumId;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'id':
             $id = new Extension\Id();
             $id->transferFromDOM($child);
             $this->_gphotoId = $id;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'version':
             $version = new Extension\Version();
             $version->transferFromDOM($child);
             $this->_gphotoVersion = $version;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'width':
             $width = new Extension\Width();
             $width->transferFromDOM($child);
             $this->_gphotoWidth = $width;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'height':
             $height = new Extension\Height();
             $height->transferFromDOM($child);
             $this->_gphotoHeight = $height;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'size':
             $size = new Extension\Size();
             $size->transferFromDOM($child);
             $this->_gphotoSize = $size;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'client':
             $client = new Extension\Client();
             $client->transferFromDOM($child);
             $this->_gphotoClient = $client;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'checksum':
             $checksum = new Extension\Checksum();
             $checksum->transferFromDOM($child);
             $this->_gphotoChecksum = $checksum;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'timestamp':
             $timestamp = new Extension\Timestamp();
             $timestamp->transferFromDOM($child);
             $this->_gphotoTimestamp = $timestamp;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'commentingEnabled':
             $commentingEnabled = new Extension\CommentingEnabled();
             $commentingEnabled->transferFromDOM($child);
             $this->_gphotoCommentingEnabled = $commentingEnabled;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'commentCount':
             $commentCount = new Extension\CommentCount();
             $commentCount->transferFromDOM($child);
             $this->_gphotoCommentCount = $commentCount;
             break;
         case $this->lookupNamespace('exif') . ':' . 'tags':
             $exifTags = new \Zend\GData\EXIF\Extension\Tags();
             $exifTags->transferFromDOM($child);
             $this->_exifTags = $exifTags;
             break;
         case $this->lookupNamespace('georss') . ':' . 'where':
             $geoRssWhere = new \Zend\GData\Geo\Extension\GeoRssWhere();
             $geoRssWhere->transferFromDOM($child);
             $this->_geoRssWhere = $geoRssWhere;
             break;
         default:
             parent::takeChildFromDOM($child);
             break;
     }
 }
예제 #3
0
 protected function takeChildFromDOM($child)
 {
     $absoluteNodeName = $child->namespaceURI . ':' . $child->localName;
     switch ($absoluteNodeName) {
         case $this->lookupNamespace('gphoto') . ':' . 'id':
             $id = new Extension\Id();
             $id->transferFromDOM($child);
             $this->_gphotoId = $id;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'version':
             $version = new Extension\Version();
             $version->transferFromDOM($child);
             $this->_gphotoVersion = $version;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'albumid':
             $albumid = new Extension\AlbumId();
             $albumid->transferFromDOM($child);
             $this->_gphotoAlbumId = $albumid;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'width':
             $width = new Extension\Width();
             $width->transferFromDOM($child);
             $this->_gphotoWidth = $width;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'height':
             $height = new Extension\Height();
             $height->transferFromDOM($child);
             $this->_gphotoHeight = $height;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'size':
             $size = new Extension\Size();
             $size->transferFromDOM($child);
             $this->_gphotoSize = $size;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'client':
             $client = new Extension\Client();
             $client->transferFromDOM($child);
             $this->_gphotoClient = $client;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'checksum':
             $checksum = new Extension\Checksum();
             $checksum->transferFromDOM($child);
             $this->_gphotoChecksum = $checksum;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'timestamp':
             $timestamp = new Extension\Timestamp();
             $timestamp->transferFromDOM($child);
             $this->_gphotoTimestamp = $timestamp;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'commentingEnabled':
             $commentingEnabled = new Extension\CommentingEnabled();
             $commentingEnabled->transferFromDOM($child);
             $this->_gphotoCommentingEnabled = $commentingEnabled;
             break;
         case $this->lookupNamespace('gphoto') . ':' . 'commentCount':
             $commentCount = new Extension\CommentCount();
             $commentCount->transferFromDOM($child);
             $this->_gphotoCommentCount = $commentCount;
             break;
         case $this->lookupNamespace('media') . ':' . 'group':
             $mediaGroup = new \Zend\GData\Media\Extension\MediaGroup();
             $mediaGroup->transferFromDOM($child);
             $this->_mediaGroup = $mediaGroup;
             break;
         case $this->lookupNamespace('atom') . ':' . 'entry':
             $entryClassName = $this->_entryClassName;
             $tmpEntry = new \Zend\GData\App\Entry($child);
             $categories = $tmpEntry->getCategory();
             foreach ($categories as $category) {
                 if ($category->scheme == Photos::KIND_PATH && $this->_entryKindClassMapping[$category->term] != "") {
                     $entryClassName = $this->_entryKindClassMapping[$category->term];
                     break;
                 } else {
                     throw new \Zend\GData\App\Exception('Entry is missing kind declaration.');
                 }
             }
             $newEntry = new $entryClassName($child);
             $newEntry->setService($this->getService());
             $this->_entry[] = $newEntry;
             break;
         default:
             parent::takeChildFromDOM($child);
             break;
     }
 }