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 (0 = nicht publizieren;
- // 1 = publizieren)
- $username, // API-Username
- $password, // API-Passwort
- false // Fehler ausgeben (true|false)
- );
- ?>
$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 des 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.
Der Wert für die Fehlercode-Ausgabe ist standardmäßig auf false
gesetzt. Wenn man Fehlercodes erhalten möchte, muss der Wert auf true
gesetzt werden. Es werden dann der Feldname, Fehlercode und die Fehlermeldung in einem Array zurückgegeben.
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.