Import von Daten in Conpresso

Fragen und Diskussionen zu laufenden ConPresso 4.x Projekten werden in diesem Forum diskutiert.
flofloflo
ConPresso-User
Beiträge: 44
Registriert: 31.07.2006 22:50
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Import von Daten in Conpresso

Beitrag von flofloflo »

Hallo, ich habe eine CSV-Datei mit einer großen Menge an Datensätzen, die ich gerne in Conpresso importieren möchte.
Prinzipiell kein Problem. Felder und Rubriken einrichten und Abstimmen ist klar.
Jetzt würde ich gerne die CSV-Datei automatisiert bei mir so umwandeln, dass korrekte mysql-inserts erstellt werden. damit wäre ein Import ganz einfach.
Nur sind die einzelnen Artikel in CPO4 jetzt auf versch. Tabellen verteilt. Wie bekommt man die automatische Artikel ID hin, sowie die korrekte Verknüpfung mit den HTML und Text Content Teilen?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7195
Registriert: 01.01.1970 02:00
Hat sich bedankt: 104 Mal
Danksagung erhalten: 919 Mal

Beitrag von MarkusR »

Das übernimmt alles die Funktion save_article(), die lediglich ein Array als Parameter übergeben bekommt.

Die CSV-Datei kann man relativ problemlos in ein Array umwandeln (mittels Texteditor) und kann dann Zeile für Zeile durch die Funktion jagen.

Allerdings muß man sich genau darüber klar werden, wie das Template aussieht, da dessen Platzhalter als keys des neuen Arrays benötigt werden.

Ich habe letzte Woche erst 600 Datensätze auf diese Weise "eingesaugt".

Das sieht dann ungefähr so aus:

Code: Alles auswählen

<?php
define('CPO', true);
require_once('../_include/checkaccess.inc.php');
$translator->addTranslation('articles');

// Hier kommen die Daten
$daten[] = array('Mac Cloud´s', 'Harald u. Ulrike', 'Ferber', 'Raiffeisenplatz 1a', '35075', 'Gladenbach-Weitershausen', '06420/1601', '822125', 'http://www.cairn-freunde.de', 'hffboeden@aol.com', '', '');
$daten[] = array('from Belfry', 'Pia u. Frank', 'Cichacki', 'Alvesser Str. 11 A', '38159', 'Vechelde-Vallstedt', '05300/901160', '', '', 'frank.cichacki@t-online.de', '0173/6626963 od.0173/6626711', '');
$daten[] = array('of Buchonian Gate', 'Angelika', 'Annacker', 'Am Teich 84', '98639', 'Rippershausen', '03693/897326', '', 'http://www.cairn-annacker.de', 'AGAnnackerCairn@web.de', '', '');

for ($i=0;$i<count($daten);$i++)
{
		$data = array();
        $data['rubric_id']    = 5;
        $data['titel']        = $daten[$i][0];
        $data['templates_id'] = 9;
        $data['autor']        = 'Markus Rösel';

        $data['email']         = 'admin@50n.de';
        $data['initial']       = 'MR';
        $data['changedBy']     = 'Markus Rösel';

		$data['content']['Vorname (text)']['text'] = $daten[$i][1];
		$data['content']['Nachname (text)']['text'] = $daten[$i][2];
		$data['content']['Strasse / Hausnummer (text)']['text'] = $daten[$i][3];
		$data['content']['PLZ (text)']['text'] = $daten[$i][4];
		$data['content']['Ort (text)']['text'] = $daten[$i][5];
		$data['content']['Telefonnummer (text)']['text'] = $daten[$i][6];
		$data['content']['Fax-Nummer (text)']['text'] = $daten[$i][7];
		$data['content']['Homepage (text)']['text'] = $daten[$i][8];
		$data['content']['E-Mail (text)']['text'] = $daten[$i][9];
		$data['content']['Mobiltelefon (text)']['text'] = $daten[$i][10];
		$data['content']['Bemerkungen (text)']['text'] = $daten[$i][11];

        save_article($data);

}
echo "Fertig!";
?>
wobei eben alle Daten, die nicht aus der CSV stammen richtig vorgegeben werden müssen, also Template-ID, Rubrik-ID, Autor, etc.
Da keine Publikations- oder Verfallsdaten angegeben werden gelten die normalen Vorgaben.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
flofloflo
ConPresso-User
Beiträge: 44
Registriert: 31.07.2006 22:50
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von flofloflo »

Hey das ist ja genial.
Ich werde das gleich mal ausprobieren.
Wenn man dies ins CPO-System als Funktion integrieren würde, hätte man sogar eine super Datenschnittstelle.

Danke.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7195
Registriert: 01.01.1970 02:00
Hat sich bedankt: 104 Mal
Danksagung erhalten: 919 Mal

Beitrag von MarkusR »

flofloflo hat geschrieben:Wenn man dies ins CPO-System als Funktion integrieren würde, hätte man sogar eine super Datenschnittstelle.
Die Funktion save_article() gehört ja zu ConPresso.

Alles andere ist schlichtweg unmöglich, da kein System vorausahnen kann, welche Felder und Datentypen importiert werden sollen und der Anwender bei einer Abfrage aller norwendigen Informationen sofort das Handtuch werfen würde.

Das ist leicht daran zu erkennen, wie schwer sich selbst komplexe Systeme mit dem Import von Fremddaten tun und wieviel Nacharbeit erforderlich ist, bis die Daten verwertbar sind.

Und ConPresso ist ja im Grunde so gebaut, daß ein Webdesigner auch was dran verdienen kann... :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle