TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692022-10-26T11:18:03ZTYPO3 Forge
Redmine TYPO3 Core - Bug #98927 (Under Review): JS async option of includeJS broke by file in includeJSFo...http://forge.typo3.org/issues/989272022-10-26T11:18:03ZChristian Toffolo
<p>To reproduce, have a Typoscript like:</p>
<pre>
page {
includeJS {
headerJSfile = EXT:example/Resources/Public/JavaScript/headerJSfile.js
headerJSfile.async = 1
}
includeJSFooter {
footerJSfile = EXT:example/Resources/Public/JavaScript/footerJSfile.js
}
}
</pre>
<p>Expected behavior it a HTML code like:<br /><code><script src="/typo3temp/assets/compressed/merged-e942e6f0ca1ee79f54a389342a8850b9-78533bc4645ca634f7c62a6bbc42edef.js?1665838235" async="async"></script></code><br />Instead <code>async="async"</code> is not present because of the file configured in includeJSFooter.</p> TYPO3 Core - Bug #98506 (New): typolink can't generate link to translated shortcut page while it ...http://forge.typo3.org/issues/985062022-10-03T09:48:01ZChristian Toffolo
<p>Steps to reproduce:<br />1. have a page (uid=123) doktype=4, shortcut_mode=0, shortcut=124<br />2. have a target page (uid=124) for page with uid=123<br />3. have another page (uid=125)<br />4. translate this page with uid=125, this translation has uid=126<br />5. translate page of point 1 (page with uid=123), this translation has uid=127 and is set: doktype=4, shortcut_mode=0, shortcut=125</p>
<p>In other words:</p>
<p>123/ shortcut to 124 in default translation; has translation uid=127 with shortcut to 125<br />├─ 124/<br />├─ 125/ has translation uid=126</p>
<p>With this page setup, try to generate a typolink of page 123 in translated language.<pre>
typolink {
parameter = 123
useCacheHash = 1
returnLast = url
}
</pre><br />This typolink will return the correct url of page with uid=124 in default language, but will not return the url of page with uid=125 in translated language. Instead it will return the title of page with uid=127 causing a 404.</p>
<p>So there are two problems here:<br />1. typolink doesn't generate a URL while it should<br />2. typolink returns a page title as a URL and, AFAIK, it's not possible to disable this behaviour and simply not generate the URL.</p>
<p>As far as I debugged, problem 1 is caused because \TYPO3\CMS\Frontend\Typolink\PageLinkBuilder::build tries to get the page overlay of the shortcut of default language of page 123, that is page 124, instead of the overlay of the shortcut of the translation of page 123, that is page 127, so the overlay should be the one of page 125.</p> TYPO3 Core - Bug #96431 (New): Redirect to 404 if entry point is fully qualified domainhttp://forge.typo3.org/issues/964312021-12-24T15:44:58ZChristian Toffolo
<p>Suppose we have a website address <a class="external" href="https://www.example.com">https://www.example.com</a></p>
To reproduce:
<ul>
<li>have a Site Configuration with a language set with <br /><pre>
base: 'https://www.example.es/'
</pre></li>
<li>translate a page with title "test-default" with that language</li>
<li>change the title of the translated page "test-es"</li>
</ul>
<p>Result:<br />a new sys_redirect record is created with source_host <a class="external" href="http://www.example.com">www.example.com</a> instead of <a class="external" href="http://www.example.es">www.example.es</a>.<br />So when an user browses the default language of this translated page:<pre>https://www.example.com/test-default</pre>is redirected to:<pre>https://www.example.com/test-es</pre>that doesn't exist and throws a 404.</p>
<p>Correct redirect link should be:<br /><pre>https://www.example.es/test-es</pre></p> TYPO3 Core - Bug #95025 (Accepted): BE user limited to single not default language can't translat...http://forge.typo3.org/issues/950252021-08-29T09:09:04ZChristian Toffolo
<p>Step to reproduce:<br />1) create BE user with <code>Limit to languages [allowed_languages]</code> set to a single not default language</p>
<p>Result:<br />In Page module doc header is missing the select <code>actionMenu</code> and in module body is missing the select <code>createNewLanguage</code> so the user can't translate the page.</p>
<p>The problem seems to be here: <a class="external" href="https://github.com/TYPO3/typo3/blob/6543aa31699309e2bc574749c8c980c6f8adb26c/typo3/sysext/backend/Classes/Controller/PageLayoutController.php#L308">https://github.com/TYPO3/typo3/blob/6543aa31699309e2bc574749c8c980c6f8adb26c/typo3/sysext/backend/Classes/Controller/PageLayoutController.php#L308</a><br />because, to make the action menu of page module to appear, at least 2 available languages are needed.</p> TYPO3 Core - Bug #92050 (Closed): Wrong localized dates in f:format.date viewhelper http://forge.typo3.org/issues/920502020-08-19T14:06:38ZChristian Toffolo
<p>To reproduce this bug use the f:format.date viewhelper like:<br /><pre>
<f:format.date format="%d. %B %Y">{dateObject}</f:format.date>
</pre></p>
<p>With a dateObject like:<br /><pre>
DateTime Object (
[date] => 2020-01-01 00:00:00.000000
[timezone_type] => 1
[timezone] => +02:00
)
</pre></p>
<p>Wrong result: 31. December 2019<br />Expected: 01. January 2020</p>
<p>I guess the problem is in this line:<br /><a class="external" href="https://github.com/TYPO3/TYPO3.CMS/blob/383622db19d67eb74ccbac4fa9aa24319db3ef59/typo3/sysext/fluid/Classes/ViewHelpers/Format/DateViewHelper.php#L167">https://github.com/TYPO3/TYPO3.CMS/blob/383622db19d67eb74ccbac4fa9aa24319db3ef59/typo3/sysext/fluid/Classes/ViewHelpers/Format/DateViewHelper.php#L167</a><br />because $date is converted in Epoch Unix Time Stamp not considering time zone.</p>
<p>With the above data, $date->format('U') equals 1577829600 that Is equivalent to 12/31/2019 @ 10:00pm (UTC) that returns the localized month name of December instead of January.</p> TYPO3 Core - Bug #91975 (Closed): l10n_mode and l10n_display has no effect in categorieshttp://forge.typo3.org/issues/919752020-08-11T14:19:44ZChristian Toffolo
<p>I have TCA configured in this way:</p>
<p><img src="https://i.imgur.com/phiMwPq.png" alt="" /></p>
<p>but in BE, editing the localized record still displays the categories field and if modified the changes are saved in the DB.</p> TYPO3 Core - Bug #81649 (Closed): Undo delete of CE throws exceptionhttp://forge.typo3.org/issues/816492017-06-21T10:45:58ZChristian Toffolo
<p>Undo the delete of a CE with "History/Undo" throws exception:<br /><pre>Argument 2 passed to TYPO3\CMS\Core\DataHandling\Localization\DataMapProcessor::collectItems() must be of the type array, integer given,
called in /typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php on line 119`</pre></p> TYPO3 Core - Feature #81310 (Accepted): Add "select all records in all pages" button to Recyclerhttp://forge.typo3.org/issues/813102017-05-23T08:20:01ZChristian Toffolo
<p>Recycler has pagination of records displayed and a "select all" button that selects all records in current page.<br />But if there are many pages, it's useful to have a "select all records in all pages" button.</p>
<p>As an example, Gmail has a button that select all mails in current page and then a link appear with the text like "Select all 41,707 conversations in All Mail" that, when clicked, select everything.</p> TYPO3 Core - Bug #81096 (Accepted): Images wrongly cropped in translated pageshttp://forge.typo3.org/issues/810962017-05-01T15:58:15ZChristian Toffolo
<p>sys_file_metadata stores width/height of an image in the record with sys_language_uid=0 while in the translated records with sys_language_uid!=0 width/height are 0.</p>
<p>Then \TYPO3\CMS\Frontend\Page\PageRepository::getRecordOverlay() overlays the right dimensions in the $row with the 0 from $olrow even if TCA of sys_file_metadata has 'l10n_mode' => 'exclude' for the fields 'width' and 'height'.</p>
<p>The image then is often wrongly cropped in the translated pages.</p> TYPO3 Core - Bug #80975 (Closed): Indexed Search form is not cacheablehttp://forge.typo3.org/issues/809752017-04-24T09:40:58ZChristian Toffolo
<p>Indexed Search registers the plugin with the 'form' action has not cacheable:<br /><pre>// register extbase plugin
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin('TYPO3.CMS.IndexedSearch', 'Pi2', ['Search' => 'form,search,noTypoScript'], ['Search' => 'form,search']);</pre></p>
<p>If there's not a particular reason, I suggest to remove 'form' action from the not cachable.</p>
<p>Use case: there's a small search form in every page of a website. The searches made with this form are redirected to the search page.<br />Since the form, even if set as USER, is converted ad USER_INT because 'form' action is not cacheable, extensions like nc_staticfilecache don't cache the pages statically because of the USER_INT.</p> TYPO3 Core - Bug #80923 (Closed): Indexed Search throws PHP warnings open_basedir restrictionhttp://forge.typo3.org/issues/809232017-04-20T19:41:40ZChristian Toffolo
<p>Indexed Search throws PHP warnings "is_dir(): open_basedir restriction in effect. File(/) is not within the allowed path(s)".<br />This happens because setup.txt uses {$plugin.tx_indexedsearch.view.templateRootPath} that is not set generating a request for a "/" file that has been restricted by open_basedir PHP configuration.</p> TYPO3 Core - Bug #80845 (Rejected): f:image and f:uri.image viewhelpers don't fall back to defaul...http://forge.typo3.org/issues/808452017-04-14T11:56:17ZChristian Toffolo
<p>f:image and f:uri.image viewhelpers should fall back to default crop if no other more specific crop has been set but the default crop has been set.</p>
<p>Actually (version 8.7.0) the 2 viewhelpers set $cropArea here<br /><pre>
$cropArea = $cropVariantCollection->getCropArea($cropVariant);
</pre><br />and then set 'crop' processing istruction based on the fact that the editor did set or not a crop area<br /><pre>
'crop' => $cropArea->isEmpty() ? null : $cropArea->makeAbsoluteBasedOnFile($image)
</pre></p>
<p>But if we pass a $cropVariant as argument (ie: 'medium') and the editor didn't set that crop but did set the default crop, then the image is not cropped while it should be croppet to the default crop set by the editor.</p>
<p>A code like this solves the problem:<br /><pre>
// if selected cropVariant has empty area then fall back to 'default' crop variant
$crop = null;
if ($cropArea->isEmpty()) {
if ($cropVariant != 'default') {
$cropArea = $cropVariantCollection->getCropArea('default');
$crop = $cropArea->isEmpty() ? null : $cropArea->makeAbsoluteBasedOnFile($image);
}
} else {
$crop = $cropArea->makeAbsoluteBasedOnFile($image);
}
</pre><br />and then then set 'crop' processing istruction to $crop:<br /><pre>
'crop' => $crop
</pre></p> TYPO3 Core - Bug #80836 (Closed): Upgrade Wizard / Records marked as deleted are not upgradedhttp://forge.typo3.org/issues/808362017-04-13T12:02:26ZChristian Toffolo
<p>Also records marked as deleted should be upgraded because it is possible to undo a delete.</p> TYPO3 Core - Bug #80806 (Closed): Upgrade Wizard / Execute database migrations on single rows / E...http://forge.typo3.org/issues/808062017-04-11T15:26:23ZChristian Toffolo
<p>When I run "Upgrade Wizard / Execute database migrations on single rows" I get this error<br />"The RecordLinkHandler expects identifier and uid as $parameter configuration"</p>
<p>I debugged and found that the upgrade wizard calls $linkService->resolve($link) that returns<br /><pre>
$linkParts = [
type = "record",
url = [
identifier = "tx_ianshop",
table = "tx_ianshop_domain_model_product",
uid = "2",
]
]</pre><br />with $link="record:tx_ianshop:tx_ianshop_domain_model_product:2"</p>
<p>then calls $linkService->asString($linkParts)<br />that calls \TYPO3\CMS\Core\LinkHandling\RecordLinkHandler::asString<br />that expect an array like<br /><pre>
$parameters = [
identifier = "tx_ianshop",
uid = "2",
]
</pre><br />instead it receives the array $parameters = $linkParts.</p> TYPO3 Core - Bug #80780 (Rejected): Incomplete query when "Show database queries performed" selectedhttp://forge.typo3.org/issues/807802017-04-10T11:20:41ZChristian Toffolo
<p>In Upgrade wizard when the option "Show database queries performed" is selected then often the query is displayed like<br />UPDATE `sys_be_shortcuts` SET `url` = :dcValue1 WHERE `uid` = :dcValue2</p>
<p>An admin want to automate the query in multiple TYPO3 installations but can't know what really happened since he can't know what ':dcValueX' is.</p>