protected function getObject() { $this->object->merge(); $this->title = $this->object->title; $this->crumbName = $this->object->title; $this->addCrumb(); if (null !== ($tag = $this->request->consume())) { $obj = null; if (null !== ($uuid = UUID::isUUID($tag))) { $rs = $this->model->query(array('uuid' => $uuid, 'parent' => $this->object->uuid)); $obj = $rs->next(); } else { $rs = $this->model->query(array('tag' => $tag, 'parent' => $this->object->uuid)); $obj = $rs->next(); } if (!$obj) { return $this->error(Error::OBJECT_NOT_FOUND); } $this->version = $obj; } if (null !== ($tag = $this->request->consume())) { switch ($tag) { case 'player': require_once MODULES_ROOT . 'media/player.php'; $inst = new MediaPlayer(); $inst->object = $this->version; $inst->episode = $this->object; $inst->process($this->request); return false; default: return $this->error(Error::OBJECT_NOT_FOUND); } } return true; }
/** * Outputs html for given media type * @return string */ public function __toString() { global $Campsite; ob_start(); echo '<div class="mediaplayer ', str_replace('/', ' ', $this->type), '">'; // present by content type switch ($this->type) { case 'image/jpeg': case 'image/png': case 'image/gif': echo '<img src="', $this->src, '" height="240" alt="', $this->alt, '" />'; break; case 'audio/mpeg': case 'audio/ogg': echo '<audio src="', $this->src, '" controls="controls">'; echo '</audio>'; break; case 'video/mp4': case 'video/ogg': case 'video/webm': // html5 + flow player fallback include dirname(__FILE__) . '/video.phtml'; break; case 'video/flv': $player = $Campsite['WEBSITE_URL'] . '/videos/player.swf'; include dirname(__FILE__) . '/flash.phtml'; break; } // download link echo '<p><strong>', getGS('Download file'), ':</strong> '; echo '<a href="', $this->src, '">', $this->alt, '</a></p>'; echo '</div>'; if (!self::$playerLoaded) { //include_once dirname(__FILE__) . '/player.phtml'; self::$playerLoaded = TRUE; } return ob_get_clean(); }
/** * Creates individual Entry objects of the appropriate type and * stores them in the $_entry array 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('media') . ':' . 'content': $content = new MediaContent(); $content->transferFromDOM($child); $this->_content[] = $content; break; case $this->lookupNamespace('media') . ':' . 'category': $category = new MediaCategory(); $category->transferFromDOM($child); $this->_category[] = $category; break; case $this->lookupNamespace('media') . ':' . 'copyright': $copyright = new MediaCopyright(); $copyright->transferFromDOM($child); $this->_copyright = $copyright; break; case $this->lookupNamespace('media') . ':' . 'credit': $credit = new MediaCredit(); $credit->transferFromDOM($child); $this->_credit[] = $credit; break; case $this->lookupNamespace('media') . ':' . 'description': $description = new MediaDescription(); $description->transferFromDOM($child); $this->_description = $description; break; case $this->lookupNamespace('media') . ':' . 'hash': $hash = new MediaHash(); $hash->transferFromDOM($child); $this->_hash[] = $hash; break; case $this->lookupNamespace('media') . ':' . 'keywords': $keywords = new MediaKeywords(); $keywords->transferFromDOM($child); $this->_keywords = $keywords; break; case $this->lookupNamespace('media') . ':' . 'player': $player = new MediaPlayer(); $player->transferFromDOM($child); $this->_player[] = $player; break; case $this->lookupNamespace('media') . ':' . 'rating': $rating = new MediaRating(); $rating->transferFromDOM($child); $this->_rating[] = $rating; break; case $this->lookupNamespace('media') . ':' . 'restriction': $restriction = new MediaRestriction(); $restriction->transferFromDOM($child); $this->_restriction[] = $restriction; break; case $this->lookupNamespace('media') . ':' . 'text': $text = new MediaText(); $text->transferFromDOM($child); $this->_mediaText[] = $text; break; case $this->lookupNamespace('media') . ':' . 'thumbnail': $thumbnail = new MediaThumbnail(); $thumbnail->transferFromDOM($child); $this->_thumbnail[] = $thumbnail; break; case $this->lookupNamespace('media') . ':' . 'title': $title = new MediaTitle(); $title->transferFromDOM($child); $this->_title = $title; break; default: parent::takeChildFromDOM($child); break; } }