Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Inhalte im Code anlegen und aktualisieren

Inhalte aus PHP anlegen, aktualisieren, verschieben und entfernen - eZContentFunctions::createAndPublishObject und updateAndPublishObject, Werte im fromString-Format, Rich Text, Bilder, Remote-IDs für idempotente…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/creators/app-creators/creating-content-in-code.md

On this page

This page is a translation. Read the English original

Inhalte im Code anlegen und aktualisieren

Diese Seite ist für Anwendungsentwickler, die Inhalte aus Code schreiben: Importe, Synchronisierungen, Formulare, die Objekte anlegen, Migrationen. eZContentFunctions des Kernels (kernel/classes/ezcontentfunctions.php) legt in einem Aufruf an und veröffentlicht, mit derselben Operation (und denselben Triggern) wie der Editor.

Inhalt

  1. Anlegen und veröffentlichen
  2. Aktualisieren
  3. Werte für jeden Datentyp
  4. Idempotente Importe mit Remote-IDs
  5. Verschieben, verbergen, entfernen
  6. Große Operationen

Anlegen und veröffentlichen

$object = eZContentFunctions::createAndPublishObject( array(
    'creator_id'       => $userID,
    'class_identifier' => 'article',
    'parent_node_id'   => $parentNodeID,
    'remote_id'        => 'feed-item-' . $externalID,
    'attributes'       => array(
        'title' => 'A new article',
        'intro' => $introXml,
        'body'  => $bodyXml ) ) );

if ( !$object instanceof eZContentObject )
    throw new RuntimeException( 'Could not create the article' );

Attributwerte werden in ihrer fromString()-Form angegeben. Das Veröffentlichen führt die Operation content/publish aus, also laufen auch die Workflows an ihren Triggern, und Caches sowie der Suchindex werden aktualisiert.

Aktualisieren

eZContentFunctions::updateAndPublishObject( $object, array(
    'attributes' => array( 'title' => 'A better title' ) ) );

Eine neue Version wird angelegt und veröffentlicht; die vorherige wird archiviert, wie bei einer Bearbeitung durch die Redaktion.

Werte für jeden Datentyp

DatentypZeichenkettenform
ezstring, eztextder Text
ezinteger, ezfloat, ezboolean42, 3.5, 1
ezdate, ezdatetimeein Unix-Zeitstempel
ezxmltextdas interne XML des Rich Text (das <section>-Dokument)
ezobjectrelationlistObjekt-IDs, getrennt durch -
ezselectiondie IDs der gewählten Optionen
ezimage, ezbinaryfileein Dateipfad (bei Bildern nach einem Trennzeichen ein Alternativtext)

Das genaue Format steht jeweils in fromString() der Datentyp-Klasse in kernel/classes/datatypes/<name>/; lesen Sie es, bevor Sie einen Datentyp zum ersten Mal importieren.

Idempotente Importe mit Remote-IDs

Geben Sie importierten Objekten eine Remote-ID, die aus der ID der Quelle gebildet wird. Aktualisieren Sie beim nächsten Lauf, statt neu anzulegen:

$remoteID = 'feed-item-' . $externalID;
$existing = eZContentObject::fetchByRemoteID( $remoteID );
if ( $existing )
    eZContentFunctions::updateAndPublishObject( $existing, array( 'attributes' => $attributes ) );
else
    eZContentFunctions::createAndPublishObject( array( 'remote_id' => $remoteID ) + $params );

Ein zweimal ausgeführter Import darf keine Duplikate anlegen.

Verschieben, verbergen, entfernen

Verwenden Sie die Operationen des Kernels statt SQL: eZContentObjectTreeNodeOperations::move(), eZContentOperationCollection zum Verbergen und Einblenden, eZContentObjectTreeNode::removeSubtrees() zum Entfernen (in den Papierkorb oder nicht). Sie halten URL-Aliasse, Caches und den Suchindex korrekt.

Große Operationen

Tausende Objekte gehören in einen Hintergrundprozess: einen Befehl, der aus Cron läuft, einen Job der Warteschlange (Warteschlangen mit expqueue) oder die Inhalts-Jobs des Kernels für das Entfernen, Kopieren und Verschieben großer Teilbäume (Inhalts-Jobs). Committen Sie in Stapeln, leeren Sie zwischen den Stapeln mit eZContentObject::clearCache() und protokollieren Sie den Fortschritt.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x