diff --git a/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php b/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php index 00313ed4aeb4229f81ae92bd240cb13b792c02f8..0b1ca8c46ea35d7018e757cfdc761d006bcfe8b6 100644 --- a/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php +++ b/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php @@ -203,41 +203,44 @@ class ElementInformationController */ public function main() { - if (!$this->access) { - return; - } - $content = ''; - // render type by user func - $typeRendered = false; - foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/show_item.php']['typeRendering'] ?? [] as $className) { - $typeRenderObj = GeneralUtility::makeInstance($className); - if (is_object($typeRenderObj) && method_exists($typeRenderObj, 'isValid') && method_exists($typeRenderObj, 'render')) { - if ($typeRenderObj->isValid($this->type, $this)) { - $content .= $typeRenderObj->render($this->type, $this); - $typeRendered = true; - break; + // Rendering of the output via fluid + $view = GeneralUtility::makeInstance(StandaloneView::class); + $view->setTemplateRootPaths([GeneralUtility::getFileAbsFileName('EXT:backend/Resources/Private/Templates')]); + $view->setPartialRootPaths([GeneralUtility::getFileAbsFileName('EXT:backend/Resources/Private/Partials')]); + $view->setTemplatePathAndFilename(GeneralUtility::getFileAbsFileName( + 'EXT:backend/Resources/Private/Templates/ContentElement/ElementInformation.html' + )); + + if ($this->access) { + // render type by user func + $typeRendered = false; + foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/show_item.php']['typeRendering'] ?? [] as $className) { + $typeRenderObj = GeneralUtility::makeInstance($className); + if (is_object($typeRenderObj) && method_exists($typeRenderObj, 'isValid') && method_exists($typeRenderObj, 'render')) { + if ($typeRenderObj->isValid($this->type, $this)) { + $content .= $typeRenderObj->render($this->type, $this); + $typeRendered = true; + break; + } } } - } - if (!$typeRendered) { - // Rendering of the output via fluid - $view = GeneralUtility::makeInstance(StandaloneView::class); - $view->setTemplateRootPaths([GeneralUtility::getFileAbsFileName('EXT:backend/Resources/Private/Templates')]); - $view->setPartialRootPaths([GeneralUtility::getFileAbsFileName('EXT:backend/Resources/Private/Partials')]); - $view->setTemplatePathAndFilename(GeneralUtility::getFileAbsFileName( - 'EXT:backend/Resources/Private/Templates/ContentElement/ElementInformation.html' - )); - $view->assignMultiple($this->getPageTitle()); - $view->assignMultiple($this->getPreview()); - $view->assignMultiple($this->getPropertiesForTable()); - $view->assignMultiple($this->getReferences()); - $view->assignMultiple($this->getBackButton()); - $view->assign('maxTitleLength', $this->getBackendUser()->uc['titleLen'] ?? 20); + if (!$typeRendered) { + $view->assign('accessAllowed', true); + $view->assignMultiple($this->getPageTitle()); + $view->assignMultiple($this->getPreview()); + $view->assignMultiple($this->getPropertiesForTable()); + $view->assignMultiple($this->getReferences()); + $view->assignMultiple($this->getBackButton()); + $view->assign('maxTitleLength', $this->getBackendUser()->uc['titleLen'] ?? 20); + $content .= $view->render(); + } + } else { $content .= $view->render(); } + $this->moduleTemplate->setContent($content); } diff --git a/typo3/sysext/backend/Resources/Private/Templates/ContentElement/ElementInformation.html b/typo3/sysext/backend/Resources/Private/Templates/ContentElement/ElementInformation.html index 1c1884ead6c1b367896e3f509835b9c966396193..2137fd7ef8330913e16d4bd5946983c8d4dad0b2 100644 --- a/typo3/sysext/backend/Resources/Private/Templates/ContentElement/ElementInformation.html +++ b/typo3/sysext/backend/Resources/Private/Templates/ContentElement/ElementInformation.html @@ -1,102 +1,110 @@ -<h1> - <f:if condition="{table}"> - <small>{table}</small><br />{icon -> f:format.raw()} - <span title="{title}">{title -> f:format.crop(maxCharacters: maxTitleLength)}</span> - </f:if> -</h1> -<f:if condition="{missingFile}"> - <f:be.infobox title="{f:translate(key:'LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:warning.file_missing')}" state="1">{missingFile}</f:be.infobox> -</f:if> -<f:if condition="{fileRenderer}"> - <p> - {fileRenderer -> f:format.raw()} - </p> -</f:if> -<f:if condition="{fileObject}"> - <p> - <f:media file="{fileObject}" - width="{width}" - height="{height}" - /> - </p> -</f:if> -<f:if condition="{url}"> - <p> - <a class="btn btn-default" href="{url}" target="_blank"> - <core:icon identifier="actions-document-view" size="small" alternativeMarkupIdentifier="inline" /> - <f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.show" /> - </a> - </p> -</f:if> -<div class="table-fit table-fit-wrap"> - <table class="table table-striped table-hover"> - <f:for each="{extraFields}" as="extraField"> - <f:render section="extraFieldRow" arguments="{row: extraField}" /> - </f:for> - <f:for each="{fields}" as="field"> - <f:render section="fieldRow" arguments="{row: field}" /> - </f:for> - </table> -</div> -<f:if condition="{returnUrl}"> - <a class="btn btn-primary" href="{returnUrl}"> - <core:icon identifier="actions-view-go-back" size="small" /> - <f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_common.xlf:back" /> - </a> -</f:if> -<f:if condition="{refLines}"> - <h3><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.referencesToThisItem" /></h3> - <div class="table-fit"> - <table class="table table-striped table-hover"> - <thead> - <tr> - <th class="col-icon"></th> - <th class="col-title"><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.title" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.table" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.uid" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.field" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.flexpointer" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.softrefKey" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.sorting" /></th> - <th class="col-control"></th> - </tr> - </thead> - <tbody> - <f:for each="{refLines}" as="refLine"> - <f:render section="refLineRow" arguments="{line: refLine, maxTitleLength: maxTitleLength}" /> - </f:for> - </tbody> - </table> - </div> -</f:if> -<f:if condition="{refFromLines}"> - <h3><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.referencesFromThisItem" /></h3> - <div class="table-fit"> - <table class="table table-striped table-hover"> - <thead> - <tr> - <th class="col-icon"></th> - <th class="col-title"><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.title" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.table" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.uid" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.field" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.flexpointer" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.softrefKey" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.sorting" /></th> - <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.refString" /></th> - <th class="col-control"></th> - </tr> - </thead> - <tbody> - <f:for each="{refFromLines}" as="refFromLine"> - <f:render section="refFromLineRow" arguments="{line: refFromLine, maxTitleLength: maxTitleLength}" /> - </f:for> - </tbody> - </table> - </div> +<f:if condition="{accessAllowed}"> + <f:then> + <h1> + <f:if condition="{table}"> + <small>{table}</small><br />{icon -> f:format.raw()} + <span title="{title}">{title -> f:format.crop(maxCharacters: maxTitleLength)}</span> + </f:if> + </h1> + <f:if condition="{missingFile}"> + <f:be.infobox title="{f:translate(key:'LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:warning.file_missing')}" state="1">{missingFile}</f:be.infobox> + </f:if> + <f:if condition="{fileRenderer}"> + <p> + {fileRenderer -> f:format.raw()} + </p> + </f:if> + <f:if condition="{fileObject}"> + <p> + <f:media file="{fileObject}" + width="{width}" + height="{height}" + /> + </p> + </f:if> + <f:if condition="{url}"> + <p> + <a class="btn btn-default" href="{url}" target="_blank"> + <core:icon identifier="actions-document-view" size="small" alternativeMarkupIdentifier="inline" /> + <f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.show" /> + </a> + </p> + </f:if> + <div class="table-fit table-fit-wrap"> + <table class="table table-striped table-hover"> + <f:for each="{extraFields}" as="extraField"> + <f:render section="extraFieldRow" arguments="{row: extraField}" /> + </f:for> + <f:for each="{fields}" as="field"> + <f:render section="fieldRow" arguments="{row: field}" /> + </f:for> + </table> + </div> + <f:if condition="{returnUrl}"> + <a class="btn btn-primary" href="{returnUrl}"> + <core:icon identifier="actions-view-go-back" size="small" /> + <f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_common.xlf:back" /> + </a> + </f:if> + <f:if condition="{refLines}"> + <h3><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.referencesToThisItem" /></h3> + <div class="table-fit"> + <table class="table table-striped table-hover"> + <thead> + <tr> + <th class="col-icon"></th> + <th class="col-title"><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.title" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.table" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.uid" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.field" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.flexpointer" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.softrefKey" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.sorting" /></th> + <th class="col-control"></th> + </tr> + </thead> + <tbody> + <f:for each="{refLines}" as="refLine"> + <f:render section="refLineRow" arguments="{line: refLine, maxTitleLength: maxTitleLength}" /> + </f:for> + </tbody> + </table> + </div> + </f:if> + <f:if condition="{refFromLines}"> + <h3><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.referencesFromThisItem" /></h3> + <div class="table-fit"> + <table class="table table-striped table-hover"> + <thead> + <tr> + <th class="col-icon"></th> + <th class="col-title"><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.title" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.table" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.uid" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.field" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.flexpointer" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.softrefKey" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.sorting" /></th> + <th><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:show_item.php.refString" /></th> + <th class="col-control"></th> + </tr> + </thead> + <tbody> + <f:for each="{refFromLines}" as="refFromLine"> + <f:render section="refFromLineRow" arguments="{line: refFromLine, maxTitleLength: maxTitleLength}" /> + </f:for> + </tbody> + </table> + </div> + </f:if> + </f:then> + <f:else> + <f:be.infobox state="2">{f:translate(key: 'LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.noEditPermission')}</f:be.infobox> + </f:else> </f:if> + <f:section name="extraFieldRow"> <tr> <th class="col-nowrap">{row.fieldLabel}</th>