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]); }
/** * @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(); } }
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]); }
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); }
/** * @param SoundCloudEntity $entity * * @return string */ public function renderFullpage(AbstractMediaEntity $entity) { $url = urlencode($entity->getUrl()); $url = <<<EOD https://w.soundcloud.com/player/?url={$url}&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&visual=true EOD; $code = <<<EOD <iframe scrolling="no" frameborder="0" allowTransparency="true" src="{$url}" width="100%" height="166"></iframe> EOD; return $code; }
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(); }
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; }
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; }
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; }
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; }
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(); }
public function __construct() { parent::__construct(); $this->downloadAllowed = true; }
public function renderFullpage(AbstractMediaEntity $entity) { /* @var PdfEntity $entity */ return '<embed src="' . $entity->getUrl() . '" width="100%" height="600" type="application/pdf">'; }