/** * signal slot for public url generation of a file * @see \TYPO3\CMS\Core\Resource\ResourceStorage and the function getPublicUrl * * @param \TYPO3\CMS\Core\Resource\ResourceStorage $t * @param \TYPO3\CMS\Core\Resource\Driver\LocalDriver $driver * @param object $resourceObject e.g. \TYPO3\CMS\Core\Resource\File, \TYPO3\CMS\Core\Resource\Folder, \TYPO3\CMS\Core\Resource\ProcessedFile * @param boolean $relativeToCurrentScript * @param array $urlData * * @return void */ public function preGeneratePublicUrl($t, $driver, $resourceObject, $relativeToCurrentScript, $urlData) { $this->emSettings = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$this->extKey]); // check if resource is file if (is_a($resourceObject, 'TYPO3\\CMS\\Core\\Resource\\File')) { $fileData = $this->getFileData($resourceObject); $newPublicUrl = ''; $enable = true; // check if TYPO3 is in frontend mode if (TYPO3_MODE === 'FE') { if ($this->emSettings['disable_fe']) { $enable = false; } else { // check filetypes field if (!empty($this->emSettings['filetypes_fe'])) { $filetypes = explode(',', $this->emSettings['filetypes_fe']); if (in_array($fileData['extension'], $filetypes)) { } else { $enable = false; } } if ($enable) { $newPublicUrl = $driver->getPublicUrl($fileData['identifier']); } } } // check if TYPO3 is in backend mode and make the path relative to the current script // in order to make it possible to use the relative file if (TYPO3_MODE === 'BE' && $relativeToCurrentScript) { //DebuggerUtility::var_dump($this->emSettings); if ($this->emSettings['disable_be']) { $enable = false; } else { // check filetypes field if (!empty($this->emSettings['filetypes_be'])) { $filetypes = explode(',', $this->emSettings['filetypes_be']); if (in_array($fileData['extension'], $filetypes)) { } else { $enable = false; } } if ($enable) { $publicUrl = $driver->getPublicUrl($fileData['identifier']); $absolutePathToContainingFolder = PathUtility::dirname(PATH_site . $publicUrl); $pathPart = PathUtility::getRelativePathTo($absolutePathToContainingFolder); $filePart = substr(PATH_site . $publicUrl, strlen($absolutePathToContainingFolder) + 1); $newPublicUrl = $pathPart . $filePart; } } } if (!empty($newPublicUrl) && !empty($fileData['modDate']) && $enable) { $urlData['publicUrl'] = $newPublicUrl . '?v=' . $fileData['modDate']; } } }
/** * @test */ public function driverConfigVerificationFailsIfConfiguredBasePathDoesNotExist() { $this->setExpectedException('TYPO3\\CMS\\Core\\Resource\\Exception\\InvalidConfigurationException', '', 1299233097); $driverConfiguration = array('basePath' => \vfsStream::url($this->basedir . 'doesntexist/')); $this->assertFalse(file_exists($driverConfiguration['basePath'])); \TYPO3\CMS\Core\Resource\Driver\LocalDriver::verifyConfiguration($driverConfiguration); }
/** * Processes the configuration for this driver. * * @return void */ public function processConfiguration() { parent::processConfiguration(); }