API: Inhalt erstellen

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.

  1. <?php
  2. api_edit(
  3.   $data,         // Inhalt
  4.   $file,         // Datei
  5.   'new',         // Aktion
  6.   $container_id, // Container ID
  7.   '',            // Artikel ID
  8.   $publish,      // Publikationseinstellung (0 = nicht publizieren;
  9.                  //                          1 = publizieren)
  10.   $username,     // API-Username
  11.   $password,     // API-Passwort
  12.   false          // Fehler ausgeben (true|false)
  13. );
  14. ?>

$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.

  1. <?php
  2. $data['title']    = mysql_real_escape_string('Titel des Artikels');
  3. $data['textfeld'] = mysql_real_escape_string('Ich bin der Text.');
  4. ?>

Ü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.

  1. <?php
  2. $data['verbindung'][0] = 42;
  3. $data['verbindung'][1] = 56;
  4. ?>

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.

  1. <?php
  2. $data['verbindung'][0]              = 42;
  3. $data['verbindung']['neu']['title'] = 'Hallo Welt';
  4. $data['verbindung'][1]              = 56;
  5. ?>

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.

  1. <?php
  2. $file['uploadfeld'] = $_FILES['datei'];
  3. ?>

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.


Sag' deine Meinung! Nichts gegen kurze Einschätzungen. Floskeln wie "sieht aus, als wärs vom Praktikanten" oder "Griff ins Klo" sollten allerdings im Sinne einer sachlich geführten Diskussion vermieden werden.




Kommentar:



Funktionsreferenz Neueste Blog-Artikel


Blog-Archiv Twitter

Folgt @cubecms auf Twitter und bleibt immer auf dem Laufenden was CUBE angeht. Hashtag: #cubecms