2009-07-10 5 views
3

Ich habe derzeit eine Datenquelle von einem Client in Form von XML, diese XML enthält Inhalte für alle Seiten, die die von uns erstellte Seite enthält. Nach dem Parsen und Vorbereiten dieses ganzen Inhalts weiß jemand, wie wir dann (unter Verwendung) PHP die Erzeugung eines Drupal-Knotens automatisieren können (einschließlich aller verwandten Felder für diesen Knoten, d. H. CCK-Felder, Pfade).Drupal-Seiten (Knoten) automatisch aus anderem (xml) Inhalt erstellen

Idealerweise eine Funktion, an die wir den gesamten Inhalt senden können, und die Knoten werden erstellt. Nun, es macht mir nichts aus, es direkt in die db zu schreiben, aber ich bin mir nicht ganz sicher, welche DB-Tabellen aktualisiert werden (da das Drupal-Setup eine Vielzahl von Tabellen enthält).

ich durch Google und die Drupal-Dokumente gesucht haben, aber ich etwas dafür kann nicht wirklich finden (die ich verwendet, um eine einfache und oft Funktion auf Drupal von Web-Entwicklern angenommen wäre ..)

Ihre Eingabe wird sehr geschätzt werden!

Vielen Dank im Voraus,

Shadi

Antwort

5

Sie können Drupal node_save Funktion so etwas wie folgt verwenden:

require 'includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 

$node = new stdClass(); 

$node->title = "My imported node"; 
$node->body = "The body of my imported node."; 
$node->type = 'story'; 
$node->created = time(); 
$node->changed = $node->created; 
$node->status = 1; 
$node->promote = 1; 
$node->sticky = 0; 
$node->format = 1; 
$node->uid = 1; 

node_save($node); 

in diesem Artikel auf der Acquia Seite für mehr (einschließlich CCK Felder, wenn Sie Pathauto verwenden, die Pfade auf node_save erstellen sollten): http://acquia.com/blog/migrating-drupal-way-part-i-creating-node

+0

Perfekt ich denke, das sieht aus wie ich bin :) Prost! –

1

sollten Sie in der Lage sein node_save() zu diesem Zweck zu verwenden. Ich habe nicht mit Cck-Feldern versucht, aber wenn Sie die Felder hinzufügen, sollten sie durch die Hooks gespeichert werden. Wenn Sie den Knotentyp jedoch nicht mit Feldern über Code erstellen, hängt die Funktion von der Konfiguration ab, die Sie in der Verwaltungsoberfläche ausführen.

0

node_save funktioniert für Cck, wenn Sie die richtigen Typ und Format Felder gut in der Array-Struktur.