Skip to content
Snippets Groups Projects
Commit f069c6be authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout de l'entity contenu et des controller/service liés

parent 61c6e37e
Branches
Tags
No related merge requests found
Pipeline #11022 passed
Showing
with 721 additions and 130 deletions
<?php
namespace UnicaenRenderer;
use UnicaenRenderer\Controller\ContenuController;
use UnicaenRenderer\Controller\ContenuControllerFactory;
use UnicaenRenderer\Service\Contenu\ContenuService;
use UnicaenRenderer\Service\Contenu\ContenuServiceFactory;
use UnicaenRenderer\Provider\Privilege\DocumentcontenuPrivileges;
use UnicaenPrivilege\Guard\PrivilegeController;
use UnicaenRenderer\View\Helper\ContenuViewHelper;
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;
return [
'bjyauthorize' => [
'guards' => [
PrivilegeController::class => [
[
'controller' => ContenuController::class,
'action' => [
'index',
],
'privileges' => [
DocumentcontenuPrivileges::DOCUMENTCONTENU_INDEX,
],
],
[
'controller' => ContenuController::class,
'action' => [
'afficher',
],
'privileges' => [
DocumentcontenuPrivileges::DOCUMENTCONTENU_AFFICHER,
],
],
[
'controller' => ContenuController::class,
'action' => [
'supprimer',
],
'privileges' => [
DocumentcontenuPrivileges::DOCUMENTCONTENU_SUPPRIMER,
],
],
],
],
],
'navigation' => [
'default' => [
'home' => [
'pages' => [
'administration' => [
'pages' => [
'contenu' => [
'pages' => [
'contenu' => [
'label' => 'Contenu',
'route' => 'contenu/contenu',
'resource' => PrivilegeController::getResourceId(ContenuController::class, 'index'),
'order' => 10003,
],
],
],
],
],
],
],
],
],
'router' => [
'routes' => [
'contenu' => [
'child_routes' => [
'contenu' => [
'type' => Literal::class,
'options' => [
'route' => '/contenu',
'defaults' => [
'controller' => ContenuController::class,
'action' => 'index',
],
],
'may_terminate' => true,
'child_routes' => [
'afficher' => [
'type' => Segment::class,
'options' => [
'route' => '/afficher/:contenu',
'defaults' => [
'controller' => ContenuController::class,
'action' => 'afficher',
],
],
],
'supprimer' => [
'type' => Segment::class,
'options' => [
'route' => '/supprimer/:contenu',
'defaults' => [
'controller' => ContenuController::class,
'action' => 'supprimer',
],
],
],
],
],
],
],
],
],
'service_manager' => [
'factories' => [
ContenuService::class => ContenuServiceFactory::class,
],
],
'form_elements' => [
'factories' => [],
],
'hydrators' => [
'factories' => [],
],
'controllers' => [
'factories' => [
ContenuController::class => ContenuControllerFactory::class,
]
],
'view_helpers' => [
'invokables' => [
'contenu' => ContenuViewHelper::class,
],
],
];
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
use UnicaenRenderer\Controller\IndexController; use UnicaenRenderer\Controller\IndexController;
use UnicaenRenderer\Controller\IndexControllerFactory; use UnicaenRenderer\Controller\IndexControllerFactory;
use UnicaenRenderer\Provider\Privilege\DocumentcontentPrivileges; use UnicaenRenderer\Provider\Privilege\DocumentcontenuPrivileges;
use UnicaenRenderer\Provider\Privilege\DocumentmacroPrivileges; use UnicaenRenderer\Provider\Privilege\DocumentmacroPrivileges;
use UnicaenRenderer\Provider\Privilege\DocumenttemplatePrivileges;
use UnicaenPrivilege\Guard\PrivilegeController; use UnicaenPrivilege\Guard\PrivilegeController;
use Zend\Router\Http\Literal; use Zend\Router\Http\Literal;
...@@ -17,8 +18,9 @@ return [ ...@@ -17,8 +18,9 @@ return [
'index', 'index',
], ],
'privileges' => [ 'privileges' => [
DocumentcontentPrivileges::DOCUMENTCONTENU_INDEX, DocumentcontenuPrivileges::DOCUMENTCONTENU_INDEX,
DocumentmacroPrivileges::DOCUMENTMACRO_INDEX, DocumentmacroPrivileges::DOCUMENTMACRO_INDEX,
DocumenttemplatePrivileges::DOCUMENTTEMPLATE_INDEX
], ],
], ],
], ],
......
...@@ -6,7 +6,7 @@ use UnicaenRenderer\Form\Template\TemplateForm; ...@@ -6,7 +6,7 @@ use UnicaenRenderer\Form\Template\TemplateForm;
use UnicaenRenderer\Form\Template\TemplateFormFactory; use UnicaenRenderer\Form\Template\TemplateFormFactory;
use UnicaenRenderer\Form\Template\TemplateHydrator; use UnicaenRenderer\Form\Template\TemplateHydrator;
use UnicaenRenderer\Form\Template\TemplateHydratorFactory; use UnicaenRenderer\Form\Template\TemplateHydratorFactory;
use UnicaenRenderer\Provider\Privilege\DocumentcontentPrivileges; use UnicaenRenderer\Provider\Privilege\DocumenttemplatePrivileges;
use UnicaenRenderer\Service\Template\TemplateService; use UnicaenRenderer\Service\Template\TemplateService;
use UnicaenRenderer\Service\Template\TemplateServiceFactory; use UnicaenRenderer\Service\Template\TemplateServiceFactory;
use UnicaenPrivilege\Guard\PrivilegeController; use UnicaenPrivilege\Guard\PrivilegeController;
...@@ -21,10 +21,18 @@ return [ ...@@ -21,10 +21,18 @@ return [
'controller' => TemplateController::class, 'controller' => TemplateController::class,
'action' => [ 'action' => [
'index', 'index',
],
'privileges' => [
DocumenttemplatePrivileges::DOCUMENTTEMPLATE_INDEX,
],
],
[
'controller' => TemplateController::class,
'action' => [
'afficher', 'afficher',
], ],
'privileges' => [ 'privileges' => [
DocumentcontentPrivileges::DOCUMENTCONTENU_INDEX, DocumenttemplatePrivileges::DOCUMENTTEMPLATE_AFFICHER,
], ],
], ],
[ [
...@@ -33,7 +41,7 @@ return [ ...@@ -33,7 +41,7 @@ return [
'ajouter', 'ajouter',
], ],
'privileges' => [ 'privileges' => [
DocumentcontentPrivileges::DOCUMENTCONTENU_AJOUTER, DocumenttemplatePrivileges::DOCUMENTTEMPLATE_AJOUTER,
], ],
], ],
[ [
...@@ -42,7 +50,7 @@ return [ ...@@ -42,7 +50,7 @@ return [
'modifier', 'modifier',
], ],
'privileges' => [ 'privileges' => [
DocumentcontentPrivileges::DOCUMENTCONTENU_MODIFIER, DocumenttemplatePrivileges::DOCUMENTTEMPLATE_MODIFIER,
], ],
], ],
[ [
...@@ -52,7 +60,7 @@ return [ ...@@ -52,7 +60,7 @@ return [
'restaurer', 'restaurer',
], ],
'privileges' => [ 'privileges' => [
DocumentcontentPrivileges::DOCUMENTCONTENU_HISTORISER, DocumenttemplatePrivileges::DOCUMENTTEMPLATE_HISTORISER,
], ],
], ],
[ [
...@@ -61,7 +69,7 @@ return [ ...@@ -61,7 +69,7 @@ return [
'detruire', 'detruire',
], ],
'privileges' => [ 'privileges' => [
DocumentcontentPrivileges::DOCUMENTCONTENU_SUPPRIMER, DocumenttemplatePrivileges::DOCUMENTTEMPLATE_SUPPRIMER,
], ],
], ],
], ],
...@@ -76,7 +84,7 @@ return [ ...@@ -76,7 +84,7 @@ return [
'pages' => [ 'pages' => [
'contenu' => [ 'contenu' => [
'pages' => [ 'pages' => [
'contenu' => [ 'template' => [
'label' => 'Template', 'label' => 'Template',
'route' => 'contenu/template', 'route' => 'contenu/template',
'resource' => PrivilegeController::getResourceId(TemplateController::class, 'index'), 'resource' => PrivilegeController::getResourceId(TemplateController::class, 'index'),
...@@ -95,7 +103,7 @@ return [ ...@@ -95,7 +103,7 @@ return [
'routes' => [ 'routes' => [
'contenu' => [ 'contenu' => [
'child_routes' => [ 'child_routes' => [
'contenu' => [ 'template' => [
'type' => Literal::class, 'type' => Literal::class,
'options' => [ 'options' => [
'route' => '/template', 'route' => '/template',
......
<?php
namespace UnicaenRenderer\Controller;
use UnicaenRenderer\Service\Contenu\ContenuServiceAwareTrait;
use Zend\Http\Request;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class ContenuController extends AbstractActionController {
use ContenuServiceAwareTrait;
public function indexAction()
{
$contenus = $this->getContenuService()->getContenus();
return new ViewModel([
'contenus' => $contenus,
]);
}
public function afficherAction()
{
$contenu = $this->getContenuService()->getRequestedContenu($this);
return new ViewModel([
'title' => "Affichage du contenu #" . $contenu->getId(),
'contenu' => $contenu,
]);
}
public function supprimerAction()
{
$contenu = $this->getContenuService()->getRequestedContenu($this);
/** @var Request $request */
$request = $this->getRequest();
if ($request->isPost()) {
$data = $request->getPost();
if ($data["reponse"] === "oui") {
$this->getContenuService()->delete($contenu);
}
exit();
}
$vm = new ViewModel();
if ($contenu !== null) {
$vm->setTemplate('unicaen-renderer/default/confirmation');
$vm->setVariables([
'title' => "Suppression du contenu [" . $contenu->getId() . "]",
'text' => "La suppression est définitive êtes-vous sûr&middot;e de vouloir continuer ?",
'action' => $this->url()->fromRoute('contenu/contenu/supprimer', ["contenu" => $contenu->getId()], [], true),
]);
}
return $vm;
}
}
\ No newline at end of file
<?php
namespace UnicaenRenderer\Controller;
use Interop\Container\ContainerInterface;
use UnicaenRenderer\Service\Contenu\ContenuService;
class ContenuControllerFactory {
public function __invoke(ContainerInterface $container)
{
/**
* @var ContenuService $contenuService
*/
$contenuService = $container->get(ContenuService::class);
$controller = new ContenuController();
$controller->setContenuService($contenuService);
return $controller;
}
}
\ No newline at end of file
<?php
namespace UnicaenRenderer\Entity\Db;
use DateTime;
use Zend\Permissions\Acl\Resource\ResourceInterface;
class Contenu implements ResourceInterface
{
const RESOURCE_ID = 'Contenu';
/**
* @return string
*/
public function getResourceId()
{
return self::RESOURCE_ID;
}
/** @var int */
private $id;
/** @var Template */
private $template;
/** @var DateTime */
private $date;
/** @var string */
private $sujet;
/** @var string */
private $corps;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @return Template
*/
public function getTemplate(): Template
{
return $this->template;
}
/**
* @param Template $template
* @return Contenu
*/
public function setTemplate(Template $template): Contenu
{
$this->template = $template;
return $this;
}
/**
* @return DateTime
*/
public function getDate(): DateTime
{
return $this->date;
}
/**
* @param DateTime $date
* @return Contenu
*/
public function setDate(DateTime $date): Contenu
{
$this->date = $date;
return $this;
}
/**
* @return string
*/
public function getSujet(): string
{
return $this->sujet;
}
/**
* @param string $sujet
* @return Contenu
*/
public function setSujet(string $sujet): Contenu
{
$this->sujet = $sujet;
return $this;
}
/**
* @return string
*/
public function getCorps(): string
{
return $this->corps;
}
/**
* @param string $corps
* @return Contenu
*/
public function setCorps(string $corps): Contenu
{
$this->corps = $corps;
return $this;
}
}
\ No newline at end of file
...@@ -11,9 +11,8 @@ class Macro implements HistoriqueAwareInterface , ResourceInterface ...@@ -11,9 +11,8 @@ class Macro implements HistoriqueAwareInterface , ResourceInterface
use HistoriqueAwareTrait; use HistoriqueAwareTrait;
const RESOURCE_ID = 'Macro'; const RESOURCE_ID = 'Macro';
/** /**
* Returns the string identifier of the Resource
*
* @return string * @return string
*/ */
public function getResourceId() public function getResourceId()
......
<?xml version="1.0" encoding="utf-8" ?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="UnicaenRenderer\Entity\Db\Contenu" table="unicaen_renderer_contenu">
<id name="id" column="id" type="integer">
<generator strategy="IDENTITY"/>
</id>
<many-to-one target-entity="UnicaenRenderer\Entity\Db\Template" field="template">
<join-column name="template_id" referenced-column-name="id"/>
</many-to-one>
<field name="date" column="date_generation" type="datetime" nullable="false"/>
<field name="sujet" column="sujet" type="string" length="9999" nullable="false" />
<field name="corps" column="corps" type="string" length="9999" nullable="false" />
</entity>
</doctrine-mapping>
\ No newline at end of file
...@@ -11,9 +11,8 @@ class Template implements HistoriqueAwareInterface, ResourceInterface ...@@ -11,9 +11,8 @@ class Template implements HistoriqueAwareInterface, ResourceInterface
use HistoriqueAwareTrait; use HistoriqueAwareTrait;
const RESOURCE_ID = 'Template'; const RESOURCE_ID = 'Template';
/** /**
* Returns the string identifier of the Resource
*
* @return string * @return string
*/ */
public function getResourceId() public function getResourceId()
......
<?php
namespace UnicaenRenderer\Provider\Privilege;
use UnicaenPrivilege\Entity\Db\Privilege;
use UnicaenPrivilege\Provider\Privilege\Privileges;
class DocumentcontentPrivileges extends Privileges
{
public static function getResourceId( $privilege )
{
if ($privilege instanceof Privilege){
$privilege = $privilege->getFullCode();
}
return 'privilege/'.$privilege;
}
const DOCUMENTCONTENU_INDEX = 'documentcontent-documentcontenu_index';
const DOCUMENTCONTENU_AJOUTER = 'documentcontent-documentcontenu_ajouter';
const DOCUMENTCONTENU_MODIFIER = 'documentcontent-documentcontenu_modifier';
const DOCUMENTCONTENU_HISTORISER = 'documentcontent-documentcontenu_historiser';
const DOCUMENTCONTENU_SUPPRIMER = 'documentcontent-documentcontenu_supprimer';
}
\ No newline at end of file
<?php
namespace UnicaenRenderer\Provider\Privilege;
use UnicaenPrivilege\Entity\Db\Privilege;
use UnicaenPrivilege\Provider\Privilege\Privileges;
class DocumentcontenuPrivileges extends Privileges
{
const DOCUMENTCONTENU_INDEX = 'documentcontenu-documentcontenu_index';
const DOCUMENTCONTENU_AFFICHER = 'documentcontenu-documentcontenu_afficher';
const DOCUMENTCONTENU_SUPPRIMER = 'documentcontenu-documentcontenu_supprimer';
}
\ No newline at end of file
<?php
namespace UnicaenRenderer\Provider\Privilege;
use UnicaenPrivilege\Entity\Db\Privilege;
use UnicaenPrivilege\Provider\Privilege\Privileges;
class DocumenttemplatePrivileges extends Privileges
{
const DOCUMENTTEMPLATE_INDEX = 'documentcontent-documenttemplate_index';
const DOCUMENTTEMPLATE_AJOUTER = 'documentcontent-documenttemplate_ajouter';
const DOCUMENTTEMPLATE_AFFICHER = 'documentcontent-documenttemplate_afficher';
const DOCUMENTTEMPLATE_MODIFIER = 'documentcontent-documenttemplate_modifier';
const DOCUMENTTEMPLATE_HISTORISER = 'documentcontent-documenttemplate_historiser';
const DOCUMENTTEMPLATE_SUPPRIMER = 'documentcontent-documenttemplate_supprimer';
}
\ No newline at end of file
<?php
namespace UnicaenRenderer\Service\Contenu;
use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\ORMException;
use Doctrine\ORM\QueryBuilder;
use UnicaenApp\Service\EntityManagerAwareTrait;
use UnicaenRenderer\Entity\Db\Contenu;
use Zend\Mvc\Controller\AbstractActionController;
class ContenuService {
use EntityManagerAwareTrait;
/** Gestion des entités *******************************************************************************************/
/**
* @param Contenu $contenu
* @return Contenu
*/
public function create(Contenu $contenu) : Contenu
{
try {
$this->getEntityManager()->persist($contenu);
$this->getEntityManager()->flush($contenu);
} catch (ORMException $e) {
throw new RuntimeException("Un problème est survenue lors de l'enregistrement en BD d'un Contenu.", $e);
}
return $contenu;
}
/**
* @param Contenu $contenu
* @return Contenu
*/
public function update(Contenu $contenu) : Contenu
{
try {
$this->getEntityManager()->flush($contenu);
} catch (ORMException $e) {
throw new RuntimeException("Un problème est survenue lors de l'enregistrement en BD d'un Contenu.", $e);
}
return $contenu;
}
/**
* @param Contenu $contenu
* @return Contenu
*/
public function delete(Contenu $contenu) : Contenu
{
try {
$this->getEntityManager()->remove($contenu);
$this->getEntityManager()->flush($contenu);
} catch (ORMException $e) {
throw new RuntimeException("Un problème est survenue lors de l'enregistrement en BD d'un Contenu.", $e);
}
return $contenu;
}
/** Requetages ****************************************************************************************************/
/**
* @return QueryBuilder
*/
public function createQueryBuilder() : QueryBuilder
{
$qb = $this->getEntityManager()->getRepository(Contenu::class)->createQueryBuilder('contenu')
->leftJoin('contenu.template', 'template')->addSelect('template');
return $qb;
}
/**
* @param string $champ
* @param string $ordre
* @return Contenu[]
*/
public function getContenus(string $champ = 'date', string $ordre = 'ASC') : array
{
$qb = $this->createQueryBuilder()
->orderBy('contenu.' . $champ, $ordre);
$result = $qb->getQuery()->getResult();
return $result;
}
/**
* @param int $id
* @return Contenu|null
*/
public function getContenu(int $id) : ?Contenu
{
$qb = $this->createQueryBuilder()
->andWhere('contenu.id = :id')
->setParameter('id', $id);
try {
$result = $qb->getQuery()->getOneOrNullResult();
} catch (NonUniqueResultException $e) {
throw new RuntimeException("Plusieurs Sursis partagent le même id [".$id."]",0,$e);
}
return $result;
}
/**
* @param AbstractActionController $controller
* @param string $param
* @return Contenu|null
*/
public function getRequestedContenu(AbstractActionController $controller, string $param='contenu') : ?Contenu
{
$id = $controller->params()->fromRoute($param);
$result = $this->getContenu($id);
return $result;
}
}
<?php
namespace UnicaenRenderer\Service\Contenu;
trait ContenuServiceAwareTrait {
/** @var ContenuService */
private $contenuService;
/**
* @return ContenuService
*/
public function getContenuService(): ContenuService
{
return $this->contenuService;
}
/**
* @param ContenuService $contenuService
* @return ContenuService
*/
public function setContenuService(ContenuService $contenuService): ContenuService
{
$this->contenuService = $contenuService;
return $this->contenuService;
}
}
\ No newline at end of file
<?php
namespace UnicaenRenderer\Service\Contenu;
use Doctrine\ORM\EntityManager;
use Interop\Container\ContainerInterface;
class ContenuServiceFactory {
/**
* @param ContainerInterface $container
* @return ContenuService
*/
public function __invoke(ContainerInterface $container) : ContenuService
{
/**
* @var EntityManager $entityManager
*/
$entityManager = $container->get('doctrine.entitymanager.orm_default');
$service = new ContenuService();
$service->setEntityManager($entityManager);
return $service;
}
}
\ No newline at end of file
<?php
namespace UnicaenRenderer\View\Helper;
use Application\View\Renderer\PhpRenderer;
use UnicaenRenderer\Entity\Db\Contenu;
use Zend\View\Helper\AbstractHelper;
use Zend\View\Helper\Partial;
use Zend\View\Resolver\TemplatePathStack;
class ContenuViewHelper extends AbstractHelper
{
/**
* @param Contenu $contenu
* @param array $options
* @return string|Partial
*/
public function __invoke(Contenu $contenu, array $options = [])
{
/** @var PhpRenderer $view */
$view = $this->getView();
$view->resolver()->attach(new TemplatePathStack(['script_paths' => [__DIR__ . "/partial"]]));
return $view->partial('contenu', ['contenu' => $contenu, 'options' => $options]);
}
}
\ No newline at end of file
<?php
/**
* @see \UnicaenRenderer\View\Helper\ContenuViewHelper
* @var Contenu $contenu
* @var array $options
*/
use UnicaenRenderer\Entity\Db\Contenu;
?>
<div class="row">
<div class="col-md-4">
<dl>
<dt> Identifiant </dt>
<dd>
<?php echo $contenu->getId(); ?>
</dd>
<dt> Template </dt>
<dd>
<?php if ($contenu->getTemplate()) : ?>
<?php echo $contenu->getTemplate()->getCode(); ?>
<?php else: ?>
<i>Aucun template associé</i>
<?php endif; ?>
</dd>
<dt> Date de génération </dt>
<dd>
<?php echo $contenu->getDate()->format('d/m/Y'); ?>
</dd>
</dl>
</div>
<div class="col-md-8">
<div class="panel panel-default">
<div class="panel-heading">
<?php echo $contenu->getSujet(); ?>
</div>
<div class="panel-body">
<?php echo $contenu->getCorps(); ?>
</div>
</div>
</div>
</div>
\ No newline at end of file
<?php <?php
use UnicaenRenderer\Entity\Db\Content; use UnicaenRenderer\Entity\Db\Contenu;
/** /**
* @see \UnicaenRenderer\Controller\ContenuController::afficherAction() * @see \UnicaenRenderer\Controller\ContenuController::afficherAction()
* @var Content $contenu * @var Contenu $contenu
*/ */
$this->headTitle("Affichage du contenu #" . $contenu->getId());
?> ?>
<dl class="dl-horizontal"> <?php echo $this->contenu($contenu); ?>
<dt> Code </dt>
<dd> <?php echo $contenu->getCode(); ?> </dd>
<dt> Type </dt>
<dd> <?php echo $contenu->getType(); ?> </dd>
<?php if ($contenu->getDescription()) : ?>
<dt> Description </dt>
<dd> <br/>
<div style="border:1px solid black; border-radius: 5px; padding:0.5rem;"><?php echo $contenu->getComplement(); ?>
<?php echo $contenu->getDescription(); ?> </div>
</dd>
<?php endif; ?>
<dt> Complément </dt>
<dd> <br/>
<div style="border:1px solid black; border-radius: 5px; padding:0.5rem;"><?php echo $contenu->getComplement(); ?>
<?php echo $contenu->getComplement(); ?> </div>
</dd>
<dt> Contenu </dt>
<dd> <br/>
<div style="border:1px solid black; border-radius: 5px; padding:0.5rem;"><?php echo $contenu->getComplement(); ?>
<?php echo $contenu->getContent(); ?> </div>
</dd>
</dl>
<?php <?php
use UnicaenRenderer\Entity\Db\Contenu;
use UnicaenRenderer\Provider\Privilege\DocumentcontenuPrivileges;
/** /**
* @see \UnicaenRenderer\Controller\ContenuController::indexAction() * @see \UnicaenRenderer\Controller\ContenuController::indexAction()
* @var Content[] $contenus * @var Contenu[] $contenus
*/ */
use UnicaenRenderer\Entity\Db\Content;
use UnicaenRenderer\Provider\Privilege\DocumentcontentPrivileges;
$canAjouter = $this->isAllowed(DocumentcontentPrivileges::getResourceId(DocumentcontentPrivileges::DOCUMENTCONTENU_AJOUTER));
$canAfficher = $this->isAllowed(DocumentcontentPrivileges::getResourceId(DocumentcontentPrivileges::DOCUMENTCONTENU_INDEX));
$canModifier = $this->isAllowed(DocumentcontentPrivileges::getResourceId(DocumentcontentPrivileges::DOCUMENTCONTENU_MODIFIER));
$canHistoriser = $this->isAllowed(DocumentcontentPrivileges::getResourceId(DocumentcontentPrivileges::DOCUMENTCONTENU_HISTORISER));
$canDetruire = $this->isAllowed(DocumentcontentPrivileges::getResourceId(DocumentcontentPrivileges::DOCUMENTCONTENU_SUPPRIMER));
$this->isAllowed(null, DocumentcontentPrivileges::DOCUMENTCONTENU_AJOUTER);
$this->headTitle("Index des contenus"); $this->headTitle("Index des contenus");
$canVoir = $this->isAllowed(DocumentcontenuPrivileges::getResourceId(DocumentcontenuPrivileges::DOCUMENTCONTENU_AFFICHER));
$canSupprimer = $this->isAllowed(DocumentcontenuPrivileges::getResourceId(DocumentcontenuPrivileges::DOCUMENTCONTENU_SUPPRIMER));
?> ?>
<h1 class="page-header"> <h1 class="page-header">
Index des contenus Index des contenus
<span class="badge"><?php echo count($contenus); ?> </span>
</h1> </h1>
<?php if ($canAjouter) : ?> <table class="table table-condensed table-hover">
<a href="<?php echo $this->url('contenu/contenu/ajouter', [], [], true); ?>"
class="btn btn-primary action ajax-modal" data-event="modification">
<span class="icon ajouter"></span>
Ajouter un contenu
</a>
<?php endif; ?>
<table class="table table-condensed">
<thead> <thead>
<tr> <tr>
<th> Code </th> <th> Id </th>
<th> Type </th> <th> Template </th>
<th> Date de génération </th>
<th> Sujet </th>
<th> Action </th> <th> Action </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php foreach ($contenus as $contenu) : ?> <?php foreach ($contenus as $contenu) : ?>
<tr class="<?php if ($contenu->estHistorise()) echo 'historise '; ?>"> <tr>
<td> <?php echo $contenu->getId(); ?> </td>
<td> <td>
<?php echo $contenu->getCode(); ?> <?php if ($contenu->getTemplate()) : ?>
<?php if ($contenu->getDescription() !== null) : ?> <?php echo $contenu->getTemplate()->getCode(); ?>
<span class="icon information" title="<?php echo $contenu->getDescription(); ?>" data-toggle="tooltip" data-html="true"></span>
<?php endif; ?> <?php endif; ?>
</td> </td>
<td> <?php echo $contenu->getDate()->format('d/m/Y à H:i:s'); ?> </td>
<td> <td>
<span class="icon <?php echo $contenu->getType(); ?>"></span> <span title="<?php echo $contenu->getSujet(); ?>" data-toggle="tooltip" data-html="true">
<?php
$sujet = $contenu->getSujet();
if (strlen($sujet) > 50) $sujet = substr($contenu->getSujet(), 0, 46) . " ...";
echo $sujet;
?>
</span>
</td> </td>
<td> <td>
<?php if ($canAfficher) : ?> <?php if ($canVoir) : ?>
<?php /** @see \UnicaenRenderer\Controller\ContenuController::afficherAction() */?>
<a href="<?php echo $this->url('contenu/contenu/afficher', ['contenu' => $contenu->getId()], [], true); ?>" <a href="<?php echo $this->url('contenu/contenu/afficher', ['contenu' => $contenu->getId()], [], true); ?>"
title="Afficher le contenu" data-toggle="tooltip" data-html="true"
class="ajax-modal" class="ajax-modal"
> >
<span class="icon voir"></span></a> <span class="icon voir"></span></a>
<?php endif; ?> <?php endif; ?>
<?php if ($canModifier) : ?> <?php if ($canSupprimer) : ?>
<a href="<?php echo $this->url('contenu/contenu/modifier', ['contenu' => $contenu->getId()], [], true); ?>" <?php /** @see \UnicaenRenderer\Controller\ContenuController::supprimerAction() */?>
class="ajax-modal" data-event="modification" <a href="<?php echo $this->url('contenu/contenu/supprimer', ['contenu' => $contenu->getId()], [], true); ?>"
> title="Afficher le contenu" data-toggle="tooltip" data-html="true"
<span class="icon editer"></span></a>
<?php endif; ?>
<?php if ($canHistoriser) : ?>
<?php if ($contenu->estNonHistorise()) : ?>
<a href="<?php echo $this->url('contenu/contenu/historiser', ['contenu' => $contenu->getId()], [], true); ?>"
>
<span class="icon historiser"></span></a>
<?php else : ?>
<a href="<?php echo $this->url('contenu/contenu/restaurer', ['contenu' => $contenu->getId()], [], true); ?>"
>
<span class="icon restaurer"></span></a>
<?php endif; ?>
<?php endif; ?>
<?php if ($canDetruire) : ?>
<a href="<?php echo $this->url('contenu/contenu/detruire', ['contenu' => $contenu->getId()], [], true); ?>"
class="ajax-modal" data-event="modification" class="ajax-modal" data-event="modification"
> >
<span class="icon detruire"></span></a> <span class="icon detruire"></span></a>
......
<?php <?php
use UnicaenRenderer\Provider\Privilege\DocumentcontenuPrivileges;
use UnicaenRenderer\Provider\Privilege\DocumentmacroPrivileges;
use UnicaenRenderer\Provider\Privilege\DocumenttemplatePrivileges;
/** /**
* @see \UnicaenRenderer\Controller\IndexController::indexAction() * @see \UnicaenRenderer\Controller\IndexController::indexAction()
*/ */
$this->headTitle("Index des modules de gestion des contenus"); $this->headTitle("Index des modules de gestion des contenus");
$canContenu = $this->isAllowed(DocumentcontenuPrivileges::getResourceId(DocumentcontenuPrivileges::DOCUMENTCONTENU_INDEX));
$canMacro = $this->isAllowed(DocumentmacroPrivileges::getResourceId(DocumentmacroPrivileges::DOCUMENTMACRO_INDEX));
$canTemplate = $this->isAllowed(DocumenttemplatePrivileges::getResourceId(DocumenttemplatePrivileges::DOCUMENTTEMPLATE_INDEX));
?> ?>
<h1 class="page-header"> <h1 class="page-header">
...@@ -15,6 +24,7 @@ $this->headTitle("Index des modules de gestion des contenus"); ...@@ -15,6 +24,7 @@ $this->headTitle("Index des modules de gestion des contenus");
Ce module permet de gérer un ensemble de contenus utilisables en tant que chaîne de caractères insérables (texte ou pdf). Ce module permet de gérer un ensemble de contenus utilisables en tant que chaîne de caractères insérables (texte ou pdf).
</p> </p>
<?php if ($canMacro) : ?>
<h2> Gestion des macros </h2> <h2> Gestion des macros </h2>
<div class="row"> <div class="row">
...@@ -30,13 +40,34 @@ $this->headTitle("Index des modules de gestion des contenus"); ...@@ -30,13 +40,34 @@ $this->headTitle("Index des modules de gestion des contenus");
</a> </a>
</div> </div>
</div> </div>
<?php endif; ?>
<?php if ($canTemplate) : ?>
<h2> Gestion des templates </h2>
<div class="row">
<div class="col-md-8">
<p>
Listing des templates et modification de ceux-ci.
</p>
</div>
<div class="pull-right">
<a href="<?php echo $this->url('contenu/template'); ?>" class="btn btn-primary action">
<span class="icon index"></span>
Gestion des templates
</a>
</div>
</div>
<?php endif; ?>
<?php if ($canContenu) : ?>
<h2> Gestion des contenus </h2> <h2> Gestion des contenus </h2>
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
<p> <p>
Listing des contenus et modification de ceux-ci. Listing des contenus.
</p> </p>
</div> </div>
<div class="pull-right"> <div class="pull-right">
...@@ -46,3 +77,4 @@ $this->headTitle("Index des modules de gestion des contenus"); ...@@ -46,3 +77,4 @@ $this->headTitle("Index des modules de gestion des contenus");
</a> </a>
</div> </div>
</div> </div>
<?php endif; ?>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment