コード例 #1
0
 /**
  * @param array|string $allowed
  * @param array|string $disallowed
  * @param array|string $values
  * @test
  * @dataProvider invalidInlineChildrenFilterParametersDataProvider
  */
 public function areInlineChildrenFilteredWithInvalidParameters($allowed, $disallowed, $values)
 {
     $this->parameters = array('allowedFileExtensions' => $allowed, 'disallowedFileExtensions' => $disallowed, 'values' => $values);
     $this->tceMainMock->expects($this->never())->method('deleteAction');
     $this->fileFactoryMock->expects($this->never())->method('getFileReferenceObject');
     $this->filter->filterInlineChildren($this->parameters, $this->tceMainMock);
 }
コード例 #2
0
 /**
  * @param array $databaseRow
  * @return ProcessedFile
  */
 protected function createDomainObject(array $databaseRow)
 {
     $originalFile = $this->resourceFactory->getFileObject((int) $databaseRow['original']);
     $originalFile->setStorage($this->resourceFactory->getStorageObject($originalFile->getProperty('storage')));
     $taskType = $databaseRow['task_type'];
     $configuration = unserialize($databaseRow['configuration']);
     return GeneralUtility::makeInstance($this->objectType, $originalFile, $taskType, $configuration, $databaseRow);
 }
コード例 #3
0
 /**
  *
  * @param string                               $identifier
  * @param \HDNET\Importr\Domain\Model\Strategy $strategy
  *
  * @return void
  */
 public function previewAction($identifier, Strategy $strategy)
 {
     $file = $this->resourceFactory->getObjectFromCombinedIdentifier($identifier);
     $this->view->assign('filepath', $file->getPublicUrl());
     $this->view->assign('strategy', $strategy);
     $previewData = $this->importManager->getPreview($strategy, $file->getPublicUrl());
     $this->view->assign('preview', $previewData);
 }
コード例 #4
0
 /**
  * @param string $reference
  * @return string
  */
 public function convertFileReferenceToTemplatePathAndFilename($reference)
 {
     $filename = array_pop(explode(':', $reference));
     if (true === ctype_digit($filename)) {
         return $this->resourceFactory->getFileObjectFromCombinedIdentifier($reference);
     }
     $reference = GeneralUtility::getFileAbsFileName($reference);
     return $reference;
 }
コード例 #5
0
ファイル: FalViewHelper.php プロジェクト: JostBaron/vhs
 /**
  * @param mixed $identity
  * @return mixed
  */
 public function getResource($identity)
 {
     $fileReference = $this->resourceFactory->getFileReferenceObject(intval($identity));
     $file = $fileReference->getOriginalFile();
     $fileReferenceProperties = $fileReference->getProperties();
     $fileProperties = ResourceUtility::getFileArray($file);
     ArrayUtility::mergeRecursiveWithOverrule($fileProperties, $fileReferenceProperties, TRUE, FALSE, FALSE);
     return $fileProperties;
 }
コード例 #6
0
 /**
  * Initiates the ICS download for the given event
  *
  * @param \DERHANSEN\SfEventMgt\Domain\Model\Event $event The event
  *
  * @throws \RuntimeException Exception
  *
  * @return void
  */
 public function downloadiCalendarFile(\DERHANSEN\SfEventMgt\Domain\Model\Event $event)
 {
     $storage = $this->resourceFactory->getDefaultStorage();
     if ($storage === NULL) {
         throw new \RuntimeException('Could not get the default storage', 1475590001);
     }
     $icalContent = $this->getICalendarContent($event);
     $tempFolder = $storage->getFolder('_temp_');
     $tempFile = $storage->createFile('event.ics', $tempFolder);
     $tempFile->setContents($icalContent);
     $storage->dumpFileContents($tempFile, TRUE, 'event_' . $event->getUid() . '.ics');
 }
コード例 #7
0
ファイル: FactoryTest.php プロジェクト: noxludo/TYPO3v4-Core
 /**
  * @test
  */
 public function getDriverObjectAcceptsDriverClassName()
 {
     $mockedDriver = $this->getMock('TYPO3\\CMS\\Core\\Resource\\Driver\\AbstractDriver', array(), array(), '', FALSE);
     $driverFixtureClass = get_class($mockedDriver);
     \TYPO3\CMS\Core\Utility\GeneralUtility::addInstance($driverFixtureClass, $mockedDriver);
     $mockedMount = $this->getMock('TYPO3\\CMS\\Core\\Resource\\ResourceStorage', array(), array(), '', FALSE);
     $mockedRegistry = $this->getMock('TYPO3\\CMS\\Core\\Resource\\Driver\\DriverRegistry');
     $mockedRegistry->expects($this->once())->method('getDriverClass')->with($this->equalTo($driverFixtureClass))->will($this->returnValue($driverFixtureClass));
     \TYPO3\CMS\Core\Utility\GeneralUtility::setSingletonInstance('TYPO3\\CMS\\Core\\Resource\\Driver\\DriverRegistry', $mockedRegistry);
     $obj = $this->fixture->getDriverObject($driverFixtureClass, array());
     $this->assertInstanceOf('TYPO3\\CMS\\Core\\Resource\\Driver\\AbstractDriver', $obj);
 }
コード例 #8
0
 /**
  * Initiates the CSV downloads for registrations of the given event uid
  *
  * @param int $eventUid EventUid
  * @param array $settings Settings
  *
  * @throws \RuntimeException RuntimeException
  * @return void
  */
 public function downloadRegistrationsCsv($eventUid, $settings = array())
 {
     $storage = $this->resourceFactory->getDefaultStorage();
     if ($storage === NULL) {
         throw new RuntimeException('Could not get the default storage', 1475590001);
     }
     $registrations = $this->exportRegistrationsCsv($eventUid, $settings);
     $tempFolder = $storage->getFolder('_temp_');
     $tempFile = $storage->createFile('sf_events_export.csv', $tempFolder);
     $tempFile->setContents($registrations);
     $storage->dumpFileContents($tempFile, TRUE, 'registrations_' . date('dmY_His') . '.csv');
 }
コード例 #9
0
 /**
  * action initialize
  *
  * @return void
  */
 protected function initializeAction()
 {
     //print_r($this->settings);
     $this->folderPath = str_replace('1:', '', $this->settings['flex_startingpoint']);
     $this->folderCombinedId = $this->settings['flex_startingpoint'];
     //$fac = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\ResourceFactory'); // create instance to storage repository
     $this->storageObj = $this->resourceFactory->getStorageObjectFromCombinedIdentifier($this->folderCombinedId);
     $this->folderObj = $this->storageObj->getFolder($this->folderPath);
     $files = $this->folderObj->getFiles();
     foreach ($files as $file) {
         $this->filesList[$file->getUid()]['name'] = $file->getName();
         $this->filesList[$file->getUid()]['identifier'] = $file->getIdentifier();
     }
 }
