[TYPO3-dev] How to get the extension typoscript configuration inside an eID script?

Peter Klein pmk at io.dk
Tue Nov 17 09:50:12 CET 2009


Hi Ernesto.

For FE ext. that works, but for a BE ext there's no connection to the FE.
That's why I need to initialize tmpl/tsfe from a BE module/ext. to access 
the TS setup.

--
Peter Klein

"Ernesto Baschny [cron IT]" <ernst at cron-it.de> wrote in message 
news:mailman.1.1258442948.21965.typo3-dev at lists.typo3.org...
> Hi Peter,
>
> Peter Klein schrieb:
>
>> I usually use the type approch when working with FE/AJAX.
>> This snippet was originally written for a BE/hook extension, where I had 
>> to
>> read the tt_news TS setup.
>> And AFIK there's no way of accessing the Typoscript setup other than
>> creating a tmpl/tsfe object.
>
> There is, just create a page with typeNum=123, disable headers etc (and
> page renderer in v4.3) and then add your ajax handler as an USER_INT
> plugin. You will have access to the whole TypoScript setup and it will
> probably be much faster than your approach.
>
> Cheers,
> Ernesto
>
>
>> "Ernesto Baschny [cron IT]" <ernst at cron-it.de> wrote in message
>> news:mailman.1.1258366809.4693.typo3-dev at lists.typo3.org...
>>> Hi,
>>>
>>> Peter Klein schrieb:
>>>
>>>> If you don't need a full TSFE and only need to access some config
>>>> vars/options, then you can do something like this:
>>>>
>>>> /* Classes required for creating a tmpl object */
>>>> require_once(PATH_t3lib."class.t3lib_extobjbase.php");
>>>> require_once(PATH_t3lib."class.t3lib_tsparser_ext.php");
>>>> require_once(PATH_t3lib."class.t3lib_page.php");
>>>>
>>>>     $pageId = <SET THIS TO THE ID OF THE CURRENT PAGE>;
>>>>
>>>>    $tmpl = t3lib_div::makeInstance("t3lib_tsparser_ext");
>>>>    $tmpl->tt_track = 0; // Do not log time-performance information
>>>>    $tmpl->init();
>>>>    // Gets the rootLine
>>>>    $sys_page = t3lib_div::makeInstance("t3lib_pageSelect");
>>>>    $rootLine = $sys_page->getRootLine($pageId);
>>>>    // This generates the constants/config + hierarchy info for the
>>>> template.
>>>>    $tmpl->runThroughTemplates($rootLine,0);
>>>>    $tmpl->generateConfig();
>>>>
>>>>     // Example: Get the TS config for the tt_news plugin
>>>>    $ttnewsConf = $tmpl->setup['plugin.']['tt_news.'];
>>> I think this is much worse than just using a page type.
>>> runThroughTemplates() is very "dumb" and low level: it generates lots of
>>> SQL queries to fetch your typoscript from rootline, parses it, includes
>>> external files, extension typoscript, and at the end generates the
>>> needed array.
>>>
>>> In a full blown TSFE enrivonment you get all this with "one" query, as
>>> it is already cached and can be served in no-time.
>>>
>>> So apart from being more code to write, it will most probably not be
>>> more performant than loading an USER_INT on an ajax "page" cObject. Or
>>> maybe your ajax call can even be cached as an USER object, which is then
>>> even faster! 






More information about the TYPO3-dev mailing list