TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692024-03-27T17:18:45ZTYPO3 Forge
Redmine TYPO3 Core - Bug #103494 (Under Review): Linkvalidator uses tstamp field directly without checkin...http://forge.typo3.org/issues/1034942024-03-27T17:18:45ZSybille Peterssypets@gmx.de
<p><strong>This should be merged before <a class="external" href="https://review.typo3.org/c/Packages/TYPO3.CMS/+/83612">https://review.typo3.org/c/Packages/TYPO3.CMS/+/83612</a></strong></p>
<p>TCA should be used to determine which field is relevant for tstamp (and if there is such a field) before using it for a DB query</p>
<p>$GLOBALS['TCA'][$table]['ctrl']['tstamp']</p>
<a name="Reproduce"></a>
<h2 >Reproduce<a href="#Reproduce" class="wiki-anchor">¶</a></h2>
<ol>
<li>Change configuration to mod.linkvalidator.searchFields.sys_redirect.target</li>
<li>check links (with a broken redirect target)</li>
<li>in the list of broken links, click pencil to edit redirect target field</li>
<li>close edit field</li>
</ol>
<p>Now, exception is thrown.</p> TYPO3 Core - Bug #103476 (Under Review): Disrepancy of returned link type in LinktypeInternal::fe...http://forge.typo3.org/issues/1034762024-03-23T16:22:43ZSybille Peterssypets@gmx.de
<p>Currently, when calling fetchType for various link types differs if you change the order of the link types.</p>
<p>Also, InternalLinktype always returns "db" link type if the "db" link type is set by the softref parser even if it has no business doing so.</p>
<p>These link types are mutually exclusive:</p>
<p>- "db" => InternalLinktype<br />- "file" => FileLinktype<br />- "record" => RecordLinktype (introduced in patch via issue <a class="issue tracker-2 status-8 priority-3 priority-lowest" title="Feature: Make it possible to check custom record links with linkvalidator (Under Review)" href="http://forge.typo3.org/issues/103403">#103403</a>)</p>
<p>However, the softref parsers returns "db" for all of these.</p>
<p>Fixing this may avoid problems further down the line.</p>
<a name="Test-protocol-by-debugging-the-link-types"></a>
<h2 >Test protocol (by debugging the link types)<a href="#Test-protocol-by-debugging-the-link-types" class="wiki-anchor">¶</a></h2>
<p>file link: t3://file?uid=<uid><br />-------------------------------------</p>
<p>$softRefEntry<br />- value['type'] = 'db'<br />- value['recordRef'] = 'sys_file:94'<br />- value['tokenValue'] = 'file:94'</p>
<p>- result of fetchType: (order: db, file)<br /> - if class=InternatlLinktype => AbstactLinktype::fetchType: 'db'<br /> - if class=FileLinktype => FileLinkType::fetchType: 'file'</p>
<p>- after changing order: file,db<br /> - if class=FileLinktype => FileLinkType::fetchType: 'file'<br /> sets $value['type'] to 'file'<br /> - if class=InternatlLinktype => AbstactLinktype::fetchType: 'file'</p>
<p>!!!! discrepancy !!! effective type depends on order of evaluation!</p>
<blockquote><blockquote>
<p>if "file" type is not in "linktypes", file links will be checked with InteralLinktype</p>
</blockquote></blockquote>
BUT if "file" type is in "linktypes, file links will be checked with FileLinktype
<p>The result is in most cases still ok, because InternalLinktype refuses to check file links, but it is messy, makes troubleshooting difficult and may cause problems in some scenarios.</p> TYPO3 Core - Bug #101674 (Resolved): Improve user interface for selecting linktypes via checkboxe...http://forge.typo3.org/issues/1016742023-08-13T16:38:40ZSybille Peterssypets@gmx.de
<p>The linkvalidator linktypes checkbox selector can be a bit tedious to use.</p>
<p>On initially using linkvalidator, all linktypes are usually deactivated by default. So you would have to activate them all, clicking 3 or more times (there may be more custom linktypes configured).</p>
<p>Also, if not just the Reports but the Check view is enabled, you have to repeat this again.</p>
<a name="Possible-improvement"></a>
<h2 >Possible improvement<a href="#Possible-improvement" class="wiki-anchor">¶</a></h2>
<p>Add a "Toggle all" checkbox as is already used in the SelectCheckBoxElement FormEngine renderType. (the FormEngine version can be looked at using the styleguide extension: list view, page "elements select"):</p>
<p><img src="http://forge.typo3.org/attachments/download/37927/formengine_select_checkboxes.png" alt="" loading="lazy" /></p>
<a name="Screenshots"></a>
<h2 >Screenshots<a href="#Screenshots" class="wiki-anchor">¶</a></h2>
<p>before:</p>
<p><img src="http://forge.typo3.org/attachments/download/37915/linkvalidator_linktypes_checkboxes_current.png" alt="" loading="lazy" /></p>
<p>after:</p>
<p><img src="http://forge.typo3.org/attachments/download/37914/linkvalidator_linktypes_checkboxes_with_toggle_all.png" alt="" loading="lazy" /></p>
<a name="Implementation-details"></a>
<h2 >Implementation details<a href="#Implementation-details" class="wiki-anchor">¶</a></h2>
<p>Since Linkvalidator uses Fluid for the view, we would probably have to write that from scratch.</p>
<p>Implement like FormEngine type="select", renderType="selectCheckBox".</p>
<p>Behaviour:</p>
<ul>
<li>"Toggle all" gets checked as soon as all checkboxes are checked</li>
<li>"Toggle all" gets unchecked when not all checkboxes are checked</li>
<li>"Toggle all: if clicked will change state, e.g. if unchecked will change to checked and all checkboxes will be checked</li>
</ul> TYPO3 Core - Bug #101360 (Resolved): Some attributes for <a> element are not persisted (class, re...http://forge.typo3.org/issues/1013602023-07-15T07:19:47ZSybille Peterssypets@gmx.de
<p>Since TYPO3 v12 (ckeditor 5) some attributes for element a are not persisted.</p>
<p>Specifically:</p>
<p>- class<br />- rel<br />- target</p>
<a name="Reproduce"></a>
<h2 >Reproduce<a href="#Reproduce" class="wiki-anchor">¶</a></h2>
<p>Enter something like this in Source mode of RTE and switch to non-Source mode:</p>
<pre>
<p>
<a class="hallo" href="https://sdfsfsd.de" title="hallo" target="_top" rel="nofollow">link</a>
</p>
</pre>
<p>The additional attributes class,target and rel are then removed, which should not happen.</p>
<p>I used the following TSConfig:</p>
<pre>
RTE.default.preset = full
</pre> TYPO3 Core - Bug #101357 (Resolved): Broken links are not marked in RTE anymore (affects linkvali...http://forge.typo3.org/issues/1013572023-07-14T18:29:54ZSybille Peterssypets@gmx.de
<p>Seems to be the case since v12</p>
<ul>
<li>the event BrokenLinkAnalysisEvent is correctly dispatched in RteHtmlParser</li>
<li>$attributes['data-rte-error'] is set in RteHtmlParser</li>
<li>BUT, the ckeditor removes the data-rte-error attribute</li>
<li>also, the style is missing (css / sass)</li>
</ul>
<a name="Reproduce-simple-only-using-RTE"></a>
<h2 >Reproduce (simple, only using RTE)<a href="#Reproduce-simple-only-using-RTE" class="wiki-anchor">¶</a></h2>
<p>1. Insert this in the RTE in Source mode:</p>
<pre>
<p><a data-rte-error="Broken link" href="https:/iambroken.org/yesreally">link</a></p>
</pre><br />2. switch to wysiwyg mode
<p>The attribute data-rte-error is removed. This should not happen.</p>
<a name="Reproduce-with-linkvalidator"></a>
<h2 >Reproduce (with linkvalidator)<a href="#Reproduce-with-linkvalidator" class="wiki-anchor">¶</a></h2>
<ol>
<li>install linkvalidator</li>
<li>create one or more broken links</li>
<li>check links with linkvalidator (linkvalidator module)</li>
<li>in list of broken links, click pencil icon</li>
</ol>
<p>The broken links should now be marked in RTE with yellow background and red border. Also, if in source mode of RTE, you should see the attribute 'data-rte-error' in the "a" HTML elements for the broken links.</p> TYPO3 Core - Bug #101243 (Resolved): Fix in linkvalidator PagesRepository::doesRootLineContainHid...http://forge.typo3.org/issues/1012432023-07-05T12:25:36ZSybille Peterssypets@gmx.de
<p>PagesRepository::doesRootlineContainHiddenPages() calls itself. It fetches fields from the DB without "pid" and passes the results to itself, then checks the value of pid, but this is always empty.</p>
<p><a href="https://github.com/TYPO3/typo3/blob/main/typo3/sysext/linkvalidator/Classes/Repository/PagesRepository.php" class="external">PagesRepository code</a>:</p>
<pre>
42 public function doesRootLineContainHiddenPages(array $pageInfo): bool
43 {
44 $pid = (int)($pageInfo['pid'] ?? 0);
....
59 $row = $queryBuilder
60 ->select('uid', 'title', 'hidden', 'extendToSubpages')
....
72 return $this->doesRootLineContainHiddenPages($row);
</pre>
<p>Also, it is not necessary to get the title here</p> TYPO3 Core - Bug #101113 (Resolved): System reports will show that there are no redirects conflic...http://forge.typo3.org/issues/1011132023-06-17T11:51:35ZSybille Peterssypets@gmx.de
<p><strong>Update</strong> : the implementation in the patch is a little different than described here: We create an <strong>additional</strong> status if checkintegrity was not run or is outdated. The status which shows ok or redirects is still displayed.</p>
<hr />
<p>Ideally the "reports" checks if checkintegrity was run lately (e.g. within last 24 hours) and</p>
<ul>
<li>if checkintegrity was run and no conflicts: OK</li>
<li>no redirects exist: OK</li>
<li>if checkintegrity was not run (lately) and no conflicts (known): WARNING or INFO, e.g. "there are no known redirect conflicts, please run checkintegrity" </li>
<li>if there are conflicts: WARNING (as before)</li>
</ul>
<a name="Reproduce"></a>
<h2 >Reproduce<a href="#Reproduce" class="wiki-anchor">¶</a></h2>
<p>1. Create conflicts (e.g. rename slug of page twice)<br />2. confirm conflict by loading the page and check TYPO3 log (in case of redirect to self there will be something like " Redirect /styleguide-demo-1/test/redrects points to itself! Aborting" in log<br />3. look in report: will show OK. No indication that this is incorrect or something needs to be done.<br />4. confirm checkintegrity finds something (will show 1 conflict):</p>
<pre>
php typo3/sysext/core/bin/typo3 redirects:checkintegrity
</pre>
<p>I expect a WARNING instead of OK status in report if there are conflicts and checkintegrity was never used or not used recently.</p>
<a name="Screenshots-current-core-version"></a>
<h2 >Screenshots (current core version)<a href="#Screenshots-current-core-version" class="wiki-anchor">¶</a></h2>
<p>Status: "Ok" (blissfully unaware of pending doom)</p>
<p><img src="http://forge.typo3.org/attachments/download/37745/redirects_report_ok.png" alt="" loading="lazy" /></p>
<p>Status: after running checkintegrity</p>
<p><img src="http://forge.typo3.org/attachments/download/37746/redirect_reports_conflicts.png" alt="" loading="lazy" /></p>
<p>also, the text is weird, but that's another issue.</p>
<a name="Screenshot-implementation-see-patch"></a>
<h2 >Screenshot (implementation, see patch)<a href="#Screenshot-implementation-see-patch" class="wiki-anchor">¶</a></h2>
<p>This is current version in patch, not in core!:</p>
<p><img src="http://forge.typo3.org/attachments/download/37747/redirect_reports_patch.png" alt="" loading="lazy" /></p> TYPO3 Core - Bug #100979 (Resolved): Exception on creating a scheduler entry if additional table ...http://forge.typo3.org/issues/1009792023-06-08T15:30:13ZSybille Peterssypets@gmx.de
<p>Problem manifests itself when creating a scheduler task with TYPO3 v11 (click "+" in scheduler list):</p>
<pre>
An exception occurred while executing
'SELECT `TABLE_NAME` AS `Table`, `ENGINE` AS `Engine` FROM `information_schema`.`TABLES` WHERE (`TABLE_TYPE` = ?) AND (`ENGINE` IN (?, ?, ?)) AND (`TABLE_SCHEMA` = ?) AND (`TABLE_NAME` IN (?))'
with params ["BASE TABLE", "InnoDB", "MyISAM", "ARCHIVE", "almgre", ["gruppe","gruppe_als_thema_x_werk","gruppe_x_werk","musikerfigur_x_werk","person","person_x_werk","sachthema","sachthema_x_werk","werk"]]:
PHP Warning: Array to string conversion in
/var/www/site-uol11/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliStatement.php
line 164
</pre>
<p>This corresponds to SQL command:</p>
<pre>
mysql> SELECT `TABLE_NAME` AS `Table`, `ENGINE` AS `Engine` FROM `information_schema`.`TABLES` WHERE (`TABLE_TYPE` = "BASE TABLE") AND (`ENGINE` IN ("InnoDB", "MyISAM", "ARCHIVE")) AND (`TABLE_SCHEMA` = "almgre") AND (`TABLE_NAME` IN (["gruppe","gruppe_als_thema_x_werk","gruppe_x_werk","musikerfigur_x_werk","person","person_x_werk","sachthema","sachthema_x_werk","werk"]));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '["gruppe","gruppe_als_thema_x_werk","gruppe_x_werk","musikerfigur_x_werk","perso' at line 1
</pre>
<p>Passing the group of tables in brackets ([]) seems to be wrong.</p>
<p><strong>I have additional table mappings defined.</strong></p>
<a name="Fix"></a>
<h2 >Fix<a href="#Fix" class="wiki-anchor">¶</a></h2>
<p>OptimizeDatabaseTableAdditionalFieldProvider (in scheduler):</p>
<p>line 225:</p>
<pre><code class="php syntaxhl" data-language="php"><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">$tableNames</span><span class="p">))</span> <span class="p">{</span>
<span class="nv">$queryBuilder</span><span class="o">-></span><span class="nf">andWhere</span><span class="p">(</span>
<span class="nv">$queryBuilder</span><span class="o">-></span><span class="nf">expr</span><span class="p">()</span><span class="o">-></span><span class="nf">in</span><span class="p">(</span>
<span class="s1">'TABLE_NAME'</span><span class="p">,</span>
<span class="c1">// $queryBuilder->createNamedParameter($tableNames, Connection::PARAM_STR)</span>
<span class="nv">$queryBuilder</span><span class="o">-></span><span class="nf">createNamedParameter</span><span class="p">(</span><span class="nv">$tableNames</span><span class="p">,</span> <span class="nc">Connection</span><span class="o">::</span><span class="no">PARAM_STR_ARRAY</span><span class="p">)</span>
<span class="p">)</span>
<span class="p">);</span>
<span class="p">}</span>
</code></pre>
<a name="Table-mapping"></a>
<h2 >Table mapping<a href="#Table-mapping" class="wiki-anchor">¶</a></h2>
<pre><code class="php syntaxhl" data-language="php"><span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'Connections'</span><span class="p">][</span><span class="s1">'Musikgeschichte'</span><span class="p">][</span><span class="s1">'driver'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'mysqli'</span><span class="p">;</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'Connections'</span><span class="p">][</span><span class="s1">'Musikgeschichte'</span><span class="p">][</span><span class="s1">'dbname'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">getenv</span><span class="p">(</span><span class="s1">'MUSIKGESCHICHTE_DB_DATABASE'</span><span class="p">);</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'Connections'</span><span class="p">][</span><span class="s1">'Musikgeschichte'</span><span class="p">][</span><span class="s1">'host'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">getenv</span><span class="p">(</span><span class="s1">'MUSIKGESCHICHTE_DB_HOST'</span><span class="p">);</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'Connections'</span><span class="p">][</span><span class="s1">'Musikgeschichte'</span><span class="p">][</span><span class="s1">'password'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">getenv</span><span class="p">(</span><span class="s1">'MUSIKGESCHICHTE_DB_PASSWORD'</span><span class="p">);</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'Connections'</span><span class="p">][</span><span class="s1">'Musikgeschichte'</span><span class="p">][</span><span class="s1">'port'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">3306</span><span class="p">;</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'Connections'</span><span class="p">][</span><span class="s1">'Musikgeschichte'</span><span class="p">][</span><span class="s1">'user'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">getenv</span><span class="p">(</span><span class="s1">'MUSIKGESCHICHTE_DB_USERNAME'</span><span class="p">);</span>
<span class="c1">// DB: table Mapping</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'TableMapping'</span><span class="p">][</span><span class="s1">'gruppe'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Musikgeschichte'</span><span class="p">;</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'TableMapping'</span><span class="p">][</span><span class="s1">'gruppe_als_thema_x_werk'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Musikgeschichte'</span><span class="p">;</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'TableMapping'</span><span class="p">][</span><span class="s1">'gruppe_x_werk'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Musikgeschichte'</span><span class="p">;</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'TableMapping'</span><span class="p">][</span><span class="s1">'musikerfigur_x_werk'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Musikgeschichte'</span><span class="p">;</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'TableMapping'</span><span class="p">][</span><span class="s1">'person'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Musikgeschichte'</span><span class="p">;</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'TableMapping'</span><span class="p">][</span><span class="s1">'person_x_werk'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Musikgeschichte'</span><span class="p">;</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'TableMapping'</span><span class="p">][</span><span class="s1">'sachthema'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Musikgeschichte'</span><span class="p">;</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'TableMapping'</span><span class="p">][</span><span class="s1">'sachthema_x_werk'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Musikgeschichte'</span><span class="p">;</span>
<span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'DB'</span><span class="p">][</span><span class="s1">'TableMapping'</span><span class="p">][</span><span class="s1">'werk'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Musikgeschichte'</span><span class="p">;</span>
</code></pre>
<a name="Versions"></a>
<h2 >Versions<a href="#Versions" class="wiki-anchor">¶</a></h2>
<ul>
<li>TYPO3 11.5.27</li>
</ul> TYPO3 Core - Bug #100683 (Resolved): renameFile aborts if target file = original file, even if sa...http://forge.typo3.org/issues/1006832023-04-20T13:25:59ZSybille Peterssypets@gmx.de
<p>Currently, it is not possible to sanitize a file, simply be renaming it (to the current filename) because the function ResourceStorage::renameFile returns immediately if the new file name is the same as the old filename.</p>
<p>code:</p>
<pre><code class="php syntaxhl" data-language="php"><span class="k">public</span> <span class="k">function</span> <span class="n">renameFile</span><span class="p">(</span><span class="nv">$file</span><span class="p">,</span> <span class="nv">$targetFileName</span><span class="p">,</span> <span class="nv">$conflictMode</span> <span class="o">=</span> <span class="nc">DuplicationBehavior</span><span class="o">::</span><span class="no">RENAME</span><span class="p">)</span>
<span class="p">{</span>
<span class="c1">// The name should be different from the current.</span>
<span class="k">if</span> <span class="p">(</span><span class="nv">$file</span><span class="o">-></span><span class="nf">getName</span><span class="p">()</span> <span class="o">===</span> <span class="nv">$targetFileName</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nv">$file</span><span class="p">;</span>
<span class="p">}</span>
<span class="nv">$sanitizedTargetFileName</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-></span><span class="n">driver</span><span class="o">-></span><span class="nf">sanitizeFileName</span><span class="p">(</span><span class="nv">$targetFileName</span><span class="p">);</span>
</code></pre>
<p>This leads to inconsistent behaviour.</p>
<p>Example:</p>
<ul>
<li>Rename "ö.png" to "ö.png" results in "ö.png" (not sanitized)</li>
<li>but renaming "ö.png" to "ö1.png" result in "oe1.png"</li>
</ul>
<p>The file should be renamed, if renaming it results in a different filename. This is the case if target filename = original filename, but sanitizedTargetFileName != originalfilename.</p>
<p>Also, if this behaviour were changed, it would be much easier to sanitize filenames. One just need to use the rename function.</p>
<ol>
<li>Versions</li>
</ol>
<ul>
<li>11.5.26</li>
<li>main (12-dev)</li>
</ul> TYPO3 Core - Bug #100148 (Under Review): layout SystemEmail should not show URL if URL is not sethttp://forge.typo3.org/issues/1001482023-03-12T11:08:48ZSybille Peterssypets@gmx.de
<p>If a system email is sent via cli (command line) an awkward string is displayed in the footer.</p>
<p>Example:</p>
<blockquote>
<p>This email was sent by TYPO3 test site from URL: - Please contact</p>
</blockquote>
<p>Should be:</p>
<blockquote>
<p>This email was sent by TYPO3 test site - Please contact</p>
</blockquote>
<p>If the URL is set, this looks like this:</p>
<blockquote>
<p>This email was sent by TYPO3 test site from URL: <a class="external" href="https://t3coredev">https://t3coredev</a> - Please contact</p>
</blockquote> TYPO3 Core - Bug #95467 (Closed): linkvalidator: Under certain circumstances, only broken links i...http://forge.typo3.org/issues/954672021-10-04T16:17:16ZSybille Peterssypets@gmx.de
<p>This is a problem of the EditableRestriction which checks if records / fields are editable by the current user. Only broken links for editable records are displayed.</p>
<a name="Reproduce"></a>
<h2 >Reproduce<a href="#Reproduce" class="wiki-anchor">¶</a></h2>
<p>1. For the BE user / group, do not check any languages in "Access lists" > "Limit to languages" ([allowed_languages]. All checkboxes are unchecked which means the editor has access to all languages<br />2. Create a translation page. Add broken links to elements in the translation.<br />3. Now check links<br />4. Compare results for admin and the non-admin user</p>
<p>The non-admin user should also see the broken links in the translated elements. However, he does not</p>
<a name="see-brofix"></a>
<h2 >see brofix<a href="#see-brofix" class="wiki-anchor">¶</a></h2>
<p>This was already detected and fixed in brofix: <a class="external" href="https://github.com/sypets/brofix/pull/93">https://github.com/sypets/brofix/pull/93</a></p> TYPO3 Core - Bug #95191 (Closed): Less visible difference between "disabled" buttons and not "dis...http://forge.typo3.org/issues/951912021-09-12T05:05:15ZSybille Peterssypets@gmx.de
<p>Some of the buttons in the pagination button group of the redirects (and other) module are disabled if they do not apply.</p>
<p>In TYPO3 v10 the difference in styling between the active and disabled buttons was more noticeable. Since v11 this has changed so it is more difficult to see the difference between the active and not active buttons.</p>
<p>This may be an issue for accessibility, but also a general issue.</p>
<a name="Examples"></a>
<h1 >Examples<a href="#Examples" class="wiki-anchor">¶</a></h1>
<p>The buttons on the left side (|< <<) are disabled. The ones on the right side (>> >|) are not.</p>
<a name="TYPO3-v10"></a>
<h2 >TYPO3 v10<a href="#TYPO3-v10" class="wiki-anchor">¶</a></h2>
<p><img src="http://forge.typo3.org/attachments/download/36347/redirects_pagination_v10.png" alt="" loading="lazy" /></p>
<p>color: rgb(215,215,215) = #d7d7d7</p>
<a name="TYPO3-v11"></a>
<h2 >TYPO3 v11<a href="#TYPO3-v11" class="wiki-anchor">¶</a></h2>
<p><img src="http://forge.typo3.org/attachments/download/36348/redirects_pagination_v11.png" alt="" loading="lazy" /></p>
<p>color: rgb(115,115,115) = #737373</p> TYPO3 Core - Bug #92741 (Closed): Better handling of "too many redirects" in linkvalidatorhttp://forge.typo3.org/issues/927412020-10-31T14:19:20ZSybille Peterssypets@gmx.de
<p>If there are too many redirects, an error message "A redirect loop occurred" is displayed. This is misleading.</p>
<p>A redirect loop is different from "too many redirects". "Too many redirects simply means that the maximum number of redirects used by the underlying HTTP request library (Guzzle) is reached before reaching the destination. This happens by default after 5 redirects.</p> TYPO3 Core - Bug #92710 (Closed): Removing of broken link from list after fixing it does not work...http://forge.typo3.org/issues/927102020-10-26T19:27:58ZSybille Peterssypets@gmx.de
<a name="System"></a>
<h2 >System<a href="#System" class="wiki-anchor">¶</a></h2>
<ul>
<li>master (11-dev)</li>
</ul>
<p>Should test on 10.4. This feature exists since version 10.</p>
<a name="Reproduce"></a>
<h2 >Reproduce<a href="#Reproduce" class="wiki-anchor">¶</a></h2>
<ol>
<li>List of broken links</li>
<li>click pencil to edit a link</li>
<li>fix link by removing it entirely or replacing the link target </li>
<li>save, close</li>
</ol>
<a name="Expected-result"></a>
<h2 >Expected result<a href="#Expected-result" class="wiki-anchor">¶</a></h2>
<p>Broken link should be removed from list</p>
<a name="Actual-result"></a>
<h2 >Actual result<a href="#Actual-result" class="wiki-anchor">¶</a></h2>
<p>broken link still visible</p> TYPO3 Core - Bug #89675 (Closed): Fix information for form.submit ViewHelperhttp://forge.typo3.org/issues/896752019-11-13T20:53:13ZSybille Peterssypets@gmx.de
<p>see <a class="external" href="https://github.com/TYPO3-Documentation/TYPO3CMS-Reference-ViewHelper/pull/22">https://github.com/TYPO3-Documentation/TYPO3CMS-Reference-ViewHelper/pull/22</a></p>