Antwort #16 am: 11. Oktober 2013, 13:29:49
Okay, Fehler gefunden.
Bei den "
Einstellungen" in
Hilfsprogramme => Import/Export werden die eingegebenen Zeichen im Hintergrund über ein Configuration-File gespeichert (gID=20).
In
/admin/configuration.php werden die Daten (
$configuration['configuration_value']) beim Auslesen aus der Tabelle
configuration mit einem
stripslashes() versehen (*EDIT* warum eigentlich ?),
was bewirkt, daß der Backslash bei Eingabe von
\t als Trennzeichen verschwindet.
Das kann man auf der Configuration-Seite auch sehen
(einfach mal
Konfiguration => Mein Shop aufrufen und in der Browser-Adresszeile bei gID 20 eingeben).
Abhilfe:
In der hier besprochenen Datei
/admin/includes/classes/import.php folgendes machen:
class xtcImport if (CSV_SEPERATOR == '') {
$this->seperator = "\t";
}
if (CSV_SEPERATOR == '\t') {
$this->seperator = "\t";
}
ändern in
if (CSV_SEPERATOR == '') {
$this->seperator = "\t";
}
if (CSV_SEPERATOR == xtc_db_prepare_input('\t')) {
$this->seperator = "\t";
}
und
class xtcExport if (CSV_SEPERATOR == '')
$this->seperator = "\t";
if (CSV_SEPERATOR == '\t')
$this->seperator = "\t";
ändern in
if (CSV_SEPERATOR == '')
$this->seperator = "\t";
if (CSV_SEPERATOR == xtc_db_prepare_input('\t'))
$this->seperator = "\t";
Damit wird in der if-Abfrage der Backslash bei \t entfernt und so verglichen.
Evtl. ist ein
stripslashes() hier allerdings schneller als die xtc-Funktion.
Nun funktioniert sowohl Export (ging vorher nämlich auch nicht) als auch Import auch mit Angabe von \t als Trennzeichen.
Im Anhang das neue Paket.
Es ist noch die zugehörige Sprachdatei von mir etwas erweitert worden, sodaß zum besseren Verständnis noch folgende Erklärungen im Backend in rot erscheinen:
wird das Eingabefeld leer gelassen wird bei Export per default " benutzt !wird das Eingabefeld leer gelassen wird bei Export per default \t (= Tab) benutzt !Gruß,
noRiddle