Pimcore, как обнаружить сохранить и опубликовать
В Pimcore 5 я хотел бы что-то сделать (например, отправить электронное письмо), когда пользователь нажмет "сохранить и опубликовать". Как я могу подключить это событие?
0 ответов
Я не думаю, что событие происходит при нажатии кнопки Сохранить и опубликовать. Но когда вы сохраняете документ / объект / актив, запускается жизненный цикл обновления. Поэтому, если вы подключитесь к preUpdate, вы можете проверить наличие $e->getDocument()->isPublished(), и вы получите фактическое состояние, если оно будет опубликовано. Недостатком этого является то, что, если он уже был опубликован, и вы нажмете на него снова, это также сработает Однако вы можете сохранить флаг, если отправите свое электронное письмо или что-то еще, и проверить его при сохранении. (Я думаю, что это было бы, как я бы это сделал)
Надеюсь это поможет.
Приветствия Ремо
приложение / Config / services.yml
services:
AppBundle\EventListener\TestListener:
tags:
- { name: kernel.event_listener, event: pimcore.asset.preUpdate, method: onPreUpdate }
Файл: src/AppBundle/EventListener/TestListener
namespace AppBundle\EventListener;
use Pimcore\Event\Model\ElementEventInterface;
use Pimcore\Event\Model\DataObjectEvent;
use Pimcore\Event\Model\AssetEvent;
use Pimcore\Event\Model\DocumentEvent;
class TestListener {
public function onPreUpdate (ElementEventInterface $e) {
if($e instanceof AssetEvent) {
// do something with the asset
$foo = $e->getAsset();
} else if ($e instanceof DocumentEvent) {
// do something with the document
$foo = $e->getDocument();
} else if ($e instanceof DataObjectEvent) {
// do something with the object
$foo = $e->getObject();
$foo->setMyValue(microtime(true));
// we don't have to call save here as we are in the pre-update event anyway ;-)
}
}
}
Вы можете проверить на $e->getAsset()->isPublished();