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
+
+
+
+
+ | Seite |
+ SEO Title |
+ Meta 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
+ }
+ }
+}