[TYPO3-german] KONSTANTEN in TYPO3 Extension auslesen

Steffen Düsel steffen.duesel at gmail.com
Fri Jul 18 08:48:55 CEST 2014


Quote: Steffen Düsel (snduesel) wrote on Thu, 17 July 2014 20:09
----------------------------------------------------
> Quote: Oliver W. wrote on Thu, 17 July 2014 17:45
> ----------------------------------------------------
> > Hallo,
> > 
> > es ist doch sicherlich irgendwie möglich, auf festgelegte Constants zugreifen zu können.
> > Hintergrund ist, das ich für eine Ext. für verschiedene Bäume eine ID setzen möchte. 
> > 
> > Daher möchte ich diese IDs je Baum/Webseite (root lvl 1) auslesen.
> > Hat jemand einen Tip?
> > 
> > Danke!
> > 
> > Gruß
> > Olli
> ----------------------------------------------------
> in den CONSTANTS definierst du die Variable:
> meine_variable = 123
> Im SETUP holst du dir diese Variable in die Konfiguration deiner Extension, z.B.:
> 
> plugin.tx_meineext {
>     meine_variable = {$meine_variable}
> }
> 
> Dann hast du in deiner Extension den Wert der Variable in
> $conf['meine_variable']  
> 
----------------------------------------------------
Ich denke die Methode würde bei dir am besten zutreffen:

++++++++++++++
typo3conf/ext/deine_extension/Configuration/TypoScript/setup.txt
++++++++++++++
plugin.tx_deineextension {
	view {
		templateRootPath = {$plugin.tx_deineextensionview.templateRootPath}
		partialRootPath = {$plugin.tx_deineextension.view.partialRootPath}
		layoutRootPath = {$plugin.tx_deineextension.view.layoutRootPath}
	}
	persistence {
		storagePid = {$plugin.tx_deineextension.persistence.storagePid}
	}
	features {
		# uncomment the following line to enable the new Property Mapper.
		# rewrittenPropertyMapper = 1
	}
    language {
        lang = {$plugin.tx_deineextension.language.lang}
    }
    countrygroup {
        pl = {$plugin.tx_deineextension.countrygroup.pl}
        tr = {$plugin.tx_deineextension.countrygroup.tr}
        ro = {$plugin.tx_deineextension.countrygroup.ro}
        at = {$plugin.tx_deineextension.countrygroup.at}
        fr = {$plugin.tx_deineextension.countrygroup.fr}
        be = {$plugin.tx_deineextension.countrygroup.be}
        dk = {$plugin.tx_deineextension.countrygroup.dk}
        en = {$plugin.tx_deineextension.countrygroup.en}
        de = {$plugin.tx_deineextensioncountrygroup.de}
    }
}
++++++++++++++
typo3conf/ext/deine_extension/Configuration/TypoScript/constants.txt
++++++++++++++
plugin.tx_deineextension {
	view {
		# cat=plugin.tx_deineextension/file; type=string; label=Path to template root (FE)
		templateRootPath = EXT:tx_deineextension/Resources/Private/Templates/
		# cat=plugin.tx_deineextension/file; type=string; label=Path to template partials (FE)
		partialRootPath = EXT:tx_deineextension/Resources/Private/Partials/
		# cat=plugin.tx_deineextension/file; type=string; label=Path to template layouts (FE)
		layoutRootPath = EXT:tx_deineextension/Resources/Private/Layouts/
	}
	persistence {
		# cat=plugin.tx_deineextension//a; type=string; label=Default storage PID
		storagePid =
	}
	language {
	    # cat=plugin.tx_deineextension//a; type=string; label=Default language
    	lang = de
    }
    countrygroup {
        # cat=plugin.tx_deineextension//a; type=string; label=Default pl
        pl = 12748
        # cat=plugin.tx_deineextension//a; type=string; label=Default tr
        tr = 12586
        # cat=plugin.tx_deineextension//a; type=string; label=Default ro
        ro = 12540
        # cat=plugin.tx_deineextension//a; type=string; label=Default at
        at = 12494
        # cat=plugin.tx_deineextension//a; type=string; label=Default fr
        fr = 12448
        # cat=plugin.tx_deineextension//a; type=string; label=Default be
        be = 12402
        # cat=plugin.tx_deineextension//a; type=string; label=Default dk
        dk = 12245
        # cat=plugin.tx_deineextension//a; type=string; label=Default eu
        eu = 2036
        # cat=plugin.tx_deineextension//a; type=string; label=Default de
        de = 2
    }
}
+++++++++++++++++
Konfiguration dann auch über Page-Template - Constants möglich
+++++++++++++++++
# Start Language
#plugin.tx_deineextension.language.lang= en

plugin.tx_deineextension.countrygroup.pl= 0
plugin.tx_deineextension.countrygroup.tr= 0
plugin.tx_deineextension.countrygroup.ro= 0
plugin.tx_deineextension.countrygroup.at= 0
plugin.tx_deineextension.countrygroup.fr= 12106
plugin.tx_deineextension.countrygroup.be= 0
plugin.tx_deineextension.countrygroup.dk= 0
plugin.tx_deineextension.countrygroup.en= 12106
plugin.tx_deineextension.countrygroup.de= 12105

++++++++++++++
Beispiel Funktion in PHP
++++++++++++++
	public function findCountryGroupPageUidByEuroMapFromTypoScript($euroMap)
	{
		switch ($euroMap) {
			case "Polen":
				return $GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_deineextension."]["countrygroup."]["pl"];
			case "Türkei":
				return $GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_deineextension."]["countrygroup."]["tr"];
			case "Romänien":
				return $GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_deineextension."]["countrygroup."]["ro"];
			case "Deutschland":
				return $GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_deineextension."]["countrygroup."]["de"];
			case "Belgien":
				return $GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_deineextension."]["countrygroup."]["be"];
			case "Dänemark":
				return $GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_deineextension."]["countrygroup."]["dk"];
			case "Frankreich":
				return $GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_deineextension."]["countrygroup."]["fr"];
			case "Österreich":
				return $GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_deineextension."]["countrygroup."]["at"];
			default;
				return $GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_deineextension."]["countrygroup."]["en"];
		}

	}
++++++++++++++++++++++
So macht du übrigends den Redirect anhand der PageUid:

$arguments = array('registrationModel' => $registrationModel);
$pageUidCountryOrganisation = $this->findCountryGroupPageUidByEuroMapFromTypoScript($euroMap);
$this->uriBuilder->setTargetPageUid($pageUidCountryOrganisation);
$uri = $this->uriBuilder->uriFor('action', $arguments, 'controller');
$this->redirectToUri($uri);
++++++++++++++++++++++
Ich hoffe du kannst damit was anfangen. "deineextension" musst du natürlich noch ersetzen ;)


More information about the TYPO3-german mailing list