/** * additionnal cells * @param \TYPO3\CMS\Core\Resource\File|\TYPO3\CMS\Core\Resource\Folder $fileOrFolderObject Array with information about the file/directory for which to make the edit control section for the listing. */ protected function addAdditionalCells($fileOrFolderObject) { $cells = array(); if (is_a($fileOrFolderObject, 'TYPO3\\CMS\\Core\\Resource\\File') && $fileOrFolderObject->isIndexed() && $fileOrFolderObject->checkActionPermission('write')) { $metaData = $fileOrFolderObject->_getMetaData(); $data = array('sys_file_metadata' => array($metaData['uid'] => 'edit')); $editOnClick = BackendUtility::editOnClick(GeneralUtility::implodeArrayForUrl('edit', $data), $GLOBALS['BACK_PATH'], $this->listUrl()); if (version_compare(TYPO3_version, '7', '>=')) { $cells['editmetadata'] = '<a href="#" class="btn btn-default" onclick="' . htmlspecialchars($editOnClick) . '" title="Edit Metadata of this file">' . IconUtility::getSpriteIcon('actions-page-open') . '</a>'; } else { $cells['editmetadata'] = '<a href="#" onclick="' . $editOnClick . '" title="Edit Metadata of this file">' . IconUtility::getSpriteIcon('actions-document-open') . '</a>'; } } if (is_a($fileOrFolderObject, 'TYPO3\\CMS\\Core\\Resource\\Folder') && $fileOrFolderObject->checkActionPermission('write')) { $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery("uid", "tx_ameosfilemanager_domain_model_folder", "tx_ameosfilemanager_domain_model_folder.title like '" . $fileOrFolderObject->getName() . "'"); if (($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) !== FALSE) { if (Tools::getFolderPathFromUid($row['uid']) . '/' == $fileOrFolderObject->getIdentifier()) { $folder = array('tx_ameosfilemanager_domain_model_folder' => array($row['uid'] => 'edit')); $editOnClick = BackendUtility::editOnClick(GeneralUtility::implodeArrayForUrl('edit', $folder), $GLOBALS['BACK_PATH'], $this->listUrl()); if (version_compare(TYPO3_version, '7', '>=')) { $cells['editmetadata'] = '<a href="#" class="btn btn-default" onclick="' . htmlspecialchars($editOnClick) . '" title="Edit Metadata of this folder">' . IconUtility::getSpriteIcon('actions-page-open') . '</a>'; } else { $cells['editmetadata'] = '<a href="#" onclick="' . $editOnClick . '" title="Edit Metadata of this folder">' . IconUtility::getSpriteIcon('actions-document-open') . '</a>'; } } } } return $cells; }
public static function parseFolderForNewElements($storage, $folderIdentifier, $folderName) { $slot = GeneralUtility::makeInstance('Ameos\\AmeosFilemanager\\Slots\\Slot'); $falFolder = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Folder', $storage, $folderIdentifier, $folderName); $subfolders = $falFolder->getSubfolders(); foreach ($subfolders as $folder) { $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery("uid", "tx_ameosfilemanager_domain_model_folder", "tx_ameosfilemanager_domain_model_folder.title like '" . $folder->getName() . "'"); $exist = false; while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { // Si il n'existe on ne fait rien if (Tools::getFolderPathFromUid($row['uid']) . '/' == $folder->getIdentifier()) { $exist = true; $uid = $row['uid']; break; } } if (!$exist) { $slot->postFolderAdd($folder); } } $files = $falFolder->getFiles(); foreach ($files as $file) { $slot->postFileAdd($file, $falFolder); } }
/** * Call after file move in filelist * Move the file to the correct folder in the database * @param File $file * @param Folder $targetFolder * @return void */ public function postFileMove($file, $targetFolder) { $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery("uid", "tx_ameosfilemanager_domain_model_folder", "tx_ameosfilemanager_domain_model_folder.identifier like '" . $targetFolder->getIdentifier() . "'"); if (($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) !== FALSE) { if (Tools::getFolderPathFromUid($row['uid']) . '/' == $targetFolder->getIdentifier()) { $res = $GLOBALS['TYPO3_DB']->exec_UPDATEquery('sys_file_metadata', 'sys_file_metadata.file = ' . $file->getUid(), array("folder_uid" => $row['uid']), $no_quote_fields = FALSE); break; } } }