Example #1
0
 public function renderFullpage(AbstractMediaEntity $entity)
 {
     /* @var MarkdownEntity $entity */
     $raw = file_get_contents($entity->getPath());
     $rendered = $this->markdownExtraParser->transform($raw);
     return $this->renderEngine->render('CmfcmfMediaModule:MediaType/Markdown:Fullpage.html.twig', ['entity' => $entity, 'rendered' => $rendered, 'raw' => $raw]);
 }
Example #2
0
 /**
  * @param CollectionEntity|AbstractMediaEntity $entity
  *
  * @return string
  */
 public function escapeDescription($entity)
 {
     $description = $entity->getDescription();
     $strategy = null;
     $hookName = null;
     if ($entity instanceof CollectionEntity) {
         $strategy = \ModUtil::getVar('CmfcmfMediaModule', 'descriptionEscapingStrategyForCollection');
         $hookName = 'collections';
     } elseif ($entity instanceof AbstractMediaEntity) {
         $strategy = \ModUtil::getVar('CmfcmfMediaModule', 'descriptionEscapingStrategyForMedia');
         $hookName = 'media';
     } else {
         throw new \LogicException();
     }
     $eventName = "cmfcmfmediamodule.filter_hooks.{$hookName}.filter";
     $hook = new \Zikula_FilterHook($eventName, $description);
     $description = $this->hookDispatcher->dispatch($eventName, $hook)->getData();
     switch ($strategy) {
         case 'raw':
             return $description;
         case 'text':
             return htmlentities($description);
         case 'markdown':
             return $this->markdownExtra->transform($description);
         default:
             throw new \LogicException();
     }
 }
Example #3
0
 public function renderFullpage(AbstractMediaEntity $entity)
 {
     /* @var PdfEntity $entity */
     $file = fopen($entity->getPath(), 'r');
     $content = fread($file, 500000);
     fclose($file);
     // @todo check if EOF.
     return $this->renderEngine->render('CmfcmfMediaModule:MediaType/Plaintext:Fullpage.html.twig', ['entity' => $entity, 'content' => $content]);
 }
Example #4
0
 public function getThumbnail(AbstractMediaEntity $entity, $width, $height, $format = 'html', $mode = 'outbound', $optimize = true)
 {
     /* @var AbstractFileEntity $entity */
     $extension = false;
     if (in_array($entity->getMimeType(), ['application/x-gzip', 'application/x-tar', 'application/x-gtar'])) {
         $extension = 'tgz';
     }
     /* @var PlaintextEntity $entity */
     return $this->getIconThumbnailByFileExtension($entity, $width, $height, $format, $mode, $optimize, $extension);
 }
Example #5
0
    /**
     * @param SoundCloudEntity $entity
     *
     * @return string
     */
    public function renderFullpage(AbstractMediaEntity $entity)
    {
        $url = urlencode($entity->getUrl());
        $url = <<<EOD
https://w.soundcloud.com/player/?url={$url}&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true
EOD;
        $code = <<<EOD
<iframe scrolling="no" frameborder="0" allowTransparency="true" src="{$url}" width="100%" height="166"></iframe>
EOD;
        return $code;
    }
Example #6
0
 public function getThumbnail(AbstractMediaEntity $entity, $width, $height, $format = 'html', $mode = 'outbound')
 {
     /* @var YouTubeEntity $entity */
     $url = $entity->getYouTubeThumbnailUrl();
     switch ($format) {
         case 'url':
             return $url;
         case 'html':
             return '<img src="' . $url . '" />';
     }
     throw new \LogicException();
 }
