Mehrsprachigkeit View

Hallo :slight_smile:

ich habe ein Problem beim Sprachwechsel innerhalb der Detailansicht eines Artikels.


...

$sSorting = '';
if ( $this->_sCustomSorting ) {
  $sSorting = " {$this->_sCustomSorting} , ";
}

...

$sSelect = "
SELECT $sFields 
FROM $sO2CView as oc 
left join $sArticleTable ON $sArticleTable.oxid = oc.oxobjectid
WHERE ".$this->getBaseObject()->getSqlActiveSnippet()." 
  and $sArticleTable.oxparentid = ''
  and oc.oxcatnid = ".$oDb->quote($sCatId)." $sFilterSql 
ORDER BY $sSorting oc.oxpos, oc.oxobjectid 
";

[I]application/models/oxarticlelist.php - Methode _getCategorySelect()[/I]

Die Variable $sSorting verweist auf den falschen Sprach-View… z.B. $sArticleTable lautet “oxv_oxarticles_1_de” aber in $sSorting steht “oxv_oxarticles_1_en”.

Wie stellt OXID die Mehrsprachigkeit sicher? Gibt es dort ein Konzept? Wo finde ich dort weitere Infos?

Viele GrĂĽĂźe
indianer3c

Sieht aus wie der hier: 0005631: Category default sorting leads to empty category lists when switching languages - OXID eShop bugtrack

Wo finde ich dort weitere Infos?
http://wiki.oxidforge.org/Downloads/4.5.0#Improvements_in_handling_multiple_languages

Hey Frank :slight_smile:

danke schön!

Wie findest du solche Infos immer? Weißt du einfach aus Erfahrung “da war doch was” oder suchst du danach gezielt?

Viele GrĂĽĂźe
indianer3c

Zur Aufklärung zur Ursache in meinem Fall, ein Modul hat eine Methode des Locators überschrieben und diese war anscheinend Copy & Paste von einer älteren Dateiversion des Locators + eigenen Ergänzungen. Nachdem ich beim Aufbau der $sOrderBy Variable den Standard wieder hergestellt habe funktioniert der Sprachwechsel wieder.

Getauscht wurde die $sCatId mit $oLocatorTarget->getSortIdent().

Aber insgesamt finde liegt an dieser Stelle ein Konzeptfehler im obigen Quellcode mit der Variable
[B]$this->_sCustomSorting[/B] vor.
Begründung: Solange ich kein dokumentierte Gedankengänge des zuständigen Programmierers vorliegen habe und nicht nachvollziehen kann warum es diese Variable gibt - halte ich für fahrlässig und eine potenzielle Fehlerquelle.