[ 'name' => 'Classique', 'description' => 'Le thème classique, simple et complet.', 'picture' => 'EXT:ot_templating/Resources/Public/media/theme_classic.png' ], 'Modern' => [ 'name' => 'Moderne', 'description' => '[Nouveau] Un thème moderne et intuitif.', 'picture' => 'EXT:ot_templating/Resources/Public/media/theme_modern.png' ] ]; /** * Index action (default action) * Displays the customize page on the backend */ public function indexAction() { // Get the current root page's uid $rootPageUid = $this->getCurrentRootPageUid(); // If the current page is not a root page or a subpage of one, abort $pageSelected = ($rootPageUid !== null); $this->view->assign('pageSelected', (int)$pageSelected); if (!$pageSelected) { return; } $this->view->assign('rootPage', $rootPageUid); $this->view->assign('templates', self::templates); } /** * A template has been selected, apply the change */ public function selectTemplateAction() { $templateKey = $this->request->getArgument('template_key'); // Get the current root page's uid $rootPageUid = $this->getCurrentRootPageUid(); // applies the change in the database $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('pages'); $queryBuilder->update('pages') ->where( $queryBuilder->expr()->eq( 'uid', $queryBuilder->createNamedParameter($rootPageUid, PDO::PARAM_INT) ) ) ->set('tx_opentalent_template', $templateKey) ->execute() ; // Clear the page cache $this->cleanCache(); $this->redirect('index'); } /** * Return the uid of the root page of the currently selected * site, or null if no site's page is selected * * @return int | null */ public function getCurrentRootPageUid() { // Get the current page uid $pageId = (int) GeneralUtility::_GP('id'); // Get the root page of the site $otPageRepository = new OtPageRepository(); $rootPage = $otPageRepository->getRootPageFor($pageId); if (!$rootPage['uid'] > 0) { return null; } return (int)$rootPage['uid']; } /** * Cleans the pages cache */ public function cleanCache() { $dataHandler = GeneralUtility::makeInstance(DataHandler::class); $dataHandler->start([], []); $dataHandler->clear_cacheCmd('pages'); } /** * Gets the backend user * * @return \TYPO3\CMS\Core\Authentication\BackendUserAuthentication */ protected function getBackendUser() { return $GLOBALS['BE_USER']; } }