TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692023-11-15T09:10:28ZTYPO3 Forge
Redmine TYPO3 Core - Bug #102374 (Resolved): Missing null check in redirect slug update hookhttp://forge.typo3.org/issues/1023742023-11-15T09:10:28ZMathias Brodalambrodala@pagemachine.de
<p>With <a class="issue tracker-4 status-5 priority-4 priority-default closed" title="Task: Unneeded pseudo-uncertain instanceof usage (Closed)" href="http://forge.typo3.org/issues/102140">#102140</a> various <code>instanceof</code> checks where removed. In case of the <code>DataHandlerSlugUpdateHook</code> of EXT:redirects this check also did ensure that unprocessable items are skipped. This is not the case anymore which can cause an error like this:</p>
<p><a class="external" href="https://github.com/pagemachine/typo3-flat-urls/actions/runs/6874052335/job/18695061932#step:3:476">https://github.com/pagemachine/typo3-flat-urls/actions/runs/6874052335/job/18695061932#step:3:476</a></p>
<blockquote>
<p>Error: Call to a member function withChanged() on null</p>
</blockquote> TYPO3 Core - Bug #95868 (Closed): Invalid example for RenderFormValueViewHelperhttp://forge.typo3.org/issues/958682021-11-04T10:35:43ZMathias Brodalambrodala@pagemachine.de
<p>With <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Feature: Add option to get a single processed form value (Closed)" href="http://forge.typo3.org/issues/84713">#84713</a> the <code>RenderFormValueViewHelper</code> has been introduced.</p>
<p>The related changelog entry refers to <code>{page.rootForm.elements.*}</code> which does not exist. This must be <code>{form.formDefinition.elements.*}</code> instead.</p> TYPO3 Core - Bug #93368 (Needs Feedback): Domain redirects to records not working anymorehttp://forge.typo3.org/issues/933682021-01-26T11:47:22ZMathias Brodalambrodala@pagemachine.de
<p>Given domain redirects to records when a domain for such a redirect is requested a 404 error is triggered instead of a redirect.</p>
<p>Criteria to trigger this behavior:</p>
<ol>
<li>The <code>base</code> of all sites must be a full URL like <code>http://example.org/</code>, not simply <code>/</code> (slash).</li>
<li>The incoming domain must not be the <code>base</code> of any site.</li>
<li>The redirect must point to a record URN like <code>t3://record?identifier=<identifier>&uid=<uid></code>. (There's an automatic fallback in case of <code>t3://page</code> URNs.)</li>
</ol>
<p>The incoming domain does not match the <code>base</code> of any site which is why a <code>NullSite</code> is used instead while matching redirects. Due to this <code>TypoScriptFrontendController::getPageAndRootline()</code> (called from <code>RedirectService::bootFrontendController()</code>) triggers an immediate 404 response. This prevents the record URN to be resolved to a valid URL.</p>
<p>As a workaround one can override <code>RedirectService::getTargetUrl()</code> and fall back to any valid site.</p> TYPO3 Core - Bug #92568 (Closed): PopulatePageSlugs upgrade wizard migrates wrong RealURL path da...http://forge.typo3.org/issues/925682020-10-15T09:58:34ZMathias Brodalambrodala@pagemachine.de
<p>The <code>PopulatePageSlugs</code> upgrade wizard allows to migrate entries from <code>tx_realurl_pathdata</code>. However, due to an additional <code>DESC</code> sorting, the wrong entry is used in case there is more than one for a page. This can actually happen often for <code>$reasons</code>.</p>
<p>Given the following two entries in <code>tx_realurl_pathdata</code>:</p>
<table>
<tr>
<th>uid </th>
<th>... </th>
<th>pagepath </th>
<th>expire </th>
</tr>
<tr>
<td> 1 </td>
<td> ... </td>
<td> first/path </td>
<td> 0 </td>
</tr>
<tr>
<td> 2 </td>
<td> ... </td>
<td> second/path </td>
<td> 0 </td>
</tr>
</table>
<p>RealURL will use the <code>first/path</code>, but the <code>PopulatePageSlugs</code> upgrade wizard will use the <code>second/path</code>. This leads to changed URLs after the upgrade.</p>
<p>RealURL itself does not apply any explicit sorting:</p>
<p><a class="external" href="https://github.com/dmitryd/typo3-realurl/blob/2.6.2/Classes/Cache/DatabaseCache.php#L286">https://github.com/dmitryd/typo3-realurl/blob/2.6.2/Classes/Cache/DatabaseCache.php#L286</a></p>
<pre><code class="php syntaxhl" data-language="php"> <span class="nv">$row</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-></span><span class="n">databaseConnection</span><span class="o">-></span><span class="nf">exec_SELECTgetSingleRow</span><span class="p">(</span><span class="s1">'*'</span><span class="p">,</span> <span class="s1">'tx_realurl_pathdata'</span><span class="p">,</span>
<span class="s1">'pid='</span> <span class="mf">.</span> <span class="p">(</span><span class="n">int</span><span class="p">)</span><span class="nv">$pageId</span> <span class="mf">.</span>
<span class="s1">' AND language_id='</span> <span class="mf">.</span> <span class="p">(</span><span class="n">int</span><span class="p">)</span><span class="nv">$languageId</span> <span class="mf">.</span>
<span class="s1">' AND rootpage_id='</span> <span class="mf">.</span> <span class="p">(</span><span class="n">int</span><span class="p">)</span><span class="nv">$rootPageId</span> <span class="mf">.</span>
<span class="s1">' AND mpvar='</span> <span class="mf">.</span> <span class="p">(</span><span class="nv">$mpVar</span> <span class="o">?</span> <span class="nv">$this</span><span class="o">-></span><span class="n">databaseConnection</span><span class="o">-></span><span class="nf">fullQuoteStr</span><span class="p">(</span><span class="nv">$mpVar</span><span class="p">,</span> <span class="s1">'tx_realurl_pathdata'</span><span class="p">)</span> <span class="o">:</span> <span class="s1">'\'\''</span><span class="p">)</span> <span class="mf">.</span>
<span class="s1">' AND expire=0'</span>
<span class="p">);</span>
</code></pre>
<p>Thus in this case <code>ASC</code> is used by default.</p> TYPO3 Core - Bug #89616 (Closed): Extbase returns deleted objects if only endtime is configuredhttp://forge.typo3.org/issues/896162019-11-08T12:50:25ZMathias Brodalambrodala@pagemachine.de
<p>Given a table configured like this in TCA:</p>
<pre><code class="php syntaxhl" data-language="php"><span class="k">return</span> <span class="p">[</span>
<span class="s1">'ctrl'</span> <span class="o">=></span> <span class="p">[</span>
<span class="c1">// ...</span>
<span class="s1">'delete'</span> <span class="o">=></span> <span class="s1">'deleted'</span><span class="p">,</span>
<span class="s1">'enablecolumns'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'endtime'</span> <span class="o">=></span> <span class="s1">'endtime'</span><span class="p">,</span>
<span class="p">],</span>
<span class="c1">// ...</span>
<span class="p">],</span>
<span class="c1">// ...</span>
<span class="p">];</span>
</code></pre>
<p>If used in the BE/CLI context, Extbase will now return deleted rows in case <code>endtime</code> is <code>0</code>.</p>
<p>This is caused by Extbase's usage of <code>BackendUtility::BEenableFields()</code> will lead <code>Typo3DbQueryParser::getBackendConstraintStatement()</code> to generate a broken statement fragment like this:</p>
<pre><code class="sql syntaxhl" data-language="sql"> <span class="k">AND</span> <span class="p">(</span><span class="nv">`tx_mytable`</span><span class="p">.</span><span class="nv">`endtime`</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="k">OR</span> <span class="p">(</span><span class="nv">`tx_mytable`</span><span class="p">.</span><span class="nv">`endtime`</span> <span class="o">></span> <span class="mi">1573213620</span><span class="p">)</span> <span class="k">AND</span> <span class="n">tx_mytable</span><span class="p">.</span><span class="n">deleted</span><span class="o">=</span><span class="mi">0</span>
</code></pre>
<p>This allows selecting rows which are <code>deleted</code> as long as <code>endtime</code> is <code>0</code></p>
<p>Workaround: add at least one additional <code>enablecolumn</code>, so either <code>disabled</code> or <code>starttime</code>. This will lead to a working statement fragment like this:</p>
<pre><code class="sql syntaxhl" data-language="sql"> <span class="k">AND</span> <span class="p">(</span><span class="nv">`tx_mytable`</span><span class="p">.</span><span class="nv">`starttime`</span> <span class="o"><=</span> <span class="mi">1573214160</span><span class="p">)</span> <span class="k">AND</span> <span class="p">((</span><span class="nv">`tx_mytable`</span><span class="p">.</span><span class="nv">`endtime`</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="k">OR</span> <span class="p">(</span><span class="nv">`tx_mytable`</span><span class="p">.</span><span class="nv">`endtime`</span> <span class="o">></span> <span class="mi">1573214160</span><span class="p">))</span> <span class="k">AND</span> <span class="n">tx_mytable</span><span class="p">.</span><span class="n">deleted</span><span class="o">=</span><span class="mi">0</span>
</code></pre> TYPO3 Core - Task #89481 (Closed): Add security reporting procedure to READMEhttp://forge.typo3.org/issues/894812019-10-23T09:08:10ZMathias Brodalambrodala@pagemachine.de
<p>The current README does not have a single mention how security issues should be reported. This can lead to public reports which violates the <a href="https://en.wikipedia.org/wiki/Responsible_disclosure" class="external">responsible disclosure</a> principle.</p> TYPO3 Core - Task #85025 (Closed): Enumerations must be finalhttp://forge.typo3.org/issues/850252018-05-16T12:58:01ZMathias Brodalambrodala@pagemachine.de
<p>All <code>Enumeration</code> classes in TYPO3 must be marked as <code>final</code>. It does not make sense to have these extendable since the code which uses these expects a know set of values, adding more values leads to undefined behavior, thus bugs.</p> TYPO3 Core - Task #77236 (Closed): Suggest TCA overrides for adding content elements in FSChttp://forge.typo3.org/issues/772362016-07-25T11:52:35ZMathias Brodalambrodala@pagemachine.de
<p>The docs of <code>fluid_styled_content</code> currently suggest legacy methods for TCA changes to add own content elements.</p>
<p>This should be updated to suggest TCA overrides instead.</p> TYPO3 Core - Task #74491 (Closed): Add Travis check for file path lengthhttp://forge.typo3.org/issues/744912016-03-08T10:20:22ZMathias Brodalambrodala@pagemachine.de
<p>A check should be added to Travis to check the file path lengths in the core repository.</p>
<p>The <a href="https://review.typo3.org/46357" class="external">limit has been set to 130</a> which reduces the risk of not being able to create all files/directories on Windows hosts when cloning the core/fetching it via Composer as source.</p> TYPO3 Core - Task #73480 (Closed): Disallow PHP 7.x for TYPO3 6.2http://forge.typo3.org/issues/734802016-02-16T12:29:42ZMathias Brodalambrodala@pagemachine.de
<p>When installing TYPO3 6.2 via Composer currently everything larger than PHP 5.3.7 is allowed which includes PHP 7.x and even future versions.</p>
<p>This should be restricted to PHP 5.x.</p> TYPO3 Core - Task #69792 (Closed): Bring back icons before select fieldshttp://forge.typo3.org/issues/697922015-09-14T15:55:36ZMathias Brodalambrodala@pagemachine.de
<p>With the removal of <code>iconsInOptionTags</code> the icon prepended to <code>select</code> fields was dropped too even though it doesn't suffer from bad browser support:</p>
<p><img src="http://forge.typo3.org/attachments/download/29592/select-icon-prepend.png" alt="" loading="lazy" /></p>
<p>This should be added again and cleaned up a bit, e.g. to switch the icon before the confirmation dialog triggered by <code>requestUpdate</code> is shown which was the other way around previously.</p> TYPO3 Core - Task #69722 (Closed): Drop "sprite" from icon variable names in ImportExporthttp://forge.typo3.org/issues/697222015-09-12T14:06:24ZMathias Brodalambrodala@pagemachine.de
<p>To simplify searching for remaining occurrences of "sprite" in the core, the icon variables in <code>ImportExport</code> should be renamed.</p> TYPO3 Core - Task #66327 (Closed): Rename FAL driver count methodshttp://forge.typo3.org/issues/663272015-04-08T14:34:12ZMathias Brodalambrodala@pagemachine.de
<p>With <a class="issue tracker-1 status-5 priority-3 priority-lowest closed" title="Bug: File list always fetches all files in folder (Closed)" href="http://forge.typo3.org/issues/56746">#56746</a> count methods where added to FAL drivers but the naming is not intuitive and should be changed.</p> TYPO3 Core - Task #66323 (Closed): Test more edge cases for trimExplodehttp://forge.typo3.org/issues/663232015-04-08T12:32:18ZMathias Brodalambrodala@pagemachine.de
<p>There are a few more edge cases in light of <a class="issue tracker-4 status-5 priority-4 priority-default closed behind-schedule" title="Task: Performance: improve trimExplode 2nd try (Closed)" href="http://forge.typo3.org/issues/66317">#66317</a> which should be tested with the current code base first.</p> TYPO3 Core - Task #56177 (Closed): Windows issues with long CSV file name from commit 2db3d30http://forge.typo3.org/issues/561772014-02-21T11:49:53ZMathias Brodalambrodala@pagemachine.de
<p>The commit 2db3d30 added the following file:</p>
<blockquote>
<p>typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/CommaSeparatedValue/DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecordsAndDiscardLocalizedParentRecord.csv</p>
</blockquote>
<p>It seems like this file path is too long for either Windows or Git on Windows. If you pull/merge this commit, the file cannot be created, if you do a clean clone, this file is deleted immediately and cannot be restored.</p>
<p>Suggestion: use a shorter file name.</p>