コード例 #10
0
 /**
  * @param $status
  * @param $table
  * @param $id
  * @param $fieldArray
  * @param $self
  */
 function processDatamap_postProcessFieldArray($status, $table, $id, &$fieldArray, &$self)
 {
     if ($table == 'tx_html5videoplayer_domain_model_video') {
         $data = $fieldArray;
         if ($status == 'update') {
             $data = array_merge($GLOBALS['TYPO3_DB']->exec_SELECTgetSingleRow('*', 'tx_html5videoplayer_domain_model_video', 'uid=' . (int) $id), $data);
         }
         $vimeoUrl = $data['vimeo'];
         if (($status == 'update' || $status == 'new') && $vimeoUrl != '' && GeneralUtility::isValidUrl($vimeoUrl)) {
             if (preg_match('/https?:\\/\\/(?:www\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|)(\\d+)(?:$|\\/|\\?)/i', $vimeoUrl, $matches)) {
                 $videoId = $matches[3];
                 $videoData = unserialize(GeneralUtility::getUrl('http://vimeo.com/api/v2/video/' . $videoId . '.php'));
                 if (is_array($videoData)) {
                     // We're only interested in index zero.
                     $videoData = $videoData[0];
                     if (!isset($data['title']) || trim($data['title']) == '') {
                         $fieldArray['title'] = $videoData['title'];
                     }
                     if (!isset($data['description']) || trim($data['description']) == '') {
                         $fieldArray['description'] = $videoData['description'];
                     }
                     if (!isset($data['posterimage']) || trim($data['posterimage']) == '') {
                         $resourceFactory = ResourceFactory::getInstance();
                         $folder = $resourceFactory->retrieveFileOrFolderObject($this->getUploadFolder());
                         $thumbnailData = GeneralUtility::getUrl($videoData['thumbnail_large']);
                         $file = $folder->createFile(basename($videoData['thumbnail_large']) . '.jpg');
                         $file->setContents($thumbnailData);
                         $fieldArray['posterimage'] = 'file:' . $file->getUid();
                     }
                 }
             }
         }
     }
 }
コード例 #11
0
 /**
  * Returns a processed image to be displayed on the Frontend.
  *
  * @param string $content Content input (not used).
  * @param array $conf TypoScript configuration
  * @return string HTML output
  */
 public function renderImageAttributes($content = '', $conf)
 {
     $imageAttributes = $this->getImageAttributes();
     // It is pretty rare to be in presence of an external image as the default behaviour
     // of the RTE is to download the external image and create a local image.
     // However, it may happen if the RTE has the flag "disable"
     if (!$this->isExternalImage()) {
         $fileUid = (int) $imageAttributes['data-htmlarea-file-uid'];
         if ($fileUid) {
             try {
                 $file = Resource\ResourceFactory::getInstance()->getFileObject($fileUid);
                 if ($imageAttributes['src'] !== $file->getPublicUrl()) {
                     // Source file is a processed image
                     $imageConfiguration = array('width' => (int) $imageAttributes['width'], 'height' => (int) $imageAttributes['height']);
                     $processedFile = $this->getMagicImageService()->createMagicImage($file, $imageConfiguration);
                     $additionalAttributes = array('src' => $processedFile->getPublicUrl(), 'title' => $imageAttributes['title'] ?: $file->getProperty('title'), 'alt' => $imageAttributes['alt'] ?: $file->getProperty('alternative'), 'width' => $processedFile->getProperty('width'), 'height' => $processedFile->getProperty('height'));
                     $imageAttributes = array_merge($imageAttributes, $additionalAttributes);
                 }
             } catch (Resource\Exception\FileDoesNotExistException $fileDoesNotExistException) {
                 // Log the fact the file could not be retrieved.
                 $message = sprintf('I could not find file with uid "%s"', $fileUid);
                 $this->getLogger()->error($message);
             }
         }
     }
     return '<img ' . GeneralUtility::implodeAttributes($imageAttributes, TRUE, TRUE) . ' />';
 }
コード例 #12
0
 /**
  * Constructor for initializing the class
  *
  * @return 	void
  * @todo Define visibility
  */
 public function init()
 {
     // Initialize GPvars:
     $this->target = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('target');
     $this->returnUrl = \TYPO3\CMS\Core\Utility\GeneralUtility::sanitizeLocalUrl(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('returnUrl'));
     if (!$this->returnUrl) {
         $this->returnUrl = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . TYPO3_mainDir . \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('file_list') . '&id=' . rawurlencode($this->target);
     }
     // Create the folder object
     if ($this->target) {
         $this->folderObject = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->retrieveFileOrFolderObject($this->target);
     }
     // Cleaning and checking target directory
     if (!$this->folderObject) {
         $title = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_file_list.xml:paramError', TRUE);
         $message = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_file_list.xml:targetNoDir', TRUE);
         throw new \RuntimeException($title . ': ' . $message, 1294586843);
     }
     // Setting the title and the icon
     $icon = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('apps-filetree-root');
     $this->title = $icon . htmlspecialchars($this->folderObject->getStorage()->getName()) . ': ' . htmlspecialchars($this->folderObject->getIdentifier());
     // Setting template object
     $this->doc = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
     $this->doc->setModuleTemplate('templates/file_upload.html');
     $this->doc->backPath = $GLOBALS['BACK_PATH'];
     $this->doc->form = '<form action="tce_file.php" method="post" name="editform" enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '">';
 }
コード例 #13
0
 /**
  * Generate album add/edit buttons for click menu or toolbar
  *
  * @param string $combinedIdentifier
  * @return array
  */
 protected function generateButtons($combinedIdentifier)
 {
     $buttons = array();
     // In some folder copy/move actions in file list a invalid id is passed
     try {
         /** @var $file \TYPO3\CMS\Core\Resource\Folder */
         $folder = ResourceFactory::getInstance()->retrieveFileOrFolderObject($combinedIdentifier);
     } catch (ResourceDoesNotExistException $exception) {
         $folder = NULL;
     } catch (InsufficientFolderAccessPermissionsException $exception) {
         $folder = NULL;
     }
     if ($folder && $folder instanceof Folder && !$folder->getStorage()->isPublic() && in_array($folder->getRole(), array(Folder::ROLE_DEFAULT, Folder::ROLE_USERUPLOAD))) {
         /** @var \BeechIt\FalSecuredownload\Service\Utility $utility */
         $utility = GeneralUtility::makeInstance('BeechIt\\FalSecuredownload\\Service\\Utility');
         $folderRecord = $utility->getFolderRecord($folder);
         $menuItems[] = 'spacer';
         if ($folderRecord) {
             $buttons[] = $this->createLink($this->sL('clickmenu.folderpermissions'), $this->sL('clickmenu.folderpermissions'), IconUtility::getSpriteIcon('extensions-fal_securedownload-folder', array(), array('status-overlay-access-restricted' => '')), "alt_doc.php?edit[tx_falsecuredownload_folder][" . $folderRecord['uid'] . "]=edit");
         } else {
             $buttons[] = $this->createLink($this->sL('clickmenu.folderpermissions'), $this->sL('clickmenu.folderpermissions'), IconUtility::getSpriteIcon('extensions-fal_securedownload-folder', array(), array('extensions-fal_securedownload-overlay-permissions' => '')), "alt_doc.php?edit[tx_falsecuredownload_folder][0]=new&defVals[tx_falsecuredownload_folder][folder_hash]=" . $folder->getHashedIdentifier() . "&defVals[tx_falsecuredownload_folder][storage]=" . $folder->getStorage()->getUid() . "&defVals[tx_falsecuredownload_folder][folder]=" . $folder->getIdentifier());
         }
     }
     return $buttons;
 }
コード例 #14
0
 /**
  * Processing the focus point crop (fallback to LocalCropScaleMaskHelper)
  *
  * @param TaskInterface $task
  *
  * @return array|NULL
  */
 public function process(TaskInterface $task)
 {
     $configuration = $task->getConfiguration();
     $crop = $configuration['crop'] ? json_decode($configuration['crop']) : null;
     if ($crop instanceof \stdClass && isset($crop->x)) {
         // if crop is enable release the process
         return parent::process($task);
     }
     $sourceFile = $task->getSourceFile();
     try {
         if (self::$deepCheck === false) {
             self::$deepCheck = true;
             $ratio = $this->getCurrentRatioConfiguration();
             $this->dimensionService->getRatio($ratio);
             $newFile = $this->focusCropService->getCroppedImageSrcByFile($sourceFile, $ratio);
             $file = ResourceFactory::getInstance()->retrieveFileOrFolderObject($newFile);
             $targetFile = $task->getTargetFile();
             ObjectAccess::setProperty($targetFile, 'originalFile', $file, true);
             ObjectAccess::setProperty($targetFile, 'originalFileSha1', $file->getSha1(), true);
             ObjectAccess::setProperty($targetFile, 'storage', $file->getStorage(), true);
             ObjectAccess::setProperty($task, 'sourceFile', $file, true);
             ObjectAccess::setProperty($task, 'targetFile', $targetFile, true);
         }
     } catch (\Exception $ex) {
     }
     self::$deepCheck = false;
     return parent::process($task);
 }
