From 23b9672e513890d79eb1913b93ab1cffd16101e6 Mon Sep 17 00:00:00 2001 From: Daniel Siepmann Date: Tue, 6 Dec 2022 08:18:42 +0100 Subject: [PATCH] Migrate to 12.1.x-dev (current main) --- .../PageLayoutHeader.php | 44 +++--- .../Frontend/RssFeed/SitemapDataProvider.php | 7 +- .../Frontend/RssFeed/XmlSitemapRenderer.php | 124 +++++++++++++++-- Classes/UserFunction/CodeHighlighting.php | 9 +- Configuration/RTE/Default.yaml | 125 +++++++++--------- Configuration/Services.yaml | 5 + Configuration/TCA/Overrides/pages.php | 3 +- .../TCA/Overrides/sys_file_metadata.php | 12 +- Configuration/TCA/Overrides/tt_content.php | 3 +- Resources/Private/Sass/Backend/index.scss | 22 +++ .../Private/Sass/Frontend/_variables.scss | 2 + .../Sass/Frontend/components/_ckeditor.scss | 2 +- Resources/Private/Sass/Frontend/index.scss | 1 - .../Private/Templates/Sitemaps/RssFeed.xml | 12 +- Resources/Public/Backend/Css/index.css | 2 +- ext_localconf.php | 7 - 16 files changed, 244 insertions(+), 136 deletions(-) rename Classes/{Hooks/Backend => EventListener}/PageLayoutHeader.php (69%) diff --git a/Classes/Hooks/Backend/PageLayoutHeader.php b/Classes/EventListener/PageLayoutHeader.php similarity index 69% rename from Classes/Hooks/Backend/PageLayoutHeader.php rename to Classes/EventListener/PageLayoutHeader.php index b43f968..3fdff32 100644 --- a/Classes/Hooks/Backend/PageLayoutHeader.php +++ b/Classes/EventListener/PageLayoutHeader.php @@ -21,62 +21,59 @@ declare(strict_types=1); * 02110-1301, USA. */ -namespace DanielSiepmann\DsSite\Hooks\Backend; +namespace DanielSiepmann\DsSite\EventListener; -use TYPO3\CMS\Backend\Controller\PageLayoutController; +use TYPO3\CMS\Backend\Controller\Event\ModifyPageLayoutContentEvent; +use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Fluid\View\StandaloneView; use TYPO3\CMS\Frontend\Resource\FileCollector; class PageLayoutHeader { - /** - * @var array - */ - private $pageinfo = []; - - public function render( - array $params, - PageLayoutController $pageLayoutController - ): string { - if (is_array($pageLayoutController->pageinfo)) { - $this->pageinfo = $pageLayoutController->pageinfo; - } + public function __invoke(ModifyPageLayoutContentEvent $event): void + { + $request = $event->getRequest(); + $pageinfo = BackendUtility::readPageAccess( + (int)($request->getParsedBody()['id'] ?? $request->getQueryParams()['id'] ?? 0), + '' + ); // TODO: Check whether two levels up is uid 2, which holds all blog posts // To prevent rendering on non blog posts // Maybe we have rootline ? $view = $this->getView(); + $view->setRequest($request); $view->assignMultiple([ - 'record' => $this->pageinfo, + 'record' => $pageinfo, 'metaInfo' => [ [ 'label' => 'meta-description', - 'value' => $this->pageinfo['description'] ?? '', + 'value' => $pageinfo['description'] ?? '', 'field' => 'description', 'type' => 'string', ], [ 'label' => 'introduction', - 'value' => $this->pageinfo['abstract'] ?? '', + 'value' => $pageinfo['abstract'] ?? '', 'field' => 'abstract', 'type' => 'string', ], [ 'label' => 'published', - 'value' => $this->pageinfo['lastUpdated'] ?? '', + 'value' => $pageinfo['lastUpdated'] ?? '', 'field' => 'lastUpdated', 'type' => 'date', ], [ 'label' => 'updated', - 'value' => $this->pageinfo['SYS_LASTCHANGED'] ?? '', + 'value' => $pageinfo['SYS_LASTCHANGED'] ?? '', 'type' => 'date', ], [ 'label' => 'media', - 'value' => $this->resolvePageMedia(), + 'value' => $this->resolvePageMedia((int) $pageinfo['uid']), 'field' => 'media', 'type' => 'files', ], @@ -84,7 +81,7 @@ class PageLayoutHeader ]); $view->setTemplatePathAndFilename('EXT:ds_site/Resources/Private/Templates/Backend/Page/MetaInfo.html'); - return $view->render(); + $event->addHeaderContent($view->render()); } private function getView(): StandaloneView @@ -92,11 +89,10 @@ class PageLayoutHeader return GeneralUtility::makeInstance(StandaloneView::class); } - private function resolvePageMedia(): array + private function resolvePageMedia(int $pageUid): array { - $page = ['uid' => $this->pageinfo['uid'] ?? '']; $files = new FileCollector(); - $files->addFilesFromRelation('pages', 'media', $page); + $files->addFilesFromRelation('pages', 'media', ['uid' => $pageUid]); return $files->getFiles(); } diff --git a/Classes/Frontend/RssFeed/SitemapDataProvider.php b/Classes/Frontend/RssFeed/SitemapDataProvider.php index e6edd19..acdb72a 100644 --- a/Classes/Frontend/RssFeed/SitemapDataProvider.php +++ b/Classes/Frontend/RssFeed/SitemapDataProvider.php @@ -83,14 +83,9 @@ class SitemapDataProvider extends RecordsXmlSitemapDataProvider ) ); - $result = $queryBuilder->execute()->fetchAll(); - if ($result === false) { - return []; - } - return array_map(function (array $row) { return (int) $row['uid']; - }, $result); + }, $queryBuilder->execute()->fetchAll()); } private function createAdditionalWhereForPageUids(array $pageUids): string diff --git a/Classes/Frontend/RssFeed/XmlSitemapRenderer.php b/Classes/Frontend/RssFeed/XmlSitemapRenderer.php index 2065b68..70ef937 100644 --- a/Classes/Frontend/RssFeed/XmlSitemapRenderer.php +++ b/Classes/Frontend/RssFeed/XmlSitemapRenderer.php @@ -24,29 +24,129 @@ declare(strict_types=1); namespace DanielSiepmann\DsSite\Frontend\RssFeed; use Psr\Http\Message\ServerRequestInterface; +use TYPO3Fluid\Fluid\View\TemplateView; +use TYPO3\CMS\Core\Http\PropagateResponseException; +use TYPO3\CMS\Core\TypoScript\TypoScriptService; +use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextFactory; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; -use TYPO3\CMS\Seo\XmlSitemap\XmlSitemapRenderer as Typo3XmlSitemapRenderer; +use TYPO3\CMS\Frontend\Controller\ErrorController; +use TYPO3\CMS\Seo\XmlSitemap\Exception\InvalidConfigurationException; +use TYPO3\CMS\Seo\XmlSitemap\XmlSitemapDataProviderInterface; -class XmlSitemapRenderer extends Typo3XmlSitemapRenderer +class XmlSitemapRenderer { - /** - * @var ContentObjectRenderer - */ - public $cObj; - private array $typoScriptConfiguration = []; + protected array $configuration; + + private ContentObjectRenderer $contentObjectRenderer; + + protected TemplateView $view; + + public function __construct( + protected TypoScriptService $typoScriptService, + protected RenderingContextFactory $renderingContextFactory, + ) { + } + + public function setContentObjectRenderer(ContentObjectRenderer $contentObjectRenderer): void + { + $this->contentObjectRenderer = $contentObjectRenderer; + } + + protected function initialize(array $fullConfiguration): void + { + $this->configuration = $this->typoScriptService->convertTypoScriptArrayToPlainArray($fullConfiguration['plugin.']['tx_seo.'] ?? []); + $renderingContext = $this->renderingContextFactory->create(); + $templatePaths = $renderingContext->getTemplatePaths(); + $templatePaths->setTemplateRootPaths($this->configuration['view']['templateRootPaths']); + $templatePaths->setLayoutRootPaths($this->configuration['view']['layoutRootPaths']); + $templatePaths->setPartialRootPaths($this->configuration['view']['partialRootPaths']); + $templatePaths->setFormat('xml'); + $this->view = GeneralUtility::makeInstance(TemplateView::class, $renderingContext); + $this->view->assign('settings', $this->getSettings()); + } + public function render(string $_, array $typoScriptConfiguration, ServerRequestInterface $request): string { $this->typoScriptConfiguration = $typoScriptConfiguration; - return parent::render($_, $typoScriptConfiguration, $request); + $this->initialize($GLOBALS['TSFE']->tmpl->setup); + $this->view->assign('type', $GLOBALS['TSFE']->type); + $sitemapType = $typoScriptConfiguration['sitemapType'] ?? 'xmlSitemap'; + if (!empty($sitemap = ($request->getQueryParams()['sitemap'] ?? null))) { + return $this->renderSitemap($request, $sitemap, $sitemapType); + } + + return $this->renderIndex($request, $sitemapType); } - protected function initialize(array $fullConfiguration): void + protected function renderIndex(ServerRequestInterface $request, string $sitemapType): string { - parent::initialize($fullConfiguration); - $this->view->assign('settings', $this->getSettings()); + $sitemaps = []; + foreach ($this->configuration['config'][$sitemapType]['sitemaps'] ?? [] as $sitemap => $config) { + if (!empty($config['provider']) && is_string($config['provider']) + && class_exists($config['provider']) + && is_subclass_of($config['provider'], XmlSitemapDataProviderInterface::class) + ) { + /** @var XmlSitemapDataProviderInterface $provider */ + $provider = GeneralUtility::makeInstance( + $config['provider'], + $request, + $sitemap, + (array)($config['config'] ?? []) + ); + + $pages = $provider->getNumberOfPages(); + + for ($page = 0; $page < $pages; $page++) { + $sitemaps[] = [ + 'key' => $sitemap, + 'page' => $page, + 'lastMod' => $provider->getLastModified(), + ]; + } + } + } + + $this->view->assign('sitemapType', $sitemapType); + $this->view->assign('sitemaps', $sitemaps); + + return $this->view->render('Index'); + } + + protected function renderSitemap(ServerRequestInterface $request, string $sitemap, string $sitemapType): string + { + if (!empty($sitemapConfig = $this->configuration['config'][$sitemapType]['sitemaps'][$sitemap] ?? null)) { + if (class_exists($sitemapConfig['provider']) && + is_subclass_of($sitemapConfig['provider'], XmlSitemapDataProviderInterface::class)) { + /** @var XmlSitemapDataProviderInterface $provider */ + $provider = GeneralUtility::makeInstance( + $sitemapConfig['provider'], + $request, + $sitemap, + (array)($sitemapConfig['config'] ?? []) + ); + + $items = $provider->getItems(); + + $this->view->assign('items', $items); + $this->view->assign('sitemapType', $sitemapType); + + $template = ($sitemapConfig['config']['template'] ?? false) ?: 'Sitemap'; + return $this->view->render($template); + } + throw new InvalidConfigurationException('No valid provider set for ' . $sitemap, 1535578522); + } + + throw new PropagateResponseException( + GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction( + $request, + 'No valid configuration found for sitemap ' . $sitemap + ), + 1535578569 + ); } private function getSettings(): array @@ -56,7 +156,7 @@ class XmlSitemapRenderer extends Typo3XmlSitemapRenderer if (!is_string($variableName) || substr($variableName, -1) === '.') { continue; } - $settings[$variableName] = $this->cObj->cObjGetSingle( + $settings[$variableName] = $this->contentObjectRenderer->cObjGetSingle( $this->typoScriptConfiguration['userFunc.']['variables.'][$variableName] ?? '', $this->typoScriptConfiguration['userFunc.']['variables.'][$variableName . '.'] ?? [] ); diff --git a/Classes/UserFunction/CodeHighlighting.php b/Classes/UserFunction/CodeHighlighting.php index 1d4902c..dbdfeb8 100644 --- a/Classes/UserFunction/CodeHighlighting.php +++ b/Classes/UserFunction/CodeHighlighting.php @@ -35,13 +35,18 @@ class CodeHighlighting /** * @var ContentObjectRenderer */ - public $cObj; + private $contentObjectRenderer; + + public function setContentObjectRenderer(ContentObjectRenderer $contentObjectRenderer): void + { + $this->contentObjectRenderer = $contentObjectRenderer; + } public function preTag(string $content, array $config): string { $highlighter = new Highlighter(); $highlighter->setClassPrefix(''); - $code = $this->cObj->data[$this->cObj->currentValKey]; + $code = $this->contentObjectRenderer->data[$this->contentObjectRenderer->currentValKey]; $code = htmlspecialchars_decode(trim($code)); try { diff --git a/Configuration/RTE/Default.yaml b/Configuration/RTE/Default.yaml index 8d3561c..7bf6698 100644 --- a/Configuration/RTE/Default.yaml +++ b/Configuration/RTE/Default.yaml @@ -1,76 +1,69 @@ # Load default processing options imports: - - {resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml"} - - {resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml"} + - {resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml"} + - {resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml"} editor: - config: - contentsCss: "EXT:ds_site/Resources/Public/Css/index.css" - height: 500 - format_tags: "p;pre" + config: - # Ensure that special characters are not converted to HTML entities - entities_latin: false - entities: false - stylesSet: - - {name: "Inline code", element: "code"} + # Ensure that special characters are not converted to HTML entities + style: + definitions: + - {name: "Inline Code", element: "code", classes: ['']} - toolbarGroups: - # - {name: insert} - - {name: basicstyles, groups: [basicstyles, align, cleanup]} - - {name: paragraph, groups: [list, indent, blocks, align, bidi]} - - {name: links} - - {name: editing, groups: [find, selection, spellchecker]} - - {name: specialcharacters, groups: [insertcharacters]} - - "/" - - {name: styles} - - "/" - - {name: tools} - - {name: document, groups: [mode, document, doctools]} + heading: + options: + - {model: 'paragraph', title: 'Paragraph'} + - {model: 'formatted', view: 'pre', title: 'Code Block'} - # - {name: 'document', items: ['Source']} - # - {name: 'clipboard', items: ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', 'Undo', 'Redo']} - # - '/' - # - {name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', 'CopyFormatting', 'RemoveFormat']} - # - {name: 'paragraph', items: ['NumberedList', 'BulletedList', 'Outdent', 'Indent', 'Blockquote']} - # - {name: 'links', items: ['Link', 'Unlink', 'Anchor']} - # - {name: 'insert', items: ['HorizontalRule', 'SpecialChar']} - # - '/' - # - {name: 'styles', items: ['Styles', 'Format']} - # - {name: 'tools', items: ['Maximize', 'ShowBlocks']} - # - {name: 'about', items: ['About']} + toolbar: + items: + - bold + - italic + - underline + - strikethrough + - subscript + - superscript + - '|' + - removeFormat + - '|' + - bulletedList + - numberedList + - '|' + - indent + - outdent + - '|' + - blockQuote + - '|' + - link + - '-' + - style + - heading + - '-' + - sourceEditing - externalPlugins: - typo3link: { resource: "EXT:rte_ckeditor/Resources/Public/JavaScript/Plugins/typo3link.js", route: "rteckeditor_wizard_browse_links" } - showbrokenlinks: { resource: "EXT:rte_ckeditor/Resources/Public/JavaScript/Plugins/showbrokenlinks/plugin.js"} - # This is a plugin, found here: https://github.com/ufdada/quicktable - # quicktable: { resource: "EXT:rte_ckeditor/Resources/Public/JavaScript/Plugins/quicktable/plugin.js" } - autolinking: { resource: "EXT:rte_ckeditor/Resources/Public/JavaScript/Plugins/autolinking.js" } - # softhyphen plugin for adding ctrl+dash support to insert a conditional word break - # softhyphen: - # resource: "EXT:rte_ckeditor/Resources/Public/JavaScript/Plugins/softhyphen/" - # enableShortcut: true + importModules: + - '@typo3/rte-ckeditor/plugin/typo3-link.js' + + externalPlugins: + typo3link: {route: "rteckeditor_wizard_browse_links"} processing: - allowAttributes: [] - HTMLparser_db: - tags: - ol: - allowedAttribs: [] - ul: - allowedAttribs: [] - code: - allowedAttribs: [] - pre: - allowedAttribs: [] - allowTagsOutside: - - pre - - blockquote - - ul - - ol - - li - - br -# blockElementList: -# - P -# - PRE -# - BLOCKQUOTE + allowAttributes: [] + HTMLparser_db: + tags: + ol: + allowedAttribs: [] + ul: + allowedAttribs: [] + code: + allowedAttribs: [] + pre: + allowedAttribs: [] + allowTagsOutside: + - pre + - blockquote + - ul + - ol + - li + - br diff --git a/Configuration/Services.yaml b/Configuration/Services.yaml index 1a040e3..829902a 100644 --- a/Configuration/Services.yaml +++ b/Configuration/Services.yaml @@ -72,3 +72,8 @@ services: identifier: 'AddFurtherMetadataToFile' event: TYPO3\CMS\Core\Resource\Event\EnrichFileMetaDataEvent after: 'languageAndWorkspaceOverlay' + + DanielSiepmann\DsSite\EventListener\PageLayoutHeader: + tags: + - name: event.listener + event: TYPO3\CMS\Backend\Controller\Event\ModifyPageLayoutContentEvent diff --git a/Configuration/TCA/Overrides/pages.php b/Configuration/TCA/Overrides/pages.php index 8190331..52f2887 100644 --- a/Configuration/TCA/Overrides/pages.php +++ b/Configuration/TCA/Overrides/pages.php @@ -19,8 +19,7 @@ ], 'url' => [ 'config' => [ - 'renderType' => 'inputLink', - 'softref' => 'typolink', + 'type' => 'link', ], ], 'lastUpdated' => [ diff --git a/Configuration/TCA/Overrides/sys_file_metadata.php b/Configuration/TCA/Overrides/sys_file_metadata.php index db7c127..8e92c26 100644 --- a/Configuration/TCA/Overrides/sys_file_metadata.php +++ b/Configuration/TCA/Overrides/sys_file_metadata.php @@ -15,13 +15,11 @@ ], 'poster' => [ 'label' => $languagePath . 'poster', - 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( - 'poster', - [ - 'maxitems' => 1, - ], - $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] - ), + 'config' => [ + 'type' => 'file', + 'maxitems' => 1, + 'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'], + ], ], ], ]); diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php index ba097a9..5f5982f 100644 --- a/Configuration/TCA/Overrides/tt_content.php +++ b/Configuration/TCA/Overrides/tt_content.php @@ -28,7 +28,8 @@ 'columns' => [ 'header' => [ 'config' => [ - 'eval' => 'required, trim', + 'eval' => 'trim', + 'required' => true, ], ], 'CType' => [ diff --git a/Resources/Private/Sass/Backend/index.scss b/Resources/Private/Sass/Backend/index.scss index 6b44985..5e8e080 100644 --- a/Resources/Private/Sass/Backend/index.scss +++ b/Resources/Private/Sass/Backend/index.scss @@ -1,3 +1,5 @@ +@import "../Frontend/variables"; + .typo3-login { .panel, .panel-footer { @@ -31,3 +33,23 @@ max-width: 100%; } } + +.ck-content { + padding: { + top: $spacer * 2; + bottom: $spacer * 2; + } + + pre { + background: $black-dark; + color: $white-dark; + padding: 0.5em; + } +} +.ck.ck-content code { + background: $black-dark; + color: $white-dark; +} +.ck-editor__editable_inline { + height: 500px; +} diff --git a/Resources/Private/Sass/Frontend/_variables.scss b/Resources/Private/Sass/Frontend/_variables.scss index b7aa1ad..f8b41db 100644 --- a/Resources/Private/Sass/Frontend/_variables.scss +++ b/Resources/Private/Sass/Frontend/_variables.scss @@ -1,3 +1,5 @@ +$spacer: 1rem !default; + $black: #5D5D5D; $black-dark: #000000; $red: #E09690; diff --git a/Resources/Private/Sass/Frontend/components/_ckeditor.scss b/Resources/Private/Sass/Frontend/components/_ckeditor.scss index ca3f38a..c1e56b6 100644 --- a/Resources/Private/Sass/Frontend/components/_ckeditor.scss +++ b/Resources/Private/Sass/Frontend/components/_ckeditor.scss @@ -1,4 +1,4 @@ -body.cke_editable { +.ck-content { padding: { top: $spacer * 2; bottom: $spacer * 2; diff --git a/Resources/Private/Sass/Frontend/index.scss b/Resources/Private/Sass/Frontend/index.scss index a6d6e51..9ff8d0b 100644 --- a/Resources/Private/Sass/Frontend/index.scss +++ b/Resources/Private/Sass/Frontend/index.scss @@ -13,6 +13,5 @@ @import "components/codeHighlighting"; @import "components/adminpanel"; -@import "components/ckeditor"; @import "components/admonition"; @import "components/video"; diff --git a/Resources/Private/Templates/Sitemaps/RssFeed.xml b/Resources/Private/Templates/Sitemaps/RssFeed.xml index f6286f8..2c5b0f7 100644 --- a/Resources/Private/Templates/Sitemaps/RssFeed.xml +++ b/Resources/Private/Templates/Sitemaps/RssFeed.xml @@ -5,14 +5,14 @@ Daniel Siepmann - Coding is Art - Blog Posts {settings.categoryTitle} List of {settings.categoryTitle} blog posts at daniel-siepmann.de - {f:uri.page(pageUid: 11, additionalParams: {topic_uid: settings.categoryId}, absolute: 1)} - + {f:uri.typolink(parameter: 't3://page?uid=11', additionalParams: '&topic_uid={settings.categoryId}', absolute: 1)} + Daniel Siepmann - Coding is Art - All Blog Posts List of blog posts at daniel-siepmann.de - {f:uri.page(pageUid: 1, absolute: 1)} - + {f:uri.typolink(parameter: 't3://page?uid=1', absolute: 1)} + {f:format.date(date: 'now', format: 'D, d M Y H:i:s O')} @@ -32,8 +32,8 @@ {item.title} {item.abstract} - {f:uri.page(pageUid: item.uid, absolute: 1)} + {f:uri.typolink(parameter: 't3://page?uid={item.uid}', absolute: 1)} {f:format.date(date: item.lastUpdated, format: 'D, d M Y H:i:s O')} - {f:uri.page(pageUid: item.uid, absolute: 1)} + {f:uri.typolink(parameter: 't3://page?uid={item.uid}', absolute: 1)} diff --git a/Resources/Public/Backend/Css/index.css b/Resources/Public/Backend/Css/index.css index 4a5020e..247ddb4 100644 --- a/Resources/Public/Backend/Css/index.css +++ b/Resources/Public/Backend/Css/index.css @@ -1 +1 @@ -.typo3-login .panel,.typo3-login .panel-footer{background-color:rgba(0,0,0,.2)}.typo3-login .card-login,.typo3-login input{background-color:#2e3436}.typo3-login input{color:#9cd9f0;border-color:#9cd9f0}.typo3-login .form-control:focus,.typo3-login .form-control:hover{color:#9cd9f0;border-color:#9cd9f0;background-color:#2e3436}.typo3-login h2{color:#fff}.typo3-login a{color:#218693}.exampleContent video{width:40rem;max-width:100%} \ No newline at end of file +.typo3-login .panel,.typo3-login .panel-footer{background-color:rgba(0,0,0,.2)}.typo3-login .card-login,.typo3-login input{background-color:#2e3436}.typo3-login input{color:#9cd9f0;border-color:#9cd9f0}.typo3-login .form-control:focus,.typo3-login .form-control:hover{color:#9cd9f0;border-color:#9cd9f0;background-color:#2e3436}.typo3-login h2{color:#fff}.typo3-login a{color:#218693}.exampleContent video{width:40rem;max-width:100%}.ck-content{padding-top:2rem;padding-bottom:2rem}.ck-content pre{padding:.5em}.ck-content pre,.ck.ck-content code{background:#000;color:#b0b0b0}.ck-editor__editable_inline{height:500px} \ No newline at end of file diff --git a/ext_localconf.php b/ext_localconf.php index e6a2141..7746a7d 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -7,13 +7,6 @@ 'default' => 'EXT:ds_site/Configuration/RTE/Default.yaml', ], ], - 'SC_OPTIONS' => [ - 'cms/layout/db_layout.php' => [ - 'drawHeaderHook' => [ - $extKey => \DanielSiepmann\DsSite\Hooks\Backend\PageLayoutHeader::class . '->render', - ], - ], - ], 'SYS' => [ 'fluid' => [ 'namespaces' => [