TYPO3 9.5 Включение файла TypoScript для всех внутренних страниц - PullRequest
1 голос
/ 24 мая 2019

Я написал расширение Typo3 под названием locationgallery с внутренним модулем. Этот внутренний модуль должен использовать следующую конфигурацию TypoScript.

module.tx_locationgallery_web_locationgallerylocationgallerybe {
    view {
        templateRootPaths.0 = EXT:locationgallery/Resources/Private/Backend/Templates/
        partialRootPaths.0 = EXT:locationgallery/Resources/Private/Backend/Partials/
        layoutRootPaths.0 = EXT:locationgallery/Resources/Private/Backend/Layouts/
    }
}

Если я теперь добавлю статический шаблон 'locationgallery', который был добавлен с помощью ExtensionManagementUtility::addStaticFile, на каждой странице, где этот шаблон включен, все работает нормально.

Моя проблема в том, что я получаю сообщение об ошибке

Sorry, the requested view was not found.

The technical reason is: No template was found. ...

если я выберу страницу в дереве страниц, где статический шаблон не включен.

Моя проблема сейчас в том, что я не хочу включать статический шаблон в корневую страницу, но внутренний модуль 'locationgallery' должен использоваться на всех страницах.

Я попытался включить соответствующие части конфигурации, используя ExtensionManagementUtility::addPageTSConfig, который используется для добавления TSConfig к переменной $GLOBALS['TYPO3_CONF_VARS']['BE']['defaultPageTSconfig']. Но этот Typoscript не интерпретируется до того, как представление пытается найти шаблон. (Например, это не интерпретируется вообще во время этого прогона, насколько я знаю, потому что я нашел только TemplateService::mergeConstantsFromPageTSconfig и TypoScriptFrontendController::getPagesTSconfig, относящиеся к $GLOBALS['TYPO3_CONF_VARS']['BE']['defaultPageTSconfig'].)

Я обнаружил, что powermail архивировал то, что я хочу, используя ext_typoscript_setup.typoscript , но это устарело в соответствии с https://forge.typo3.org/issues/52364.

Дополнительным недостатком этого метода является то, что ext_typoscript_setup.typoscript интерпретируется независимо от режима бэкенда и внешнего интерфейса.

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

Спасибо за любые предложения.

1 Ответ

1 голос
/ 26 мая 2019

Вы можете разделить настройки TS на несколько файлов для разделения включений.

Добавьте следующие методы в Configuration/TCA/Overrides/sys_template.php

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
  'your_ext_key',
  'Configuration/TypoScript/backend_or_however_you_call_it.typoscript',
  'Your label'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
  'your_ext_key',
  'Configuration/TypoScript/frontendend_or_however_you_call_it.typoscript',
  'Your label'
);
...