コード例 #15
0
 /**
  * Initialize the storage repository.
  */
 public function init()
 {
     $this->storageRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\StorageRepository');
     $this->storages = $this->storageRepository->findAll();
     // Add default storage for core files
     $this->storages[] = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject(0);
 }
コード例 #16
0
 /**
  * Entry method for use as TCEMain "inline" field filter
  *
  * @param array $parameters
  * @param \TYPO3\CMS\Core\DataHandling\DataHandler $tceMain
  * @return array
  */
 public function filterInlineChildren(array $parameters, \TYPO3\CMS\Core\DataHandling\DataHandler $tceMain)
 {
     $values = $parameters['values'];
     if ($parameters['allowedFileExtensions']) {
         $this->setAllowedFileExtensions($parameters['allowedFileExtensions']);
     }
     if ($parameters['disallowedFileExtensions']) {
         $this->setDisallowedFileExtensions($parameters['disallowedFileExtensions']);
     }
     $cleanValues = array();
     if (is_array($values)) {
         foreach ($values as $value) {
             if (empty($value)) {
                 continue;
             }
             $parts = \TYPO3\CMS\Core\Utility\GeneralUtility::revExplode('_', $value, 2);
             $fileReferenceUid = $parts[count($parts) - 1];
             $fileReference = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getFileReferenceObject($fileReferenceUid);
             $file = $fileReference->getOriginalFile();
             if ($this->isAllowed($file->getName())) {
                 $cleanValues[] = $value;
             } else {
                 // Remove the erroneously created reference record again
                 $tceMain->deleteAction('sys_file_reference', $fileReferenceUid);
             }
         }
     }
     return $cleanValues;
 }
コード例 #17
0
ファイル: FileReference.php プロジェクト: plan2net/TYPO3.CMS
 /**
  * @return \TYPO3\CMS\Core\Resource\FileReference
  */
 public function getOriginalResource()
 {
     if ($this->originalResource === NULL) {
         $this->originalResource = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getFileReferenceObject($this->getUid());
     }
     return $this->originalResource;
 }
コード例 #18
0
 /**
  * @return \TYPO3\CMS\Core\Resource\FileReference
  */
 public function getOriginalResource()
 {
     if ($this->originalResource === null) {
         $this->originalResource = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getFileReferenceObject($this->_localizedUid);
     }
     return $this->originalResource;
 }
