putyourlightson/craft-element-status-events

为Craft CMS提供元素状态事件扩展。

2.0.1 2022-04-26 12:40 UTC

This package is auto-updated.

Last update: 2024-08-26 18:24:30 UTC


README

元素状态事件扩展提供了在元素状态改变时触发的事件。它旨在作为其他Craft模块和插件的辅助组件使用。

要了解模块的工作方式,请阅读挑战#6 – 鸡生蛋还是蛋生鸡的解决方案。

需求

此扩展需要Craft CMS 3.0.0或更高版本。

使用方法

使用composer手动安装或将其添加为插件依赖项。

composer require putyourlightson/craft-element-status-events

如果您处理计划中的条目(未来发布或过期),请确保设置cron调用

php craft element-status-events/scheduled

事件

每当元素的状祝改变时,都会触发ElementStatusEvents::EVENT_STATUS_CHANGEDStatusChangeEvent对象提供了有关更改的信息。

use putyourlightson\elementstatusevents\ElementStatusEvents;
use putyourlightson\elementstatusevents\events\StatusChangeEvent;

// ...

Event::on(
    ElementStatusEvents::class, 
    ElementStatusEvents::EVENT_STATUS_CHANGED, 
    function(StatusChangeEvent $event) {
        $oldStatus   = $event->statusBeforeSave;
        $newStatus   = $event->element->getStatus();
        $isLive      = $event->changedToPublished();
        $isDeath     = $event->changedToUnpublished();
        $isScheduled = $event->changedTo('pending');
    }
);

许可

此扩展在MIT许可证下免费提供。

PutYourLightsOnOliver Stark合作创建