TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692023-12-01T10:22:13ZTYPO3 Forge
Redmine TYPO3 Core - Bug #102578 (New): Translated content elements can not be found when the original el...http://forge.typo3.org/issues/1025782023-12-01T10:22:13ZDaniel Dorndorfdorndorf@featdd.de
<p>Hi,</p>
<p>if you create a translated element in connected mode and disable the element in the default language, the translated element won't show up anymore too, even though it still is enabled.</p>
<p>It seems like the record overlay can't be fetched because of the disabled original, so it completely gets ignored.</p>
<p>This issue is has a longer history like an old issue I created for v6.2: <a class="external" href="https://forge.typo3.org/issues/69022">https://forge.typo3.org/issues/69022</a></p>
<p>I really thinks this needs a solution as this is confusing for redakteurs.</p>
<p>Greetings<br />Daniel</p> TYPO3 Core - Bug #101931 (Under Review): Extbase RouteEnhancers do not work in case of language f...http://forge.typo3.org/issues/1019312023-09-15T20:08:15ZMamoun Al Smaiel
<p>I have a TYPO3 instance with a language fallback <br />The default language is German(id=0) and the Italian language(id=8) is configured as a fallback to English(id=1).</p>
<p>English news items are displayed in Italian as a fallback, but the speaking URL for the detail view contains only the news id instead of the speaking URL path segment of the English news item.</p> TYPO3 Core - Bug #94672 (New): Handling of Group's "Custom Value" in translated pages when "behav...http://forge.typo3.org/issues/946722021-07-30T09:38:03ZSamuel Giss
<p>Situation:</p>
<ul>
<li>Input of type "group" (related_pages) for selection of related pages in page properties (see below for config)</li>
<li>Site with multiple languages</li>
</ul>
<p>What I did:</p>
<ol>
<li>Create page with default language (uid 0) </li>
<li>Select 2 pages in group input</li>
<li>Translate page to language with uid 1</li>
<li>Select "Custom Value" for synchronised group input</li>
<li>Select a single page in group input for translated page</li>
</ol>
<p>The problem:<br />I receive the selected pages from the default language on the translated page</p>
<p>TCA Config: <br /><pre><code class="php syntaxhl" data-language="php"><span class="s1">'related_pages'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'label'</span> <span class="o">=></span> <span class="s1">'LLL:EXT:stv/Resources/Private/Language/Backend.xlf:pages.columns.related_articles'</span><span class="p">,</span>
<span class="s1">'config'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'type'</span> <span class="o">=></span> <span class="s1">'group'</span><span class="p">,</span>
<span class="s1">'internal_type'</span> <span class="o">=></span> <span class="s1">'db'</span><span class="p">,</span>
<span class="s1">'allowed'</span> <span class="o">=></span> <span class="s1">'pages'</span><span class="p">,</span>
<span class="s1">'foreign_table'</span> <span class="o">=></span> <span class="s1">'pages'</span><span class="p">,</span>
<span class="s1">'foreign_table_where'</span> <span class="o">=></span> <span class="s1">' pages.pid = 2311 AND pages.doktype = 100 AND pages.uid != ###THIS_UID###'</span><span class="p">,</span>
<span class="s1">'MM_opposite_field'</span> <span class="o">=></span> <span class="s1">'related_from'</span><span class="p">,</span>
<span class="s1">'size'</span> <span class="o">=></span> <span class="mi">5</span><span class="p">,</span>
<span class="s1">'minitems'</span> <span class="o">=></span> <span class="mi">0</span><span class="p">,</span>
<span class="s1">'maxitems'</span> <span class="o">=></span> <span class="mi">3</span><span class="p">,</span>
<span class="s1">'MM'</span> <span class="o">=></span> <span class="s1">'tx_stv_articles_related_mm'</span><span class="p">,</span>
<span class="s1">'suggestOptions'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'default'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'suggestOptions'</span> <span class="o">=></span> <span class="kc">true</span><span class="p">,</span>
<span class="s1">'addWhere'</span> <span class="o">=></span> <span class="s1">' AND pages.pid = 2311 AND pages.doktype = 100 AND pages.uid != ###THIS_UID###'</span>
<span class="p">]</span>
<span class="p">],</span>
<span class="s1">'behaviour'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'allowLanguageSynchronization'</span> <span class="o">=></span> <span class="kc">true</span><span class="p">,</span>
<span class="p">],</span>
<span class="p">]</span>
<span class="p">],</span>
<span class="s1">'related_from'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'exclude'</span> <span class="o">=></span> <span class="kc">true</span><span class="p">,</span>
<span class="s1">'label'</span> <span class="o">=></span> <span class="s1">'LLL:EXT:stv/Resources/Private/Language/Backend.xlf:pages.columns.related_from'</span><span class="p">,</span>
<span class="s1">'config'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'type'</span> <span class="o">=></span> <span class="s1">'group'</span><span class="p">,</span>
<span class="s1">'internal_type'</span> <span class="o">=></span> <span class="s1">'db'</span><span class="p">,</span>
<span class="s1">'foreign_table'</span> <span class="o">=></span> <span class="s1">'pages'</span><span class="p">,</span>
<span class="s1">'allowed'</span> <span class="o">=></span> <span class="s1">'pages'</span><span class="p">,</span>
<span class="s1">'size'</span> <span class="o">=></span> <span class="mi">5</span><span class="p">,</span>
<span class="s1">'MM'</span> <span class="o">=></span> <span class="s1">'tx_stv_articles_related_mm'</span><span class="p">,</span>
<span class="s1">'readOnly'</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span>
<span class="p">]</span>
<span class="p">]</span>
</code></pre></p>
<p>SQL for "pages":<br /><pre><code class="sql syntaxhl" data-language="sql"> <span class="n">related_pages</span> <span class="nb">int</span><span class="p">(</span><span class="mi">11</span><span class="p">)</span> <span class="k">DEFAULT</span> <span class="s1">'0'</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
<span class="n">related_from</span> <span class="nb">int</span><span class="p">(</span><span class="mi">11</span><span class="p">)</span> <span class="k">DEFAULT</span> <span class="s1">'0'</span> <span class="k">NOT</span> <span class="k">NULL</span>
</code></pre></p>
<p>SQL for MM-table:<br /><pre><code class="sql syntaxhl" data-language="sql"><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">tx_stv_articles_related_mm</span>
<span class="p">(</span>
<span class="n">uid_local</span> <span class="nb">int</span><span class="p">(</span><span class="mi">11</span><span class="p">)</span> <span class="k">DEFAULT</span> <span class="s1">'0'</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
<span class="n">uid_foreign</span> <span class="nb">int</span><span class="p">(</span><span class="mi">11</span><span class="p">)</span> <span class="k">DEFAULT</span> <span class="s1">'0'</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
<span class="n">sorting</span> <span class="nb">int</span><span class="p">(</span><span class="mi">11</span><span class="p">)</span> <span class="k">DEFAULT</span> <span class="s1">'0'</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
<span class="n">sorting_foreign</span> <span class="nb">int</span><span class="p">(</span><span class="mi">11</span><span class="p">)</span> <span class="k">DEFAULT</span> <span class="s1">'0'</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
<span class="k">KEY</span> <span class="n">uid_local</span> <span class="p">(</span><span class="n">uid_local</span><span class="p">),</span>
<span class="k">KEY</span> <span class="n">uid_foreign</span> <span class="p">(</span><span class="n">uid_foreign</span><span class="p">)</span>
<span class="p">);</span>
</code></pre></p> TYPO3 Core - Bug #92873 (New): Regression: Image on translated page not shown anymorehttp://forge.typo3.org/issues/928732020-11-19T07:03:47ZChris Müller
<p>We have a single-tree page with a default language (English) and another language (German). In the page properties we added a new field for an image. An English page is defined as "Hide default language of page", on the German page the image is added with "Translation behaviour: Custom value". We use an Extbase controller for querying a repository to get the page properties.</p>
<p>In TYPO3 10.4.9 the image is shown correctly in the frontend. In TYPO3 10.4.10 the image is missing.</p>
<p>Workaround: Adding the image to the English page and setting translation behaviour of the German field to "Value of default language" shows the image again.</p> TYPO3 Core - Feature #92439 (New): Make it possible to access L>0 models without language context...http://forge.typo3.org/issues/924392020-09-29T09:22:40ZOliver Bartsch
<pre>
Imported from T3cm 2020 (https://notes.typo3.org/s/WpKeyLuYr)
</pre> TYPO3 Core - Bug #91682 (New): Extbase Repository returns not correct translated data if using se...http://forge.typo3.org/issues/916822020-06-20T08:42:58ZRalf Schlömer
<p>I have to provide data from a repository in different languages in an action and a task. Therefore i call a function in my repository and submit the languageID i want to use. If i use separate requests for each languageId anything works fine. If i use a foreach loop to submit different languageIDs i allways get the data of the first submitted languageID.</p>
<p>Example<br /><pre><code class="php syntaxhl" data-language="php"><span class="cd">/**
* Action in controller: Returns for any language the data of the first submitted languageID.
*
* I'm also using this setup with small changes in execute() of a scheduler-task to create json-files.
* If I use a separate task for each language (providing a single languageID instead using $site->geLanguages() and the foreach loop)
* anything works fine - but using foreach with different languageIDs will always return the data of the first submitted languageID
*/</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">createLanguageDataAction</span><span class="p">()</span> <span class="p">{</span>
<span class="nv">$site</span> <span class="o">=</span> <span class="nv">$GLOBALS</span><span class="p">[</span><span class="s1">'TYPO3_REQUEST'</span><span class="p">]</span><span class="o">-></span><span class="nf">getAttribute</span><span class="p">(</span><span class="s1">'site'</span><span class="p">);</span>
<span class="nv">$languages</span> <span class="o">=</span> <span class="nv">$site</span><span class="o">-></span><span class="nf">getLanguages</span><span class="p">();</span>
<span class="nv">$data</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">foreach</span><span class="p">(</span><span class="nv">$languages</span> <span class="k">as</span> <span class="nv">$language</span><span class="p">)</span> <span class="p">{</span>
<span class="nv">$languageID</span> <span class="o">=</span> <span class="nv">$language</span><span class="o">-></span><span class="nf">getLanguageId</span><span class="p">();</span>
<span class="nv">$data</span><span class="p">[]</span> <span class="o">=</span> <span class="nv">$dataRepository</span><span class="o">-></span><span class="nf">getDataForLanguage</span><span class="p">(</span><span class="nv">$languageID</span><span class="p">);</span>
<span class="p">}</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">view</span><span class="o">-></span><span class="nf">assign</span><span class="p">(</span><span class="s1">'data'</span><span class="p">,</span> <span class="nv">$data</span><span class="p">);</span>
<span class="p">}</span>
<span class="cd">/**
* Function in repository
* Minimal setup.
* I tried several combinations of the commented lines
* but if the function is called in loop with different languageIDs none of them returned the correct data
*/</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">getDataForLanguage</span><span class="p">(</span><span class="nv">$languageID</span><span class="p">)</span> <span class="p">{</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-></span><span class="nf">createQuery</span><span class="p">();</span>
<span class="nv">$query</span><span class="o">-></span><span class="nf">getQuerySettings</span><span class="p">()</span><span class="o">-></span><span class="nf">setLanguageUid</span><span class="p">(</span><span class="nv">$languageID</span><span class="p">);</span>
<span class="c1">//$query->getQuerySettings()->setRespectSysLanguage(TRUE);</span>
<span class="c1">//$query->getQuerySettings()->setLanguageMode(NULL);</span>
<span class="c1">//$query->getQuerySettings()->setLanguageOverlayMode(NULL);</span>
<span class="c1">//$query->matching(</span>
<span class="c1">// $query->logicalAnd(</span>
<span class="c1">// $query->equals('sys_language_uid', $languageID)</span>
<span class="c1">// )</span>
<span class="c1">//);</span>
<span class="k">return</span> <span class="nv">$query</span><span class="o">-></span><span class="nf">execute</span><span class="p">();</span>
<span class="p">}</span>
</code></pre></p> TYPO3 Core - Bug #91487 (New): Extbase repository query using equals on a relation field is diffe...http://forge.typo3.org/issues/914872020-05-26T10:46:52ZStefan P
<p>The following two queries behave differently if in L>0 context:</p>
<pre><code class="php syntaxhl" data-language="php"><span class="nv">$query</span><span class="o">-></span><span class="nf">matching</span><span class="p">(</span>
<span class="nv">$query</span><span class="o">-></span><span class="nf">equals</span><span class="p">(</span><span class="s1">'relation'</span><span class="p">,</span> <span class="nv">$entity</span><span class="p">)</span>
<span class="p">)</span><span class="o">-></span><span class="nf">execute</span><span class="p">()</span>
</code></pre>
<pre><code class="php syntaxhl" data-language="php"><span class="nv">$query</span><span class="o">-></span><span class="nf">matching</span><span class="p">(</span>
<span class="nv">$query</span><span class="o">-></span><span class="nf">equals</span><span class="p">(</span><span class="s1">'relation'</span><span class="p">,</span> <span class="nv">$entity</span><span class="o">-></span><span class="nf">getUid</span><span class="p">())</span>
<span class="p">)</span><span class="o">-></span><span class="nf">execute</span><span class="p">()</span>
</code></pre>
<p>When dumping <code>$entity</code> it is always displayed with the L=0 uid (also in L>0 context) and the overlayed fields from L>0, which is correct.</p>
<p>In L=0 context both queries behave the same. The second one works correct also in L>0, the first one only in L=0 context.</p>
<p>In L>0 context the first query extracts and uses the <code>_localizedUid</code> from the object. This is the bug afaik.</p>
<p>Discovered in 9, probably present in 10 as well.</p> TYPO3 Core - Bug #90948 (New): Object translation broken if object outside Site Configurationhttp://forge.typo3.org/issues/909482020-04-04T16:17:05ZFrank Buijzeadmin@frajaweb.nl
<p>When Objects are placed outside a Site Configuration (root tree of site), translation fails to work. This was not an issue TYPO3 9.</p>
<p>It is common to share translatable objects between different site configurations. It seems to be related to the selection of sys_languages. Inside a site-tree all available languages are available. Outside a site-tree only the main language is availble. Hence, no translation.</p>
<a name="Screenshots"></a>
<h3 ><strong>Screenshots</strong><a href="#Screenshots" class="wiki-anchor">¶</a></h3>
<a name="Image-1-my-site-configuration"></a>
<h4 >Image 1: my site configuration<a href="#Image-1-my-site-configuration" class="wiki-anchor">¶</a></h4>
<p><img src="http://forge.typo3.org/attachments/download/35040/image1.jpg" title="my site configuration" alt="my site configuration" loading="lazy" /></p>
<a name="Image-2-website-languages-global"></a>
<h4 >Image 2: website languages (global)<a href="#Image-2-website-languages-global" class="wiki-anchor">¶</a></h4>
<p><img src="http://forge.typo3.org/attachments/download/35039/image2.jpg" title="website languages (global)" alt="website languages (global)" loading="lazy" /></p>
<a name="Image-3a-and-b-outside-site-tree-not-working"></a>
<h4 >Image 3a and b: outside site tree (not working)<a href="#Image-3a-and-b-outside-site-tree-not-working" class="wiki-anchor">¶</a></h4>
<p><img src="http://forge.typo3.org/attachments/download/35038/image3a.jpg" title="outside site tree (not working)" alt="outside site tree (not working)" loading="lazy" /><br /><img src="http://forge.typo3.org/attachments/download/35037/image3b.jpg" title="outside site tree (not working)" alt="outside site tree (not working)" loading="lazy" /></p>
<a name="Image-4a-and-b-inside-site-tree-working"></a>
<h4 >Image 4a and b: inside site tree (working)<a href="#Image-4a-and-b-inside-site-tree-working" class="wiki-anchor">¶</a></h4>
<p><img src="http://forge.typo3.org/attachments/download/35036/image4.jpg" title="inside site tree (working)" alt="inside site tree (working)" loading="lazy" /><br /><img src="http://forge.typo3.org/attachments/download/35035/image4b.jpg" title="inside site tree (working)" alt="inside site tree (working)" loading="lazy" /></p> TYPO3 Core - Bug #90635 (New): Error is thrown when using EXT:extension_name for which is install...http://forge.typo3.org/issues/906352020-03-04T11:14:06ZTymoteusz Motylewskit.motylewski@gmail.com
<a name="Problem"></a>
<h2 >Problem<a href="#Problem" class="wiki-anchor">¶</a></h2>
<a name="Given"></a>
<h3 >Given<a href="#Given" class="wiki-anchor">¶</a></h3>
<p>- an extension e.g. yoast_seo copied to typo3conf/ext/yoast_typo3 (folder different than extension key)<br />- this extension has TYPOScript which references some file using EXT:yoast_seo syntax</p>
<a name="Result"></a>
<h3 >Result:<a href="#Result" class="wiki-anchor">¶</a></h3>
<p>- Backend is broken with "Call to a member function getPackagePath() on null" in ExtensionManagerUtility</p>
<a name="Expected"></a>
<h3 >Expected:<a href="#Expected" class="wiki-anchor">¶</a></h3>
<p>- either the file inclusion is ignored, or the path is correctly resolved (as TYPO3 can correctly translate yoast_seo to yoast_typo3 with <pre>$this->getPackageKeyFromComposerName($packageKey);</pre><br />- breaking whole system is not expected</p>
<a name="Technical-details"></a>
<h2 >Technical details:<a href="#Technical-details" class="wiki-anchor">¶</a></h2>
<p>in this setup<br />- PackageManager->isPackageActive('yoast_seo') return TRUE<br />- PackageManager->getPackageKeyFromComposerName('yoast_seo') returns 'yoast_typo3'<br />- PackageManager->isPackageRegistered('yoast_seo') returns TRUE<br />- PackageManager->isPackageAvailable('yoast_seo')returns TRUE<br />- ExtensionManagementUtility::isLoaded('yoast_seo') returns TRUE<br />- ExtensionManagementUtility::extPath('yoast_seo') throws "Call to a member function getPackagePath() on null" <br />- because PackageManager->getPackage('yoast_seo') returns null</p>
<p>Seems like the API is inconsistent here.</p>
<a name="Possible-solution"></a>
<h2 >Possible solution:<a href="#Possible-solution" class="wiki-anchor">¶</a></h2>
<p>change <br /><pre>
public function getPackage($packageKey)
{
if (!$this->isPackageRegistered($packageKey) && !$this->isPackageAvailable($packageKey)) {
throw new Exception\UnknownPackageException('Package "' . $packageKey . '" is not available. Please check if the package exists and that the package key is correct (package keys are case sensitive).', 1166546734);
}
return $this->packages[$packageKey];
}
</pre><br />to:<br /><pre>
public function getPackage($packageKey)
{
if (!$this->isPackageRegistered($packageKey) && !$this->isPackageAvailable($packageKey)) {
throw new Exception\UnknownPackageException('Package "' . $packageKey . '" is not available. Please check if the package exists and that the package key is correct (package keys are case sensitive).', 1166546734);
}
return $this->packages[$this->getPackageKeyFromComposerName($packageKey)];
}
</pre></p> TYPO3 Core - Bug #90430 (Under Review): Language handling of bidirectional mm selects is not cons...http://forge.typo3.org/issues/904302020-02-19T12:54:22ZEike Starkmannstarkmann@undkonsorten.com
<p>I found a inconsistent behaviour in the new language handling of typo3 9.5. The situation is like this, I have a bidirectional mm relation with selects on both sides, which are excluded in non default languages. I adapted it to the blog example.<br />So lets say we have posts and tags which can be selected on both sides.</p>
<p>I reproduced this behaviour in blog_example:<br /><a class="external" href="https://github.com/undkonsorten/blog_example/commit/4bcdae43cf750c98f6f39fc4864430d202bf2891">https://github.com/undkonsorten/blog_example/commit/4bcdae43cf750c98f6f39fc4864430d202bf2891</a></p>
<a name="Scenario"></a>
<h1 >Scenario:<a href="#Scenario" class="wiki-anchor">¶</a></h1>
<p>I create a blog post (P) with uid 1<br />I create a tag (T) with uid 11<br />I create a translation P' for P with uid 2<br />I create a translation T' for T with uid 12</p>
<p>I open P (default language) and add T.</p>
<p>Database looks like this:<br /><pre>
uid_local uid_foreign
1 11
2 11
</pre><br /><pre>
P <=> T
P' <=> T
</pre></p>
<p>I open T (default language) and save it.</p>
<p>Database looks like this:<br /><pre>
uid_local uid_foreign
1 11
1 12
</pre><br /><pre>
P <=> T
P <=> T'
</pre><br />Save P' or T':<br /><pre>
uid_local uid_foreign
1 11
1 12
2 12
2 11
</pre><br /><pre>
P <=> T
P <=> T'
P' <=> T
P' <=> T'
</pre><br />The problem is that when I save T the tag is no longer shown on that post in Frontend.</p>
<p>The modified extension can be found here:<br /><a class="external" href="https://github.com/undkonsorten/blog_example/">https://github.com/undkonsorten/blog_example/</a></p> TYPO3 Core - Bug #89131 (New): Records that are only available in specific language (no default p...http://forge.typo3.org/issues/891312019-09-10T16:40:30ZMatthias Meusburger
<p>There's no differentiation between LanguageAspect::OVERLAYS_ON and LanguageAspect::OVERLAYS_ON_WITH_FLOATING in Extbase. 'hideNonTranslated' corresponds to both (see <a href="https://github.com/TYPO3/TYPO3.CMS/blob/v9.5.9/typo3/sysext/core/Classes/Context/LanguageAspect.php#L169" class="external">LanguageAspect::getLegacyOverlayType()</a>).</p>
<p>Therefore, I think records that are only available in a specific language should also be considered (<a href="https://github.com/TYPO3/TYPO3.CMS/blob/v9.5.9/typo3/sysext/core/Classes/Context/LanguageAspect.php#L79" class="external">as it says for LanguageAspect::OVERLAYS_ON_WITH_FLOATING</a>).<br />But I'm not sure if it should be done only for language mode "hideNonTranslated" or also for language mode true (LanguageAspect::OVERLAYS_MIXED).</p>
<a name="Suggestion"></a>
<h2 >Suggestion:<a href="#Suggestion" class="wiki-anchor">¶</a></h2>
<p>If it can be done for language mode <strong>true</strong> and <strong>hideNonTranslated</strong>:</p>
<pre>
sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php
925 925 // translated records where a default translation exists
926 926 $andConditions[] = $this->queryBuilder->expr()->andX(
927 927 $this->queryBuilder->expr()->eq($tableAlias . '.' . $languageField, (int)$querySettings->getLanguageUid()),
928 - $this->queryBuilder->expr()->in(
929 - $tableAlias . '.' . $transOrigPointerField,
930 - $defaultLanguageRecordsSubSelect->getSQL()
928 + $this->queryBuilder->expr()->orX(
929 + $this->queryBuilder->expr()->in($tableAlias . '.' . $transOrigPointerField, 0),
930 + $this->queryBuilder->expr()->in(
931 + $tableAlias . '.' . $transOrigPointerField,
932 + $defaultLanguageRecordsSubSelect->getSQL()
933 + )
931 934 )
932 935 );
933 936 if ($mode !== 'hideNonTranslated') {
</pre>
<p>If it should be done only for language mode <strong>hideNonTranslated</strong>:</p>
<pre>
sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php
918 $defaultLanguageRecordsSubSelect->expr()->eq($defLangTableAlias . '.' . $languageField, 0)
919 )
920 );
921 + $transOrigPointerCondition = $this->queryBuilder->expr()->in(
922 + $tableAlias . '.' . $transOrigPointerField,
923 + $defaultLanguageRecordsSubSelect->getSQL()
924 + );
925 + if ($mode === 'hideNonTranslated') {
926 + $transOrigPointerCondition = $this->queryBuilder->expr()->orX(
927 + $this->queryBuilder->expr()->in($tableAlias . '.' . $transOrigPointerField, 0),
928 + $transOrigPointerCondition
929 + );
930 + }
921 931
922 932 $andConditions = [];
923 933 // records in language 'all'
924 934 $andConditions[] = $this->queryBuilder->expr()->eq($tableAlias . '.' . $languageField, -1);
925 935 // translated records where a default translation exists
926 936 $andConditions[] = $this->queryBuilder->expr()->andX(
927 937 $this->queryBuilder->expr()->eq($tableAlias . '.' . $languageField, (int)$querySettings->getLanguageUid()),
928 - $this->queryBuilder->expr()->in(
929 - $tableAlias . '.' . $transOrigPointerField,
930 - $defaultLanguageRecordsSubSelect->getSQL()
931 - )
938 + $transOrigPointerCondition
932 939 );
933 940 if ($mode !== 'hideNonTranslated') {
</pre>
<a name="Example-to-illustrate-the-problem"></a>
<h2 >Example to illustrate the problem:<a href="#Example-to-illustrate-the-problem" class="wiki-anchor">¶</a></h2>
<p>A German news with e.g. sys_language_uid 1 and without parent record (German only) is currently not output on the German page with consistentTranslationOverlayHandling and fallbackType: strict. With the above fix it will be included.</p> TYPO3 Core - Bug #88853 (New): Updating relations of translated domain objects does not work if t...http://forge.typo3.org/issues/888532019-07-29T14:43:39ZAnton Fries
<p>Hey,</p>
<p>for my product import i must to sync relations of translated domain object models to every translated record. TYPO3 does this already right if i click on the "Save"-Button in the backend, because in my TCA configuration its set to "l10n_exclude". But manually saving does not work for > 2500 products on a regular basis.</p>
<p>It works for the first time to insert m:n-relations, but for every next try it tries to insert the value, which of course already exists instead of checking for an already existing relation. Is it possible to quickly fix this or just ignore the sql error and continue with my import? Ignoring would be fine, if i only add relations instead of updating them. Exception: TYPO3\CMS\Extbase\Persistence\Generic\Storage\Exception\SqlErrorException ]<br /> Duplicate entry '2636-13674' for key 'PRIMARY'.</p>
<p>My current solution is to just delete all relations via sql before my import starts:<br />DELETE FROM tx_gwproductcatalog_product_category_mm WHERE uid_local IN (SELECT uid FROM tx_gwproductcatalog_domain_model_product WHERE sys_language_uid != 0);</p>
<p>I attached the error log calling this from a backend module.</p> TYPO3 Core - Bug #87491 (New): Extbase\Persistence\Generic\Storage\Typo3DbBackend doesn't respect...http://forge.typo3.org/issues/874912019-01-18T17:04:50ZFrans Sarisfranssaris@gmail.com
<p>When disabling some default query settings this is not reflected in the language overlay.</p>
<p>Example:</p>
<pre>
$querySettings->setEnableFieldsToBeIgnored(
['starttime', 'endtime']
);
</pre>
<p>is not passed to <code>$row = $pageRepository->getRecordOverlay($tableName, $row, $languageUid, (string)$querySettings->getLanguageOverlayMode());</code> in <code>Typo3DbBackend::overlayLanguageAndWorkspace()</code>.</p> TYPO3 Core - Bug #86276 (New): Counting LazyObjectStorages doesn't return the expected resulthttp://forge.typo3.org/issues/862762018-09-16T17:02:28ZChristian Richter
<p>I'm having trouble with the <em>counting</em> of `ObjectStorages` and just wanted to report an obscure behaviour I encountered. <br />Iterating over records in Fluid works as expected, but counting them is not possible as you can see in the attached screenshot. The Debugger and every manually invoked "counting" (in fluid, or in the controller code) of the `members`-property returns <strong>18</strong> which is the correct count of members <em>including</em> the translations.<br />But I'm only interested in the "real" count, as you can see, there are only <strong>6</strong> objects in the members' `LazyObjectStorage` and the corresponding list is only rendering 6 items in the default language.</p>
<p>This problem is LazyObjectStorage specific, removing the `@lazy` annotations does return an ObjectStorage with the same members but the correct count.</p>
<p>The TCA annotation looks like the following, although I think Extbase doesn't really respect that at that point:<br /><pre><code class="php syntaxhl" data-language="php"> <span class="s1">'members'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'exclude'</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span>
<span class="s1">'l10n_mode'</span> <span class="o">=></span> <span class="s1">'exclude'</span><span class="p">,</span>
<span class="s1">'label'</span> <span class="o">=></span> <span class="s1">'LLL:EXT:cmb_members/Resources/Private/Language/locallang_db.xlf:tx_cmbmembers_domain_model_orgunit.members'</span><span class="p">,</span>
<span class="s1">'config'</span> <span class="o">=></span> <span class="p">[</span>
<span class="s1">'type'</span> <span class="o">=></span> <span class="s1">'select'</span><span class="p">,</span>
<span class="s1">'renderType'</span> <span class="o">=></span> <span class="s1">'selectMultipleSideBySide'</span><span class="p">,</span>
<span class="s1">'foreign_table'</span> <span class="o">=></span> <span class="s1">'tx_cmbmembers_domain_model_member'</span><span class="p">,</span>
<span class="s1">'foreign_field'</span> <span class="o">=></span> <span class="s1">'status'</span><span class="p">,</span>
<span class="s1">'foreign_table_where'</span> <span class="o">=></span> <span class="s1">'AND tx_cmbmembers_domain_model_member.sys_language_uid === 0'</span><span class="p">,</span>
<span class="p">],</span>
<span class="p">],</span>
</code></pre></p>