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 #79037 (Closed): In the BE the select icons' titles are not shownhttp://forge.typo3.org/issues/790372016-12-19T17:48:05ZMarco Huber
<p>Because only the a tag but not the image tag has a title attribute, in some browsers the title is not shown on mouseover.</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 #73013 (Closed): Don't render the "more" link in the help popup if the user has ...http://forge.typo3.org/issues/730132016-01-29T16:07:25ZMarco Huber
<p>In the help popups the "read more" link is shown even if the user has no access to cshmanual BE module. If the user clicks on the link, the exception "#1294586448: Access Error: You don't have access to this module" is thrown.</p> TYPO3 Core - Bug #73009 (Closed): cshmanual module is not configurable by grouphttp://forge.typo3.org/issues/730092016-01-29T15:13:28ZMarco Huber
<p>Since <a class="external" href="https://forge.typo3.org/issues/63000">https://forge.typo3.org/issues/63000</a> the BE-Module can not be configured for a BE-Usergroup.</p> TYPO3 Core - Bug #72803 (Closed): denied file extensions are shown as allowed file extensionshttp://forge.typo3.org/issues/728032016-01-19T10:07:56ZMarco Huber
<p>In the filelist module in the "create new textfile" form there is a list with allowed file extension. This list shows also file extensions listed in $GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern'].</p> TYPO3 Core - Bug #71625 (Closed): Nav Title in Element Browserhttp://forge.typo3.org/issues/716252015-11-17T13:52:00ZMarco Huber
<p>Since <a class="external" href="https://forge.typo3.org/issues/64492">https://forge.typo3.org/issues/64492</a> the user TSconfig setting "options.pageTree.showNavTitle=1" is ignored in the element browser (f.e. in the link wizard).</p> TYPO3 Core - Bug #65364 (Closed): _languageUid gets overwritten on updating a new domain object.http://forge.typo3.org/issues/653642015-02-26T17:56:44ZMarco Huber
<p>When creating a new domain object the property _languageUid is NULL. When this object gets persisted \TYPO3\CMS\Extbase\Persistence\Generic\Backend::insertObject() sets the language field to "-1" like it is described in the documentation <a class="external" href="http://docs.typo3.org/typo3cms/ExtbaseFluidBook/9-CrosscuttingConcerns/1-localizing-and-internationalizing-an-extension.html#multi-language-domain-objects">http://docs.typo3.org/typo3cms/ExtbaseFluidBook/9-CrosscuttingConcerns/1-localizing-and-internationalizing-an-extension.html#multi-language-domain-objects</a>. But after the insert the objects are updated (f.e. to insert missing relation ids and stuff) immediately and persisted again. \TYPO3\CMS\Extbase\Persistence\Generic\Backend::updateObject() sets "$row[$dataMap->getLanguageIdColumnName()] = $object->_getProperty('_languageUid');" and because the object's property _languageUid is NULL a 0 is inserted in the database.</p>
<p>So if the object was created in a multi language environment (sys_language_uid > 0) extbase doesn't find it anymore.</p>
<p><strong>Solution 1:</strong><br />Update the object's property _languageUid in \TYPO3\CMS\Extbase\Persistence\Generic\Backend::insertObject(). But this should be done only, if the developer hasn't set _languageUid himself (see FORGE). Then the update finds the -1 in the property _languageUid and everything works like it is documentated.</p>
<pre>
diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php
index 8c6e3f0..b7f1efd 100644
--- a/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php
+++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php
@@ -635,6 +635,7 @@ class Backend implements \TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface
$this->addCommonFieldsToRow($object, $row);
if ($dataMap->getLanguageIdColumnName() !== NULL && ($object->_getProperty('_languageUid') === NULL || !$object->_getProperty('_languageUid'))) {
$row[$dataMap->getLanguageIdColumnName()] = -1;
+ $object->_setProperty('_languageUid', -1);
}
if ($parentObject !== NULL && $parentPropertyName) {
$parentColumnDataMap = $this->dataMapper->getDataMap(get_class($parentObject))->getColumnMap($parentPropertyName);
</pre>
<p><strong>Solution 2:</strong><br />Do "$row[$dataMap->getLanguageIdColumnName()] = $object->_getProperty('_languageUid');" only if _languageUid is not NULL in \TYPO3\CMS\Extbase\Persistence\Generic\Backend::updateObject().</p>
<pre>
diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php
index f3d89c9..c6aeb59 100644
--- a/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php
+++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php
@@ -850,7 +850,9 @@ class Backend implements \TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface
$this->addCommonFieldsToRow($object, $row);
$row['uid'] = $object->getUid();
if ($dataMap->getLanguageIdColumnName() !== NULL) {
- $row[$dataMap->getLanguageIdColumnName()] = $object->_getProperty('_languageUid');
+ if($object->_getProperty('_languageUid') !== NULL){
+ $row[$dataMap->getLanguageIdColumnName()] = $object->_getProperty('_languageUid');
+ }
if ($object->_getProperty('_localizedUid') !== NULL) {
$row['uid'] = $object->_getProperty('_localizedUid');
}
</pre>
<p>I would prefer the first solution, because it seems cleaner to me. Or should both solutions be implemented?</p>
<p>If someone has a good idea for a commit message I will submit a patch to gerrit.</p> TYPO3 Core - Bug #60886 (Closed): Backend via https throws "SEC7111: HTTPS security is compromise...http://forge.typo3.org/issues/608862014-08-11T13:16:11ZMarco Huber
<p>Our beloved InternetExplorer has a problem with javascript:false as Ext.SSL_SECURE_URL.</p>
<p>When you open the backend, than there is a hidden iFrame (typo3-navigationIframe) with an empty src attribute and the IE uses javascript:false as src (default for Ext.SSL_SECURE_URL [1]). <br />When you open the backend via https, the IE wants to show res://ieframe.dll/dnserrordiagoff.htm because javascript:false is not a valid url. But this is detected as an unsecure resource. So you see this warning in the developer tools: "SEC7111: HTTPS security is compromised by res://ieframe.dll/dnserrordiagoff.htm"</p>
<p>Setting the URL to the clear.gif as Ext.SSL_SECURE_URL in typo3/sysext/core/Classes/Page/PageRenderer.php helps and doesn't create too much unnecessary traffic.</p>
<p>[1] <a class="external" href="http://dev.sencha.com/playpen/docs/output/Ext.html#SSL_SECURE_URL">http://dev.sencha.com/playpen/docs/output/Ext.html#SSL_SECURE_URL</a></p> TYPO3 Core - Bug #60805 (Closed): Cachingframework FileBackend not usable for cache_pages and cac...http://forge.typo3.org/issues/608052014-08-05T17:13:10ZMarco Huber
<p>If you want to use t3lib_cache_backend_FileBackend for cache_pages or cache_pagesection you get the Exception 1231267498 (typo3/sysext/core/Classes/Cache/Backend/AbstractBackend.php Line 86). This happens because the LocalConfiguration-array ist overwritten with the DefaultConfiguration somewhere. And in DefaultConfiguration the option "compress" is set. And "compress" is no valid option for t3lib_cache_backend_FileBackend.<br />To work around this issue you have to set "$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_pages']['options'] = array();" in the AdditionalConfiguration.</p>
<p>Perhaps some other options for other cache backends produce this exception, too. I haven't testet that.</p>
<p>I don't know if this is really a bug, but at least it is very annoying and costed me some time to find out. :-)</p>
<p>LocalConfiguration:<br /><pre>
...
'SYS' => array(
'caching' => array(
'cacheConfigurations' => array(
'cache_pages' => array(
'backend' => 't3lib_cache_backend_FileBackend',
'frontend' => 't3lib_cache_frontend_VariableFrontend',
'groups' => array('pages', 'all'),
),
'cache_pagesection' => array(
'backend' => 't3lib_cache_backend_FileBackend',
'frontend' => 't3lib_cache_frontend_VariableFrontend',
'groups' => array('pages', 'all'),
),
...
</pre></p>
<p>P.S.: I know, the wiki says that the FileBackend should not be used for cache_pages (<a class="external" href="http://wiki.typo3.org/Caching_framework#Cache_configurations">http://wiki.typo3.org/Caching_framework#Cache_configurations</a>), but we have to. :-)</p> TYPO3 Core - Bug #35944 (Closed): css_styled_content CE "Menu/Sitemap": Hide the field "Selected ...http://forge.typo3.org/issues/359442012-04-13T11:28:28ZMarco Huber
<p>Because the Typoscript for the menu type "Sitemap" doesn't mind if there is something inserted in the field "Selected Pages" the field should not be shown in the backend.</p>