TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692021-11-04T22:59:09ZTYPO3 Forge
Redmine TYPO3 Core - Bug #95877 (Closed): missing index "install_path" with composer 2.0http://forge.typo3.org/issues/958772021-11-04T22:59:09ZMarco Huber
<p>composer 2.0 doesn't set "install_path" in vendor/composer/installed.php like composer 2.1 does. This missing array index leads to a PHP notice in typo3/sysext/core/Classes/Core/Environment.php line 137 and because of some strange server configuration this breaks TYPO3 completly.</p>
<pre><code class="shell syntaxhl" data-language="shell"><span class="nv">$ </span>vendor/bin/typo3cms cache:flush
PHP Notice: Undefined index: install_path <span class="k">in</span> /custompath/private/typo3/sysext/core/Classes/Core/Environment.php on line 137
</code></pre> TYPO3 Core - Bug #94150 (Closed): Constants in Page TsConfig with multiple sites, caching problemhttp://forge.typo3.org/issues/941502021-05-18T07:39:24ZMarco Huber
<p>I think there is a problem with caching in \TYPO3\CMS\Core\Configuration\Parser\PageTsConfigParser, because it doesn't use the current site config in the cache identifier.</p>
<p>My test case with two sites:</p>
<p>config/sites/site-a/config.yaml:<br /><pre>
rootPageId: 1
settings:
access:
groupid: 1
</pre></p>
<p>config/sites/site-b/config.yaml:<br /><pre>
rootPageId: 2
settings:
access:
groupid: 2
</pre></p>
<p>Page TsConfig:<br /><pre>
TCEMAIN {
permissions {
groupid = {$access.groupid}
}
}
</pre></p>
<p>Clear the cache and then open the info modul and have a look at the page tsconfig for site-a, then {$access.groupid} is replaced with "1". But on site-b {$access.groupid} is not replaced. <br />Clear the cache again and open site-b first. Now {$access.groupid} is replaced on site-b with "2" but not on site-a.<br />Another test is to create pages and check the access rights in the Access module. The first site has the group set, the second site has no group set.</p>
<p>The related code should be in PageTsConfigParser:parse(). If I change `$hashOfContent = md5('PAGES:' . $content);` to `$hashOfContent = md5('PAGES:' . $content) . ($site ? $site->getIdentifier() : '');` then it works. But I'm not sure, if this is the best solution. I tested with 10.4 but the code in master is still the same. So the problem should exist there, too.</p>
<p>As a hotfix without changing the core an integrator can use good old conditions in the page TsConfig :-)<br /><pre>
[1 in tree.rootLineIds]
TCEMAIN {
permissions {
groupid = 1
}
}
[GLOBAL]
[2 in tree.rootLineIds]
TCEMAIN {
permissions {
groupid = 2
}
}
[GLOBAL]
</pre></p> TYPO3 Core - Bug #90761 (Closed): Fluid select viewhelper not added to __trustedProperties if mul...http://forge.typo3.org/issues/907612020-03-14T14:47:43ZMarco Huber
<p>The registerFieldNameForFormTokenGeneration is not called, if the viewhelper has multiple="true" but has no options. Then the field is not added to the hidden "__trustedProperties" field. But when the form is submitted, the select field is in the sent array with an empty string as value and then the extbase data mapper throws the exception 1297759968.</p>
<p>See: <a class="external" href="https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/fluid/Classes/ViewHelpers/Form/SelectViewHelper.php#L153">https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/fluid/Classes/ViewHelpers/Form/SelectViewHelper.php#L153</a></p> TYPO3 Core - Bug #83741 (Closed): HTTP Basic Authentication credentials in Google Chrome 64 not t...http://forge.typo3.org/issues/837412018-01-31T16:07:23ZMarco Huber
<p>Our project is protected by a HTTP Basic Authentication and we have to enter the username/password on every d3.json() call in Google Chrome. In TYPO3 8.7 this function is called in the SvgTree.js to build the tree in the tt_content/categories field, in TYPO3 9.x it's called for every(?) tree.</p>
<p>This is a bug in the d3.js (4.10) library, but it affects every TYPO3 8.7 and 9.x. An Update to d3.js 4.13 doesn't help and in d3.js 5.0 there is a similar issue.</p>
<p><a class="external" href="https://github.com/d3/d3-request/issues/33">https://github.com/d3/d3-request/issues/33</a><br /><a class="external" href="https://github.com/d3/d3-fetch/issues/10">https://github.com/d3/d3-fetch/issues/10</a></p>
<p>A dirty workaround would be, to set the credentials with some javascript workaround. But I'm not sure if this is the right way. Berhaps the d3.js developers have some ideas on github.</p>
<p><img src="http://forge.typo3.org/attachments/download/33145/d3.png" alt="" loading="lazy" /></p> TYPO3 Core - Bug #82521 (Closed): Links to a mounted page in a page tree with a different domain ...http://forge.typo3.org/issues/825212017-09-20T14:26:36ZMarco Huber
<p>If you link to a page in another page tree with a different domain, the link gets prepended with the domain of the other page tree. But if the target page mounts another page, then the domain is not prepended. It seems like, as soon as the link has the GET parameter MP, the rootline check is not done.</p>
<p>This happens on typolinks, but also in menus and links from the RTE. Tested TYPO3 Versions are 6.2, 7.6 and 8.7.</p>
<p>A detailed testcase is attached.</p> TYPO3 Core - Bug #81740 (Closed): temp directory name shouldn't be hardcoded in ClearCacheServicehttp://forge.typo3.org/issues/817402017-06-29T11:36:36ZMarco Huber
<p>As the name of the temp directory can be configured (f.e. <pre><code class="php syntaxhl" data-language="php"><span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_CONF_VARS'</span><span class="p">][</span><span class="s1">'SYS'</span><span class="p">][</span><span class="s1">'caching'</span><span class="p">][</span><span class="s1">'cacheConfigurations'</span><span class="p">][</span><span class="s1">'cache_core'</span><span class="p">][</span><span class="s1">'options'</span><span class="p">][</span><span class="s1">'cacheDirectory'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'typo3temp_local'</span><span class="p">;</span></code></pre>), the name "typo3temp" shouldn't be hardcoded in the ClearCacheService <a href="https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/install/Classes/Service/ClearCacheService.php#L42" class="external">Line 42</a> (<a href="https://github.com/TYPO3/TYPO3.CMS/blob/TYPO3_7-6/typo3/sysext/install/Classes/Service/ClearCacheService.php#L56" class="external">TYPO3 7.6 Line 56</a>).</p> TYPO3 Core - Bug #78918 (Closed): Pasting long text into the RTE leads to browser crasheshttp://forge.typo3.org/issues/789182016-12-08T10:14:57ZMarco Huber
<p>The browser crashes, if you copy a long text into the RTE. This happens always in the IE and if you open the developer toolbar it happens in the firefox, too.</p>
<p>I think the reason is this patch: <a class="external" href="https://review.typo3.org/#/c/44810/">https://review.typo3.org/#/c/44810/</a></p>
<p>The event DOMSubtreeModified is triggered very often on changes in the RTE. And because everytime the event is triggered a complete form validation is startet, the script runtime gets to long and makes the browser crash.<br />How often the event is triggered depends on which transformations are done while pasting content into the RTE. I mean, which tags and attributes are allowed and which should be removed and so on.</p>
<p>Examples:<br />1. If you make a linebreak in an empty RTE, then the event is triggered 3 times.<br />2. If you paste the text "asd" into an emtpy RTE, then the event is triggered 1 time.<br />3. If you paste the two textblocks "TYPO3 Schulungen" and "TYPO3 Hosting" from <a class="external" href="https://typo3.bgm-gmbh.de/leistungen/">https://typo3.bgm-gmbh.de/leistungen/</a> into an empty RTE, then the event is triggered more than 30 times (then my browser crached ;-)).<br />3.1 If you deaktivate the validation in the function Editor.prototype.onDOMSubtreeModified, then the event ist triggered "only" 9 times.</p>
<p>To count how often the event is triggered I added this code to the function Editor.prototype.onDOMSubtreeModified:<br /><pre>
this.onDOMSubtreeModifiedCounter = this.onDOMSubtreeModifiedCounter || 0;
this.onDOMSubtreeModifiedCounter++;
console.log(this.onDOMSubtreeModifiedCounter);
</pre></p>
<p>Perheps there is a better event to start the validation? Perheps when the hidden textarea is updated? But I haven't found the place where this happens.</p> TYPO3 Core - Bug #77577 (Closed): Source collection images don't get resized if file = GIFBUILDERhttp://forge.typo3.org/issues/775772016-08-22T13:43:59ZMarco Huber
<p>If you use a GIFBUILDER object as file resource in an IMAGE object, the images in the source collection don't get resized.</p>
<pre>
10 = IMAGE
10 {
file = GIFBUILDER
file {
XY = 400,350
...
}
sourceCollection {
small.width = 320
small.mediaQuery = (min-width: 260px)
medium.width = 400
medium.mediaQuery = (min-width: 360px)
}
}
</pre> TYPO3 Core - Bug #77098 (Closed): versionNumberInFilename = '1' not working with the demo .htacce...http://forge.typo3.org/issues/770982016-07-14T17:38:03ZMarco Huber
<p>If you use an Apache 2.2 and the demo .htaccess the RewriteRule to resolve the verionNumberInFilename doesn't work. It seems like this is a bug in Apache 2.2 and/or mod_rewrite which appends the absolute path to the file when it rewrites the path. Or perhaps I misunderstood the Apache documentation ;-). In the browser you simply get a 404 for the CSS/Javascript file.</p>
<p>To solve this problem, you could set a "RewriteBase = /" in your .htaccess. Then it works for every file, which is not in the "/typo3" folder. But if you enable debugging for the backend, the CSS and Javascript files from the "/typo3" folder can not be found because of the .htaccess in the "/typo3" folder. You have to set a "RewriteBase = /typo3/" in the .htaccess file in the "/typo3" folder.</p>
<p>Or you have to modify the .htaccess RewriteRule in the root folder from<br /><pre>
RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L]
</pre><br />to<br /><pre>
RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ %{ENV:CWD}$1.$3 [L]
</pre></p>
<p>This bug doesn't happen with Apache 2.4, but i find no requirement for a specific Apache version on <a class="external" href="https://github.com/TYPO3/TYPO3.CMS/blob/master/INSTALL.md">https://github.com/TYPO3/TYPO3.CMS/blob/master/INSTALL.md</a>.</p>
<p>This bug appears in TYPO3 6.2 and 7.6. And I think (but have not tested it) it appears in 8.x, too.</p> TYPO3 Core - Bug #76974 (New): Translation handling with starttime/stoptimehttp://forge.typo3.org/issues/769742016-07-07T10:59:10ZMarco Huber
<p>I hope this is no duplicate, but I didn't find an issue here on forge and on Slack (<a class="external" href="https://typo3.slack.com/archives/typo3-cms/p1467294284003213">https://typo3.slack.com/archives/typo3-cms/p1467294284003213</a>) was no reaction on my question...</p>
<p>Because we had some issues with language handling and starttime/stoptime, I made some tests with different configurations and TYPO3 versions. These are the results, perhaps they are usefull for someone else, too.</p>
<p><a class="external" href="https://gist.github.com/mhuber84/9da479f5410fe4c1abceea90cce6baf2">https://gist.github.com/mhuber84/9da479f5410fe4c1abceea90cce6baf2</a></p>
<p>I didn't find an issue on forge for Configuration 1, Test 06, 08, 14 and 16 (everything the same). Any hints?<br />And, for our usecase, Configuration 4 with TYPO3 7.6 would match best. But only if I can solve the ERROR in Test 11 and 12. Are there any chances to make this work?</p> TYPO3 Core - Bug #75020 (Closed): "Save and view" button shows root page for pages of type "Short...http://forge.typo3.org/issues/750202016-03-11T15:22:16ZMarco Huber
<p>If you edit the page properties of a page with the doktype "Shortcut" or "Link to External URL" and then klick on "Save and view" the rootpage is shown and not the current page or the current page's target.</p>
<p>If you click on "Show" in context menu in the page tree the current page or the current page's target is shown.</p> TYPO3 Core - Bug #73896 (Closed): Old constraints in ext_emconf.php after extension update with a...http://forge.typo3.org/issues/738962016-03-02T19:55:20ZMarco Huber
<p>In a clean TYPO3 installation on a server with an activated opcode cache install an extension, f.e. static_info_tables. Then change the dependencies in the extensions ext_emconf.php. Then install the extension again by uploading the .t3x file in the extension manager.<br />The dependencies in the ext_emconf.php will not be updated.</p>
<p>This happens also, if you want to update an extension with the extension manager.</p>
<p>This happens only, if the extension gets installed/updated with a .t3x file. If you upload the .zip version in the extension manager, everything works fine.</p>
<p>In the .t3x file is no dependency information (and the other constraints, too) stored. So `\TYPO3\CMS\Extensionmanager\Utility\EmConfUtility::includeEmConf()` is called, to get the missing informations. But the `include` in this function gets the old ext_emconf.php from the opcode cache.</p>
<p>One solution would be, to call `\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Service\OpcodeCacheService::class)->clearAllActive($path);`. But I have the feeling, that everything gets really slow then.<br />Another solution would be, to get the missing information from the table tx_extensionmanager_domain_model_extension or from the array $extensionData['FILES'].</p>
<p>I've found this issue in TYPO3 6.2 and 7.6, and I think it is still present in master.</p>
<p>What do you think would be the best solution?</p> TYPO3 Core - Bug #73675 (Closed): URLs with spaces in the RTEhttp://forge.typo3.org/issues/736752016-02-25T16:00:51ZMarco Huber
<p>Sometimes there could be spaces in a link inserted in the RTE, f.e. if you link to a local file (file:///C:\my\Path is\sö\crazy with everything.pdf) as external URL. Then there should be wrapped some " around the url part of the typo3 link tag, like it is already done in all other link fields (f.e. the field header_link). Otherwise, when the link tag is parsed, some parts of the URL are used as target, class and title.</p>
<p>In \TYPO3\CMS\Core\Html\RteHtmlParser::TS_links_db() we should use the function TypoLinkCodecService::encode().<br />IMO the cleanest solution would be:<br /><pre>
@@ -595,9 +595,6 @@ class RteHtmlParser extends \TYPO3\CMS\Core\Html\HtmlParser
}
// Only if href, target, class and tile are the only attributes, we can alter the link!
if (empty($attribArray_copy)) {
- // Quoting class and title attributes if they contain spaces
- $attribArray['class'] = preg_match('/ /', $attribArray['class']) ? '"' . $attribArray['class'] . '"' : $attribArray['class'];
- $attribArray['title'] = preg_match('/ /', $attribArray['title']) ? '"' . $attribArray['title'] . '"' : $attribArray['title'];
// Creating the TYPO3 pseudo-tag "<LINK>" for the link (includes href/url, target and class attributes):
// If data-htmlarea-external attribute is set, keep the href unchanged
if ($attribArray['data-htmlarea-external']) {
@@ -605,7 +602,8 @@ class RteHtmlParser extends \TYPO3\CMS\Core\Html\HtmlParser
} else {
$href = $info['url'] . ($info['query'] ? ',0,' . $info['query'] : '');
}
- $bTag = '<link ' . $href . ($attribArray['target'] ? ' ' . $attribArray['target'] : ($attribArray['class'] || $attribArray['title'] ? ' -' : '')) . ($attribArray['class'] ? ' ' . $attribArray['class'] : ($attribArray['title'] ? ' -' : '')) . ($attribArray['title'] ? ' ' . $attribArray['title'] : '') . '>';
+ $typoLink = GeneralUtility::makeInstance(TypoLinkCodecService::class)->encode(array('url' => $href, 'target' => $attribArray['target'], 'class' => $attribArray['class'], 'title' => $attribArray['title'], 'additionalParams' => ''));
+ $bTag = '<link ' . $typoLink . '>';
$eTag = '</link>';
// Modify parameters
if (isset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_parsehtml_proc.php']['modifyParams_LinksDb_PostProc']) && is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_parsehtml_proc.php']['modifyParams_LinksDb_PostProc'])) {
</pre><br />But this would be a breaking change, because we change the value of $attribArray['title'] and $attribArray['class'] in the hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_parsehtml_proc.php']['modifyParams_LinksDb_PostProc'].<br />So that's why I remove the " from $attribArray['title'] and $attribArray['class'] manually in my patch.</p> TYPO3 Core - Bug #73014 (Closed): Shortcut button gone after uninstalling EXT:cshmanualhttp://forge.typo3.org/issues/730142016-01-29T18:09:32ZMarco Huber
<p>Because of <a class="external" href="https://forge.typo3.org/issues/73013">https://forge.typo3.org/issues/73013</a> and <a class="external" href="https://forge.typo3.org/issues/73009">https://forge.typo3.org/issues/73009</a> I uninstalled the EXT:cshmanual. But now the new shortcut button is gone.</p> TYPO3 Core - Feature #35945 (Closed): css_styled_content CE "Menu/Sitemap": new menu type "Sitema...http://forge.typo3.org/issues/359452012-04-13T11:34:35ZMarco Huber
<p>It would be nice to be able to select the root page for the sitemap. Because the current menu type "Sitemap" always uses the tree root. Therefor we could use the field "Selected Pages".</p>