TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692024-02-04T10:16:18ZTYPO3 Forge
Redmine TYPO3 Core - Feature #103032 (Under Review): Redirects Integrity Check: Find hidden targetshttp://forge.typo3.org/issues/1030322024-02-04T10:16:18ZGuido Schmechel
<p>As a TYPO3 user, I would like the Integrity check to mark redirects to hidden pages.</p> TYPO3 Core - Task #99492 (Closed): Use table as output for the redirects:checkintegrity commandhttp://forge.typo3.org/issues/994922023-01-08T13:02:04ZGuido Schmechel
<p>With various checks in the command, the list of hits can become very long. Instead of using the text format, it is better to use the table. The output can then be clearer.</p>
<p><a class="external" href="https://symfony.com/doc/current/components/console/helpers/table.html">https://symfony.com/doc/current/components/console/helpers/table.html</a></p> TYPO3 Core - Feature #99491 (New): PSR14 Event for the redirect integrity checkhttp://forge.typo3.org/issues/994912023-01-08T12:45:42ZGuido Schmechel
<p>As an integrator, I would like to check redirects to records to see if they are still accessible. The prerequisite for this is a RecordLinkhandler, e.g. for news.</p>
<p>With this PSR-14 event, I can check whether targets (t3://record?identifier=tx_news&uid=456) are still valid. Other checks, e.g. for external URLs, would also be possible in this way.</p> TYPO3 Core - Feature #99489 (Under Review): Find redirect duplicateshttp://forge.typo3.org/issues/994892023-01-07T22:54:17ZGuido Schmechel
<p>The redirect:checkintegrity command should also check for duplicates in the sys_redirect table. The duplicates should only be marked.</p> TYPO3 Core - Feature #99485 (Closed): Show the redirect integrity statushttp://forge.typo3.org/issues/994852023-01-07T17:55:41ZGuido Schmechel
<p>We have a command to check the integrity of redirects. So far, this information is only displayed in the status report or directly in the CLI command.</p>
<p>Ideally, broken redirects should be marked in the management tool.</p> TYPO3 Core - Feature #98454 (Under Review): Allow language parameter for 404 handlinghttp://forge.typo3.org/issues/984542022-09-27T19:45:51ZGuido Schmechel
<p>Some context: We have defined three languages for one client. The first language is for support only, has ID 0 and is disabled. One requirement is that no matter what language B is used as the 404 page. One requirement was that there is no root page with / but only /isocode. This means that all general routes (sitemap.xml and so on) now end up in the language 0. Instead of a 404, we get an exception.</p>
<p>Yes, the construct is unfortunately intentional...</p>
<p>It would help us if we could specify a language parameter in the 404 handling for the page that is used in these exceptional cases.</p> TYPO3 Core - Task #89563 (New): Add redirect typeshttp://forge.typo3.org/issues/895632019-10-31T16:57:44ZGuido Schmechel
<p>Compared to the extension yoast premium, there are still two types of HTTP missing:</p>
<p>410 Content deleted<br />451 Unavilable for legal reasons</p> TYPO3 Core - Bug #89326 (Accepted): Prevent duplicate redirects in auto redirectshttp://forge.typo3.org/issues/893262019-10-01T21:04:28ZGuido Schmechel
<p><strong>Case "Auto redirect":</strong> (>= v10.1)<br />An editor changes the slug of a page several times back and forth. A redirect is always created, no matter if it already exists.</p>
<p>Possible solution:<br />Optimal would be a hash value which is created from all 8 values.</p> TYPO3 Core - Task #89325 (New): Prevent duplicate redirects in backend modulehttp://forge.typo3.org/issues/893252019-10-01T21:02:06ZGuido Schmechel
<p><strong>Case "Backend Modul":</strong> (>= v9)<br />In the backend module you can save as many redirects with the same settings. There is no duplicate check.</p>
<p><strong>Possible solution:</strong><br />Optimal would be a hash value which is created from all 8 values.</p> TYPO3 Core - Task #89029 (Closed): UX: Disable phone linkhandler for canonical linkshttp://forge.typo3.org/issues/890292019-08-28T00:04:05ZGuido SchmechelTYPO3 Core - Feature #88351 (Closed): Store task group visibillity statehttp://forge.typo3.org/issues/883512019-05-14T17:24:03ZGuido Schmechel
<p>Context:<br />I toggle the visibillity state and hide the task group. If i reload the "scheduler" module the task group is already expanded.</p>
<p>Feature wish:<br />Store the task group visibillity state in the BE user settings</p> TYPO3 Core - Bug #87683 (Closed): TitleTagProvider always get the cached entryhttp://forge.typo3.org/issues/876832019-02-10T22:10:25ZGuido Schmechel
<p>Given scenario:<br />I have a searchresult page (e.g. UID 42). The post requests variables are used for generating title tag and meta description. There is a custom TitleTagProvider which deliver a custom title, e.g. "Hello world 123" or if another search is correct "Hello world 456"</p>
<p>Btw: The searchresultAction is uncached.</p>
<p>Output:<br />Case 1: "Hello world 123" <br />Case 2: "Hello world 123"</p>
<p>Expected Result:<br />Case 1: "Hello world 123" <br />Case 2: "Hello world 456"</p>
<p>Problem:<br />TYPO3 saves title Tag, also custom Provider, in typo3/sysext/core/Classes/PageTitle/PageTitleProviderManager.php $cacheIdentifier. It never looks for the content of the titleTag. <br /><pre><code class="php syntaxhl" data-language="php"><span class="nv">$cacheIdentifier</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-></span><span class="nf">getTypoScriptFrontendController</span><span class="p">()</span><span class="o">-></span><span class="n">newHash</span> <span class="mf">.</span> <span class="s1">'-titleTag-'</span> <span class="mf">.</span> <span class="nv">$provider</span><span class="p">;</span>
</code></pre></p>
<p>Possible solution:<br />Integrate (hashed?) titleTag content in the cacheIdentifier.</p>
<p><a class="external" href="https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Classes/PageTitle/PageTitleProviderManager.php#L69">https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Classes/PageTitle/PageTitleProviderManager.php#L69</a></p>
<p>Same problem exists for the MetaTags.</p> TYPO3 Core - Bug #87337 (Closed): ExtbasePluginEnhancer does not use a custom controller configur...http://forge.typo3.org/issues/873372019-01-05T19:25:17ZGuido Schmechel
<p><strong>Context</strong><br />I have a standard extbase plugin. Actions are list, detail and city.</p>
<p><strong>Problem</strong><br />If defaultController and _controller do not match from a route, the URL will not build up cleanly. In my case, he always uses "list" to generate the URL.</p>
<p><strong>Solution</strong><br />When verifying each configuration in the ExtbasePluginEnhancer, the controller will not overwrite the current configuration. Only the default controller is used.</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">$configuration</span><span class="p">[</span><span class="s1">'_controller'</span><span class="p">]))</span> <span class="p">{</span>
<span class="nv">$this</span><span class="o">-></span><span class="nf">applyControllerActionValues</span><span class="p">(</span>
<span class="nv">$configuration</span><span class="p">[</span><span class="s1">'_controller'</span><span class="p">],</span>
<span class="nv">$originalParameters</span><span class="p">[</span><span class="nv">$this</span><span class="o">-></span><span class="n">namespace</span><span class="p">]</span>
<span class="p">);</span>
<span class="p">}</span>
</code></pre>
<p><strong>Route Enhancer config</strong></p>
<pre><code class="php syntaxhl" data-language="php"><span class="n">routeEnhancers</span><span class="o">:</span>
<span class="nc">DetailPoi</span><span class="o">:</span>
<span class="n">type</span><span class="o">:</span> <span class="nc">Extbase</span>
<span class="n">extension</span><span class="o">:</span> <span class="nc">AyacooPoi</span>
<span class="n">plugin</span><span class="o">:</span> <span class="nc">Poi</span>
<span class="n">routes</span><span class="o">:</span>
<span class="o">-</span> <span class="p">{</span> <span class="n">routePath</span><span class="o">:</span> <span class="s1">'restaurant/{slug}'</span><span class="p">,</span> <span class="n">_controller</span><span class="o">:</span> <span class="s1">'Poi::detail'</span><span class="p">,</span> <span class="n">_arguments</span><span class="o">:</span> <span class="p">{</span><span class="s1">'slug'</span> <span class="o">:</span> <span class="s1">'poi'</span><span class="p">}</span> <span class="p">}</span>
<span class="o">-</span> <span class="p">{</span> <span class="n">routePath</span><span class="o">:</span> <span class="s1">'stadt/{cityTitle}'</span><span class="p">,</span> <span class="n">_controller</span><span class="o">:</span> <span class="s1">'Poi::city'</span><span class="p">,</span> <span class="n">_arguments</span><span class="o">:</span> <span class="p">{</span><span class="s1">'cityTitle'</span> <span class="o">:</span> <span class="s1">'city'</span><span class="p">}</span> <span class="p">}</span>
<span class="n">defaultController</span><span class="o">:</span> <span class="s1">'Poi::list'</span>
<span class="n">requirements</span><span class="o">:</span>
<span class="n">poi</span><span class="o">:</span> <span class="s1">'\d+'</span>
<span class="n">city</span><span class="o">:</span> <span class="s1">'\d+'</span>
<span class="n">aspects</span><span class="o">:</span>
<span class="n">slug</span><span class="o">:</span>
<span class="n">type</span><span class="o">:</span> <span class="nc">PersistedAliasMapper</span>
<span class="n">tableName</span><span class="o">:</span> <span class="s1">'tx_ayacoopoi_domain_model_poi'</span>
<span class="n">routeFieldName</span><span class="o">:</span> <span class="s1">'slug'</span>
<span class="n">cityTitle</span><span class="o">:</span>
<span class="n">type</span><span class="o">:</span> <span class="nc">PersistedAliasMapper</span>
<span class="n">tableName</span><span class="o">:</span> <span class="s1">'tx_ayacoopoi_domain_model_poi'</span>
<span class="n">routeFieldName</span><span class="o">:</span> <span class="s1">'city'</span>
</code></pre> TYPO3 Core - Bug #87333 (Closed): Slug fieldSeparator default value collides with symfony strict ...http://forge.typo3.org/issues/873332019-01-05T09:40:59ZGuido Schmechel
<p><strong>Context</strong></p>
<p>I combine two fields via TCA Slug ['city', 'street']. TYPO3 builds the slug correctly to e.g. "cologne/streetname". This is also displayed in the backend in the slug field.</p>
<pre><code class="php syntaxhl" data-language="php"> <span class="s1">'slug'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'exclude'</span> <span class="o">=></span> <span class="kc">true</span><span class="p">,</span>
<span class="s1">'label'</span> <span class="o">=></span> <span class="s1">'URL Segment'</span><span class="p">,</span>
<span class="s1">'config'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'type'</span> <span class="o">=></span> <span class="s1">'slug'</span><span class="p">,</span>
<span class="s1">'generatorOptions'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'fields'</span> <span class="o">=></span> <span class="p">[</span><span class="s1">'city'</span><span class="p">,</span> <span class="s1">'street'</span><span class="p">],</span>
<span class="s1">'replacements'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'/'</span> <span class="o">=></span> <span class="s1">''</span><span class="p">,</span>
<span class="s1">'&'</span> <span class="o">=></span> <span class="s1">''</span>
<span class="p">],</span>
<span class="p">],</span>
<span class="s1">'fallbackCharacter'</span> <span class="o">=></span> <span class="s1">'-'</span><span class="p">,</span>
<span class="s1">'eval'</span> <span class="o">=></span> <span class="s1">'uniqueInPid'</span><span class="p">,</span>
<span class="p">],</span>
<span class="p">],</span>
</code></pre>
<p><strong>Problem</strong></p>
<p>If i call a list action which call this slug via f:link.page I get this error message:</p>
<pre>
Parameter "tx_ayacoopoi_poi__poi" for route "tx_ayacoopoi_poi_0" must match "[^/]++" ("cologne/streetname" given) to generate a corresponding URL.
</pre>
<p>I have not defined a field separator in the TCA config and so a slash is used by the code => <a class="external" href="https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Classes/DataHandling/SlugHelper.php#L185">https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Classes/DataHandling/SlugHelper.php#L185</a></p>
<p>Symfony routing is in strict mode and so the slash isn't allowed.</p>
<p><strong>Route Enhancer</strong></p>
<pre><code class="yaml syntaxhl" data-language="yaml"><span class="na">routeEnhancers</span><span class="pi">:</span>
<span class="na">DetailPoi</span><span class="pi">:</span>
<span class="na">type</span><span class="pi">:</span> <span class="s">Extbase</span>
<span class="na">extension</span><span class="pi">:</span> <span class="s">AyacooPoi</span>
<span class="na">plugin</span><span class="pi">:</span> <span class="s">Poi</span>
<span class="na">routes</span><span class="pi">:</span>
<span class="pi">-</span> <span class="pi">{</span> <span class="nv">routePath</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{slug}'</span><span class="pi">,</span> <span class="nv">_controller</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Poi::detail'</span><span class="pi">,</span> <span class="nv">_arguments</span><span class="pi">:</span> <span class="pi">{</span><span class="s1">'</span><span class="s">slug'</span> <span class="pi">:</span> <span class="s1">'</span><span class="s">poi'</span><span class="pi">}</span> <span class="pi">}</span>
<span class="na">defaultController</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Poi::detail'</span>
<span class="na">aspects</span><span class="pi">:</span>
<span class="na">slug</span><span class="pi">:</span>
<span class="na">type</span><span class="pi">:</span> <span class="s">PersistedAliasMapper</span>
<span class="na">tableName</span><span class="pi">:</span> <span class="s1">'</span><span class="s">tx_ayacoopoi_domain_model_poi'</span>
<span class="na">routeFieldName</span><span class="pi">:</span> <span class="s1">'</span><span class="s">slug'</span>
<span class="na">routeValuePrefix</span><span class="pi">:</span> <span class="s1">'</span><span class="s">/'</span>
</code></pre> TYPO3 Core - Bug #87312 (Closed): Scheduler fails at ConsoleCommand at the same time with the sam...http://forge.typo3.org/issues/873122018-12-31T00:35:53ZGuido Schmechel
<p><strong>Context:</strong></p>
<ul>
<li>Given is a Symfony console command registered with "test:job" </li>
<li>This job has one required argument "message" </li>
<li>Activate two tasks in the scheduler, e.g. every minute</li>
<li>TYPO3 Cronjob runs every minute, too (CLI)</li>
<li>Task 1 registered with argument "hello", Task 2 registered with argument "world"</li>
</ul>
<p><strong>Problem</strong>:</p>
<ul>
<li>TYPO3 processes the jobs sequential</li>
<li>First call is "scheduler:run" via CLI</li>
<li>Second call is our Task 1 (hello)</li>
<li>vendor/symfony/console/Command/Command.php has no "command". Here is the magic to add these "command". So we have now "test:job" as command and "hello" as message. Job runs successfully.</li>
<li>Third call (Task 2) has only the argument "message" (world) and TYPO3 runs the job without the "command" argument</li>
<li>The Job exit with code 255 and save the trace into the database field</li>
</ul>
<p><strong>Error message</strong></p>
<pre>
a:5:{s:4:"code";i:0;s:7:"message";s:42:"Not enough arguments (missing: "command").";s:4:"file";s:66:"project\vendor\symfony\console\Input\Input.php";s:4:"line";i:76;s:11:"traceString";s:2742:"#0 project\vendor\symfony\console\Input\Input.php(42): Symfony\Component\Console\Input\Input->validate()
#1 project\vendor\symfony\console\Input\ArrayInput.php(34): Symfony\Component\Console\Input\Input->__construct(Object(Symfony\Component\Console\Input\InputDefinition))
#2 project\public\typo3\sysext\scheduler\Classes\Task\ExecuteSchedulableCommandTask.php(88): Symfony\Component\Console\Input\ArrayInput->__construct(Array, Object(Symfony\Component\Console\Input\InputDefinition))
#3 project\public\typo3\sysext\scheduler\Classes\Scheduler.php(180): TYPO3\CMS\Scheduler\Task\ExecuteSchedulableCommandTask->execute()
#4 project\public\typo3\sysext\scheduler\Classes\Command\SchedulerCommand.php(145): TYPO3\CMS\Scheduler\Scheduler->executeTask(Object(TYPO3\CMS\Scheduler\Task\ExecuteSchedulableCommandTask))
#5 project\public\typo3\sysext\scheduler\Classes\Command\SchedulerCommand.php(99): TYPO3\CMS\Scheduler\Command\SchedulerCommand->loopTasks()
#6 project\vendor\symfony\console\Command\Command.php(255): TYPO3\CMS\Scheduler\Command\SchedulerCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 project\vendor\symfony\console\Application.php(901): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#8 project\vendor\symfony\console\Application.php(262): Symfony\Component\Console\Application->doRunCommand(Object(TYPO3\CMS\Scheduler\Command\SchedulerCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#9 project\vendor\symfony\console\Application.php(145): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 project\public\typo3\sysext\core\Classes\Console\CommandRequestHandler.php(63): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 project\public\typo3\sysext\core\Classes\Console\CommandApplication.php(48): TYPO3\CMS\Core\Console\CommandRequestHandler->handleRequest(Object(Symfony\Component\Console\Input\ArgvInput))
#12 project\public\typo3\sysext\core\bin\typo3(23): TYPO3\CMS\Core\Console\CommandApplication->run()
#13 project\public\typo3\sysext\core\bin\typo3(24): {closure}()
#14 {main}";}
</pre>