restruct/silverstripe-softscheduler

Adds a very simple way to schedule (Embargo/Expire) SiteTree items

Installs: 83

Dependents: 0

Suggesters: 1

Security: 0

Stars: 0

Watchers: 5

Forks: 0

Open Issues: 0

Type:silverstripe-vendormodule

2.0 2021-05-11 04:28 UTC

This package is auto-updated.

Last update: 2024-12-20 12:43:47 UTC


README

#SoftScheduler

##non-cron Embargo & Expiry Module

This module allows you to specify when a page should become available (embargo) and when it should expire. It's called 'softscheduler' because it doesn't take care of publishing or unpublishing pages. Instead it checks if a published page should be available according to its set embargo/expire dates.

  • Someone that is logged in as an admin will always be able to see the page.
  • Setting both values as blank will mean the page is always visible.
  • If the embargo time and/or date are blank, the page will be displayed until it expires.
  • If the expiry time and/or date are blank, the page will be displayed once it embargos, and wont expire.

Screenshots

Schedule pages to become available/expire on certain dates & times

Installation

composer require micschk/silverstripe-softscheduler dev-master

Apply as Extension to pagetypes requiring scheduling (eg. NewsItems)

---
name: 'schedulerextension'
---
NewsGridPage:
  extensions:
    - Restruct\SoftScheduler\Extensions\EmbargoExpirySchedulerExtension

##Usage Overview

This doesn't work with staticpublisher and requires extra check to work well with partialcaching

Check for use in partialcaching: $publishedStatus

Convenience function is supplied to add extra 'where' for DB queries (TODO: apply via augmentSQL, see for example)

// workaround for Embargo/Expiry (augmentSQL for embargo/expiry is not working yet);
if( $class::has_extension(EmbargoExpirySchedulerExtension::class) ){
	$items = $items->where( EmbargoExpirySchedulerExtension::extraWhereQuery($class) );
}

##Requirements

SilverStripe 4.0+