putyourlightson / craft-element-status-events
Element status events extension for Craft CMS.
Installs: 990
Dependents: 0
Suggesters: 0
Security: 0
Stars: 13
Watchers: 3
Forks: 6
Open Issues: 0
Type:yii2-extension
Requires
- craftcms/cms: ^3.0.0
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