Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork23
A plugin for Strapi Headless CMS that provides the ability provides the ability to easily schedule publishing and unpublishing of any content type.
License
pluginpal/strapi-plugin-publisher
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A plugin forStrapi that provides the ability to easily schedule publishing and unpublishing of any content type.
The installation requirements are the same as Strapi itself and can be found in the documentation on theQuick Start page in the Prerequisites info card.
- Strapi ^4.x.x (use
strapi-plugin-publisher@^1) - Strapi ^5.2.x (use
strapi-plugin-publisher@^2)
NOTE: While this plugin may work with the older Strapi versions, they are not supported, it is always recommended to use the latest version of Strapi.
npm install strapi-plugin-publisher
or
yarn add strapi-plugin-publisher
The plugin configuration is stored in a config file located at ./config/plugins.js. If this file doesn't exists, you will need to create it.
A sample configuration
module.exports=({ env})=>({// ..'publisher':{enabled:true,config:{hooks:{beforePublish:async({ strapi, uid, entity})=>{// Return false to prevent publish; any other value (or no return) allows itconsole.log('beforePublish');// return false},afterPublish:async({ strapi, uid, entity})=>{console.log('afterPublish');},beforeUnpublish:async({ strapi, uid, entity})=>{// Return false to prevent unpublish; any other value (or no return) allows itconsole.log('beforeUnpublish');// return false},afterUnpublish:async({ strapi, uid, entity})=>{console.log('afterUnpublish');},},},},// ..});
If you are using a TypeScript Strapi app with ESM and aconfig/plugins.ts file, you can configure the plugin like this:
importtype{Strapi}from'@strapi/strapi';exportdefault({ env}:{env:(key:string,def?:any)=>any})=>({publisher:{enabled:true,config:{hooks:{beforePublish:async({ strapi, uid, entity}:{strapi:Strapi;uid:string;entity:any})=>{// Return false to prevent publish; any other value (or no return) allows itconsole.log('beforePublish');// return false},afterPublish:async({ strapi, uid, entity}:{strapi:Strapi;uid:string;entity:any})=>{console.log('afterPublish');// Post-publish side effects},beforeUnpublish:async({ strapi, uid, entity}:{strapi:Strapi;uid:string;entity:any})=>{// Return false to prevent unpublish; any other value (or no return) allows itconsole.log('beforeUnpublish');// return false},afterUnpublish:async({ strapi, uid, entity}:{strapi:Strapi;uid:string;entity:any})=>{console.log('afterUnpublish');},},},},});
| Property | Description | Type | Default | Required |
|---|---|---|---|---|
| actions | Settings associated with any actions. | Object | {} | No |
| actions.syncFrequency | The frequency to check for actions to run. It is a cron expression | String | '*/1 * * * *' | No |
| components | Settings associated with any of the plugins components | Object | {} | No |
| components.dateTimePicker | Settings associated with the DateTimePicker component used to set action times | Object | {} | No |
| components.dateTimePicker.step | The step between the numbers displayed for the time section of the DateTimePicker | Number | 1 | No |
| components.dateTimePicker.locale | Allows to enforce another locale to change the date layout | String | browser locale | No |
| hooks.beforePublish | An async function that runs before a content type is published. Return false to cancel publish. | Function | () => {} | No |
| hooks.afterPublish | An async function that runs after a content type is published | Function | () => {} | No |
| hooks.beforeUnpublish | An async function that runs before a content type is un-published. Return false to cancel unpublish. | Function | () => {} | No |
| hooks.afterUnpublish | An async function that runs after a content type is un-published | Function | () => {} | No |
| contentTypes | A list of content type uids where the publish actions should be displayed | Array | All content types | No |
Thecron.enabled configuration option needs to be set to true inServer Configuration for the plugin to work.
Once the plugin has been installed, configured and enabled aPublisher section will be added to theinformations section of the edit view for all content types (single + collection) that havedraftAndPublish enabled. ThePublisher section will provide the ability to schedule publishing and unpublishing of the content type. The content type publication status is checked every minute.
If the Publisher section does not appear in the admin after the plugin is enabled then a clean rebuild of the admin is required. This can be done by deleting the generated
.cacheandbuildfolders and then re-running thedevelopcommand.
Navigate to the entity record that should be (un)published, under theinformations section click theAdd a (un)publish date button. Enter in the date and click save, the entity record will then be (un)published at the specified time.
Navigate to the entity record that requires its date changed, under theinformations section click theEdit (un)publish date button. Enter in the new date and click save.
Navigate to the entity record that contains the date that should be removed, under theinformations section click theDelete (un)publish date button.
If any bugs are found please report them as aGithub Issue
About
A plugin for Strapi Headless CMS that provides the ability provides the ability to easily schedule publishing and unpublishing of any content type.
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.