コード例 #19
0
    /**
     * Initialize script class
     *
     * @return 	void
     * @todo Define visibility
     */
    public function init()
    {
        // Setting target, which must be a file reference to a file within the mounts.
        $this->target = $this->origTarget = $fileIdentifier = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('target');
        $this->returnUrl = \TYPO3\CMS\Core\Utility\GeneralUtility::sanitizeLocalUrl(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('returnUrl'));
        // create the file object
        if ($fileIdentifier) {
            $this->fileObject = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->retrieveFileOrFolderObject($fileIdentifier);
        }
        // Cleaning and checking target directory
        if (!$this->fileObject) {
            $title = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_file_list.xml:paramError', TRUE);
            $message = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_file_list.xml:targetNoDir', TRUE);
            throw new \RuntimeException($title . ': ' . $message, 1294586841);
        }
        // Setting the title and the icon
        $icon = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('apps-filetree-root');
        $this->title = $icon . htmlspecialchars($this->fileObject->getStorage()->getName()) . ': ' . htmlspecialchars($this->fileObject->getIdentifier());
        // ***************************
        // Setting template object
        // ***************************
        $this->doc = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
        $this->doc->setModuleTemplate('templates/file_edit.html');
        $this->doc->backPath = $GLOBALS['BACK_PATH'];
        $this->doc->JScode = $this->doc->wrapScriptTags('
			function backToList() {	//
				top.goToModule("file_list");
			}
		');
        $this->doc->form = '<form action="tce_file.php" method="post" name="editform">';
    }
コード例 #20
0
 /**
  * Override default constructor to make it possible to instantiate this
  * class for rendering an offset table not in content object context
  *
  * @param \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer $cObj
  */
 public function __construct(\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer $cObj = NULL)
 {
     if (!is_null($cObj)) {
         $this->cObj = $cObj;
         $this->fileFactory = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance();
     }
 }
コード例 #21
0
 /**
  * Initialize
  *
  * @throws InsufficientFolderAccessPermissionsException
  */
 protected function init()
 {
     // Initialize GPvars:
     $this->target = GeneralUtility::_GP('target');
     $this->returnUrl = GeneralUtility::sanitizeLocalUrl(GeneralUtility::_GP('returnUrl'));
     if (!$this->returnUrl) {
         $this->returnUrl = GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . TYPO3_mainDir . BackendUtility::getModuleUrl('file_list') . '&id=' . rawurlencode($this->target);
     }
     // Create the folder object
     if ($this->target) {
         $this->folderObject = ResourceFactory::getInstance()->retrieveFileOrFolderObject($this->target);
     }
     if ($this->folderObject->getStorage()->getUid() === 0) {
         throw new InsufficientFolderAccessPermissionsException('You are not allowed to access folders outside your storages', 1375889834);
     }
     // Cleaning and checking target directory
     if (!$this->folderObject) {
         $title = $this->getLanguageService()->sL('LLL:EXT:lang/locallang_mod_file_list.xlf:paramError', true);
         $message = $this->getLanguageService()->sL('LLL:EXT:lang/locallang_mod_file_list.xlf:targetNoDir', true);
         throw new \RuntimeException($title . ': ' . $message, 1294586843);
     }
     // Setting up the context sensitive menu
     $this->moduleTemplate->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/ClickMenu');
     // building pathInfo for metaInformation
     $pathInfo = ['combined_identifier' => $this->folderObject->getCombinedIdentifier()];
     $this->moduleTemplate->getDocHeaderComponent()->setMetaInformation($pathInfo);
 }
コード例 #22
0
 /**
  * initializes this object
  */
 protected function init()
 {
     $this->objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
     $this->database = $GLOBALS['TYPO3_DB'];
     $this->fileRepository = $this->objectManager->get('TYPO3\\CMS\\Core\\Resource\\FileRepository');
     $fileFactory = ResourceFactory::getInstance();
     $this->storageObject = $fileFactory->getStorageObject($this->storageUid);
 }
コード例 #23
0
 /**
  * @param $relFolderPath
  * @param $pathExists
  * @return \TYPO3\CMS\Core\Resource\Folder
  */
 protected function createFolderObject($relFolderPath, $pathExists)
 {
     if (!$pathExists) {
         $storage = $this->folderRepository->findByUid(1);
         return $this->fileFactory->createFolderObject($storage, $relFolderPath, 'upload_folder');
     } else {
         return $this->fileFactory->getFolderObjectFromCombinedIdentifier("1:{$relFolderPath}");
     }
 }
コード例 #24
0
 /**
  * User function for sys_file_meta (element)
  *
  * @param array $propertyArray the array with additional configuration options.
  * @return string The HTML code for the TCEform field
  */
 public function renderFileMetadataInfo(array $propertyArray)
 {
     $fileMetadataRecord = $propertyArray['row'];
     $fileObject = null;
     if (!empty($fileMetadataRecord['file']) && $fileMetadataRecord['file'][0] > 0) {
         $fileObject = ResourceFactory::getInstance()->getFileObject((int) $fileMetadataRecord['file'][0]);
     }
     return $this->renderFileInformationContent($fileObject);
 }
コード例 #25
0
ファイル: FileUpload.php プロジェクト: visol/media
 /**
  * Render a file upload field.
  *
  * @throws \Fab\Media\Exception\EmptyPropertyException
  * @return string
  */
 public function render()
 {
     // Instantiate the file object for the whole class if possible.
     if ($this->getValue()) {
         $this->file = ResourceFactory::getInstance()->getFileObject($this->getValue());
     }
     $result = sprintf($this->template, $this->getInlineStyle(), $this->getThumbnail(), $this->getFileInfo(), $this->elementId, $this->getJavaScriptTemplate(), $this->getJavaScript());
     return $result;
 }
コード例 #26
0
ファイル: FileInfoHook.php プロジェクト: khanhdeux/typo3test
 /**
  * User function for sys_file_meta (element)
  *
  * @param array $propertyArray the array with additional configuration options.
  * @param \TYPO3\CMS\Backend\Form\FormEngine $tceformsObj the TCEforms parent object
  * @return string The HTML code for the TCEform field
  */
 public function renderFileMetadataInfo(array $propertyArray, \TYPO3\CMS\Backend\Form\FormEngine $tceformsObj)
 {
     $fileMetadataRecord = $propertyArray['row'];
     $fileObject = NULL;
     if ($fileMetadataRecord['file'] > 0) {
         $fileObject = ResourceFactory::getInstance()->getFileObject((int) $fileMetadataRecord['file']);
     }
     return $this->renderFileInformationContent($fileObject);
 }
コード例 #27
0
	/**
	 * Function execute from the Scheduler
	 *
	 * @return bool TRUE on successful execution, FALSE on error
	 */
	public function execute() {
		if ((int)$this->storageUid > 0) {
			$storage = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject($this->storageUid);
			$storage->setEvaluatePermissions(FALSE);
			$indexer = $this->getIndexer($storage);
			$indexer->processChangesInStorages();
			$storage->setEvaluatePermissions(TRUE);
		}
		return TRUE;
	}
コード例 #28
0
 /**
  * Render file tree
  */
 public function treeAction()
 {
     $resourceFactory = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance();
     try {
         $folder = $resourceFactory->getFolderObjectFromCombinedIdentifier($this->settings['storage'] . ':' . $this->settings['folder']);
     } catch (\TYPO3\CMS\Core\Resource\Exception\FolderDoesNotExistException $exception) {
         // folder not found
     }
     $this->view->assign('folder', $folder);
 }
 /**
  * Validate additional fields
  *
  * @param array $submittedData Reference to the array containing the data submitted by the user
  * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject Reference to the calling object (Scheduler's BE module)
  * @return bool True if validation was ok (or selected class is not relevant), false otherwise
  */
 public function validateAdditionalFields(array &$submittedData, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject)
 {
     $value = $submittedData['scheduler_fileStorageIndexing_storage'];
     if (!\TYPO3\CMS\Core\Utility\MathUtility::canBeInterpretedAsInteger($value)) {
         return false;
     } elseif (\TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject($submittedData['scheduler_fileStorageIndexing_storage']) !== null) {
         return true;
     }
     return false;
 }
コード例 #30
0
 /**
  * Populates the content-entries of the collection
  *
  * @return void
  */
 public function loadContents()
 {
     $resource = $this->getDatabaseConnection()->exec_SELECT_mm_query('sys_file_metadata.file', 'sys_category', 'sys_category_record_mm', 'sys_file_metadata', 'AND sys_category.uid=' . (int) $this->getItemsCriteria() . ' AND sys_category_record_mm.tablenames = \'sys_file_metadata\'');
     $resourceFactory = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance();
     if ($resource) {
         while (($record = $this->getDatabaseConnection()->sql_fetch_assoc($resource)) !== FALSE) {
             $this->add($resourceFactory->getFileObject((int) $record['file']));
         }
         $this->getDatabaseConnection()->sql_free_result($resource);
     }
 }