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

Mit RAD: ein Workflow-Ereignis

Der Assistent für Workflow-Ereignisse schreibt einen Ereignistyp, der jede Veröffentlichung protokolliert - Trigger und Status, die erzeugte Klasse und die Templates und die eine Methode, die Sie ausfüllen.

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/extension-development/part-3-extension-developer/tutorials/rad-workflow-event.md

On this page

This page is a translation. Read the English original

Mit RAD: ein Workflow-Ereignis

Tutorial 5. Der Assistent für Workflow-Ereignisse (/setup/workflowevent) schreibt einen Workflow-Ereignistyp: die Klasse, ihre Registrierung, die Templates, die der Workflow-Editor zeigt, und auf Wunsch Einstellungen pro Ereignis, die in den Spalten gespeichert werden, die eZWorkflowEvent bereitstellt. Die Ausgabe unten wurde vom Generator des Assistenten (expWorkflowEventWizard::files()) erzeugt; jede PHP-Datei hat php -l bestanden, und die erzeugte Klasse wurde mit geladenem Kernel per eZWorkflowType::createType() erzeugt und mit isAllowed() befragt.

1. Das Formular

FeldWert
Name der Extensionmysite_hello
Ereignisnamemysitepublishlog
Wie es für Redakteure heißtLog publishing
Wann es läuftcontent / publish / after
Womit es antworten kannSTATUS_ACCEPTED

Der Assistent führt nur Trigger auf, die es gibt (aus den Operationsdefinitionen), und behält STATUS_ACCEPTED immer bei: Wie sein Code sagt, „würde ein Ereignis, das nicht sagen kann, dass es fertig ist, jeden Workflow aufhängen, in den es eingebaut wird“. Einstellungen pro Ereignis werden, falls Sie welche hinzufügen, auf die vier Ganzzahl- und fünf Textspalten von eZWorkflowEvent abgebildet; eine, für die keine Spalte mehr frei ist, wird verworfen, „statt sich stillschweigend eine Spalte zu teilen“.

2. Die Dateien

.gitignore
LICENSE
README.md
composer.json
design/standard/templates/workflow/eventtype/edit/event_mysitepublishlog.tpl
design/standard/templates/workflow/eventtype/view/event_mysitepublishlog.tpl
eventtypes/event/mysitepublishlog/mysitepublishlogtype.php
extension.xml
ezinfo.php
settings/design.ini.append.php
settings/workflow.ini.append.php

Die Registrierung:

[EventSettings]
ExtensionDirectories[]=mysite_hello
AvailableEventTypes[]=event_mysitepublishlog

Die Klasse (ohne Kommentare):

<?php
class mysitepublishlogType extends eZWorkflowEventType
{
    const WORKFLOW_TYPE_STRING = 'mysitepublishlog';

    public function __construct()
    {
        parent::__construct( self::WORKFLOW_TYPE_STRING,
                             ezpI18n::tr( 'kernel/workflow/event', 'Log publishing' ) );
        $this->setTriggerTypes( array(
            'content' => array(
                'publish' => array( 'after' ) ) ) );
    }

    function execute( $process, $event )
    {
        $parameters = $process->attribute( 'parameter_list' );
        if ( isset( $parameters['object_id'] ) )
        {
            $object = eZContentObject::fetch( $parameters['object_id'] );
            if ( !$object instanceof eZContentObject )
            {
                eZDebug::writeNotice( 'Object ' . $parameters['object_id'] . ' is gone; nothing to do.',
                                      __METHOD__ );
                return eZWorkflowType::STATUS_ACCEPTED;
            }
        }
        return eZWorkflowType::STATUS_ACCEPTED;
    }
}

eZWorkflowEventType::registerEventType( mysitepublishlogType::WORKFLOW_TYPE_STRING, 'mysitepublishlogType' );

Die Templates liegen in design/standard, daher findet der Workflow-Editor sie in jedem Administrationsdesign.

3. execute() ausfüllen

Fügen Sie die Arbeit dort ein, wo das Objekt bekannt ist:

eZLog::write( sprintf( 'Published object %d version %d: %s',
                       (int)$parameters['object_id'], (int)$parameters['version'], $object->attribute( 'name' ) ),
              'mysite_hello.log' );

4. Einschalten und verwenden

./console exp:ini add 'site.ini/ExtensionSettings/ActiveExtensions[]' mysite_hello global
php bin/php/ezpgenerateautoloads.php -e
php bin/php/ezcache.php --clear-all

Setup > Workflows: Legen Sie einen Workflow mit dem Ereignis „Log publishing“ an; Setup > Trigger: Verbinden Sie ihn mit content / publish / after. Veröffentlichen Sie einen Artikel und lesen Sie var/log/mysite_hello.log.

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