Erst mal danke für das schöne Modul. Macht das Ex-/Importieren schon mal wesentlich einfacher.
Hatte allerdings
1.) das Problem, dass die Kategorienamen nicht exportiert werden.
Grund: Das Modul nimmt immer die Kateogrienamen für die erste installierte Sprache (Index 1 in languages). Das ist bei Standard-Installation wohl immer erst mal Englisch.
Da der Shop aber nur auf Deutsch geführt wird, stehen die Kategorienamen auch nur auf Deutsch drin, also nur unter Index 2.
Abhilfe:
* in Datei: /admin/includes/classes/import.php
* Suchen nach: $this->languages[0]['id']
* Ersetzen durch: $_SESSION['languages_id']
(das Ganze zweimal, einmal in der Import- und einmal in der Export-Klasse)
(wobei das im Import keine Rolle spielt, weil dort nur das Vorhandensein gecheckt wird,
habe das aber der Form halber trotzdem ersetzt)
2.) Wenn in der Artikelbeschreibung ein Semikolon enthalten ist (z.B. Html-Entities) und als Feldtrenner ein Semikolon verwendet wird (was ja üblich ist), funktioniert der Import natürlich nicht mehr. Statt nun auf ein anderes Zeichen als Feldtrenner zurückzugreifen (mit welchem das gleiche Problem entstehen kann), nutzt man sinnvollerweise einfach den Umstand, dass alle Inhalte in "Texterkennungszeichen" eingeschlossen sind.
Dazu ist es nur notwendig, die an zu vielen Stellen 'explodierten' Importzeilen an den entsprechenden Stellen wieder zusammenzusetzen.
(Was allerdings passiert, wenn sowohl Feldtrenner als auch Texterkennungszeichen in z.B. der Artikelbeschreibung enthalten sind, habe ich jetzt nicht weiter durchdacht ...)
* in Datei: /admin/includes/classes/import.php
* Suchen nach: $line_content = explode($this->seperator, $line_fetch['data']);
* Einfügen danach:
//++[ UB if some content texts contain $this->TextSign, content will contain more entries than mapping
if (count($line_content)>count($mapping)) {
$arr=array(); $tmp=""; $nSkip=0; $c=$this->TextSign;
foreach($line_content as $k => $v) {
if ($tmp!="") {
if ($v[strlen($v)-1]!=$c) { $tmp.=$v; $nSkip++; continue; }
else { $v=$tmp.$v; $tmp=""; }
} else if ($v[strlen($v)-1]!=$c) { $tmp=$v; $nSkip++; continue; }
$arr[$k-$nSkip]=$v;
}
$line_content=$arr;
}
//++] UB
Vielleicht hilft's der Einen oder dem Anderen ja.