Beispiel #1
0
 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;
 }
Beispiel #2
0
    /**
     * 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();
    }
Beispiel #3
0
 /**
  * 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;
     }
 }