putyourlightson/craft-element-status-events

Element status events extension for Craft CMS.

2.0.0 2019-03-28 11:00 UTC

README

The Element Status Events extension provides events that are triggered whenever an element’s status changes. It is intended to be used a helper component for other Craft modules and plugins.

To get an understanding of how the module works, read the Challenge #6 – The Chicken or the Egg solution.

Requirements

This extension requires Craft CMS 3.0.0 or later.

Usage

Install it manually using composer or add it as a dependency to your plugin.

composer require putyourlightson/craft-element-status-events

If you work with scheduled Entries (future published or expired), make sure to set up cron that calls:

php craft element-status-events/scheduled

Events

Whenever an element’s status is changed, ElementStatusEvents::EVENT_STATUS_CHANGED is fired. The StatusChangeEvent object provides information about the change.


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');
    }
);

License

This extension is licensed for free under the MIT License.

Created by PutYourLightsOn in cooperation with Oliver Stark