user500665
user500665

Reputation: 1362

TYPO3 13 Set ignores setup.typoscript?

I am trying to understand how to set up a basic sitepackage in TYPO3 13 using the new sets and I must be missing a simple step that the tutorial does not mention.

I have a simple set that is just a name and label that has been added to the page using the Sites module. The only other thing I have is setup.typoscript in the same folder as the set config.yaml. The setup just contains a basic Hello World.

But viewing the page gives me #1607585445 TYPO3\CMS\Core\Error\Http\InternalServerErrorException No page configured for type=0. So it's ignoring the typoscript file.

How do I make it use the setup.typoscript in the set folder?

Version tested: TYPO3 13.4 (Composer and non-composer)

Test environment made using Laragon on windows.

Configuration/Sets/Foo/config.yaml:

name: foo/bar
label: "Bar"

Configuration/Sets/Foo/setup.typoscript:

page = PAGE
page {
    10 = TEXT
    10.value = Hello World!
}

typo3conf/sites/foo/config.yaml:

base: 'http://typo3-13.test/foo'
dependencies:
  - foo/bar
languages:
  -
    title: English
    enabled: true
    languageId: 0
    base: /
    locale: en_US.UTF-8
    navigationTitle: English
    flag: us
rootPageId: 1
websiteTitle: ''

Other things I have tried:

Upvotes: 2

Views: 415

Answers (5)

Aristeidis Karavas
Aristeidis Karavas

Reputation: 1956

TYPO3 moves steadily and slowly towards versioning. Meaning previously system configuration related settings, are getting imported to your sitepackage and getting read automatically from TYPO3. One of those things is the inclusion of TypoScript records.

The problem i had and maybe almost everyone else who used ddev or in general the setup command, the command creates automatically a new sys_template record. So if you add a Site Set in your configuration, the sys_template record will have priority over it and you will get the error

TYPO3\CMS\Core\Error\Http\InternalServerErrorException No page configured for type=0.

Here is where the "magic" happens

https://github.com/TYPO3/typo3/blob/13.4/typo3/sysext/install/Classes/Service/SetupService.php#L186

This the function that is being called when in the setup process you decide to add a URL in the create-site argument

https://github.com/TYPO3/typo3/blob/13.4/typo3/sysext/install/Classes/Command/SetupCommand.php#L638

if this returns a valid URL, then the command calls the SetupService and creates the sys_template record

https://github.com/TYPO3/typo3/blob/13.4/typo3/sysext/install/Classes/Command/SetupCommand.php#L250


I guess due to backwards compatibility reasons, they let the creation of the sys_template still active, so developers get used to SiteSets before they completely remove the sys_template table. Only time will tell.

Upvotes: 0

wini
wini

Reputation: 43

By using site set via config/sites/config.yaml

dependencies:

  • venor/mypackagename or Backend Modul Sites Sets for this Site [dependencies]

it is recommend to unlcheck the clear-flags in the Advanced Options tab in BE TypoScript-module in order to prevent that the Site Set is overriden.

"If the website uses a mixed setup consisting of a TypoScript template (sys_template) and site sets, it is important to uncheck the "Clear" flag for constants and setup in the TypoScript template. If the "Clear" flag is checked (default), TypoScript settings from site sets are cleared and do therefore not apply."

refer to https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/SiteHandling/SiteSets.html#site-sets-typoscript

You may deactivate the whole template record, but don't forget to include ts from extension via dependencies in your config.yaml. Notice than up to now not all ext. are site set ready, so this way could cause problems.

Upvotes: 0

Mutayyab Usama
Mutayyab Usama

Reputation: 31

Found a the solution. For some reason TYPO3 13 does not show site extension in the include typo3 sets in the backend. I deleted the default typoscript added in backend and inserted it again. included fluid styled content and site extension typoscript from backend and it worked.

Upvotes: 0

Michael Dittberner
Michael Dittberner

Reputation: 11

I had the same problem. After hours of searching I found the cause which was especially for my windows setting. The 13 LTS TYPO3 core has problems with detecting correct paths on Windows engines (which is case for user500665, too). More in detail it is the resolvement of backslashes. The according core class is typo3/cms-core/Classes/TypoScript/IncludeTree/SysTemplateTreeBuilder.php:237, the Function is handleSetInclude().

The solution would be to add the handling of $path with GeneralUtility::fixWindowsFilePath($path) - which is not implemented by the core team yet. The bug is known - see https://forge.typo3.org/issues/105713.

Upvotes: 1

Adan0s
Adan0s

Reputation: 31

Had the same problem and resolved it by deleting the typoscript record assigned to the root page.

Upvotes: 0

Related Questions