Mit der Funktion api_edit() können Inhalte neu erstellt werden.
Die API muss zwingend verfügbar gemacht werden indem sie eingebunden wird. Wie das geht erfahren Sie hier.
Die grundlegende Syntax lautet folgenermaßen.
<?php
api_edit(
$data, # Inhalt
$file, # Datei
'new', # Aktion
$container_id, # Container ID
'', # Artikel ID
$publish, # Publikationseinstellung (1=ja; 0=nein)
$username, # API-Username
$password # API-Passwort
);
?>
$data muss ein Array sein. Es enthält die Felder und den entsprechenden Wert.
Beispiel:
Dieses Beispiel zeigt wie man die Felder title und textfeld befüllen würde.
<?php
$data['title'] = mysql_real_escape_string('Titel meines Artikels');
$data['textfeld'] = mysql_real_escape_string('Ich bin der Text.');
?>
Über Relationen kann man auch in anderen Ordnern Inhalte erstellen. Dazu muss man das Feld als Array kennzeichnen und als Wert die ID des Beitrags angeben mit dem das Feld verknüpft werden soll. Wenn auf existierende Beiträge verknüpft werden soll, muss er Schlüssel hinter dem Feldname immer eine Zahl sein.
Im folgenden Beispiel soll das Feld "verbindung" mit den Beiträgen mit der ID 42 und 56 verbunden werden.
<?php
$data['verbindung'][0] = 42;
$data['verbindung'][1] = 56;
?>
Auch neue Inhalte und Beiträge können in der Ziel-Beitragsart erstellt werden. Dazu muss statt einer Zahl ein beliebiger String sowie das Feld angegeben werden.
Im folgenden Beispiel würden drei Verknüpfungen erstellt. Zwei davon auf existierende Beiträge, eine auf den neu erstellen Beitrag der im Feld "title" den Inhalt "Hallo Welt" bekommt.
<?php
$data['verbindung'][0] = 42;
$data['verbindung']['neu']['title'] = 'Hallo Welt';
$data['verbindung'][1] = 56;
?>
Wenn $data leergelassen wird, wird kein Feld befüllt.
Wir empfehlen dringend die Daten mit der Funktion mysql_real_escape_string() zu sichern bevor sie ins System geschrieben werden.
$file muss ebenfalls ein Array sein und nur befüllt werden, wenn man eine Datei hochladen will.
Beispiel:
Das Feld uploadfeld wird mit dem Inhalt der hochgeladenen Datei datei befüllt.
<?php
$file['uploadfeld'] = $_FILES['datei'];
?>
Die Aktion muss den Wert new enthalten. Dies ist erforderlich, weil die Funktion api_edit() auch zur Bearbeitung von Inhalten zuständig ist. Dann wäre als Wert edit erforderlich.
$container_id muss die Container ID angeben in die der Inhalt gespeichert werden soll.
Eine Artikel-ID wird nicht angegeben, weil der Artikel neu erstellt werden soll und erst eine ID vom System zugewiesen bekommt.
$publish regelt, ob der erzeugte Inhalt sofort publiziert wird oder erst noch publiziert werden muss.
$username und $passwort sind die Zugangsdaten eines Backend-Benutzers. Der Artikel bekommt diesen Benutzer als Ersteller zugewiesen. Wir empfehlen einen eigenen Benutzer für API-Operationen anzulegen. So kann später sehr einfach nachvollzogen werden wie der Artikel entstanden ist. Es sind auch verschiedene API-Benutzer möglich.
TIPP: Es empfiehlt sich bei einem Import in den Beitragsarten ein Feld "import" o.ä. und dieses immer mit einem bestimmten Wert zu füllen. So lässt sich später anhand dieses Feldes jeder importierte Artikel finden und ggf. löschen, falls beim Import ein Fehler aufgetreten ist.






