/** * Checks if the given file can be read by this extractor * * @param FileInterface $file * @return bool */ public function canExtractText(FileInterface $file) { $canExtract = false; if ($file->getMimeType() === 'text/plain') { $canExtract = true; } return $canExtract; }
/** * Checks if the given file can be read by this extractor * * @param FileInterface $file * @return bool */ public function canExtractText(FileInterface $file) { $canExtract = FALSE; if ($file->getMimeType() === 'text/plain') { $canExtract = TRUE; } return $canExtract; }
/** * Render for given File(Reference) HTML output * * @param FileInterface $file * @param int|string $width TYPO3 known format; examples: 220, 200m or 200c * @param int|string $height TYPO3 known format; examples: 220, 200m or 200c * @param array $options controls = TRUE/FALSE (default TRUE), autoplay = TRUE/FALSE (default FALSE), loop = TRUE/FALSE (default FALSE) * @param bool $usedPathsRelativeToCurrentScript See $file->getPublicUrl() * @return string */ public function render(FileInterface $file, $width, $height, array $options = array(), $usedPathsRelativeToCurrentScript = FALSE) { $additionalAttributes = array(); if (!isset($options['controls']) || !empty($options['controls'])) { $additionalAttributes[] = 'controls'; } if (!empty($options['autoplay'])) { $additionalAttributes[] = 'autoplay'; } if (!empty($options['loop'])) { $additionalAttributes[] = 'loop'; } return sprintf('<video width="%d" height="%d"%s><source src="%s" type="%s"></video>', (int) $width, (int) $height, empty($additionalAttributes) ? '' : ' ' . implode(' ', $additionalAttributes), htmlspecialchars($file->getPublicUrl($usedPathsRelativeToCurrentScript)), $file->getMimeType()); }
/** * Outputs file Contents, * clears output buffer first and sends headers accordingly. * * @param FileInterface $file * @param bool $asDownload If set Content-Disposition attachment is sent, inline otherwise * @param string $alternativeFilename the filename for the download (if $asDownload is set) * @param string $overrideMimeType If set this will be used as Content-Type header instead of the automatically detected mime type. * @return void */ public function dumpFileContents(FileInterface $file, $asDownload = false, $alternativeFilename = null, $overrideMimeType = null) { $downloadName = $alternativeFilename ?: $file->getName(); $contentDisposition = $asDownload ? 'attachment' : 'inline'; header('Content-Disposition: ' . $contentDisposition . '; filename="' . $downloadName . '"'); header('Content-Type: ' . ($overrideMimeType ?: $file->getMimeType())); header('Content-Length: ' . $file->getSize()); // Cache-Control header is needed here to solve an issue with browser IE8 and lower // See for more information: http://support.microsoft.com/kb/323308 header("Cache-Control: ''"); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', array_pop($this->driver->getFileInfoByIdentifier($file->getIdentifier(), array('mtime')))) . ' GMT', true, 200); ob_clean(); flush(); while (ob_get_level() > 0) { ob_end_clean(); } $this->driver->dumpFileContents($file->getIdentifier()); }
/** * Check if given File(Reference) can be rendered * * @param FileInterface $file File of FileReference to render * @return bool */ public function canRender(FileInterface $file) { return ($file->getMimeType() === 'video/vimeo' || $file->getExtension() === 'vimeo') && $this->getOnlineMediaHelper($file) !== false; }
/** * Check if given File(Reference) can be rendered * * @param FileInterface $file File of FileReference to render * @return bool */ public function canRender(FileInterface $file) { return ($file->getMimeType() === 'audio/soundcloud' || $file->getExtension() === 'soundcloud') && $this->getOnlineMediaHelper($file) !== false; }
/** * Render for given File(Reference) HTML output * * @param FileInterface $file * @param int|string $width TYPO3 known format; examples: 220, 200m or 200c * @param int|string $height TYPO3 known format; examples: 220, 200m or 200c * @param array $options controls = TRUE/FALSE (default TRUE), autoplay = TRUE/FALSE (default FALSE), loop = TRUE/FALSE (default FALSE) * @param bool $usedPathsRelativeToCurrentScript See $file->getPublicUrl() * @return string */ public function render(FileInterface $file, $width, $height, array $options = [], $usedPathsRelativeToCurrentScript = false) { // If autoplay isn't set manually check if $file is a FileReference take autoplay from there if (!isset($options['autoplay']) && $file instanceof FileReference) { $autoplay = $file->getProperty('autoplay'); if ($autoplay !== null) { $options['autoplay'] = $autoplay; } } $attributes = []; if ((int) $width > 0) { $attributes[] = 'width="' . (int) $width . '"'; } if ((int) $height > 0) { $attributes[] = 'height="' . (int) $height . '"'; } if (!isset($options['controls']) || !empty($options['controls'])) { $attributes[] = 'controls'; } if (!empty($options['autoplay'])) { $attributes[] = 'autoplay'; } if (!empty($options['muted'])) { $attributes[] = 'muted'; } if (!empty($options['loop'])) { $attributes[] = 'loop'; } foreach (['class', 'dir', 'id', 'lang', 'style', 'title', 'accesskey', 'tabindex', 'onclick'] as $key) { if (!empty($options[$key])) { $attributes[] = $key . '="' . htmlspecialchars($options[$key]) . '"'; } } return sprintf('<video%s><source src="%s" type="%s"></video>', empty($attributes) ? '' : ' ' . implode(' ', $attributes), htmlspecialchars($file->getPublicUrl($usedPathsRelativeToCurrentScript)), $file->getMimeType()); }
/** * @param FileInterface $file * @return bool */ public function canRender(FileInterface $file) { return TYPO3_MODE === 'FE' && in_array($file->getMimeType(), $this->possibleMimeTypes, true); }