如何在EZPublish中配置工作流程?

时间:2016-09-30 13:28:20

标签: php workflow ezpublish

我正在开发一个项目,在每次内容发布或更新后请求清除缓存。 问题通常是EZpublish本身就是这样做的,但在我的情况下它并不适用,所以我试图做的是制作工作流事件来做到这一点。

我已经咨询了这个tutorial,但我无法调用我创建的执行函数。

有人知道如何创建在内容发布后调用的工作流事件吗?

3 个答案:

答案 0 :(得分:1)

你必须创建一个扩展名,我会称之为#34; yourextension",使用新的事件类型,我会称之为" publishevent"。

注意:如果您在5.0版之前使用eZ Publish,则必须省略" ezpublish_legacy /"在路径

ezpublish_legacy /扩展/ yourextension /事件类型/事件/ publishevent / publisheventtype.php:

<?php

/**
 * Class PublishEventType
 */
class PublishEventType extends eZWorkflowEventType
{
    function __construct()
    {
        $this->eZWorkflowEventType( 'publishevent', 'description of what you are doing' );
        $this->setTriggerTypes( array(
            'content' => array(
                'publish' => array( 'after' ),
            )
        ) );
    }

    /**
     * This is where your code goes
     *
     * @param eZWorkflowProcess $process
     * @param eZWorkflowEvent $event
     * @return int
     */
    function execute( $process, $event )
    {
        $parameters = $process->attribute( 'parameter_list' );

        if ( isset( $parameters['object_id'] ) && isset( $parameters['version'] ) )
        {
            $objectId = (int) $parameters['object_id'];
            $version = (int) $parameters['version'];

            // your code goes here
        }

        return eZWorkflowType::STATUS_ACCEPTED;
    }
}

eZWorkflowEventType::registerEventType( 'publishevent', 'PublishEventType' );

ezpublish_legacy /扩展/ yourextension /设置/ workflow.ini.append.php:

<?php /*

[EventSettings]
ExtensionDirectories[]=yourextension
AvailableEventTypes[]=event_publishevent

*/

不要忘记激活您的新扩展程序。

ezpublish_legacy /设置/超驰/ site.ini.append.php:

[ExtensionSettings]
ActiveExtensions[]=yourextension

这对你有帮助吗?

答案 1 :(得分:1)

您可以查看有关如何创建工作流的tutoriel1 和此tutoriel2。 在创建新事件时,管理界面会查找您创建了juste的Type,而不是预先设定的事件类型(多路复用器,approuve ......) 希望这有帮助。

答案 2 :(得分:0)

作为旁注:您是否知道可以使用所谓的“智能视图缓存”调整哪些内容的缓存在发布时过期?有一个ini文件:viewcache.ini。这有点神秘,但在网上的ez4文档中有相当详细的记录。 也许你可以逃脱使用这个功能而没有自定义工作流程?

附注2:您可以查找社区扩展ezworkflowcollection以获取可用于不同事物的许多有用的工作流事件(即使缓存清除不是其中之一)