umanit / content-publication-bundle
A simple yet efficient publishing bundle.
Installs: 1 619
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 7
Forks: 2
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^7.4|^8.0
- doctrine/doctrine-bundle: ^2.7
- doctrine/orm: ^2.13
- symfony/framework-bundle: ^5.4|^6.0
README
A simple yet efficient publishing bundle.
Install
Register the bundle to your 'app/AppKernel.php'
new Umanit\ContentPublicationBundle\UmanitContentPublicationBundle(),
Usage
Make your entity publishable
Implement the interface PublishableInterface
and use the trait PublishableTrait
.
<?php namespace App\Entity\Content; use Doctrine\ORM\Mapping as ORM; use Umanit\ContentPublicationBundle\Doctrine\Model\PublishableInterface; use Umanit\ContentPublicationBundle\Doctrine\Model\PublishableTrait; #[ORM\Table(name: 'news')] #[ORM\Entity] class News implements PublishableInterface { use PublishableTrait; }
This will add two fields to your entity, publishDate
and unpublishDate
.
All your content will then be displayed only when the current datetime is between those fields.
(Optional) Disable the filter for a specific firewall
Usually you'll need to administrate your contents.
For doing so, you can disable the filter by configuring the disabled_firewalls
option.
# config/packages/umanit_content_publication.yaml umanit_content_publication: disabled_firewalls: ['admin']
To follow this example, you'll need to add the admin
firewall to your `security.yml file.
Check out the Symfony documentation for more details.