TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692023-04-13T14:23:39ZTYPO3 Forge
Redmine TYPO3 Core - Bug #100580 (Resolved): Form Module shows "invalid form element" when {__currentTime...http://forge.typo3.org/issues/1005802023-04-13T14:23:39ZAndré Buchmann
<p>How to reproduce:</p>
<p>Create a simple form (eg. based on the default form) and use <code>{__currentTimestamp}</code> in the subject of the email finisher (or somewhere else). This is a special variable as documented here: <a class="external" href="https://docs.typo3.org/c/typo3/cms-form/main/en-us/I/Concepts/Finishers/Index.html#accessing-form-runtime-values">https://docs.typo3.org/c/typo3/cms-form/main/en-us/I/Concepts/Finishers/Index.html#accessing-form-runtime-values</a></p>
<p>IS:<br /><code>Your message: {subject} {__currentTimestamp}</code> -> Validates OK<br /><code>Your message: {__currentTimestamp}</code> -> Validates as invalid</p>
<p>TARGET:<br /><code>Your message: {__currentTimestamp}</code> -> Validates OK</p> TYPO3 Core - Bug #100219 (New): Get "Navigation loading error. Got unexpected response from the s...http://forge.typo3.org/issues/1002192023-03-20T11:59:45ZAndré Buchmann
<p>"Reopen" of <a class="external" href="https://forge.typo3.org/issues/97003">https://forge.typo3.org/issues/97003</a></p>
<blockquote>
<p>TYPO3 shows an error message about unexpected response from server in case browser cancel fetch request in the Backend.</p>
</blockquote>
<hr />
<p>A coworker notified me about this issue in a project when using the fileadmin with many images. The customer is very annoyed by those flash messages when they edit their content.</p>
<p>By the way: the same error Message is triggered for the page tree and the file tree as they both use the SvgTree class.</p>
<p>The problem is, that the editors select the image in the modal faster than the tree is built. When the image is selected the request is canceled, and the JS triggers the flash message. Error still exists in TYPO3 11.5.26-dev and 12.3.0-dev.</p>
<p>This can be easily tested with a plain TYPO3 11/12 and one image by slowing down the response of the controller with <code>sleep(10)</code> here: <a class="external" href="https://github.com/TYPO3/typo3/blob/11.5/typo3/sysext/backend/Classes/Controller/FileStorage/TreeController.php#L57">https://github.com/TYPO3/typo3/blob/11.5/typo3/sysext/backend/Classes/Controller/FileStorage/TreeController.php#L57</a></p> TYPO3 Core - Bug #98122 (Closed): Fix felogin variable name in TypoScript setuphttp://forge.typo3.org/issues/981222022-08-11T09:53:24ZAndré Buchmann
<p>Seems like the <code>showForgotPasswordLink</code> setting was renamed to <code>showForgotPassword</code> during the refactoring to fluid templates. In the TypoScript setup it's still <code>showForgotPasswordLink</code> and therefore the setting is not applied to the template.</p>
<p>I would keep the constant with the "Link" at the end <code>$styles.content.loginform.showForgotPasswordLink</code> as it is for compatibility.</p>
<p><a href="https://docs.typo3.org/c/typo3/cms-felogin/11.5/en-us/Configuration/Index.html#showforgotpassword" class="external">Documentation</a>: showForgotPassword<br /><a href="https://github.com/TYPO3/typo3/blob/56fb16033a9cb064a86163d5ea5f4fa6d457ec8b/typo3/sysext/felogin/Resources/Private/Templates/Login/Login.html#L29" class="external">Template</a>: showForgotPassword<br /><a href="https://github.com/TYPO3/typo3/blob/56fb16033a9cb064a86163d5ea5f4fa6d457ec8b/typo3/sysext/felogin/Configuration/FlexForms/Login.xml#L10" class="external">Flexform</a>: showForgotPassword<br /><a href="https://github.com/TYPO3/typo3/blob/56fb16033a9cb064a86163d5ea5f4fa6d457ec8b/typo3/sysext/felogin/Configuration/TypoScript/setup.typoscript#L14" class="external">TypoScript Setup</a>: showForgotPasswordLink</p> TYPO3 Core - Bug #97993 (Closed): RTE.default.preset not applied on bodytext field of custom cont...http://forge.typo3.org/issues/979932022-07-21T16:14:31ZAndré Buchmann
<pre>
RTE.default.preset = foo_default
</pre>
<p>While Upgrading from TYPO3 9 to 11 we noticed, that the custom RTE configuration is no longer applied to our custom content elements. The default textmedia element uses the custom RTE configuration as expected.<br />All described content elements use the same <code>tt_content.bodytext</code> field. The custom content elements are loading the default ext:rte_ckeditor config (<code>$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = 'EXT:rte_ckeditor/Configuration/RTE/Default.yaml';</code>).</p>
<p>Adding <code>RTE.config.tt_content.bodytext.preset = foo_default</code> applies the custom RTE config for the custom content elements. But til TYPO3 10 it was enough to define only the RTE.default.preset.</p>
<p>We followed the <a href="https://docs.typo3.org/c/typo3/cms-rte-ckeditor/main/en-us/Configuration/Examples.html" class="external">docs</a> to create the RTE configuration. And the config itself is not the problem.</p> TYPO3 Core - Bug #97616 (Closed): Bodytext of default Language shown in Translation on NULLhttp://forge.typo3.org/issues/976162022-05-12T11:43:50ZAndré Buchmann
<p><strong>Problem:</strong></p>
<p>Translated content elements are showing the bodytext content of the default language instead of nothing when value is <code>NULL</code> instead of empty string <code>''</code></p>
<p><strong>Short:</strong></p>
<ul>
<li>Language is set to "strict" mode in site configuration.</li>
<li>Content element (= ce) is translated using the connected mode.</li>
<li>Bodytext field value of translation is <code>NULL</code> instead of empty string <code>''</code></li>
<li>Bodytext field of default language has some content.</li>
</ul>
<hr />
<p><strong>How to reproduce?</strong></p>
<ol>
<li>Setup TYPO3 10/11/main with at least two languages. Use strict mode.</li>
<li>Create a ce "Header". </li>
<li>Then translate this ce (connected mode).</li>
<li>Edit the ce in the default language:
<ul>
<li>Switch type to "Text & Media" </li>
<li>Add some content to the bodytext field</li>
</ul></li>
</ol>
<p>Optional Steps:</p>
<ul>
<li>Change the translated ce also to "Text & Media" and save. But DON'T touch the bodytext field!</li>
<li>Check your database: Is the bodytext value <code>NULL</code> or <code>''</code></li>
</ul>
<p>When you create a textmedia directly or delete text from the bodytext with the RTE, the field will be saved as empty string.</p>
<p>The field is defined as <code>bodytext mediumtext,</code> in the <code>ext_tables.sql</code>. Therefore IMHO <code>NULL</code> and empty string <code>''</code> should behave the same way.</p>
<p>--</p>
<p>You find example data for a very basic setup attached (Site config + Dump: sys_template, pages & tt_content)</p> TYPO3 Core - Bug #97098 (Closed): Undefined array key warnings in HMENU & TMENUhttp://forge.typo3.org/issues/970982022-03-04T07:55:52ZAndré Buchmann
<p>(1/1) #1476107295 TYPO3\CMS\Core\Error\Exception<br />PHP Warning: Undefined array key "isSpacer" in /var/www/html/typo3/sysext/frontend/Classes/ContentObject/Menu/TextMenuContentObject.php line 79</p>
<p>Setup for testing:</p>
<p>LocalConfiguration:<br />displayErrors = 1<br />exceptionalErrors = 12290</p>
<p>Setup a rootpage and add the following Typoscript. Try to load the root page in the FE. No subpages needed.</p>
<p><strong>TMENU error:</strong><br /><pre>
lib.pageBreadcrumb = COA
lib.pageBreadcrumb.100 = HMENU
lib.pageBreadcrumb.100 {
special = rootline
special.range = 0|-0
1 = TMENU
1 {
minItems = 2
wrap = <nav class="page__breadcrumb"><div class="breadcrumb__inner" ><ul class="breadcrumb__list" >|</ul></div></nav>
NO {
wrapItemAndSub = <li class="breadcrumb__item first">|</li>|*|<li class="breadcrumb__item">|</li>|*|<li class="breadcrumb__item last">|</li>
stdWrap.replacement < lib.softhyphen.replacement
ATagParams = class="breadcrumb__link"
}
}
}
page = PAGE
page.10 < lib.pageBreadcrumb
page.config.contentObjectExceptionHandler = 0
</pre></p>
<p><strong>HMENU Error</strong><br /><pre>
lib.pageBreadcrumb = COA
lib.pageBreadcrumb.100 = HMENU
lib.pageBreadcrumb.100 {
special = rootline
special.range = 0|-0
}
page = PAGE
page.10 < lib.pageBreadcrumb
page.config.contentObjectExceptionHandler = 0
</pre></p> TYPO3 Core - Bug #97095 (Closed): Undefined array key "class" in Html/HtmlParserhttp://forge.typo3.org/issues/970952022-03-03T16:35:47ZAndré Buchmann
<p>System: php 8.1 and TYPO3 main + 11.5.7</p>
<p>Use custom lib.parseFunc_RTE:</p>
<pre>
# Add default class to ul list
lib.parseFunc_RTE.externalBlocks.ul.stdWrap{
HTMLparser = 1
HTMLparser {
tags.ul.fixAttrib.class {
always = 1
list = ce-bullets
}
keepNonMatchedTags = 1
}
}
</pre>
<p>Error in FE when rendering an RTE Field with a ul/li list</p>
<p>(1/1) #1476107295 TYPO3\CMS\Core\Error\Exception<br />PHP Warning: Undefined array key "class" in /var/www/html/public/typo3/sysext/core/Classes/Html/HtmlParser.php line 532</p> TYPO3 Core - Bug #97087 (Closed): GifBuilder throws warnings with php 8http://forge.typo3.org/issues/970872022-03-03T09:55:00ZAndré Buchmann
<p>The following two warnings are thrown with php 8.1 in the GifBuilder:</p>
<p>(1/1) #1476107295 TYPO3\CMS\Core\Error\Exception<br />PHP Warning: Undefined array key "_GIFBUILDER." in /var/www/html/typo3/sysext/frontend/Classes/Imaging/GifBuilder.php line 140</p>
<p>(1/1) #1476107295 TYPO3\CMS\Core\Error\Exception<br />PHP Warning: Undefined array key "mask." in /var/www/html/typo3/sysext/frontend/Classes/Imaging/GifBuilder.php line 215</p>
<p>How to test:</p>
<p>LocalConfiguration:<br />displayErrors = 1<br />exceptionalErrors = 12290</p>
<p>Typoscript Setup:</p>
<pre>
lib.test = IMAGE
lib.test {
file = GIFBUILDER
file {
XY = 1024,768
format = jpg
quality = 88
10 = IMAGE
10.file = fileadmin/backimage.jpg
15 = IMAGE
15.offset = 420,18
15.file = fileadmin/overlay.png
15.mask = fileadmin/mask.png
}
}
page = PAGE
page.10 < lib.test
page.config.contentObjectExceptionHandler = 0
</pre>
<p>You can download the files to test from the documentation:<br /><a class="external" href="https://docs.typo3.org/m/typo3/reference-typoscript/11.5/en-us/Gifbuilder/Examples.html">https://docs.typo3.org/m/typo3/reference-typoscript/11.5/en-us/Gifbuilder/Examples.html</a></p> TYPO3 Core - Bug #94397 (Closed): Translation Button is shown in connected mode if l10n_source di...http://forge.typo3.org/issues/943972021-06-22T09:29:06ZAndré Buchmann
<p>If I translate a content element (in the backend) not from the standard language but from a translation, it always shows the translation button. So the issue is with translating from a translation where the `l18n_parend` is not equal to `l10n_source`. (See more details here: <a class="issue tracker-1 status-8 priority-4 priority-default" title="Bug: Translation wizard of tt_content having l10n_source = 0 shows too many items (Under Review)" href="http://forge.typo3.org/issues/92937#note-3">#92937-3</a>)</p>
<p>Example translated with the TYPO3 backend translation modal:<br />EN -> DA -> DE = Translation button is shown<br />EN -> DA = No translation button is shown<br />EN -> DE = Also no translation button is shown</p>
<p>By clicking the button again the wizard opens, finds nothing to translate and it will circle endlessly in the last step.</p>
<p>Tested with TYPO3 10.4.17 & 11.2.dev</p>
<p><img src="http://forge.typo3.org/attachments/download/36135/clipboard-202106221058-9drz9.png" alt="" loading="lazy" /></p> TYPO3 Core - Bug #94248 (Closed): #94057 breaks site configuration in 11.3http://forge.typo3.org/issues/942482021-06-01T13:04:14ZAndré Buchmann
<p>The Site Configuration Module of current 11.3-dev branch doesn't load the languages correctly (see screenshot).<br />In 11.2.0 it's working. I tracked the issue down to the changes applied in <a class="issue tracker-4 status-5 priority-4 priority-default closed" title="Task: PHP 8.0 Acceptance Tests (Closed)" href="http://forge.typo3.org/issues/94057">#94057</a> (<a class="external" href="https://review.typo3.org/c/Packages/TYPO3.CMS/+/69255">https://review.typo3.org/c/Packages/TYPO3.CMS/+/69255</a>)</p>
<p>Currently running with php 7.4 an introduction package. Tried also with php 8.0 which shows the same result and a warning.</p>
<p><img src="http://forge.typo3.org/attachments/download/36109/Bildschirmfoto%202021-06-01%20um%2014.51.56.png" alt="" loading="lazy" /></p>
<p>php 8.0 warning:</p>
<p>PHP Warning<br />Core: Error handler (BE): PHP Warning: Undefined array key "uid" in /var/www/html/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaInlineExpandCollapseState.php line 73</p> TYPO3 Core - Bug #94247 (Closed): Wrong value in DefaultConfigurationDescription.yaml for mail fo...http://forge.typo3.org/issues/942472021-06-01T09:31:48ZAndré Buchmann
<p>In the "Configure Installation-Wide Options" window is an select for the <code>$GLOBALS['TYPO3_CONF_VARS']['MAIL']['format']</code> variable. <br />"Send emails only in plain text format" sets the value to <code>txt</code>. On trying to send the testmail with this setting, an error is thrown:</p>
<p>Could not deliver mail<br />Please verify $GLOBALS['TYPO3_CONF_VARS']['MAIL'][*] settings are valid. Error message: Setting FluidEmail->format() must be either "html", "plain" or "both", no other formats are currently supported</p>
<p>Latest TYPO3 10 and 11 versions having this issue.</p> TYPO3 Core - Bug #94160 (Closed): ExtensionComposerStatus breaks in non-composer modehttp://forge.typo3.org/issues/941602021-05-19T14:40:46ZAndré Buchmann
<p>After upgrading some non-composer instances to 10.4.16 the t3monitoring_client begins to throw an TypeError on the eID request:</p>
<pre>
(1/1) TypeError
Return value of TYPO3\CMS\Extensionmanager\Report\ExtensionComposerStatus::getRequest() must implement interface Psr\Http\Message\ServerRequestInterface, null returned
in /****/typo3/sysext/extensionmanager/Classes/Report/ExtensionComposerStatus.php line 114
</pre>
<p>I debugged this issue a bit. Here are my findings:</p>
<p>The method getRequest simply returns <code>$GLOBALS['TYPO3_REQUEST']</code>.</p>
<p>Composer based projects are working fine, they are returning an ServerRequest object:</p>
<p><img src="http://forge.typo3.org/attachments/download/36086/clipboard-202105191634-obp2o.png" alt="" loading="lazy" /></p>
<p>Non-composer based projects and also the TYPO3-CMS 10.4 branch are returning <code>null</code>:</p>
<p><img src="http://forge.typo3.org/attachments/download/36087/clipboard-202105191636-krce8.png" alt="" loading="lazy" /></p>
<p>Testet the output of the global at Line 114 in typo3/sysext/extensionmanager/Classes/Report/ExtensionComposerStatus.php while using the t3monitoring_client extension downloaded via TER<br /><a class="external" href="https://github.com/TYPO3/TYPO3.CMS/blob/10.4/typo3/sysext/extensionmanager/Classes/Report/ExtensionComposerStatus.php#L114">https://github.com/TYPO3/TYPO3.CMS/blob/10.4/typo3/sysext/extensionmanager/Classes/Report/ExtensionComposerStatus.php#L114</a></p>
<p>Seems strange to me that the glob var behaves differently depending on the composer mode.</p> TYPO3 Core - Bug #93989 (Closed): Global Sysfolders + Contents are not translatable anymore since...http://forge.typo3.org/issues/939892021-04-26T14:22:24ZAndré Buchmann
<p>For multitree instances we often used a global sysfolder to store some global informations (cookie services, subsidiaries, news,...). Up until TYPO3 9 the sysfolder and its contents could be translated if there were language records on pid 0.<br />Starting form TYPO3 10, the site configuration is checked also for available translations. As there is no site configuration for the sysfolder it won't be translatable anymore.</p>
<p>Please see attached screenshots which are showing the difference.</p> TYPO3 Core - Bug #92987 (New): Preview of page from docheader button shows root page when startti...http://forge.typo3.org/issues/929872020-12-04T12:04:26ZAndré Buchmann
<p><strong>Description:</strong></p>
<p>When the preview button in the docheader is pressed, not the actual site is shown but the root page. The preview button in the page details or in the page-tree context menu shows the selected page. Buttons on language columns also show the root page.</p>
<p>Failing buttos are red, working buttons are green:</p>
<p><img src="http://forge.typo3.org/attachments/download/35650/preview-page-docheader_not-working.png" alt="" loading="lazy" /></p>
<p><img src="http://forge.typo3.org/attachments/download/35651/preview-pagetree-contextmenu_works.png" alt="" loading="lazy" /></p>
<p><img src="http://forge.typo3.org/attachments/download/35649/preview-page-detail-translation_works.png" alt="" loading="lazy" /></p>
<p>Typo3 Version: 9.5.23 and 10.4.10</p>
<p><strong>To test this:</strong></p>
<p>1. create a page and set starttime to a future date.<br />2. click on preview button in docheader while in column/language view</p>
<p><strong>Expected result:</strong></p>
<p>See the page content of the selected / current page</p>
<p><strong>What i can see:</strong></p>
<p>The root page is shown with the parameter "?ADMCMD_simTime=123456789"</p> TYPO3 Core - Bug #87067 (Closed): Add support for language -1 to TCA field type slughttp://forge.typo3.org/issues/870672018-12-04T08:58:28ZAndré Buchmann
<p>Records with a TCA field from type slug can't be set to language -1:</p>
<pre>
#1522960188 InvalidArgumentException
Language -1 does not exist on site my-site.
</pre>
<p>As language -1 means all languages, I think the default language can used as a fallback to make the record editable again.<br />I found two possible locations to fix this issue:</p>
<p><strong>A: Fix in InputSlugElement class directly for the slug field only</strong></p>
<p><code>typo3/sysext/backend/Classes/Form/Element/InputSlugElement.php</code> Line 225</p>
<pre><code class="php syntaxhl" data-language="php"><span class="k">protected</span> <span class="k">function</span> <span class="n">getPrefix</span><span class="p">(</span><span class="kt">SiteInterface</span> <span class="nv">$site</span><span class="p">,</span> <span class="kt">int</span> <span class="nv">$requestLanguageId</span> <span class="o">=</span> <span class="mi">0</span><span class="p">):</span> <span class="kt">string</span>
<span class="p">{</span>
<span class="c1">// original code</span>
<span class="nv">$language</span> <span class="o">=</span> <span class="nv">$site</span><span class="o">-></span><span class="nf">getLanguageById</span><span class="p">(</span><span class="nv">$requestLanguageId</span><span class="p">);</span>
<span class="c1">// proposed fix</span>
<span class="nv">$language</span> <span class="o">=</span> <span class="p">(</span><span class="nv">$requestLanguageId</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="o">?</span> <span class="nv">$site</span><span class="o">-></span><span class="nf">getDefaultLanguage</span><span class="p">()</span> <span class="o">:</span> <span class="nv">$site</span><span class="o">-></span><span class="nf">getLanguageById</span><span class="p">(</span><span class="nv">$requestLanguageId</span><span class="p">);</span>
<span class="nv">$base</span> <span class="o">=</span> <span class="nv">$language</span><span class="o">-></span><span class="nf">getBase</span><span class="p">();</span>
<span class="nv">$baseUrl</span> <span class="o">=</span> <span class="p">(</span><span class="n">string</span><span class="p">)</span><span class="nv">$base</span><span class="p">;</span>
<span class="nv">$baseUrl</span> <span class="o">=</span> <span class="nb">rtrim</span><span class="p">(</span><span class="nv">$baseUrl</span><span class="p">,</span> <span class="s1">'/'</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">empty</span><span class="p">(</span><span class="nv">$baseUrl</span><span class="p">)</span> <span class="o">&&</span> <span class="k">empty</span><span class="p">(</span><span class="nv">$base</span><span class="o">-></span><span class="nf">getScheme</span><span class="p">())</span> <span class="o">&&</span> <span class="nv">$base</span><span class="o">-></span><span class="nf">getHost</span><span class="p">()</span> <span class="o">!==</span> <span class="s1">''</span><span class="p">)</span> <span class="p">{</span>
<span class="nv">$baseUrl</span> <span class="o">=</span> <span class="s1">'http:'</span> <span class="mf">.</span> <span class="nv">$baseUrl</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nv">$baseUrl</span><span class="p">;</span>
<span class="p">}</span>
</code></pre>
<p><strong>B: Fix in Site class</strong></p>
<p>This is the function where the error is initially thrown. But as it is used on multiple locations I think it may breaks other things.</p>
<p><code>typo3/sysext/core/Classes/Site/Entity/Site.php</code> Line 219</p>
<pre><code class="php syntaxhl" data-language="php"><span class="k">public</span> <span class="k">function</span> <span class="n">getLanguageById</span><span class="p">(</span><span class="kt">int</span> <span class="nv">$languageId</span><span class="p">):</span> <span class="kt">SiteLanguage</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">isset</span><span class="p">(</span><span class="nv">$this</span><span class="o">-></span><span class="n">languages</span><span class="p">[</span><span class="nv">$languageId</span><span class="p">]))</span> <span class="p">{</span>
<span class="k">return</span> <span class="nv">$this</span><span class="o">-></span><span class="n">languages</span><span class="p">[</span><span class="nv">$languageId</span><span class="p">];</span>
<span class="p">}</span> <span class="k">elseif</span> <span class="p">(</span><span class="nv">$languageId</span> <span class="o">===</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// handle all languages -1</span>
<span class="k">return</span> <span class="nv">$this</span><span class="o">-></span><span class="nf">getDefaultLanguage</span><span class="p">();</span>
<span class="p">}</span>
<span class="k">throw</span> <span class="k">new</span> <span class="nc">\InvalidArgumentException</span><span class="p">(</span>
<span class="s1">'Language '</span> <span class="mf">.</span> <span class="nv">$languageId</span> <span class="mf">.</span> <span class="s1">' does not exist on site '</span> <span class="mf">.</span> <span class="nv">$this</span><span class="o">-></span><span class="n">identifier</span> <span class="mf">.</span> <span class="s1">'.'</span><span class="p">,</span>
<span class="mi">1522960188</span>
<span class="p">);</span>
<span class="p">}</span>
</code></pre>
<p>I prefer solution A, but maybe some core developer can evaluate this?<br />Thank you!</p>