2013-01-09 162 views
0

是否可以通過php包含typoscript文件? 通常我會包括Typo腳本與此:包括typoscript和php

<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/templates/typoscript/setup/1.ts"> 

但我想這樣做,只是用PHP,而不是Typo腳本。那可能嗎?

我的目的:我想動態加載Typo腳本在我的網頁

+0

也許你可以解釋你想要做什麼。我想有更好的辦法。你知道TypoScript條件嗎?常量? – maholtz

+0

我不知道我想包含哪個輸入框文件。所以條件不會幫助我。我想嘗試爲typoscript文件製作自動加載器,因此文件的名稱是動態的 – alphanyx

+0

您嘗試去的方式非常不尋常。也許可以採取TYPO3的方式。但是,如果不知道你想要存檔什麼,沒有人能以不同的方式提供幫助。 – maholtz

回答

1

這可以通過在早期階段調用一致函數來實現,例如,在撥打電話或在ext_localconf.php委託它。例如,bookstrap package加載Typo腳本在PHP這樣的:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig(
    '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:' . $_EXTKEY 
    . '/Configuration/PageTS/Mod/Wizards/newContentElement.txt">' 
); 

請考慮,即Typo腳本緩存實際前端渲染開始之前。這意味着,如果您已經調用了插件類或控制器邏輯,則不應該修改TypoScript。

0

可能是你需要從PHP函數返回值,並且使用的TypoScript條件選擇Typo腳本文件。

+0

我不想用php的條件來檢查是否應該導入typoscript文件,我不知道typoscript文件的名稱。我想從php動態獲取typoscript文件的名稱 – alphanyx

0

你可以嘗試以下的(如果我得到你的權利):

$typoscriptFile .= file_get_contents($someFile); 

$parser = t3lib_div::makeInstance('t3lib_TSparser'); 
$parser->parse($typoscriptFile); 

$tsArray = $parser->setup; 

我真的不知道如何將與有關全球Typo腳本雖然任何東西玩。

如果你想要一個完整的正確的解析,如果你從$GLOBALS['TSFE']->tmpl填充一個新的t3lib_TStemplate實例並運行上面的代碼,你也許可以把這樣的東西拉掉。可能工作,從未嘗試過。