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

0

Поэтому мне была назначена задача, которая обычно была бы тривиальной, но она должна работать на довольно старом Typo3-Website (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 Object Browser показывает намного больше (включая то, что мне нужно):

[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}

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

[РЕДАКТИРОВАТЬ] Ответ в соответствующем вопросе дает только некоторые данные конфигурации, как показано выше. Я ищу подсказку о том, как получить оставшуюся часть данных.

  • 0
    Это не дубликат. Если что, это просьба о разъяснении. Как говорится в моем вопросе, я попробовал решение этого вопроса, но оно мне не помогло.
  • 0
    Вы правы, это не дубликат - извините за флаг.
Теги:
typo3

1 ответ

0
Лучший ответ

Хорошо. Я нашел ответ на этот вопрос в этом старом посте.
В классе 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);

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

[РЕДАКТИРОВАТЬ]
Видимо, это была эта линия:

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню