[TYPO3-UG Dutch] constante frontendtemplate uitlezen in backend extensie

Ronald Wopereis woepwoep at gmail.com
Thu Jul 22 21:37:35 CEST 2010


Jigal, geweldig dit ! thx !
ben bezig met Ron Hall's TV_FrameWork te onderzoeken.
Muriel, wellicht kun je via http://templavoila.busynoggin.com/ wat
gemakkelijker kennismaken met TV
R

Op 22 juli 2010 17:34 schreef Jigal van Hemert <jigal at xs4all.nl> het
volgende:

> Hoi,
>
> Muriel le Pair wrote:
>
>> Op 21-7-2010 14:24, Frans van der Veen[netcreators] schreef:
>>
>>> Muriel le Pair wrote:
>>>
>>>> Hoe lees ik een constante van de frontend template uit in een backend
>>>> extensie?
>>>>
>>> Wat ik wil is eigenlijk vrij simpel. In een CMS komen meerdere websites
>> te staan met een template switch (backend extension) waarbij men zelf de
>> gewenste template kan selecteren. De templates voor root 1 zijn anders dan
>> voor root 2. dus ik wil graag dat men bij elke site alleen de templates kan
>> selecteren voor die specifieke site.
>>
>
> In het eerste voorbeeld wat je stuurde:
> >>> class tx_mijnextensie_pi1 extends tslib_pibase {
> zet je iedereen op het verkeerde been doordat je tslib_pibase gebruikt. Dit
> is vrij specifiek voor FE plugins.
>
> Als je de kickstarter een BE module laat maken (gebaseerd op t3lib_SCbase,
> dan zul je zien dat daarin de gekozen pagina in de pagetree als $this->id
> beschikbaar wordt gesteld.
>
> Ik vermoed echter dat je een uitbreiding van de page properties wilt
> bouwen. Je zou eens in TemplaVoilà kunnen kijken hoe die dat gebouwd hebben.
>
> Zo is het veld toegevoegd via (aantal configuratie-items weggelaten omwille
> van de ruimte):
>        'tx_templavoila_ds' => array (
>                'config' => array (
>                        'type' => 'select',
>                        'items' => Array (
>                                array('',0),
>                        ),
>                        'allowNonIdValues' => 1,
>                        'itemsProcFunc' =>
> 'tx_templavoila_handleStaticdatastructures->dataSourceItemsProcFunc',
>                )
>        ),
>
> Een select-box met een functie in
> class.tx_templavoila_handlestaticdatasctructures.php :
>
> public function dataSourceItemsProcFunc(array &$params, t3lib_TCEforms&
> $pObj) {
>        $storagePid = $this->getStoragePid($params, $pObj);
> (...)
>
> He, interessant; de functie begint met het zoeken naar de storage Pid en
> die is in TSConfig gedefinieerd!
> De parameters $params en $pObj worden door TYPO3 meegestuurd en die
> bevatten de sleutel tot het vinden van de "huidige" pagina, etc.
>
> protected function getStoragePid(array &$params, t3lib_TCEforms &$pObj) {
>                // Get default first
>        $tsConfig =
> &$pObj->cachedTSconfig[$params['table'].':'.$params['row']['uid']];
>        $storagePid = intval($tsConfig['_STORAGE_PID']);
>                // Check for alternative storage folder
>        $field = $params['table'] == 'pages' ? 'uid' : 'pid';
>        $modTSConfig = t3lib_BEfunc::getModTSconfig($params['row'][$field],
> 'tx_templavoila.storagePid');
>        if (is_array($modTSConfig) &&
> t3lib_div::testInt($modTSConfig['value'])) {
>                $storagePid = intval($modTSConfig['value']);
>        }
>        return $storagePid;
> }
>
> Deze functie laat goed zien hoe je een waarde uit TSConfig kunt uitlezen.
> Dit is vergelijkbaar met Typoscript voor de FE; alle TSConfig instellingen
> worden vanaf de root t/m de opgevraagde pagina verzameld en daaruit wordt de
> waarde gelezen.
>
> Het lijkt me dan ook verstandig om niet een Typoscript constante te gaan
> gebruiken, maar een TSConfig waarde (simpelweg in de page properties in te
> stellen). Naar gelang die waarde kun je dan de beschikbare templates
> presenteren voor selectie in een extra veld in de page properties.
>
> --
> Jigal van Hemert.
>
> _______________________________________________
> TYPO3-UG-Dutch mailing list
> TYPO3-UG-Dutch at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-dutch
>



-- 
Come and join me on Ecademy Club "Follow Me - learn how to become the Warren
Buffet of the Atttention Economy"
http://www.ecademy.com/account.php?op=signup&c=5591&xref=69061


More information about the TYPO3-UG-Dutch mailing list