diff --git a/public/typo3conf/ext/ep_products/Resources/Private/Language/locallang_mod.xlf b/public/typo3conf/ext/ep_products/Resources/Private/Language/locallang_mod.xlf index 6fa16e75..1c099318 100644 --- a/public/typo3conf/ext/ep_products/Resources/Private/Language/locallang_mod.xlf +++ b/public/typo3conf/ext/ep_products/Resources/Private/Language/locallang_mod.xlf @@ -4,7 +4,7 @@
- E&P + E&P Funktionen Produktspezifische Funktionen diff --git a/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php b/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php new file mode 100644 index 00000000..7c2321c7 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php @@ -0,0 +1,85 @@ +, dreipunktnull + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +use EP\EpTheme\Domain\Repository\PageRepository; +use TYPO3\CMS\Backend\View\BackendTemplateView; +use TYPO3\CMS\Core\Database\ConnectionPool; +use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; + +class BackendController extends ActionController +{ + /** + * Backend Template Container + * + * @var BackendTemplateView + */ + protected $defaultViewObjectName = BackendTemplateView::class; + + /** + * BackendTemplateContainer + * + * @var BackendTemplateView + */ + protected $view; + + /** + * @var int + */ + protected $pageUid; + + /** + * @var PageRepository + */ + protected $pageRepository; + + /** + * @param PageRepository $pageRepository + */ + public function __construct(PageRepository $pageRepository) + { + parent::__construct(); + + $this->pageRepository = $pageRepository; + } + + public function initializeAction() + { + $this->pageUid = (integer)GeneralUtility::_GET('id'); + + parent::initializeAction(); + } + + public function listPagesAction() + { + $pages = $this->pageRepository->findPagesByPid($this->pageUid); + + $this->view->assign('pages', $pages); + } +} diff --git a/public/typo3conf/ext/ep_theme/Classes/Domain/Model/Page.php b/public/typo3conf/ext/ep_theme/Classes/Domain/Model/Page.php new file mode 100644 index 00000000..b8b48207 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Classes/Domain/Model/Page.php @@ -0,0 +1,134 @@ +uid; + } + + /** + * @param int $uid + */ + public function setUid($uid) + { + $this->uid = $uid; + } + + /** + * @return int + */ + public function getPid() + { + return $this->pid; + } + + /** + * @param int $pid + */ + public function setPid($pid) + { + $this->pid = $pid; + } + + /** + * @return bool + */ + public function isHidden() + { + return $this->hidden; + } + + /** + * @param bool $hidden + */ + public function setHidden($hidden) + { + $this->hidden = $hidden; + } + + /** + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * @param string $title + */ + public function setTitle($title) + { + $this->title = $title; + } + + /** + * @return string + */ + public function getSeoTitle() + { + return $this->seoTitle; + } + + /** + * @param string $seoTitle + */ + public function setSeoTitle($seoTitle) + { + $this->seoTitle = $seoTitle; + } + + /** + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * @param string $description + */ + public function setDescription($description) + { + $this->description = $description; + } +} \ No newline at end of file diff --git a/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php b/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php new file mode 100644 index 00000000..ad10a9a3 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php @@ -0,0 +1,37 @@ + 'ASC', + ]; + + /** + * @param int $pid + * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface + */ + public function findPagesByPid($pid) + { + $query = $this->createQuery(); + $query + ->getQuerySettings() + ->setRespectStoragePage(false) + ->setIgnoreEnableFields(true) + ->setIncludeDeleted(false) + ->setRespectSysLanguage(false) + ; + $query->matching($query->logicalAnd([ + $query->equals('pid', $pid), + $query->equals('doktype', \TYPO3\CMS\Frontend\Page\PageRepository::DOKTYPE_DEFAULT) + ])); + + return $query->execute(); + } +} \ No newline at end of file diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Language/locallang_mod.xlf b/public/typo3conf/ext/ep_theme/Resources/Private/Language/locallang_mod.xlf new file mode 100644 index 00000000..ec927ef6 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Language/locallang_mod.xlf @@ -0,0 +1,17 @@ + + + +
+ + + E&P SEO Übersicht + + + Page title und Meta Description Übersicht + + + Seiten + + + + diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Layouts/Page/Backend.html b/public/typo3conf/ext/ep_theme/Resources/Private/Layouts/Page/Backend.html new file mode 100644 index 00000000..a606ca0f --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Layouts/Page/Backend.html @@ -0,0 +1 @@ + diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Backend/ListPages.html b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Backend/ListPages.html new file mode 100644 index 00000000..bbab9bf5 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Backend/ListPages.html @@ -0,0 +1,55 @@ + + + + + + +

SEO Übersicht

+ + + + + + + + + + + + + + + + + + + + +
SeiteSEO TitleMeta Description
+ + {page.title} + + + + + + {page.seoTitle} + + {page.description} + + +
+
+ +
+ + diff --git a/public/typo3conf/ext/ep_theme/ext_tables.php b/public/typo3conf/ext/ep_theme/ext_tables.php index c5761a01..7e4d1649 100644 --- a/public/typo3conf/ext/ep_theme/ext_tables.php +++ b/public/typo3conf/ext/ep_theme/ext_tables.php @@ -21,4 +21,19 @@ call_user_func(function () { ['source' => 'EXT:ep_theme/Resources/Public/images/logo.svg'] ); } + + \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule( + 'EP.EpTheme', + 'web', + 'management', + 'after:list', + [ + 'Backend' => 'listPages', + ], + [ + 'access' => 'user,group', + 'labels' => 'LLL:EXT:ep_theme/Resources/Private/Language/locallang_mod.xlf', + 'icon' => 'EXT:ep_products/Resources/Public/Icons/logo.svg' + ] + ); }); diff --git a/public/typo3conf/ext/ep_theme/ext_typoscript_setup.txt b/public/typo3conf/ext/ep_theme/ext_typoscript_setup.txt new file mode 100644 index 00000000..86ba4fb7 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/ext_typoscript_setup.txt @@ -0,0 +1,7 @@ +config.tx_extbase.persistence.classes { + EP\EpTheme\Domain\Model\Page { + mapping { + tableName = pages + } + } +}