| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- namespace Opentalent\OtTemplating\Templating;
- use Opentalent\OtCore\Page\OtPageRepository;
- use TYPO3\CMS\Core\Database\ConnectionPool;
- use TYPO3\CMS\Core\Utility\GeneralUtility;
- /**
- * Class TemplateRepository
- * Provides methods to retrieve data about the current site's template
- *
- * @package Opentalent\OtCore\Templating
- */
- class TemplateRepository
- {
- /**
- * @var \TYPO3\CMS\Core\Database\ConnectionPool
- */
- private $connectionPool;
- public function injectConnectionPool(\TYPO3\CMS\Core\Database\ConnectionPool $connectionPool)
- {
- $this->connectionPool = $connectionPool;
- }
- CONST templates = [
- 'Classic' => [
- 'name' => 'Classique',
- 'description' => "Le thème classique, simple et complet. C'est le thème par défaut.",
- 'picture' => 'EXT:ot_templating/Resources/Public/media/theme_classic.png'
- ],
- 'Modern' => [
- 'name' => 'Moderne',
- 'description' => '[Nouveauté 2020] Un thème moderne et intuitif.',
- 'picture' => 'EXT:ot_templating/Resources/Public/media/theme_modern.png'
- ]
- ];
- CONST defaultTemplate = 'Classic';
- CONST defaultPreferences = [
- 'themeColor' => 'lightblue',
- 'displayCarousel' => '1',
- 'displayBreadcrumb' => '1',
- ];
- /**
- * Returns the site template's name
- *
- * @param int $rootUid
- * @return string
- */
- public function getTemplate(int $rootUid) {
- if (!($rootUid >= 0)) {
- return self::defaultTemplate;
- }
- $queryBuilder = $this->connectionPool->getQueryBuilderForTable('pages');
- $templateName = $queryBuilder
- ->select('tx_opentalent_template')
- ->from('pages')
- ->where($queryBuilder->expr()->eq('uid', $rootUid))
- ->execute()
- ->fetchColumn(0);
- if ($templateName==='') {
- return self::defaultTemplate;
- }
- return $templateName;
- }
- /**
- * Returns the current site template's name
- * @param int $rootUid
- * @return array
- */
- public function getTemplatePreferences(int $rootUid) {
- $queryBuilder = $this->connectionPool->getQueryBuilderForTable('pages');
- $templatePreferences = $queryBuilder
- ->select('tx_opentalent_template_preferences')
- ->from('pages')
- ->where($queryBuilder->expr()->eq('uid', $rootUid))
- ->execute()
- ->fetchColumn(0);
- if ($templatePreferences !== '') {
- $templatePreferences = json_decode($templatePreferences, true);
- } else {
- $templatePreferences = [];
- }
- return array_merge(self::defaultPreferences, $templatePreferences);;
- }
- }
|