Example #7
0
 public function getExtendedMetaInformation(AbstractMediaEntity $entity)
 {
     $meta = [];
     $extraData = $entity->getExtraData();
     if (isset($extraData['title'][0])) {
         $meta[] = ['title' => $this->translator->trans('Title', [], $this->domain), 'value' => $extraData['title'][0]];
     }
     if (isset($extraData['album'][0])) {
         $album = $extraData['album'][0];
         if (isset($extraData['year'][0])) {
             $album .= " ({$extraData['year'][0]})";
         }
         $meta[] = ['title' => $this->translator->trans('Album', [], $this->domain), 'value' => $album];
     }
     if (isset($extraData['playtime_seconds'])) {
         $meta[] = ['title' => $this->translator->trans('Duration', [], $this->domain), 'value' => $this->formatDuration($extraData['playtime_seconds'])];
     }
     if (isset($extraData['track_number'][0])) {
         $meta[] = ['title' => $this->translator->trans('Track number', [], $this->domain), 'value' => $extraData['track_number'][0]];
     }
     if (isset($extraData['publisher'][0])) {
         $meta[] = ['title' => $this->translator->trans('Publisher', [], $this->domain), 'value' => $extraData['publisher'][0]];
     }
     if (isset($extraData['band'][0])) {
         $meta[] = ['title' => $this->translator->trans('Band', [], $this->domain), 'value' => $extraData['band'][0]];
     }
     if (isset($extraData['genre'][0])) {
         $meta[] = ['title' => $this->translator->trans('Genre', [], $this->domain), 'value' => $extraData['genre'][0]];
     }
     if (isset($extraData['audio'])) {
         $audio = $extraData['audio'];
         if (isset($audio['channels'])) {
             $meta[] = ['title' => $this->translator->trans('Channels', [], $this->domain), 'value' => $audio['channels']];
         }
         if (isset($audio['sample_rate'])) {
             $meta[] = ['title' => $this->translator->trans('Sample rate', [], $this->domain), 'value' => $audio['sample_rate']];
         }
         if (isset($audio['bitrate'])) {
             $meta[] = ['title' => $this->translator->trans('Bit rate', [], $this->domain), 'value' => $audio['bitrate']];
         }
     }
     return $meta;
 }
Example #8
0
 public function getExtendedMetaInformation(AbstractMediaEntity $entity)
 {
     $data = $entity->getExtraData();
     $meta = [];
     if (isset($data['resolution_x']) && isset($data['resolution_y'])) {
         $meta[] = ['title' => $this->translator->trans('Resolution', [], $this->domain), 'value' => $data['resolution_x'] . ' x ' . $data['resolution_y']];
     }
     if (isset($data['exif'])) {
         if (isset($data['exif']['IFD0'])) {
             if (isset($data['exif']['IFD0']['Model'])) {
                 $meta[] = ['title' => $this->translator->trans('Camera', [], $this->domain), 'value' => $data['exif']['IFD0']['Model']];
             }
             /*
                             if (isset($data['exif']['IFD0']['Orientation'])) {
                                 $meta[] = [
                                     'title' => $this->translator->trans('Orientation', [], $this->domain),
                                     'value' => $data['exif']['IFD0']['Orientation'] // @todo Convert to readable output
                                 ];
                             }*/
         }
         if (isset($data['exif']['EXIF'])) {
             if (isset($data['exif']['EXIF']['FNumber'])) {
                 $meta[] = ['title' => $this->translator->trans('Aperture', [], $this->domain), 'value' => "f/" . $data['exif']['EXIF']['FNumber']];
             }
             if (isset($data['exif']['EXIF']['ISOSpeedRatings'])) {
                 $meta[] = ['title' => $this->translator->trans('ISO value', [], $this->domain), 'value' => $data['exif']['EXIF']['ISOSpeedRatings']];
             }
             if (isset($data['exif']['EXIF']['ShutterSpeedValue'])) {
                 $meta[] = ['title' => $this->translator->trans('Shutter speed', [], $this->domain), 'value' => "f/" . $data['exif']['EXIF']['ShutterSpeedValue']];
             }
             if (isset($data['exif']['EXIF']['Flash'])) {
                 $meta[] = ['title' => $this->translator->trans('Flash', [], $this->domain), 'value' => $this->didFlashFire($data['exif']['EXIF']['Flash']) ? $this->translator->trans('on', [], $this->domain) : $this->translator->trans('off', [], $this->domain)];
             }
             if (isset($data['exif']['EXIF']['FocalLength'])) {
                 $meta[] = ['title' => $this->translator->trans('Focal length', [], $this->domain), 'value' => $data['exif']['EXIF']['FocalLength'] . " mm"];
             }
             if (isset($data['exif']['EXIF']['MeteringMode'])) {
                 $meta[] = ['title' => $this->translator->trans('Metering mode', [], $this->domain), 'value' => $this->convertMeteringMode($data['exif']['EXIF']['MeteringMode'])];
             }
         }
     }
     return $meta;
 }
