--- Original Nachricht ---
Absender:   Stig Nørgaard Færch
Datum:       23.02.2009 11:59:
> I know conditions.
> But I don't think that this is what I'm looking for - unless I 
> misunderstood something.
> How can I include typoscript templates conditionally with these conditions?
> 
> /Stig
> 
> Daniel Huf skrev:
>> Try here:
>> http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/4/1/
>>  
>>
>>
>> Daniel
>>
>> Stig Nørgaard Færch wrote:
>>> I know it's possible to include typoscript from typoscript setup 
>>> through <INCLUDE_TYPOSCRIPT:somefile>.
>>>
>>> What I'm looking for is the possibility to include typoscript 
>>> templates (sys_template) conditionally.
>>>
>>> Let's say that some constant is set to 1, then I want template A to 
>>> be included.
>>> If the constant is set to 2, then I want tempalte B to be included.
>>>
>>> Is this somehow possible?
>>>
>>> /Stig

Can be done with userMatch condition:

Example to check if a template is set (s. fdfx_yaml)
<code>
        function tx_fdfxyaml_userMatch($template)
        {
                $ok=false;
                if (is_object($GLOBALS['TSFE']))
                {
                        if 
(isset($GLOBALS['TSFE']->register['tx_rlmptmplselector_ca_tmpl']))
                        {
                         
$ok=$GLOBALS['TSFE']->register['tx_rlmptmplselector_ca_tmpl']==$template;
                        } else {
                                if 
($GLOBALS['TSFE']->page['tx_rlmptmplselector_ca_tmpl']!='0')
                                {
                                        
$GLOBALS['TSFE']->register['tx_rlmptmplselector_ca_tmpl'] = 
$GLOBALS['TSFE']->page['tx_rlmptmplselector_ca_tmpl'];
                                 
$ok=$GLOBALS['TSFE']->register['tx_rlmptmplselector_ca_tmpl']==$template;
                                } else {
                                        $confArray = 
unserialize($GLOBALS["TYPO3_CONF_VARS"]["EXT"]["extConf"]["rlmp_tmplselector"]);
                                        $tmplConf = 
$GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_rlmptmplselector_pi1."];
                                        if (is_null($tmplConf))
                                        {
                                                // this will be null if 
condition is used in constants
                                                // TODO: is there any way to 
work around?
                                                
$tmplConf=array('inheritMainTemplates' => 1,'inheritSubTemplates'=>1);
                                        }
                                        if (is_array($tmplConf))
                                        {
                                                $rootLine = 
$GLOBALS['TSFE']->rootLine;
                                                $pageSelect = 
t3lib_div::makeInstance('t3lib_pageSelect');
                                                if (is_array ($rootLine))
                                                {
                                                        if 
(intval($tmplConf['inheritMainTemplates']) == 1) {
                                                                foreach 
($rootLine as $rootLinePage) {
                                                                        $page = 
$pageSelect->getPage ($rootLinePage['uid']);
                                                                        if 
($page['tx_rlmptmplselector_main_tmpl']) {
                                                                                
$GLOBALS['TSFE']->register['tx_rlmptmplselector_main_tmpl'] = 
$page['tx_rlmptmplselector_main_tmpl'];
                                                                                
break;
                                                                        }
                                                                }
                                                        }
                                                        if 
(intval($tmplConf['inheritSubTemplates']) == 1)
                                                        {
                                                                foreach 
($rootLine as $rootLinePage) {
                                                                        $page = 
$pageSelect->getPage ($rootLinePage['uid']);
                                                                        if 
($page['tx_rlmptmplselector_ca_tmpl'])
                                                                        {
                                                                                
$GLOBALS['TSFE']->register['tx_rlmptmplselector_ca_tmpl'] = 
$page['tx_rlmptmplselector_ca_tmpl'];
                                                                         
$ok=$GLOBALS['TSFE']->register['tx_rlmptmplselector_ca_tmpl']==$template;
                                                                                
break;
                                                                        }
                                                                }
                                                        }
                                                }
                                        }
                                }
                        }
                }
                return $ok;
        }
</code>

include e.g. in localconf.php of your extension
and then to check:

[userFunc = tx_fdfxyaml_userMatch(h-123-f.html)]
<INCLUDE_TYPOSCRIPT: 
source="FILE:EXT:fdfx_yaml/templates/typoscript/setup.h-123-f.txt">
<INCLUDE_TYPOSCRIPT: 
source="FILE:EXT:fdfx_yaml/templates/typoscript/local/setup.h-123-f.txt">
[end]

Hopes that helps.

Peter.



-- 
Fiat lux!
Docendo discimus.
http://www.gidf.de

_____________________________
4Many� Services
uon GbR

XING:   http://www.xing.com/profile/Peter_Russ
        https://www.xing.com/go/invita/360052
        http://www.xing.com/go/privatemessage/Peter_Russ
_______________________________________________
TYPO3-english mailing list
[email protected]
http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-english

Reply via email to