Typo3 4.5, расширение PiBase, вызов Ajax с eID, как получить доступ к конфигурации?

Итак, мне поручили задачу, которая обычно была бы тривиальной, но она должна работать на довольно старом веб-сайте Typo3 (4.5). У меня очень мало опыта работы с Typo3.
Чтобы сделать вызов AJAX, я обнаружил, что мне нужен eID, мой собственный файл класса, я узнал, как вызывать основную функцию и все такое.
Теперь у меня есть много настроек в разных местах, и мне нужен доступ к этой информации.
В class.tx_as_es_pi1.php function main($content, $conf) есть очень удобный параметр $conf. Кажется, это стало возможным благодаря магии Typo3. Пытаясь каким-то образом имитировать это поведение, я попробовал этот ответ, и он дает меня с некоторыми настройками, используя эти строки:

$conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_ases_pi1.'];
var_dump($conf);

Я получаю этот результат:

 'includeLibs' => string 'typo3conf/ext/as_es/pi1/class.tx_as_es_pi1.php' (length=46)
  'userFunc' => string 'tx_ases_pi1->main' (length=17)

но обозреватель объектов Typoscript показывает намного больше (включая то, что мне нужно):

[tx_ases_pi1] = USER_INT # TypoScript added by extension "as_es" # Setting as_es plugin TypoScript
    [includeLibs] = typo3conf/ext/as_es/pi1/class.tx_as_es_pi1.php
    [userFunc] = tx_ases_pi1->main
    [config_template] = EXT:as_es/templates/results_elkwue.htm 
    [config_template_extended] = EXT:as_es/templates/extended_elkwue.htm
    [config_searchaccesskey] = someAccessKey
    [config_searchproxy] = someProxyUrl
    [config_searchfilterurl] = soeSearchFilterUrl
    [config_searchshowstat] = 1
    [config_utf8decode] = 1
    [config_maxtitlelength] = 50
    [config_removefromtitle] = SomeString
    [config_piwiktracking_host] = somePiwikHost
    [config_piwiktracking_port] = 80
    [config_piwiktracking_id] = SomeID
[config_fedebug_messages_search] = {$plugin.tx_ases_pi1.configuration.fedebug_messages_search}

Так что, очевидно, есть что-то, что я действительно не понимаю здесь. Может ли кто-нибудь указать мне в правильном направлении?

[EDIT] Ответ на соответствующий вопрос предоставляет только некоторые данные конфигурации, как показано выше. Я ищу подсказку о том, как получить остальные данные.


person Burki    schedule 27.03.2015    source источник
comment
Это не дубликат. Во всяком случае, это просьба о разъяснении. Как говорится в моем вопросе, я попробовал решение в этом вопросе, но это мне не помогло.   -  person Burki    schedule 27.03.2015
comment
Вы правы, это не дубликат - извините за флаг.   -  person Jost    schedule 27.03.2015


Ответы (1)


Хорошо. Я нашел ответ на этот вопрос в этот старый пост.
В классе eID добавьте этот метод:

/**
  * Initializes TSFE and sets $GLOBALS['TSFE'].
  *
  * @return void
  */
protected function initTSFE() {
    $GLOBALS['TSFE'] = t3lib_div::makeInstance('tslib_fe',
        $GLOBALS['TYPO3_CONF_VARS'], t3lib_div::_GP('id'), '');
    $GLOBALS['TSFE']->connectToDB();
    $GLOBALS['TSFE']->initFEuser();
    $GLOBALS['TSFE']->checkAlternativeIdMethods();
    $GLOBALS['TSFE']->determineId();
    $GLOBALS['TSFE']->getCompressedTCarray();
    $GLOBALS['TSFE']->initTemplate();
    $GLOBALS['TSFE']->getConfigArray();

    // Get linkVars, absRefPrefix, etc
    TSpagegen::pagegenInit();
} 

и в методе main() назовите его: $this->initTSFE(); . Затем этот вызов:

$conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_ases_pi1.'];
var_dump($conf);

выведет полный список.
Я не утверждаю, что действительно понимаю это... но поскольку это может избавить других от некоторых проблем, я все равно публикую это.

[EDIT]
Судя по всему, это была строка:

$GLOBALS['TSFE']->checkAlternativeIdMethods();

это имело значение. Его удаление приведет к появлению короткого вывода, показанного в вопросе.
В качестве примечания: эти строки:

$GLOBALS['TSFE']->initFEuser();
$GLOBALS['TSFE']->getCompressedTCarray();
TSpagegen::pagegenInit();

для меня это не имеет значения, поэтому я предполагаю, что в моем случае их можно опустить, чтобы немного ускорить процесс.
Я оставлю их здесь, потому что они могут помочь кому-то еще в будущем.

person Burki    schedule 27.03.2015