OXID 4.5.2 "Module"-Textarea leer

Nach dem Update eines Shops auf OXID 4.5.2 ist die “Module”-Textarea im Admin leer…

Es sind aber Module konfiguriert, und die Module werden auch richtig überladen…

Es sind keinerlei Änderungen am 4.5.2-Admin gemacht worden.

Was kann das sein???

oxchkversion?

Habe ich getestet, gibt aber auch keinen Hinweis…

Habe das dann mal debugged, Ursache ist ein SQL-Fehler

Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation ‘=’
bei folgendem SQL, das die Konfigurations-Parameter aus der DB lesen soll:

SELECT cfg.oxvarname, cfg.oxvartype, DECODE( cfg.oxvarvalue,  'fq45QS09_fqyx09239QQ'  )  AS oxvarvalue, disp.oxvarconstraint, disp.oxgrouping
FROM oxconfig AS cfg
LEFT  JOIN oxconfigdisplay AS disp ON cfg.oxmodule = disp.oxcfgmodule
AND cfg.oxvarname = disp.oxcfgvarname
WHERE cfg.oxshopid =  'oxbaseshop'
AND cfg.oxmodule =  ''
ORDER  BY disp.oxpos, cfg.oxvarname

Was sich ja laut Fehlermeldung nur auf den Teil “cfg.oxmodule = disp.oxcfgmodule” beziehen kann.

Sieht so aus, als ob die “cfg”- und “disp”-Tabellen unterschiedliche Kollationen haben…

Die “disp”-Tabelle ist ja jetzt wohl neu hinzugekommen.

Muss ich mal schauen…

[QUOTE=avenger;69692]Sieht so aus, als ob die “cfg”- und “disp”-Tabellen unterschiedliche Kollationen haben…

Die “disp”-Tabelle ist ja jetzt wohl neu hinzugekommen.

Muss ich mal schauen…[/QUOTE]

Habe nun mit “ALTER TABLE oxconfigdisplay COLLATE=latin1_general_ci” die Kollation der Tabelle “oxconfigdisplay” von “latin1_swedish_ci” auf “latin1_general_ci” geändert, was auch funktioniert hat.

Allerdings liefert mir die SQL-Abfrage immer noch den gleichen Fehler! :eek:

Bin jetzt etwas ratlos, hat jemand eine Idee, was da jetzt noch nicht passen könnte???

[QUOTE=avenger;69693]Bin jetzt etwas ratlos, hat jemand eine Idee, was da jetzt noch nicht passen könnte???[/QUOTE]
Habe jetzt die Lösung gefunden:

Ich habe die Tabelle “oxconfigdisplay” mit PHPMyAdmin exportiert, und im Dumpfile die Tabellen-Anlage geändert von

DROP TABLE IF EXISTS `oxconfigdisplay`;
CREATE TABLE IF NOT EXISTS `oxconfigdisplay` (
  `OXID` char(32) COLLATE latin1_general_ci NOT NULL,
  `OXCFGMODULE` varchar(32) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `OXCFGVARNAME` char(32) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `OXGROUPING` varchar(255) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `OXVARCONSTRAINT` varchar(255) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `OXPOS` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`OXID`),
  KEY `list` (`OXCFGMODULE`,`OXCFGVARNAME`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

geändert zu

DROP TABLE IF EXISTS `oxconfigdisplay`;
CREATE TABLE IF NOT EXISTS `oxconfigdisplay` (
  `OXID` char(32) COLLATE latin1_general_ci NOT NULL,
  `OXCFGMODULE` varchar(32) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `OXCFGVARNAME` char(32) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `OXGROUPING` varchar(255) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `OXVARCONSTRAINT` varchar(255) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `OXPOS` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`OXID`),
  KEY `list` (`OXCFGMODULE`,`OXCFGVARNAME`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

(was den Parametern der Tabelle “oxconfig” entspricht).

Und dann funktioniert die Abfrage, und meine Module (und alle anderen Parameter) sind endlch da! :slight_smile: