CMS Multilanguage Problem

Hi, neuerdings lassen sich die Inhalte im Backend in weiteren Sprachen nicht mehr bearbeiten.

Im Frontend sind die Sprachen richtig vorhanden, in der Datenbank stimmen die Einträge für OXTITLE_8 und OXTITLE_9 in der oxcontents_set1 ebenfalls. Wählt man die Sprache 8 oder 9 im Backend aus, wird der Inhalt der Sprache 1 geladen.

Das Problem ist erst vor einer Woche aufgetreten, obwohl die Sprachen schon einige Monate live sind

oxConnectionException-oxException (time: 2021-07-26 11:48:30): [1054]: mysqli error: [1054: Unknown column ‘OXTITLE_8’ in ‘where clause’] in EXECUTE (SELECT
OXID
FROM oxcontents
WHERE OXSHOPID = ‘9’
AND DDISTMPL = 0
AND (
OXLOADID LIKE ‘%b%’ OR
OXTITLE LIKE ‘%b%’
OR OXTITLE_8 LIKE ‘%b%’
)
AND DDISBLOCK = 0 , Array) with user eod_live

Stack Trace: #0 /var/www/live/releases/c33026e80d295cad16b42355b31a1ee990cf7b37/web/core/adodblite/adodbSQL_drivers/mysqli/mysqli_driver.inc(359): adodb_throw()
#1 /var/www/live/releases/c33026e80d295cad16b42355b31a1ee990cf7b37/web/core/adodblite/adodb.inc.php(316): mysqli_driver_ADOConnection->do_query()
#2 /var/www/live/releases/c33026e80d295cad16b42355b31a1ee990cf7b37/web/core/adodblite/adodbSQL_drivers/mysqli/mysqli_driver.inc(256): ADOConnection->Execute()
#3 /var/www/live/releases/c33026e80d295cad16b42355b31a1ee990cf7b37/web/core/adodblite/adodbSQL_drivers/mysqli/mysqli_driver.inc(242): mysqli_driver_ADOConnection->GetArray()
#4 /var/www/live/releases/c33026e80d295cad16b42355b31a1ee990cf7b37/web/core/oxlegacydb.php(187): mysqli_driver_ADOConnection->GetAll()
#5 /var/www/live/releases/c33026e80d295cad16b42355b31a1ee990cf7b37/web/modules/ddoe/visualcms/application/controllers/admin/ddoevisualcmsadmin.php(348): oxLegacyDb->getAll()

Ich tippe mal auf ungleiche Views, d.h. “Views aktualsieren” unter Service/Tools sollte den “Fehler” beheben.

das dachte ich auch und hab sie bereits aktualisiert, leider behebt das den Fehler nicht

Wenn tatsächlich alles vorhanden ist (zum Test würde ich die SQL

SELECT
`OXID`
FROM `oxcontents`
WHERE `OXSHOPID` = ‘9’
AND `DDISTMPL` = 0
AND (
`OXLOADID` LIKE ‘%b%’ OR
`OXTITLE` LIKE ‘%b%’
OR `OXTITLE_8` LIKE ‘%b%’
)
AND `DDISBLOCK` = 0

in phpMyAdmin etc. ausführen), tippe ich auf den TMP.

An der SQL siehst auch, warum oxtitle (also Deutsch) im Frontend erscheint.

Die Abfage sieht schon falsch aus. Das SQL darf nicht auf oxcontents gehen sonder muss auf den view oder die set tabelle gehen. Die exception zeigt ja auf
ddoevisualcmsadmin.php(348)

Da müsste dann ein Bugreport erstellt werden oder der oxid support kontaktiert werden. Die können das dann nachstellen und verifizieren.

Als Partner/Kunde kann man auch Zugriff auf das Git anfragen, die fragliche Stelle ist hier:
https://github.com/OXID-eSales/visual_cms_module/blob/b-3.x/Application/Controller/Admin/VisualCmsAdmin.php#L348
Ein möglicher Vorschlag wie man den Code anpassen könnten, damit die Exception in der Form nicht mehr auftaucht.
https://github.com/OXID-eSales/visual_cms_module/pull/57

oder halt skip views an…