Typoscript Einstellungen im Backend auslesen

  • MajPay MajPay
    Jedi-Meister
    0 x
    345 Beiträge
    2 Hilfreiche Beiträge
    01. 03. 2013, 17:09

    Hi,

    Ich möchte in einem Flexform Typoscript Einstellungen verwenden, dazu habe ich eine Select box mit der itemsProcFunc überarbeitet, ich kann nach belieben neue Options anfügen.

    Nun möchte ich aber Dateien aus einem Verzeichnis anzeigen lassen, und zwar mit Zuhilfenahme der Typoscripteinstellung für den Templatepath. So soll es möglich werden neue Templates anzulegen und verwendbar zu machen.

    In der itemsProcFunc kann ich aber nicht auf GLOBALS[TSFE]zugreifen, mit welcher ich ja die TS Einstellungen auslesen kann.

    Wie kann ich vorgehen?


  • 1
  • MajPay MajPay
    Jedi-Meister
    0 x
    345 Beiträge
    2 Hilfreiche Beiträge
    04. 03. 2013, 14:42

    1. <?php
    2.  
    3. namespace Vendor\ExtensionName\Service;
    4.  
    5. require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('frontend') . 'Classes/Page/PageRepository.php';
    6. require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('core') . 'Classes/TypoScript/TemplateService.php';
    7. require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('core') . 'Classes/TypoScript/ExtendedTemplateService.php';
    8.  
    9. /**
    10.  * some tools and helpers
    11.  *
    12.  * @author Philipp Wrann
    13.  */
    14. class Tools {
    15.  
    16. /**
    17. * @param int $pageUid [optional] the current pageuid
    18. * @return type
    19. */
    20. public static function loadTS($pageUid=NULL) {
    21. $pageUid = ($pageUid && \TYPO3\CMS\Core\Utility\MathUtility::canBeInterpretedAsInteger($pageUid)) ? $pageUid : \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('id');
    22. $sysPageObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Frontend\\Page\\PageRepository');
    23. $TSObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\TypoScript\\TemplateService');
    24. $TSObj->tt_track = 0;
    25. $TSObj->init();
    26. $TSObj->runThroughTemplates($sysPageObj->getRootLine($pageUid));
    27. $TSObj->generateConfig();
    28. return $TSObj->setup;
    29. }
    30.  
    31. }
    32.  
    33. ?>

    Um im Flexform wizard zur PageUid zu kommen:

    1. $returnUrl = parse_url(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('returnUrl'));
    2. parse_str($returnUrl['query']);
    3. $typoscript = \Vendor\ExtensionName\Service\Tools::loadTS($id); //id set by parse_str

  • 1