A simple yet efficient publishing bundle.
Register the bundle to your 'app/AppKernel.php'
new Umanit\ContentPublicationBundle\UmanitContentPublicationBundle(),
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.
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.