TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692021-08-31T06:11:44ZTYPO3 Forge
Redmine TYPO3 Core - Bug #95042 (Closed): email validation makes link generation unnecessary costlyhttp://forge.typo3.org/issues/950422021-08-31T06:11:44ZSebastian Michaelsenmichaelsen@t3seo.de
<p>Whenever links are generated with "legacy" parameter, the <code>\TYPO3\CMS\Core\LinkHandling\LegacyLinkNotationConverter</code> checks if the provided parameter is a valid email address. For validation we use the 3rd party library <code>egulias/email-validator</code>. With blackfire I determined that this library is quite costly in terms of memory and wall time.</p>
<p>I added this simple early return to <code>GeneralUtility::validEmail()</code>:</p>
<pre><code class="php syntaxhl" data-language="php"> <span class="k">if</span> <span class="p">(</span><span class="nb">strpos</span><span class="p">(</span><span class="nv">$email</span><span class="p">,</span> <span class="s1">'@'</span><span class="p">)</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
<span class="p">}</span>
</code></pre>
<p>And it significantly improved the speed of links generation. I don't know if that is a suitable solution for the core, or if such a fix should get into the library itself.</p> TYPO3 Core - Bug #93336 (Closed): Enabling translated content in workspace is not previewablehttp://forge.typo3.org/issues/933362021-01-21T09:35:08ZSebastian Michaelsenmichaelsen@t3seo.de
<p>When you enable content element translation in a WS (which is hidden in LIVE), you cannot see the effect in the workspace preview.</p>
<p>Setup:</p>
<table>
<tr>
<th>Workspace </th>
<th>Default Lang Content </th>
<th>Translated Content </th>
</tr>
<tr>
<td> LIVE </td>
<td> enabled </td>
<td> hidden </td>
</tr>
<tr>
<td> WS </td>
<td> enabled </td>
<td> enabled </td>
</tr>
</table>
<p><code>PageRepository->getRecordOverlay()</code> first does the language overlay and the version overlay afterwards. But the language overlay applies enable field restrictions, so the translation is not loaded (even it would be enabled in the WS version).</p> TYPO3 Core - Bug #93109 (Closed): Records can not be discarded from workspacehttp://forge.typo3.org/issues/931092020-12-18T14:59:21ZSebastian Michaelsenmichaelsen@t3seo.de
<p>When I try to discard news records in the workspaces module I get an SQL error: Unknown column 'tablenames' in 'where clause'.</p>
<p>I tracked down the issue to here: <a class="external" href="https://github.com/TYPO3/TYPO3.CMS/blob/956c01e07885d5c1dffffb2a7ab8aae0db4df9d6/typo3/sysext/core/Classes/DataHandling/DataHandler.php#L5656">https://github.com/TYPO3/TYPO3.CMS/blob/956c01e07885d5c1dffffb2a7ab8aae0db4df9d6/typo3/sysext/core/Classes/DataHandling/DataHandler.php#L5656</a></p>
<p>There it is hardcoded that the mm relation table always has a "tablenames" field. However this is not always the case, e.g. tx_news_domain_model_news.related (<a class="external" href="https://github.com/georgringer/news/blob/master/Configuration/TCA/tx_news_domain_model_news.php#L310">https://github.com/georgringer/news/blob/master/Configuration/TCA/tx_news_domain_model_news.php#L310</a>)</p> TYPO3 Core - Bug #93033 (Closed): Language switch missing for file metadata recordshttp://forge.typo3.org/issues/930332020-12-09T06:38:43ZSebastian Michaelsenmichaelsen@t3seo.de
<p>When editing file metadata records (<code>sys_file_metadata</code>), the language switch is missing.</p>
<p>From my observations the switch was there in v8 and is gone in v10.</p>
<p>According to xdebug the <code>EditDocumentController->getLanguages()</code> always determines English is the only available language for <code>sys_file_metadata</code> on pid 0.<br />The file list however has a different logic. From there metadata can be translated into any system language (<code>FileList->getAvailableSystemLanguages()</code>).</p> TYPO3 Core - Bug #93027 (Closed): Workspace preview of hidden extbase records not possiblehttp://forge.typo3.org/issues/930272020-12-08T11:16:58ZSebastian Michaelsenmichaelsen@t3seo.de
<p>Previewing hidden Extbase records works.<br />Previewing versioned Extbase records works.<br />Previewing hidden AND versioned Extbase records does not work for us.</p>
<p>The reason is in <code>\TYPO3\CMS\Extbase\Persistence\Generic\Storage\Typo3DbBackend</code> the record is overlaid with <code>$pageRepository->versionOL()</code>.<br /><code>Typo3DbBackend</code> does not set the optional <code>$bypassEnableFieldsCheck</code> parameter of <code>versionOL()</code> (default is <code>false</code>).</p>
<p>Instead it should respect whatever is set in <code>$querySettings->getIgnoreEnableFields()</code></p>
<p>How to reproduce:</p>
<ul>
<li>Have a TYPO3 installation with EXT:news which has a basic setup (like detail page with a plugin)</li>
<li>Set <code>previewHiddenRecords</code> to true (either via TypoScript <code>plugin.tx_news.settings.previewHiddenRecords = 1</code> or via Plugin Flexform)</li>
<li>Have a hidden news record.</li>
<li>"View" it from its backend form. => Preview will work because we enabled <code>previewHiddenRecords</code> </li>
<li>Switch to a workspace</li>
<li>"View" it from its backend form.</li>
</ul>
<p>Expected result: News preview should open<br />Actual result: "The news record is not available anymore"</p> TYPO3 Core - Bug #92978 (Closed): Pagination in Workspaces Module is brokenhttp://forge.typo3.org/issues/929782020-12-03T10:14:47ZSebastian Michaelsenmichaelsen@t3seo.de
<p>When a workspace has more than 30 changes there is a pagination in the workspaces module.</p>
<p>However currently there is a javascript error when generating the pagebrowser, which results in the whole module broken (not showing any changes).</p>
<p>The error is: s.disablePagingAction is not a function</p> TYPO3 Core - Feature #92780 (Rejected): Provide Event after page URI has been generatedhttp://forge.typo3.org/issues/927802020-11-05T20:37:45ZSebastian Michaelsenmichaelsen@t3seo.de
<p>After <code>PageRouter->generateUri()</code> has created a link to a page, an event should be dispatched that allows extensions to react to the created URI or modify it.</p>
<p>Whenever an extension author <em>modifies</em> a generated URL they would need to take care that the URL can be resolved again in the end.</p>
<p>Use Case 1 (URL modification):<br />Via event the generated page URI is modified in a way that url path slugs are rearranged. Once this modified URI is called, a middleware recognizes it and modifies it back, so TYPO3 can resolve it again.</p>
<p>Use Case 2 (URL Logging):<br />Sometimes you have errors reported or in your logs, where you ask yourself: How did anyone end up on <strong>that</strong> URL? Where and why was it generated? So it could be useful to maintain a log with debugging information whenever a <em>new</em> URI is generated.</p> TYPO3 Core - Bug #89192 (Accepted): TypoScript multi-line value syntax in is broken in Backend La...http://forge.typo3.org/issues/891922019-09-17T18:06:42ZSebastian Michaelsenmichaelsen@t3seo.de
<p>Consider the following Backend Layout:</p>
<pre><code class="text syntaxhl" data-language="text">mod.web_layout.BackendLayouts.infoPage {
title = Info Page
config.backend_layout {
colCount = 1
rowCount = 1
rows {
1.columns.1 {
name = Content Area
colPos = 0
allowed.CType (
gridelements_pi1,
list,
shortcut,
text,
)
}
}
}
}
</code></pre>
<p>The multi-line value for allowed.CType is perfectly valid and correctly parsed by TYPO3. However <code>\TYPO3\CMS\Backend\Provider\PageTsBackendLayoutDataProvider->generateBackendLayoutFromTsConfig</code> tries to reconstruct the original TSconfig from the parsed array and assumes all values are one-line values with <code>=</code> syntax.</p>
<p>The reconstructed TSconfig then looks like this (in Xdebug)</p>
<pre><code class="text syntaxhl" data-language="text">backend_layout.colCount = 1
backend_layout.rowCount = 1
backend_layout.rows.1.columns.1.name = Content Area
backend_layout.rows.1.columns.1.colPos = 0
backend_layout.rows.1.columns.1.allowed.CType = gridelements_pi1,
list,
shortcut,
text
</code></pre>
<p>Resulting in only <code>gridelements_pi1</code> to be allowed.</p>
<p>A possible solution could be to strip all line breaks while reconstructing the TSconfig.</p>
<p>Workaround: Do not use the multi-line value syntax in Backend Layouts.</p>
<p>This affects at least TYPO3 8 to 10.</p> TYPO3 Core - Bug #88699 (Closed): Language Synchronization does not work in workspaceshttp://forge.typo3.org/issues/886992019-07-08T10:24:30ZSebastian Michaelsenmichaelsen@t3seo.de
<p>When editing a record which has translations, the <code>\TYPO3\CMS\Core\DataHandling\Localization\DataMapProcessor</code> loads those translations so columns can be synchronized if configured accordingly. That works fine in the Live Workspace but does not work in a workspace environment.</p>
<p>Consider the following news records:</p>
<table>
<tr>
<th>uid </th>
<th>l10n_parent </th>
<th>t3ver_wsid </th>
<th>t3ver_oid </th>
<th>author </th>
</tr>
<tr>
<td> 1 </td>
<td> 0 </td>
<td> 0 </td>
<td> 0 </td>
<td> Anna </td>
</tr>
<tr>
<td> 2 </td>
<td> 1 </td>
<td> 0 </td>
<td> 0 </td>
<td> Anna </td>
</tr>
<tr>
<td> 3 </td>
<td> 0 </td>
<td> 42 </td>
<td> 1 </td>
<td> Anna </td>
</tr>
</table>
<p><strong>2</strong> is a translation of <strong>1</strong>. <strong>3</strong> is a workspace version of <strong>1</strong>. <code>author</code> is configured to be synchronized between translations.</p>
<p>When <strong>1</strong> is changed then <strong>2</strong> is correctly synchronized.</p>
<p>When <strong>3</strong> is changed there is no record to load for synchronization.</p>
<p>So when I change <code>author</code> to "Bob" in <strong>3</strong> nothing is synchronized and when I publish the workspace I end up with <strong>1</strong> and <strong>2</strong> having different authors which should never be the case.</p>
<p>My suggestion would be that when <strong>3</strong> is changed, a workspace version of its translation has to be created on demand so the changes can be synchronized.</p> TYPO3 Core - Bug #85917 (Closed): Exception in Template Module when having sys_template records i...http://forge.typo3.org/issues/859172018-08-21T13:00:21ZSebastian Michaelsenmichaelsen@t3seo.de
<p>Updating our TYPO3 installation to 8.7.19 broke the Template module.</p>
<pre>
Argument 2 passed to TYPO3\CMS\Core\Imaging\IconFactory::getIconForRecord() must be of the type array, null given, called in /[snip]/vendor/typo3/cms/typo3/sysext/tstemplate/Classes/Controller/TypoScriptTemplateModuleController.php on line 602
</pre>
<p>This error occurs when you have sys_template records with pid = -1 (i.e. you're using workspaces).</p> TYPO3 Core - Bug #71850 (Closed): typolink.forceAbsoluteUrl doesn't force absolute urlhttp://forge.typo3.org/issues/718502015-11-26T10:35:23ZSebastian Michaelsenmichaelsen@t3seo.de
<p>This is were it broke: <a class="external" href="https://github.com/TYPO3/TYPO3.CMS/commit/dacd79bc67c814a4f622dc6bd299ceb521aa325f#diff-fb30f860811e026eb162ad4095fa44e4R6692">https://github.com/TYPO3/TYPO3.CMS/commit/dacd79bc67c814a4f622dc6bd299ceb521aa325f#diff-fb30f860811e026eb162ad4095fa44e4R6692</a></p>
<p>parse_url() doesn't always return a host. With the weak comparison it matched the empty string.</p>
<p>Should be something like:</p>
<p><code>if (!isset($urlParts['host']) || $urlParts['host'] === '') {</code></p> TYPO3 Core - Bug #67530 (Closed): Media element: Video player, Audio player and Flow player brokenhttp://forge.typo3.org/issues/675302015-06-16T23:35:25ZSebastian Michaelsenmichaelsen@t3seo.de
<p>The swf files for the different media players can not be loaded in the frontend because of broken paths.</p>
How to reproduce:
<ul>
<li>Install EXT:mediace</li>
<li>Create Media Content Element</li>
<li>Reference a video file from your local file system</li>
</ul>
<p>=> Frontend is broken because flvplayer.swf can not be loaded. <a class="external" href="http://shots.michaelsen.io/I7yc">http://shots.michaelsen.io/I7yc</a></p>
<p>The issue occurs because the typoscript paths to these files were changed from "typo3/contrib/[...]" to "EXT:mediace/[...]" but the EXT: syntax is never resolved.</p> TYPO3 Core - Feature #67450 (Rejected): Support custom markers in search formhttp://forge.typo3.org/issues/674502015-06-15T10:08:29ZSebastian Michaelsenmichaelsen@t3seo.de
<p>indexed_search should support the creation of custom markers via typoscript to output custom labels and arbitrary content</p> TYPO3 Core - Bug #53632 (Closed): Install Tool: Show titles of failed image testshttp://forge.typo3.org/issues/536322013-11-14T10:01:09ZSebastian Michaelsenmichaelsen@t3seo.de
<p>"Test image formats" tries to convert different media types to JPG. If one of these conversions fails, you will get an error message but no hint about what media type failed to convert.</p>
<p>How it looks:<br /><img src="https://photos-4.dropbox.com/t/0/AADqQsVDSYREkXOLwXzLYCgXdO7ifSJpkzn0eKXwR4IlfA/12/6271307/png/1024x768/3/1384423200/0/2/Screenshot%202013-11-14%2009.53.44.png/dtihHMPZs1wSMQcfztBZOgcrsu0nBzO4vT3HT3kVrsw" alt="" /></p>
<p>How it should look:<br /><img src="https://photos-5.dropbox.com/t/0/AABiYcHSPyNQAZPNVTUqimDW0yr6B_r-M-Wzt8Jy9kpbsw/12/6271307/png/32x32/3/_/1/2/Screenshot%202013-11-14%2009.55.06.png/k6fGZ8cl17okaselMFgXgPpqfz75UuqWDbwnS8AV4yc?size=1024x768" alt="" /></p> TYPO3 Core - Feature #29105 (Closed): Options to hide Refresh and Drag&Drop Page above the Pagetreehttp://forge.typo3.org/issues/291052011-08-19T11:47:21ZSebastian Michaelsenmichaelsen@t3seo.de
<p>Above the pagetree there are icons for inserting a page via drag & drop, filtering the pagetree and refresh the view.</p>
<p>There is an option in UserTS <em>option.pagetree.hideFilter</em> to hide the filter, but no option for the other icons.<br />When building a minimalistic backend for editors you may want to hide those icons too (I have the usecase).</p>