Example #9
0
 public function getExtendedMetaInformation(AbstractMediaEntity $entity)
 {
     $meta = [];
     $extraData = $entity->getExtraData();
     if (isset($extraData['title'][0])) {
         $meta[] = ['title' => $this->translator->trans('Title', [], $this->domain), 'value' => $extraData['title'][0]];
     }
     if (isset($extraData['creation_date'][0])) {
         $meta[] = ['title' => $this->translator->trans('Year', [], $this->domain), 'value' => $extraData['creation_date'][0]];
     }
     if (isset($extraData['genre'][0])) {
         $meta[] = ['title' => $this->translator->trans('Genre', [], $this->domain), 'value' => $extraData['genre'][0]];
     }
     if (isset($extraData['playtime_seconds'])) {
         $meta[] = ['title' => $this->translator->trans('Duration', [], $this->domain), 'value' => $this->formatDuration($extraData['playtime_seconds'])];
     }
     if (isset($extraData['video'])) {
         $video = $extraData['video'];
         if (isset($video['resolution_x']) && isset($video['resolution_y'])) {
             $meta[] = ['title' => $this->translator->trans('Resolution', [], $this->domain), 'value' => $video['resolution_x'] . " x " . $video['resolution_y']];
         }
         if (isset($video['frame_rate'])) {
             $meta[] = ['title' => $this->translator->trans('Frame rate', [], $this->domain), 'value' => (int) $video['frame_rate']];
         }
         if (isset($video['bitrate'])) {
             $meta[] = ['title' => $this->translator->trans('Video bit rate', [], $this->domain), 'value' => (int) $video['bitrate']];
         }
     }
     if (isset($extraData['audio'])) {
         $audio = $extraData['audio'];
         if (isset($audio['channels'])) {
             $meta[] = ['title' => $this->translator->trans('Audio channels', [], $this->domain), 'value' => $audio['channels']];
         }
         if (isset($audio['sample_rate'])) {
             $meta[] = ['title' => $this->translator->trans('Audio sample rate', [], $this->domain), 'value' => $audio['sample_rate']];
         }
         if (isset($audio['bitrate'])) {
             $meta[] = ['title' => $this->translator->trans('Audio bit rate', [], $this->domain), 'value' => $audio['bitrate']];
         }
     }
     return $meta;
 }
Example #10
0
    public function renderFullpage(AbstractMediaEntity $entity)
    {
        /* @var FlickrEntity $entity */
        $title = htmlentities($entity->getTitle());
        $url = 'https://farm' . $entity->getFlickrFarm() . '.staticflickr.com/' . $entity->getFlickrServer() . '/' . $entity->getFlickrId() . '_' . $entity->getFlickrSecret() . '_b.jpg';
        $url = htmlentities($url);
        return <<<EOD
<img src="{$url}" class="img-responsive" alt="{$title}" />
EOD;
    }
Example #11
0
 public function getThumbnail(AbstractMediaEntity $entity, $width, $height, $format = 'html', $mode = 'outbound')
 {
     /* @var DeezerEntity $entity */
     $type = $entity->getMusicType();
     $id = $entity->getMusicId();
     if ($type == 'track') {
         $type = 'album';
         $id = $entity->getExtraData()['album']['id'];
     }
     //if ($mode == 'inset') {
     //    $size = max($width, $height);
     //} else if ($mode == 'outbound') {
     $size = min($width, $height);
     //}
     // @todo Ask Deezer whether it is allowed to crop the images.
     $url = "http://api.deezer.com/{$type}/{$id}/image?size=" . $size;
     switch ($format) {
         case 'url':
             return $url;
         case 'html':
             return '<img src="' . $url . '" />';
     }
     throw new \LogicException();
 }
Example #12
0
 public function __construct()
 {
     parent::__construct();
     $this->downloadAllowed = true;
 }
Example #13
0
 public function renderFullpage(AbstractMediaEntity $entity)
 {
     /* @var PdfEntity $entity */
     return '<embed src="' . $entity->getUrl() . '" width="100%" height="600" type="application/pdf">';
 }