TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692021-12-07T09:29:03ZTYPO3 Forge
Redmine TYPO3 Core - Task #96267 (New): Add dedicated error for class construction without dependencieshttp://forge.typo3.org/issues/962672021-12-07T09:29:03ZMathias Brodalambrodala@pagemachine.de
<p>Right now if <code>GeneralUtility::makeInstance()</code> is used to construct a class which uses constructor dependency injection and has not being marked as <code>public</code>, a low-level <code>\ArgumentCountError</code> is thrown by PHP.</p>
<p>This should be improved by catching this case and replacing the error with a custom one (e.g. <code>MissingDependenciesError</code>). Either that custom error already hints at possible solutions or its dedicated error code is used to link to the docs with more details. The docs could then suggest to mark the class as <code>public</code> or manually pass the dependencies as arguments.</p> TYPO3 Core - Bug #96054 (Closed): Command "language:update" does not log error on missing transla...http://forge.typo3.org/issues/960542021-11-23T09:53:47ZMathias Brodalambrodala@pagemachine.de
<p>The CLI command <code>language:update</code> invokes <code>LanguagePackService::languagePackDownload()</code> for each active extension. Here a HTTP request is performed on the translation server which can fail with an exception on 404.</p>
<p>The <code>RequestFactory::request()</code> call here should be adjusted to include <a href="https://docs.guzzlephp.org/en/stable/request-options.html#http-errors" class="external"><code>['http_errors' => false]</code></a> to have Guzzle return the 404 response instead of throwing an exception. This would allow for logging this as a regular warning.</p> TYPO3 Core - Bug #96053 (Closed): Command "language:update" succeeds on missing translations but ...http://forge.typo3.org/issues/960532021-11-23T09:50:25ZMathias Brodalambrodala@pagemachine.de
<p>The CLI command <code>language:update</code> is supposed to always fail if translations could not be fetched for an extension. But the behavior is different if <code>--no-progress</code> (or <code>--verbose</code>) is passed.</p>
<p>To reproduce:</p>
<ol>
<li>Install any extension without translations on the TYPO3 translation server (private or public), e.g. <code>container</code></li>
<li>Run <code>language:update</code>: succeeds</li>
<li>Run <code>language:update --no-progress</code>: fails</li>
<li>Run <code>language:update --verbose</code>: fails</li>
</ol>
<p>(Notice that the order of <code>language:update</code> invocations doesn't matter here.)</p> TYPO3 Core - Bug #95525 (New): Field label "DB mounts" is unclearhttp://forge.typo3.org/issues/955252021-10-07T15:05:44ZMathias Brodalambrodala@pagemachine.de
<p>The field <strong>DB mounts</strong> in users/groups is used to grant access to pages and page trees.</p>
<p>Thus the field should actually be named <strong>Page mounts</strong> / <strong>Web mounts</strong> or similar to actually tell what this is about. The term "DB" does not make sense for any user.</p> TYPO3 Core - Bug #93679 (Closed): Cropping to 0 (zero) pixels height/width breaks page/content ed...http://forge.typo3.org/issues/936792021-03-08T14:49:53ZMathias Brodalambrodala@pagemachine.de
<p>It is possible to store an image cropping configuration of 0 (zero) pixels in width or height. For this an editor simply needs to reduce the cropping frame to 0 in width or height. After saving an error shows up:</p>
<blockquote>
<p>Width and height of the image must be greater than zero</p>
</blockquote>
<p>(See <a class="external" href="https://github.com/TYPO3/TYPO3.CMS/blob/10.4/typo3/sysext/core/Classes/Imaging/ImageDimension.php#L76">https://github.com/TYPO3/TYPO3.CMS/blob/10.4/typo3/sysext/core/Classes/Imaging/ImageDimension.php#L76</a>)</p>
<p>Unless the <code>crop</code> field of the affected <code>sys_file_reference</code> record is cleared/fixed manually in the database, viewing the page in the <em>Page</em> module or editing the affected record in the <em>List</em> module is impossible due to this error.</p>
<p>A few options to fix this:</p>
<ol>
<li>Require a minimum of 1x1 Pixel for cropping</li>
<li>Display error and disable <em>Accept</em> in the <em>Image manipulation</em> wizard</li>
<li>Handle a width/height of 0 Pixel more gratuitously in <code>ImageDimension</code>.</li>
</ol> 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 - Bug #87519 (Closed): Class 'TYPO3\CMS\Core\Http\JsonResponse' not foundhttp://forge.typo3.org/issues/875192019-01-22T12:39:40ZMathias Brodalambrodala@pagemachine.de
<p>The <code>RequireJsController</code> uses the <code>JsonResponse</code> class in TYPO3v8 which was added with TYPO3v9 however.</p>
<p>This must be rewritten to not break the BE login.</p> TYPO3 Core - Bug #87035 (Closed): AdditionalFactoryConfiguration.php not used anymorehttp://forge.typo3.org/issues/870352018-11-29T10:32:53ZMathias Brodalambrodala@pagemachine.de
<p>The <code>typo3conf/AdditionalFactoryConfiguration.php</code> file can be used to provide additional default values to be put into <code>typo3conf/LocalConfiguration.php</code> upon TYPO3 setup.</p>
<p>However, this file is not used anymore since TYPO3v9 and currently must be placed one level above instead, so basically next to <code>index.php</code>.</p>
<p>This is a regression introduced with <a class="issue tracker-4 status-5 priority-4 priority-default closed" title="Task: Replace further path usages with Environment API (Closed)" href="http://forge.typo3.org/issues/85560">#85560</a>.</p> TYPO3 Core - Bug #84973 (Closed): Cannot delete invalid Scheduler taskhttp://forge.typo3.org/issues/849732018-05-11T17:39:24ZMathias Brodalambrodala@pagemachine.de
<p>When trying to delete an invalid Scheduler task (e.g. due to the related code being removed) an error occurs:</p>
<pre>
Fatal error: TYPO3\CMS\Scheduler\Scheduler::isValidTaskObject(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;<Task>&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /.../typo3/sysext/scheduler/Classes/Scheduler.php on line 449
</pre> TYPO3 Core - Bug #84178 (Closed): Cannot create but upload file with "@" in namehttp://forge.typo3.org/issues/841782018-03-08T14:45:32ZMathias Brodalambrodala@pagemachine.de
<p>In FAL there are at least two different ways to create files which apparently do not apply the same sanitation/validation rules to file names.</p>
<p>This can be verified easily in the <strong>Filelist</strong> module: if you try to upload a file called <strong><a class="email" href="mailto:foo@bar.txt">foo@bar.txt</a></strong> everything simply works.</p>
<p>But if you create a file called <strong><a class="email" href="mailto:foo@bar.txt">foo@bar.txt</a></strong> a <code>ResourceDoesNotExistException</code> is thrown:</p>
<pre>
#1329647780: Object with identifier "1:/foo@bar.txt" does not exist in storage
</pre>
<p>When opening the file list once more after this, an error flash message is shown which says <em>File name "<a class="email" href="mailto:foo@bar.txt">foo@bar.txt</a>" was not allowed!</em>.</p>
<p>This behavior can be traced back to these two code paths:</p>
<ul>
<li><code>LocalDriver::addFile()</code> calls <code>LocalDriver::sanitizeFileName()</code> which accepts <strong><a class="email" href="mailto:foo@bar.txt">foo@bar.txt</a></strong> (this is used e.g. for file uploads)</li>
<li><code>LocalDriver::createFile()</code> calls <code>AbstractDriver::isValidFilename()</code> which denies <strong><a class="email" href="mailto:foo@bar.txt">foo@bar.txt</a></strong> (this is used for everything else)</li>
</ul> TYPO3 Core - Bug #82852 (Closed): Empty page with invalid config.metaCharsethttp://forge.typo3.org/issues/828522017-10-25T09:12:43ZMathias Brodalambrodala@pagemachine.de
<p>If an invalid value is set for <code>config.metaCharset</code>, the whole page output is dropped and an empty page is shown instead.</p>
<p>There was a workaround added (<a class="issue tracker-1 status-5 priority-3 priority-lowest closed behind-schedule" title="Bug: No output in FE of 8.7.2 due to config.metaCharset = UTF-8 (Closed)" href="http://forge.typo3.org/issues/81634">#81634</a>) for cases like <code>UTF-8</code> instead of <code>utf-8</code> but there are millions of ways of doing it wrong, e.g. <code>utf8</code> instead of <code>utf-8</code>.</p>
<p>Instead of silently dropping the page content without notice, an error should be thrown which clearly hints at the error.</p> TYPO3 Core - Bug #81857 (Closed): Do not require typo3conf/ext to be writable in Composer Modehttp://forge.typo3.org/issues/818572017-07-13T16:47:26ZMathias Brodalambrodala@pagemachine.de
<p>The Folder Structure check of the Install Tool requires <code>typo3conf/ext</code> to be writable. However, this is not essential for the Composer Mode where this directory is not managed at runtime via Extension Manager but at build time via Composer instead.</p>
<p>Thus this directory should be excluded from the check in Composer Mode.</p> TYPO3 Core - Bug #81297 (Closed): Extbase record preview leads to 404 due to missing cHashhttp://forge.typo3.org/issues/812972017-05-22T14:56:45ZMathias Brodalambrodala@pagemachine.de
<p>With <a class="issue tracker-1 status-5 priority-3 priority-lowest closed" title="Bug: Require cHash for cached plugin actions in Extbase (Closed)" href="http://forge.typo3.org/issues/78002">#78002</a> the cHash is enforced for Extbase plugins if arguments are present. This however breaks the <a href="https://docs.typo3.org/typo3cms/TSconfigReference/PageTsconfig/TCEmain/Index.html#preview" class="external">record preview</a> feature since it does not add a <code>cHash</code> argument but uses <code>no_cache</code> instead.</p>
<p>A possible fix could be <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: Avoid usage of no_cache in preview link configuration (Closed)" href="http://forge.typo3.org/issues/78336">#78336</a> which adds an option to enable <code>cHash</code> calculation for record preview URLs.</p> TYPO3 Core - Bug #60913 (Closed): Cannot edit lazy loaded objectshttp://forge.typo3.org/issues/609132014-08-12T14:01:52ZMathias Brodalambrodala@pagemachine.de
<p>Lazy loaded objects cannot be edited through Fluid forms.</p>
<p>Given the following form:</p>
<pre>
<f:form name="bar" object="{foo.bar}">
<f:form.textfield property="propertyOfBar"/>
<f:form.submit value="Update"/>
</f:form>
</pre>
<p>If "bar" of "foo" is an instance of <code>TYPO3\CMS\Extbase\Persistence\Generic\LazyLoadingProxy</code> the initial check in <code>TYPO3\CMS\Fluid\ViewHelpers\Form\AbstractFormViewHelper::renderHiddenIdentityField</code> fails because the <code>LazyLoadingProxy</code> instance cannot be an instance of <code>TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject</code>. This prevents the hidden identity field from being rendered which makes editing impossible.</p> TYPO3 Core - Bug #59324 (Closed): CLI command drops last line of method descriptionhttp://forge.typo3.org/issues/593242014-06-04T09:59:28ZMathias Brodalambrodala@pagemachine.de
<p>The CLI command drops the last line of method descriptions. Thus given the following doc comment:</p>
<pre>
/**
* My method
*
* My longer description for this method:
* it can span multiple lines.
*
* @param string $argument
* @return void
*/
</pre>
<p>The description ends up like this:</p>
<blockquote>
<p>My method</p>
<p>My longer description for this method:</p>
</blockquote>
<p>The actual wanted description is this:</p>
<blockquote>
<p>My longer description for this method:</p>
<p>it can span multiple lines.</p>
</blockquote>
<p>The issue seems to be an error while porting the <code>Mvc\Cli\Command::getDescription</code> method from TYPO3 Flow. While TYPO3 Flow uses <code>array_shift</code> to drop the first line of the description (as stated with <code>... except for the first line ...</code>), Extbase uses <code>array_pop</code> which obviously removes the last line instead.</p>
<p>The fix is replacing <code>array_pop</code> with <code>array_shift</code>.</p>
<p>The bug can be seen in action easily by executing <code>./typo3/cli_dispatch.phpsh help help</code>.</p>