Как настроить рабочий процесс в EZPublish?

Я работаю над проектом, который запрашивает очистку кешей после каждой публикации или обновления контента.
Дело в том, что обычно EZpublish делает это самостоятельно, но в моем случае этого не достаточно, поэтому я пытался сделать событие рабочего процесса, чтобы сделать это.

Я консультировался с этим руководство но я не могу вызвать функцию execute, которую создаю.

У кого-нибудь есть идея, как создать событие рабочего процесса, которое вызывается после публикации контента?

1

Решение

Вы можете проверить это tutoriel1 и это tutoriel2 о том, как создать рабочий процесс.
И при создании новой формы события интерфейс администратора ищет тип, который вы только что создали, а не предопределенные типы событий (мультиплексор, approuve ….)
Надеюсь, это поможет.

1

Другие решения

Вы должны создать расширение, я назову его «yourextension», с новым типом события, я назову его «publishevent».

Примечание: если вы используете eZ Publish до версии 5.0, вы должны пропустить «ezpublish_legacy /» в путях

ezpublish_legacy / продление / yourextension / eventtypes / событие / 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

В качестве примечания: знаете ли вы, что вы можете настроить, какой кэш содержимого истекает после публикации, используя так называемый «кэш интеллектуального просмотра»? Для этого есть INI-файл: viewcache.ini. Это немного загадочно, но достаточно хорошо документировано в онлайн-документах ez4.
Может быть, вы можете обойтись без использования этой функциональности и без пользовательских рабочих процессов?

Примечание 2: вы можете найти в расширении сообщества ezworkflowcollection множество полезных событий рабочего процесса, которые вы можете использовать для разных целей (даже если очистка кэша не входит в их число)

0
По вопросам рекламы [email protected]