setup.txt / setup.typoscript не загружается в модуль - PullRequest
0 голосов
/ 28 февраля 2020

Я пишу extensio в Typo3 9.5 и не могу загрузить setup.txt или setup.typoscript.

Я пытаюсь добавить второй тип страницы, который отображает только JSON , Для этого я понял, что мне нужно изменить опечатку. Поэтому я добавил этот код в свой setup.typoscript:

ajax_ajaxjson = PAGE
ajax_ajaxjson {
    typeNum = 1

    config {
        disableAllHeaderCode = 1
        additionalHeaders = {
            10 {
                header = Content-Type: application/json
                replace = 1
            }
        }
        xhtml_cleaning = 0
        debug = 0
        no_cache = 1
        admPanel = 0
    }

    10 < tt_content.list.20.tx_energieportal_ajaxjson
}

(в EXT: \ Configuration \ TypoScript \ setup.txt)

Теперь при попытке загрузить на этом типе страницы я получаю следующую ошибку:

TYPO3\CMS\Core\Error\Http\ServiceUnavailableException
The page is not configured! [type=1][]. This means that there is no TypoScript object of type PAGE with typeNum=1 configured.

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

<f:cObject typoscriptObjectPath="testvar"/>

я получаю ошибку:

No Content Object definition found at TypoScript object path "testvar"

Я настроил свой sys_template. php вверх так:

<?php
defined('TYPO3_MODE') or die();

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
    'energieportal',
    'Configuration/TypoScript',
    'Energieportal Frontend'
);

(в EXT: \ Configuration \ TCA \ sys_template. php).

Я также попытался переименовать файл setup.txt в setup.typoscript.

Что еще нужно сделать, чтобы мой модуль загрузил файл setup.typoscript? Я посмотрел на документы и другие модули, но ничего не нашел для настройки этого файла.

Я использовал функцию поиска, но на единственный похожий вопрос не было ответа. ( Link )

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Если вы хотите переопределить TCA существующих таблиц, вам нужно поместить файл в Configuration/TCA/Overrides/.

Итак, правильный путь для вашего sys_template.php должен быть Configuration/TCA/Overrides/sys_template.php.

0 голосов
/ 28 февраля 2020

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile только добавляет его в список стати c Файлы TypoScript, которые можно загрузить в шаблон TypoScript. Он не загружает файл TypoScript автоматически.

Вы должны будете включить его в шаблон TypoScript в бэкэнде TYPO3. Доступные шаблоны stati c можно найти на вкладке Includes в разделе Include static (from extensions).

. В качестве альтернативы вы можете включить его в другой файл TypoScript, который уже загружен ранее упомянутым способом, с помощью @import 'EXT:EXT:energieportal/Configuration/TypoScript/setup.typoscript' или <INCLUDE_TYPOSCRIPT: source="FILE:EXT:energieportal/Configuration/TypoScript/setup.typoscript">

Также можно добавить TypoScript непосредственно из PHP, используя \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript('My TypoScript'), так что вы можете добавить туда строку @import или <INCLUDE_TYPOSCRIPT...>. Вы можете добавить это в ext_localconf.php или Configuration\TCA\Overrides\sys_template.php вашего расширения. Однако обычно это не рекомендуется, так как вы можете не захотеть загружать TypoScript для всех страниц и / или сайтов в установке TYPO3.

...