| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?php
- namespace Opentalent\OtTemplating\Controller;
- use Opentalent\OtCore\Controller\SelectedSiteController;
- use Opentalent\OtCore\Cache\OtCacheManager;
- use Opentalent\OtCore\Website\OtWebsiteRepository;
- use Opentalent\OtTemplating\Templating\TemplateRepository;
- use PDO;
- use TYPO3\CMS\Core\Database\ConnectionPool;
- use TYPO3\CMS\Core\Utility\GeneralUtility;
- use TYPO3\CMS\Extbase\Object\ObjectManager;
- /**
- * Controller for the OtCustomizer backend submodule
- *
- * @author olivier.massot
- */
- class OtCustomizerController extends SelectedSiteController {
- /**
- * @var \TYPO3\CMS\Core\Database\ConnectionPool
- */
- private $connectionPool;
- public function injectConnectionPool(\TYPO3\CMS\Core\Database\ConnectionPool $connectionPool)
- {
- $this->connectionPool = $connectionPool;
- }
- /**
- * Index action (default action)
- * Displays the customizer page on the backend
- */
- public function indexAction() {
- $this->view->assign('rootPage', $this->currentRootUid);
- $this->view->assign('website', $this->currentWebsite);
- $this->view->assign('templates', TemplateRepository::templates);
- $templateRepository = GeneralUtility::makeInstance(ObjectManager::class)->get(TemplateRepository::class);
- $this->view->assign('currentTemplate', $templateRepository->getTemplate($this->currentWebsite));
- $this->view->assign('preferences', $templateRepository->getTemplatePreferences($this->currentWebsite));
- }
- /**
- * A template has been selected, apply the change
- */
- public function selectTemplateAction() {
- $templateKey = $this->request->getArgument('template_key');
- // applies the change in the database
- $queryBuilder = $this->connectionPool->getQueryBuilderForTable('ot_websites');
- $queryBuilder->update('ot_websites')
- ->where($queryBuilder->expr()->eq('uid', $this->currentWebsite['uid']))
- ->set('template', $templateKey)
- ->execute();
- // Clear the site's cache
- OtCacheManager::clearSiteCache($this->currentRootUid);
- $this->addFlashMessage($this->getLanguageService()->sL(
- 'LLL:EXT:ot_templating/Resources/Private/Language/locallang.xlf:theme_updated'
- ));
- $this->forward('index');
- }
- /**
- * Update the site's preferences
- */
- public function updatePreferencesAction() {
- $args = $this->request->getArguments();
- $prefs = TemplateRepository::defaultPreferences;
- if (isset($args['themeColor'])) {
- $prefs['themeColor'] = $args['themeColor'];
- }
- if (isset($args['displayCarousel'])) {
- $prefs['displayCarousel'] = $args['displayCarousel'] ? 1 : 0;
- }
- if (isset($args['displayBreadcrumb'])) {
- $prefs['displayBreadcrumb'] = $args['displayBreadcrumb'] ? 1 : 0;
- }
- if (isset($args['staticDonors'])) {
- $prefs['staticDonors'] = $args['staticDonors'] ? 1 : 0;
- }
- // applies the change in the database
- $queryBuilder = $this->connectionPool->getQueryBuilderForTable('ot_websites');
- $queryBuilder->update('ot_websites')
- ->where($queryBuilder->expr()->eq('uid', $this->currentWebsite['uid']))
- ->set('template_preferences', json_encode($prefs))
- ->execute();
- // Clear the site's cache
- OtCacheManager::clearSiteCache($this->currentRootUid);
- $this->addFlashMessage($this->getLanguageService()->sL(
- 'LLL:EXT:ot_templating/Resources/Private/Language/locallang.xlf:settings_updated'
- ));
- $this->forward(
- 'index',
- 'OtCustomizer',
- 'OtTemplating'
- );
- }
- }
|