TemplateRepository.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. CONST templates = [
  15. 'Classic' => [
  16. 'name' => 'Classique',
  17. 'description' => "Le thème classique, simple et complet. C'est le thème par défaut.",
  18. 'picture' => 'EXT:ot_templating/Resources/Public/media/theme_classic.png'
  19. ],
  20. 'Modern' => [
  21. 'name' => 'Moderne',
  22. 'description' => '[Nouveauté 2020] Un thème moderne et intuitif.',
  23. 'picture' => 'EXT:ot_templating/Resources/Public/media/theme_modern.png'
  24. ]
  25. ];
  26. CONST defaultTemplate = 'Classic';
  27. CONST defaultPreferences = [
  28. 'themeColor' => 'lightblue',
  29. 'displayCarousel' => '1'
  30. ];
  31. /**
  32. * Returns the site template's name
  33. *
  34. * @param int $rootUid
  35. * @return string
  36. */
  37. public function getTemplate(int $rootUid) {
  38. if (!($rootUid >= 0)) {
  39. return self::defaultTemplate;
  40. }
  41. $cnnPool = GeneralUtility::makeInstance(ConnectionPool::class);
  42. $queryBuilder = $cnnPool->getQueryBuilderForTable('pages');
  43. $templateName = $queryBuilder
  44. ->select('tx_opentalent_template')
  45. ->from('pages')
  46. ->where($queryBuilder->expr()->eq('uid', $rootUid))
  47. ->execute()
  48. ->fetchColumn(0);
  49. if ($templateName==='') {
  50. return self::defaultTemplate;
  51. }
  52. return $templateName;
  53. }
  54. /**
  55. * Returns the current site template's name
  56. * @param int $rootUid
  57. * @return array
  58. */
  59. public function getTemplatePreferences(int $rootUid) {
  60. $cnnPool = GeneralUtility::makeInstance(ConnectionPool::class);
  61. $queryBuilder = $cnnPool->getQueryBuilderForTable('pages');
  62. $templatePreferences = $queryBuilder
  63. ->select('tx_opentalent_template_preferences')
  64. ->from('pages')
  65. ->where($queryBuilder->expr()->eq('uid', $rootUid))
  66. ->execute()
  67. ->fetchColumn(0);
  68. if ($templatePreferences==='') {
  69. return self::defaultPreferences;
  70. }
  71. return json_decode($templatePreferences, true);
  72. }
  73. }