2017-04-21 19 views
1

私の内線番号のext_conf_template.txtにはいくつかの設定があります。typoscriptでext_conf_template.txt(拡張設定)にアクセスする方法は?

これらの設定の1つの値を確認したいのですが、typoscriptで、PHPでは確認しません。 PHPで

それは次のように動作します。

unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['myExt']) 

私はTypoScriptの中でこれを行う必要がありますどのように?

答えて

2

私はちょうどカスタムのTypoScript条件を追加して、私のコードスニペット拡張にも似たような(完全code on Githubを参照)、でした:

[DanielGoerz\FsCodeSnippet\Configuration\TypoScript\ConditionMatching\AllLanguagesCondition] 
    // some conditional TS 
[global] 

条件の実装は非常に簡単です:

namespace DanielGoerz\FsCodeSnippet\Configuration\TypoScript\ConditionMatching; 
use DanielGoerz\FsCodeSnippet\Utility\FsCodeSnippetConfigurationUtility; 
use TYPO3\CMS\Core\Configuration\TypoScript\ConditionMatching\AbstractCondition; 

class AllLanguagesCondition extends AbstractCondition 
{ 
    /** 
    * Check whether allLanguages is enabled 
    * @param array $conditionParameters 
    * @return bool 
    */ 
    public function matchCondition(array $conditionParameters) 
    { 
     return FsCodeSnippetConfigurationUtility::isAllLanguagesEnabled(); 
    } 
} 

そして、実際のTYPO3_CONF_VARSの値の確認はFsCodeSnippetConfigurationUtilityで行われます。

namespace DanielGoerz\FsCodeSnippet\Utility;  
class FsCodeSnippetConfigurationUtility 
{ 
    /** 
    * @return array 
    */ 
    private static function getExtensionConfiguration() 
    { 
     return unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['fs_code_snippet']); 
    } 
    /** 
    * @return bool 
    */ 
    public static function isAllLanguagesEnabled() 
    { 
     $conf = self::getExtensionConfiguration(); 
     return !empty($conf['enableAllLanguages']); 
    } 

} 

あなたのニーズに合っているかもしれません。

+0

ありがとうございます。拡張子を作成することは、typoscript設定の簡単なチェックのためにたくさんあるようです。 – Marcus

1

Extension Managerで設定を処理し、ext_localconf.phpExtensionManagementUtility::addTypoScriptConstants()を呼び出して、実行時にTypoScript定数を設定してください。

この方法で値を1つの場所に設定でき、低レベルのPHPとTypoScriptの両方の設定で利用できます。

関連する問題