Vossi
30.07.2008, 11:33
Nachdem ich bereits häufiger eine Im- und Exportfunktion für Daten eigener AddOns benötigte, habe ich jetzt letztendlich eine class dafür geschrieben und stelle diese hier als sog. development-class zur Verfügung. Dieses ist ein erster Versuch und sollte durchaus, sehr gerne mit Eurer Hilfe, weiterentwickelt werden.
Coder können diese class in ihren eigenen AddOns integrieren und so einfachst (aber mit noch relativ wenig Funktionen) ein Backup von Tabellen der DB erstellen bzw. Backups in die DB importieren.
Importieren einer .csv-Datei:
Der Aufruf sieht wie folgt aus (überflüssig zu erwähnen, dass sich die Datei class_vbcsv.php im entsprechenden Verzeichnis befinden muss):
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------
Wobei sich die Variablen wie folgt zusammensetzen:
$vbulletin = registry object
$importfile = Dateiname inkl. Pfad
$optionfields = Array mit jeweils 3 Werte/Zeile
$importtable = Name von Tabelle in der DB, in welche die Backup-Datei importiert werden soll
Das Array $optionfields setzt sich pro Zeile wie folgt zusammen:
1. Wert = ID von Feld (0=erstes Feld, 1=zweites Feld usw.)
2. Wert = Option (0=Feld ignorieren|1=Feldinhalt in 3. Wert)
3. Wert = Inhalt der eingesetzt wird, wenn im 2. Wert die Option 1 genutzt wird.
Dieses sei an einem Beispiel verdeutlicht und man stelle sich vor, eine CSV-Datei hätte folgenden Inhalt:
id,name,city,userid,username,tel
81,max test,hamburg,302,max,110
82,moritz test,bremen,309,moritz,112
und folgende Optionen für den Import werden gesetzt:
$optionfields = array();
$optionfields[0] = '0,0,0'; // Feld 0 (id) wird beim Importieren ignoriert
$optionfields[1] = '3,1,1'; // Inhalt von Feld 3 (userid) wird in '1' geändert
$optionfields[2] = '4,1,admin'; // Inhalt von Feld 4 (username) wird in 'admin' geändert
Das Feld id wird dann während des Imports komplett ignoriert (wichtig beim Hinzufügen von Daten, damit es keinen SQL-Fehler gibt). Die jeweiligen Werte für userid und username pro Zeile werden in '1' und 'admin' geändert.
Wenn $optionfields beim Aufruf der Import-Funktion nicht angegeben wird, dann wird diese vernachlässigt und die Tabelle wird 1:1 importiert.
Exportieren einer .csv-Datei:
Dieser Vorgang ist identisch mit der Importfunktion und der Aufruf sieht wie folgt aus:
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------
Wobei sich die Variablen wie folgt zusammensetzen:
$vbulletin = registry object
$exportfile = Dateiname inkl. Pfad
$optionfields = Array mit jeweils 3 Werte/Zeile
$exporttable = Name von Tabelle in der DB, aus welche die Backup-Datei erstellt werden soll
Das Array $optionfields setzt sich pro Zeile wie folgt zusammen:
1. Wert = ID von Feld (0=erstes Feld, 1=zweites Feld usw.)
2. Wert = Option (0=Feld ignorieren|1=Feldinhalt in 3. Wert)
3. Wert = Inhalt der eingesetzt wird, wenn im 2. Wert die Option 1 genutzt wird.
Die Art und Weise der Benutzung von $optionfields gleicht die der Import-Funktion.
Wenn $optionfields beim Aufruf der Export-Funktion nicht angegeben wird, dann wird diese vernachlässigt und die Tabelle wird 1:1 exportiert.
Coder können diese class in ihren eigenen AddOns integrieren und so einfachst (aber mit noch relativ wenig Funktionen) ein Backup von Tabellen der DB erstellen bzw. Backups in die DB importieren.
Importieren einer .csv-Datei:
Der Aufruf sieht wie folgt aus (überflüssig zu erwähnen, dass sich die Datei class_vbcsv.php im entsprechenden Verzeichnis befinden muss):
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------
Wobei sich die Variablen wie folgt zusammensetzen:
$vbulletin = registry object
$importfile = Dateiname inkl. Pfad
$optionfields = Array mit jeweils 3 Werte/Zeile
$importtable = Name von Tabelle in der DB, in welche die Backup-Datei importiert werden soll
Das Array $optionfields setzt sich pro Zeile wie folgt zusammen:
1. Wert = ID von Feld (0=erstes Feld, 1=zweites Feld usw.)
2. Wert = Option (0=Feld ignorieren|1=Feldinhalt in 3. Wert)
3. Wert = Inhalt der eingesetzt wird, wenn im 2. Wert die Option 1 genutzt wird.
Dieses sei an einem Beispiel verdeutlicht und man stelle sich vor, eine CSV-Datei hätte folgenden Inhalt:
id,name,city,userid,username,tel
81,max test,hamburg,302,max,110
82,moritz test,bremen,309,moritz,112
und folgende Optionen für den Import werden gesetzt:
$optionfields = array();
$optionfields[0] = '0,0,0'; // Feld 0 (id) wird beim Importieren ignoriert
$optionfields[1] = '3,1,1'; // Inhalt von Feld 3 (userid) wird in '1' geändert
$optionfields[2] = '4,1,admin'; // Inhalt von Feld 4 (username) wird in 'admin' geändert
Das Feld id wird dann während des Imports komplett ignoriert (wichtig beim Hinzufügen von Daten, damit es keinen SQL-Fehler gibt). Die jeweiligen Werte für userid und username pro Zeile werden in '1' und 'admin' geändert.
Wenn $optionfields beim Aufruf der Import-Funktion nicht angegeben wird, dann wird diese vernachlässigt und die Tabelle wird 1:1 importiert.
Exportieren einer .csv-Datei:
Dieser Vorgang ist identisch mit der Importfunktion und der Aufruf sieht wie folgt aus:
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------
Wobei sich die Variablen wie folgt zusammensetzen:
$vbulletin = registry object
$exportfile = Dateiname inkl. Pfad
$optionfields = Array mit jeweils 3 Werte/Zeile
$exporttable = Name von Tabelle in der DB, aus welche die Backup-Datei erstellt werden soll
Das Array $optionfields setzt sich pro Zeile wie folgt zusammen:
1. Wert = ID von Feld (0=erstes Feld, 1=zweites Feld usw.)
2. Wert = Option (0=Feld ignorieren|1=Feldinhalt in 3. Wert)
3. Wert = Inhalt der eingesetzt wird, wenn im 2. Wert die Option 1 genutzt wird.
Die Art und Weise der Benutzung von $optionfields gleicht die der Import-Funktion.
Wenn $optionfields beim Aufruf der Export-Funktion nicht angegeben wird, dann wird diese vernachlässigt und die Tabelle wird 1:1 exportiert.