Вы должны создать расширение, я назову его «yourextension», с новым типом события, я назову его «publishevent».
Примечание: если вы используете Ez Опубликовать до версии 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
ли это поможет?
спасибо за ответ, у меня есть сделал все это, но все же я не могу найти тексет, который я пишу в функции выполнения, используя eZLog :: write. – Mahmoud
Какой текст вы ищете @Mahmoud? –
Когда я создаю свой рабочий процесс, я добавляю эту строку '(eZLog :: write (« test »))' в моей функции execute, проблема в том, что я никогда не нахожу слово «test» в моем файле «common.log», что означает, что функция execute никогда не вызывается. И это потому, что я использовал мультиплексор Type для моего рабочего процесса Event (спасибо @ ADA15, я заметил это) – Mahmoud