Module Unicaen Evenement
Description
La bibliothèque unicaen/renderer
est en charge de la génération de contenus "génériques" basés sur des templates
et macros
.
Utilisation de la bibliothèque
Le service RenduService
fournit une méthode generateRenduByTemplateCode
en charge de générer un contenu avec le code d'un temmplate et un tableau de variables qui seront exploitées par les macros.
Le troisième paramètre permet de controller l'enregistrement du rendu en base de données.
$vars = ['variable1' => $variable1, ...];
$rendu = $this->getRenduService()->generateRenduByTemplateCode(Templates::MON_TEMPLATE, $vars, false);
echo $rendu->getSujet();
echo $rendu->getCorps();
Aides de vue founies
La biliothèque fournit un ViewHelper
pour l'affichage d'un rendu
echo $this->rendu($rendu);
Administration
La biliothèque fournit des interfaces d'administration pour le paramètre des macros et templates et le listing des rendus.
Le fichier config/unicae-renderer.global.dist.php
contient la déclaration des différents menus d'administration.
Tables et privilèges associés
Les tables et les privilèges sont fournis dans les fichiers suivants : SQL/001_tables.sql
et SQL/002_privileges.sql
.
Macro
Colonne | Attribut | Type | Descriptions |
---|---|---|---|
id | $id | serial PK | |
code | $code | varchar(256) | identifiant de la macro |
description | $description | text | |
variable_name | $variable | varchar(256) | nom de la variable utilisée par la macro |
methode_name | $methode | varchar(256) | nom de la méthode utilisée par la macro |
Remarque :
-
variable_name
est recherchée dans le tableau de variable (si non trouvée alors un warning est mis dans le renduvariable non trouvée
). -
methode_name
est appelé sur la variablevariable_name
comme suit$variable_name->methode_name()
(si non trouvée alors un warning est mis dans le renduméthode non trouvée
).
Template
Colonne | Attribut | Type | Descriptions |
---|---|---|---|
id | $id | serial PK | |
code | $code | varchar(256) | identifiant de la macro |
description | $description | text | |
namespace | $namespace | varchar(256) | Espace de "nom" du template |
document_type | $type | text | un type parmi 'text', 'mail', 'pdf' |
document_sujet | $sujet | text | Le sujet ou le nom du fichier |
document_corps | $corps | text | Le corps ou le contenu du fichier |
document_css | $css | text | Un snipet CSS pour la mise en forme |
Rendu
Colonne | Attribut | Type | Descriptions |
---|---|---|---|
id | $id | serial PK | |
template_id | $template | integer FK | identifiant du template utilisé |
date_generation | $date | timestamp | |
sujet | $sujet | text | Sujet "généré" |
corps | $corps | text | Corps "généré" |
CHANGELOG
6.0.3 (19/09/2023)
- Ajout du filtre des types de template sur l'index des template
- Ajout du filtre sur l'index des rendus (date + template)
- Amélioration de la documentation
5.0.5
- Ajout de la notion de namespace au template pour facilitité l'exploitation
Modification du schéma
5.0.5
alter table unicaen_renderer_template add namespace varchar(1024);
Dépendance à UnicaenPrivilege
-
Dans vendor/unicaen/renderer/config/merged/index.config.php, vendor/unicaen/renderer/config/merged/macro.config.php, vendor/unicaen/renderer/config/merged/rendu.config.php, vendor/unicaen/renderer/config/merged/template.config.php :
UnicaenPrivilege\Guard\PrivilegeController
pour les gardes liées aux actions. Peut être directement remplacer par l'equivalent fournit parunicaen/auth
. -
Dans vendor/unicaen/renderer/src/UnicaenRenderer/Provider/Privilege/DocumentcontenuPrivileges.php, vendor/unicaen/renderer/src/UnicaenRenderer/Provider/Privilege/DocumentmacroPrivileges.php, vendor/unicaen/renderer/src/UnicaenRenderer/Provider/Privilege/DocumenttemplatePrivileges.php :
UnicaenPrivilege\Provider\Privilege\Privileges
classe mère des privilèges du module. Peut être directement remplacer par l'equivalent fournit parunicaen/auth
. -
Utiliser UnicaenRenderer dans le cadre de UnicaenAuth, il faut écraser la config gérant les gardes de bjyauthoryze en ajoutant une config dans Application (par example
unicaen-renderer.config.php
)
<?php
use UnicaenPrivilege\Guard\PrivilegeController;
use UnicaenRenderer\Controller\IndexController;
use UnicaenRenderer\Controller\MacroController;
use UnicaenRenderer\Controller\RenduController;
use UnicaenRenderer\Controller\TemplateController;
use UnicaenRenderer\Provider\Privilege\DocumentcontenuPrivileges;
use UnicaenRenderer\Provider\Privilege\DocumentmacroPrivileges;
use UnicaenRenderer\Provider\Privilege\DocumenttemplatePrivileges;
return [
'bjyauthorize' => [
'guards' => [
PrivilegeController::class => [
[
'controller' => IndexController::class,
'action' => [
'index',
],
'privileges' => [
DocumentcontenuPrivileges::DOCUMENTCONTENU_INDEX,
DocumentmacroPrivileges::DOCUMENTMACRO_INDEX,
DocumenttemplatePrivileges::DOCUMENTTEMPLATE_INDEX
],
],
[
'controller' => MacroController::class,
'action' => [
'index',
'generer-json'
],
'privileges' => [
DocumentmacroPrivileges::DOCUMENTMACRO_INDEX,
],
],
[
'controller' => MacroController::class,
'action' => [
'ajouter',
],
'privileges' => [
DocumentmacroPrivileges::DOCUMENTMACRO_AJOUTER,
],
],
[
'controller' => MacroController::class,
'action' => [
'modifier',
],
'privileges' => [
DocumentmacroPrivileges::DOCUMENTMACRO_MODIFIER,
],
],
[
'controller' => MacroController::class,
'action' => [
'supprimer',
],
'privileges' => [
DocumentmacroPrivileges::DOCUMENTMACRO_SUPPRIMER,
],
],
[
'controller' => RenduController::class,
'action' => [
'index',
],
'privileges' => [
DocumentcontenuPrivileges::DOCUMENTCONTENU_INDEX,
],
],
[
'controller' => RenduController::class,
'action' => [
'afficher',
],
'privileges' => [
DocumentcontenuPrivileges::DOCUMENTCONTENU_AFFICHER,
],
],
[
'controller' => RenduController::class,
'action' => [
'supprimer',
],
'privileges' => [
DocumentcontenuPrivileges::DOCUMENTCONTENU_SUPPRIMER,
],
],
[
'controller' => TemplateController::class,
'action' => [
'index',
],
'privileges' => [
DocumenttemplatePrivileges::DOCUMENTTEMPLATE_INDEX,
],
],
[
'controller' => TemplateController::class,
'action' => [
'afficher',
],
'privileges' => [
DocumenttemplatePrivileges::DOCUMENTTEMPLATE_AFFICHER,
],
],
[
'controller' => TemplateController::class,
'action' => [
'ajouter',
],
'privileges' => [
DocumenttemplatePrivileges::DOCUMENTTEMPLATE_AJOUTER,
],
],
[
'controller' => TemplateController::class,
'action' => [
'modifier',
],
'privileges' => [
DocumenttemplatePrivileges::DOCUMENTTEMPLATE_MODIFIER,
],
],
[
'controller' => TemplateController::class,
'action' => [
'detruire',
],
'privileges' => [
DocumenttemplatePrivileges::DOCUMENTTEMPLATE_SUPPRIMER,
],
],
],
],
],
];