00001 <?php
00016 class AlbumModule extends SObject {
00017
00018
00019
00020 protected $captionsByImage;
00021 protected $images;
00022
00023
00027 public function __construct() {
00028 $this->captionsByImages = array();
00029 $this->images = array();
00030 }
00031
00044 public function addImageById($imageId, $caption='') {
00045 if(isset($imageId) && $imageId != NULL && $imageId != '') {
00046 $this->images[] = $imageId;
00047 $this->captionsByImage[$this->images[count($this->images) - 1]] = $caption;
00048 } else {
00049 return FALSE;
00050 }
00051 return TRUE;
00052 }
00053
00065 public function addImageByResource($imageRes, $caption='') {
00066 $this->images[] = $imageRes->getId();
00067 if($caption == '') {
00068 $this->captionsByImage[$this->images[count($this->images) - 1]]= $imageRes->getDescription();
00069 } else {
00070 $this->captionsByImage[$this->images[count($this->images) - 1]] = $caption;
00071 }
00072 return TRUE;
00073 }
00074
00084 public function addImageDirectory($imageDir) {
00085 if (! $imageDir instanceOf SnapDirectory) {
00086 $this->setPrettyError('addImageDirectory',
00087 'Attempting to add an image directory that is not a SnapDirectory.');
00088 return FALSE;
00089 }
00090
00091 $imageResources = $imageDir->listContents();
00092
00093 foreach($imageResources as $resource) {
00094 if($resource->getType() == "Resource")
00095 $this->addImageByResource($resource);
00096 }
00097 return TRUE;
00098 }
00099
00107 public function generateAlbumXML() {
00108 $albumXML = '<XMLAlbum>';
00109 if (count($this->images) == 0) {
00110 $albumXML .= $this->generateSectionXML(null, '');
00111 }
00112 foreach($this->images as $image) {
00113 $albumXML .= $this->generateSectionXML($image, $this->captionsByImage[$image]);
00114 }
00115 $albumXML .= '</XMLAlbum>';
00116 return $albumXML;
00117 }
00118
00129 protected function generateSectionXML($imageId, $caption) {
00130 $mediaTag = '';
00131
00132 if ($imageId != null) {
00133 $mediaTag = "<media snapid='$imageId'/>";
00134 }
00135
00136 $returnXML = <<<END_OF_XML
00137
00138 <section mapping="item">
00139 <sectionData>
00140 $mediaTag
00141 </sectionData>
00142 <p>
00143 $caption
00144 </p>
00145 </section>
00146 END_OF_XML;
00147 return $returnXML;
00148 }
00149 }
00150 ?>