TemplateRepository.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace Opentalent\OtTemplating\Templating;
  3. use Opentalent\OtCore\Page\OtPageRepository;
  4. use TYPO3\CMS\Core\Database\ConnectionPool;
  5. use TYPO3\CMS\Core\Utility\GeneralUtility;
  6. /**
  7. * Class TemplateRepository
  8. * Provides methods to retrieve data about the current site's template
  9. *
  10. * @package Opentalent\OtCore\Templating
  11. */
  12. class TemplateRepository
  13. {
  14. /**
  15. * @var \TYPO3\CMS\Core\Database\ConnectionPool
  16. */
  17. private $connectionPool;
  18. public function injectConnectionPool(\TYPO3\CMS\Core\Database\ConnectionPool $connectionPool)
  19. {
  20. $this->connectionPool = $connectionPool;
  21. }
  22. CONST templates = [
  23. 'Classic' => [
  24. 'name' => 'Classique',
  25. 'description' => "Le thème classique, simple et complet. C'est le thème par défaut.",
  26. 'picture' => 'EXT:ot_templating/Resources/Public/media/theme_classic.png'
  27. ],
  28. 'Modern' => [
  29. 'name' => 'Moderne',
  30. 'description' => '[Nouveauté 2020] Un thème moderne et intuitif.',
  31. 'picture' => 'EXT:ot_templating/Resources/Public/media/theme_modern.png'
  32. ]
  33. ];
  34. CONST defaultTemplate = 'Classic';
  35. CONST defaultPreferences = [
  36. 'themeColor' => 'lightblue',
  37. 'displayCarousel' => '1'
  38. ];
  39. /**
  40. * Returns the site template's name
  41. *
  42. * @param int $rootUid
  43. * @return string
  44. */
  45. public function getTemplate(int $rootUid) {
  46. if (!($rootUid >= 0)) {
  47. return self::defaultTemplate;
  48. }
  49. $queryBuilder = $this->connectionPool->getQueryBuilderForTable('pages');
  50. $templateName = $queryBuilder
  51. ->select('tx_opentalent_template')
  52. ->from('pages')
  53. ->where($queryBuilder->expr()->eq('uid', $rootUid))
  54. ->execute()
  55. ->fetchColumn(0);
  56. if ($templateName==='') {
  57. return self::defaultTemplate;
  58. }
  59. return $templateName;
  60. }
  61. /**
  62. * Returns the current site template's name
  63. * @param int $rootUid
  64. * @return array
  65. */
  66. public function getTemplatePreferences(int $rootUid) {
  67. $queryBuilder = $this->connectionPool->getQueryBuilderForTable('pages');
  68. $templatePreferences = $queryBuilder
  69. ->select('tx_opentalent_template_preferences')
  70. ->from('pages')
  71. ->where($queryBuilder->expr()->eq('uid', $rootUid))
  72. ->execute()
  73. ->fetchColumn(0);
  74. if ($templatePreferences==='') {
  75. return self::defaultPreferences;
  76. }
  77. return json_decode($templatePreferences, true);
  78. }
  79. }