0

スケジュール スクリプトで拡張機能のタイポスクリプトをセットアップする必要があります。

私はtypo3 v 4.5を使用しています。

私のスケジュールスクリプトは次のようになります。

class tx_myext_scheduler extends tx_scheduler_Task { 
    public function execute() {
        //here i need to get typoscript setup
    }
}

私の拡張設定は次のようになります。

plugin.tx_myext_pi1{
    listView{
        file.height = 216c
    }
}

schedualr スクリプトでは、file.height 値を取得する必要があります。どうやってするか ?

現在、私は成功せずにこれを試しました

$pObj = $GLOBALS['TSFE'];
$conf = $pObj->tmpl->setup['plugin.']['tx_myext_pi1.'];

ありがとうございました。

4

2 に答える 2

0

TSFEフロントエンドでのみ使用できるため、自分で初期化する必要があります (リソースを消費します!)。スケジューラーでそのように作成できます: ( source )

$GLOBALS['TT'] = new t3lib_timeTrackNull;
$GLOBALS['TSFE'] = t3lib_div::makeInstance('tslib_fe', $GLOBALS['TYPO3_CONF_VARS'], 2, 0);
$GLOBALS['TSFE']->sys_page = t3lib_div::makeInstance('t3lib_pageSelect');
$GLOBALS['TSFE']->sys_page->init(TRUE);
$GLOBALS['TSFE']->initTemplate();
$GLOBALS['TSFE']->rootLine = '';
$GLOBALS['TSFE']->sys_page->getRootLine(1, '');
$GLOBALS['TSFE']->getConfigArray();

または eID スクリプトで: ( source )

require_once(PATH_tslib.'class.tslib_fe.php');
require_once(PATH_t3lib.'class.t3lib_page.php');
$temp_TSFEclassName = t3lib_div::makeInstanceClassName('tslib_fe');
$GLOBALS['TSFE'] = new $temp_TSFEclassName($TYPO3_CONF_VARS, $pid, 0, true);
$GLOBALS['TSFE']->connectToDB();
$GLOBALS['TSFE']->initFEuser();
$GLOBALS['TSFE']->determineId();
$GLOBALS['TSFE']->getCompressedTCarray();
$GLOBALS['TSFE']->initTemplate();
$GLOBALS['TSFE']->getConfigArray();

またはバックエンドモジュールで: ( source )

function loadTypoScriptForBEModule($extKey) {
    require_once(PATH_t3lib . 'class.t3lib_page.php');
    require_once(PATH_t3lib . 'class.t3lib_tstemplate.php');
    require_once(PATH_t3lib . 'class.t3lib_tsparser_ext.php');
    list($page) = t3lib_BEfunc::getRecordsByField('pages', 'pid', 0);
    $pageUid = intval($page['uid']);
    $sysPageObj = t3lib_div::makeInstance('t3lib_pageSelect');
    $rootLine = $sysPageObj->getRootLine($pageUid);
    $TSObj = t3lib_div::makeInstance('t3lib_tsparser_ext');
    $TSObj->tt_track = 0;
    $TSObj->init();
    $TSObj->runThroughTemplates($rootLine);
    $TSObj->generateConfig();
    return $TSObj->setup['plugin.'][$extKey . '.'];
}

どこかにクラスエラーがない場合は、require を追加する必要があるかもしれません。

于 2013-08-06T07:18:42.293 に答える