Verschwinden von Artikeln nach Sprachwechsel

Seit dem Update von Oxid CE 4.7.8 auf 4.8.1 kommt es nach kurzer Zeit dazu, dass wenn ich die Sprache wechsel keine Produkte mehr im Shop angezeigt werden.

Wenn ich dann den Session-Cookie lösche, werden alle Produkte wieder in beiden Sprachen angezeigt.

Hat jemand eine Idee woran dies liegen könnte?

Ich wäre für jede Hilfe dankbar.

MfG Fabian Kröger

Views neu generiert? tmp/ gelöscht?

Ich hatte das selbe Problem. Auch auf Oxid 4.8.1.

Das Problem ließ sich zuverlässig reproduzieren, wenn man auf einer Produktliste war, in eine Detailansicht ging, dann die Sprache wechselte und dann wieder auf die Produktliste ging.

Das Problem war, dass beim Sprachwechsel eine (oder mehrere, bin nicht ganz sicher) Session-Variablen noch auf die falsche Sprache verwiesen haben.

Ich habe es wie folgt gelöst (Sorry, ist relativ dirty und nur für Deutsch/Englisch (Deutsch: id 0, Englisch: id 1), hat in meinem Fall aber funktioniert:


<?php
class myaList extends myaList_parent
{
	public function render()
    {
    	if ( defined( 'OXID_PHP_UNIT' ) ) {
            modSession::getInstance();
        }
        if(oxRegistry::getLang()->getBaseLanguage() == 0) {
        	$search = "oxv_oxarticles_de.OXINSERT";
        } else {
        	$search = "oxv_oxarticles_en.OXINSERT";
        }
        
        if (oxSession::getVar('aSorting')) {
        	if(oxSession::getVar('aSorting')["alist"]["sortby"] != $search) {
        		oxSession::deleteVar( 'session_attrfilter' );
        		oxSession::deleteVar( 'session_attrfilter_last' );
        		oxSession::deleteVar( 'aSorting' );
        	}
        }

        return parent::render();

    }
}