Zum Inhalt springen

Typoscript Einstellungen im Backend auslesen

Erstellt am 1. März 2013 · 1 Antwort · letzte Antwort am 4. März 2013

Tags: FlexForms, Frage

MajPay ·

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?

MajPay ·
<?php

namespace Vendor\ExtensionName\Service;

require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('frontend') . 'Classes/Page/PageRepository.php';
require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('core') . 'Classes/TypoScript/TemplateService.php';
require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('core') . 'Classes/TypoScript/ExtendedTemplateService.php';

/**
 * some tools and helpers
 *
 * @author Philipp Wrann
 */
class Tools {
	
	/**
	 * @param int $pageUid [optional] the current pageuid
	 * @return type
	 */
	public static function loadTS($pageUid=NULL) {
		$pageUid = ($pageUid && \TYPO3\CMS\Core\Utility\MathUtility::canBeInterpretedAsInteger($pageUid)) ? $pageUid : \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('id');
		$sysPageObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Frontend\\Page\\PageRepository');
		$TSObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\TypoScript\\TemplateService');
		$TSObj->tt_track = 0;
		$TSObj->init();
		$TSObj->runThroughTemplates($sysPageObj->getRootLine($pageUid));
		$TSObj->generateConfig();
		return $TSObj->setup;
	}
	
}

?>

Um im Flexform wizard zur PageUid zu kommen:

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