TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692024-02-17T15:34:13ZTYPO3 Forge
Redmine TYPO3 Core - Bug #103144 (New): crop ViewHelper has a curious interpretation of respecting word b...http://forge.typo3.org/issues/1031442024-02-17T15:34:13ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>the f:format.crop ViewHelper does not take the full string into account to cut at position of maxCharacters.</p>
<p>```<br /><f:format.crop maxCharacters="18" respectHtml="true" respectWordBoundaries="true"><p>Ein schönes Bild</p><img src="#" width="128" height="128" title="nice" alt="sonne"><p>Nicht wahr?</p></f:format.crop><br />```</p>
<p>Results in:</p>
<p>```<br /><p>Ein schönes Bild</p><img src="#" width="128" height="128" title="nice" alt="sonne"/><p>Ni…</p><br />```</p>
<p>The HtmlCropper cuts all text and html parts into sections. So, we have sections with p, sections with img and of cause two text sections in the resulting array. The expected behavior is, that the HtmlCropper should cut in front of "Nicht", but instead it cuts inside of that word. That's because internally this text is in another section and does not know anything about the previous text. That's why HtmlCropper thinks, that "Nichts" would be the first and only word and that why it cuts within the word instead of in front of that word.</p>
<p>German explanation with example: <a class="external" href="https://www.typo3lexikon.de/typo3-tutorials/core/systemextensions/fluid/viewhelper/format/#beispiel-nicht-im-html-trennen">https://www.typo3lexikon.de/typo3-tutorials/core/systemextensions/fluid/viewhelper/format/#beispiel-nicht-im-html-trennen</a></p>
<p>Stefan</p> TYPO3 Core - Task #103142 (Resolved): DOCS: capitalWords is supported since ageshttp://forge.typo3.org/issues/1031422024-02-17T15:22:24ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>In doc header of f:format.case ViewHelper you wrote:</p>
<p>```
* capitalWords
* Not supported yet: Transforms the input string to each containing word being capitalized<br />```</p>
<p>That's wrong. `capitalWords` works since TYPO3 8.7.</p>
<p>Stefan</p> TYPO3 Core - Bug #102839 (New): EXT:form does not respect enabled property of page model in getNe...http://forge.typo3.org/issues/1028392024-01-15T15:06:26ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>I have created 3 pages with EXT:form.<br />On page 1 there are 3 radio buttons to differ between some record types.<br />Record type "simple" just needs two pages. So I disabled page 3 by default in YAML.<br />The other record types need some more information, so a activated page 3 with help of variants option.</p>
<p>The problem is:<br />If I select record type "simple" the next button will be rendered instead of the submit button.</p>
<p>Problem seems to be in getNextPage method of FormRuntime object. Either getNextPage nor hasPageWithIndex tests against "enabled" property. So, here, page 3 is always available which should not be the case.</p>
<p>Stefan</p> TYPO3 Core - Bug #102609 (New): Wrong processing order while installing extensionshttp://forge.typo3.org/issues/1026092023-12-06T08:00:50ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>yesterday I tried to install my mysqlreport extension on a TYPO3 11 LIVE system configured as standalone. Instantly the website crashes with error 500. In logs I found that file XY of my mysqlreport extension could not be found. I logged into InstallTool, click button for AutoLoader and website is running again.</p>
<p>Today I have removed the dev-main version of our extension bynder2 from a composer based TYPO3 11 and directly installed bynder2 in version 2.0.3 afterwards. TYPO3 crashes because of too less arguments for bynder2 Configuration/ExtConf constructor. I have searched the cached DI file in var/cache/code/DI, but there are no "Bynder" entries available. I have visited the InstallTool, click Flush Cache (which also rebuilds this cache file), and the error was gone.</p>
<p>It seems that TYPO3 has a wrong extension installation process order</p>
<p>Stefan</p> TYPO3 Core - Bug #102606 (Under Review): Update Guzzle timeout to 20 secondshttp://forge.typo3.org/issues/1026062023-12-05T13:15:14ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>I have a scheduler task which requests an API every 15 minutes. As I use TYPO3 RequestFactory the integrated Guzzle client will get its config from TYPO3_CONF_VARS/HTTP. As default in Guzzle options <a class="external" href="https://docs.guzzlephp.org/en/stable/request-options.html#timeout">https://docs.guzzlephp.org/en/stable/request-options.html#timeout</a> the property "timeout" is set to 0. The same value is default in TYPO3 as configured in DefaultConfiguration.php.</p>
<p>As TYPO3 is PHP based and works in a web environment we have to respect PHP:max_execution_time which is somewhere between 30 and 240 seconds. With "timeout" 0 (infinite) an outgint request which exceeds max_execution_time will stop the TYPO3 request immediatly. In case of a scheduler task you will see that task is still running which is not the case. The problem is: In that state the task will not be executed again until an integrator reset the task.</p>
<p>For me a default of 0 is a very bad idea.<br />I prefer setting that value to 20 seconds. If that value has been reached Guzzle will throw an exception which can be catched and the scheduler task can be resetted to a clean state.</p>
<p>Stefan</p> TYPO3 Core - Bug #102380 (New): Resolve correct page UID in BackendConfigurationManagerhttp://forge.typo3.org/issues/1023802023-11-16T09:06:57ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>we have two Root pages:</p>
<p>- Rootpage A<br />- Rootpage B</p>
<p>As these rootpages are very different in their structure and layout we have build very individual TS templates, pageTSconfig and permissions. Example: On rootpage we have EXT:solr with normal list results, but on rootpage we have a Google Map where POIs can be filtered by Solr. So, we need another fluid template for solr output on rootpage B. This fluid template should not be available for rootpage A.</p>
<p>EXT:solr comes with a special TS to add further fluid templates into template selector of solr plugin (ContentElement in BE) (plugin.tx_solr.view.templateFiles.results.availableTemplates.*). I make use of that possibility for rootpage B, while this configuration is empty for rootpage A.</p>
<p>The problem:<br />While editing the solr plugin on rootpage B my TS configured fluid template was not added to the list of available templates in selector. And this is not a solr problem. It's an extbase problem.</p>
<p>As we are in TYPO3 BE the BackendConfigurationManager::getTypoScriptSetup() will be called to retrieve the current TSFE. As this method does not provide a PID argument, Extbase now "tries" to find a PID. At first it tries to get a PID from $_GET. It will not find anything, as we are editing a content element where no PID is in URL. At next i will try to retrieve a PID by method getCurrentPageIdFromCurrentSiteRoot(). This method name has nothing to do with the content of that method, as just the FIRST (A) rootpage will be fetched and returned. So solr works with TSFE from rootpage A from now on where my special setting is not available of cause.</p>
<p>I remember a method in TYPO3 API years ago, where TYPO3 tries to retrieve the PID from returnURL parameter. Maybe we can add such a check into BackendConfigurationManager, too.</p>
<p>Stefan</p> TYPO3 Core - Bug #102349 (Closed): Add Event/Hook/Whatever to modify menu item resultshttp://forge.typo3.org/issues/1023492023-11-08T13:02:41ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>customer want's me to hide items of a pages language menu, if there is no translation for a desired record in detailview.</p>
<p>As a solution I found following link:<br /><a class="external" href="https://gist.github.com/birger-fuehne/a8a97c94ec9346d691174462ccbfcfcc">https://gist.github.com/birger-fuehne/a8a97c94ec9346d691174462ccbfcfcc</a></p>
<p>But this solution needs access to property "itemArrayProcFunc" which is marked as invalid in TYPO3s LanguageMenuProcessor. Can you please allow that property in LanguageMenuProcessor?</p>
<p>A second solution could be adding an Event to that position:<br /><a class="external" href="https://github.com/TYPO3/typo3/blob/12.4/typo3/sysext/frontend/Classes/ContentObject/Menu/AbstractMenuContentObject.php#L407">https://github.com/TYPO3/typo3/blob/12.4/typo3/sysext/frontend/Classes/ContentObject/Menu/AbstractMenuContentObject.php#L407</a></p>
<p>That way the amount of items is still correct and caching should be fine.</p>
<p>Stefan</p> TYPO3 Core - Bug #102021 (New): Provide better documentation for ChangeLog 95222http://forge.typo3.org/issues/1020212023-09-23T09:04:01ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>I have a problem understanding that change:</p>
<p><a class="external" href="https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/11.5/Deprecation-95222-ExtbaseViewInterface.html">https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/11.5/Deprecation-95222-ExtbaseViewInterface.html</a></p>
<p>Quote:</p>
<pre>
method initializeView() which was never actively used, calling that method will vanish in TYPO3 v12
</pre>
<p>But some lines later you can read:</p>
<pre>
that empty method will be removed in TYPO3 v12, but will still be called if it exists in classes extending ActionController
</pre>
<p>There can only be one truth. Since initializeView is still called in TYPO3 12 and TYPO3 13-dev, the last quote is correct. So the first quote has to be rewritten a bit.</p>
<p>I spent almost an hour trying to understand this change:<br />It seems that the call to ActionController::initializeView has been removed from the processRequest method and it should be avoided to call parent::initializeView in extension controllers.<br />However, as there is still a check for an existing initializeView in the processRequest method, extension developers can still use this method name to call in their own extension controllers.</p>
<p>Stefan</p> TYPO3 Core - Bug #101725 (Resolved): Please execute FileDeletionAspect regardless if file is miss...http://forge.typo3.org/issues/1017252023-08-22T08:30:02ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>I have a command to delete a lot of related files of a customers table.<br />The command should remove files older than 3 years.<br />In some cases the file is already deleted, but the sys_file_reference, sys_file_metadata and maybe the processed data is still available in DB.<br />While deleting such a record with missing file over official API I get following error message:</p>
<pre>
You are not allowed to delete the file "pictures/2019/hockey.jpg"
</pre>
<p>This message is not correct and it has nothing to do with insufficient permissions.</p>
<p>This is my TYPO3 API call:</p>
<pre>
$fileReference = $resourceFactory->getFileReferenceObject(
$sysFileReferenceRecord['uid'],
$sysFileReferenceRecord
);
$fileReference->getOriginalFile()->getStorage()->deleteFile($fileReference->getOriginalFile());
</pre>
<p>This is the problem IMO in TYPO3 core. ResourceStorage::checkFileActionPermission</p>
<pre>
// Check 5: Check the capabilities of the storage (and the driver)
if ($isWriteCheck && ($isMissing || !$this->isWritable())) {
return false;
}
</pre>
<p>Just a missing file, is not a indication of missing permissions. IMO, we should split these two conditions into separate ones with different return values or throw an exception, if file is missing.</p> TYPO3 Core - Bug #101282 (Resolved): Do not inform user about versioning, if workspaces is not in...http://forge.typo3.org/issues/1012822023-07-07T06:15:49ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>I have just opened the list view in TYPO3 backend. There are some message "Caution! These records are not versioned, you will edit the live records.".<br />Pretty cool feature, but as long as workspaces extension is not installed these messages are more confusing than helpful.</p>
<p>Stefan</p> TYPO3 Core - Feature #101005 (Under Review): Add DefaultLanguageRestrictionhttp://forge.typo3.org/issues/1010052023-06-12T19:17:26ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>if you're working with TYPO3 QueryBuilder, there are a lot of restrictions added to current query like DeletedRestriction, HiddenRestriction, StarttimeRestriction and some more. Would be cool to have a restriction which automatically adds a WHERE clause for default language to a query. Nearly everywhere in the TYPO3 core and also in extensions you need the records in default language to parse the resulting data through all these versionOL and translation methods of TYPO3 API.</p>
<p>Stefan</p> TYPO3 Core - Bug #100854 (Resolved): LLL: references in options comments of Extension Settings we...http://forge.typo3.org/issues/1008542023-05-10T13:32:17ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>I just upgrade maps2 for TYPO3 12.4. As I'm using an ext_conf_template.txt file I see in Extension Settings of our extension, that the LLL: references in "options" comment were not translated (see attached image).</p>
<p>Stefan</p> TYPO3 Core - Bug #100845 (Resolved): TypeError setTargetPageType has to be int, string givenhttp://forge.typo3.org/issues/1008452023-05-09T12:24:51ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>I'm working with RSS feed XML output of extension news. In fluid template you can find following line:</p>
<pre>
<atom:link href="{f:uri.page(pageType: settings.list.rss.channel.typeNum, absolute: 'true')}" rel="self" type="application/rss+xml" />
</pre>
<p>The problem is the TypoScript object path which only can return string or array values. But pageType expects an integer value.<br />I don't see an easy solution to convert string2int in fluid itself, so, the idea would be to cast that value in PageViewHelper itself.</p>
<p>I will create a patch</p>
<p>Stefan</p> TYPO3 Core - Bug #100842 (Closed): Problem with TCEFORM selecbox and item selector in OS dark modehttp://forge.typo3.org/issues/1008422023-05-09T07:39:07ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>I'm using Mac OS in dark mode.<br />While creating a new news record the item selector for news type is black.</p> TYPO3 Core - Bug #100841 (Resolved): CkEditor Migrator should respect multiple allowedClasseshttp://forge.typo3.org/issues/1008412023-05-09T07:02:01ZStefan Froemkenfroemken@gmail.com
<p>Hello,</p>
<p>I have following configuration:</p>
<pre>
buttons:
link:
properties:
class:
allowedClasses: 'btn btn-default,btn btn-primary'
</pre>
<p>CKEditor5Migrator does not respect multiple classes while migrating to style.definitions</p>