Commit 4e4863cb authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

- Possibilité d'utiliser 2 autres moteurs de template : Laminas (PhpRenderer) et Twig.

- Apparition de macros utilitaires (Page#SautDePage, Log#Date, Log#DateEtHeure) alimentées par des variables injectées systématiquement.
- Création du CHANGELOG.md en bonne et due forme.
parent 63d8d47e
Loading
Loading
Loading
Loading
Loading

CHANGELOG.md

0 → 100644
+21 −0
Original line number Diff line number Diff line
CHANGELOG
=========

7.0.0
-----

- Possibilité d'utiliser 2 autres moteurs de template : Laminas (PhpRenderer) et Twig.
- Apparition de macros utilitaires (Page#SautDePage, Log#Date, Log#DateEtHeure) alimentées par des variables injectées systématiquement.
- Création du CHANGELOG.md en bonne et due forme.

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
+32 −12
Original line number Diff line number Diff line
@@ -6,6 +6,22 @@ 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`. 

La version 7.0.0 introduit la notion de _moteur de template_ (engine).
Plusieurs moteurs de template sont proposés, c'est à dire plusieurs formats d'écriture : 
- le moteur par défaut : 
  - c'est le moteur historique et le plus facile pour un utlisateur "métier",
  - l'éditeur WYSIWYG TinyMCE est activé pour que l'utilisateur rédige et mette en forme
    presque tout seul le corps et le sujet du template,
  - les macros insérées sont de la forme `VAR[Aaaaa#bbbbb]` ;
- le moteur Laminas (PhpRenderer) :
  - c'est le moteur standard du wramework Lamimas
  - la rédaction du template se fait manuellement au format HTML,
  - les macros insérées sont de la forme `<?php echo $aaaa->bbbbb() ?>` ;
- le moteur Twig (https://twig.symfony.com) :
  - la rédaction du template se fait manuellement au format HTML,
  - les macros insérées sont de la forme `{{ ... }}` ;


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.
@@ -79,18 +95,6 @@ Rendu
| 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
----------------------

@@ -99,6 +103,22 @@ Modification du schéma
alter table unicaen_renderer_template add namespace varchar(1024);
```

**7.0.0**
```sql
-- nouvelle colonne pour le moteur de template
create type template_engine_enum as enum('default', 'laminas', 'twig');
alter table unicaen_renderer_template
   add engine template_engine_enum default 'default' not null;

-- macros utilitaires (pas d'injection de variable nécessaire)
insert into unicaen_renderer_macro (code, description, variable_name, methode_name)
values ('Page#SautDePage', 'Saut de page', '__page', 'getSautDePage');
insert into unicaen_renderer_macro (code, description, variable_name, methode_name)
values ('Log#Date', 'Date du jour', '__log', 'getDate');
insert into unicaen_renderer_macro (code, description, variable_name, methode_name)
values ('Log#DateEtHeure', 'Date et heure du jour', '__log', 'getDateEtHeure');
```

Dépendance à **UnicaenPrivilege**
----------------------------------

+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ create table unicaen_renderer_template
    code varchar(256) not null,
    description text,
    namespace varchar(1024),
    engine varchar(64) default 'default' not null,
    document_type varchar(256) not null,
    document_sujet text not null,
    document_corps text not null,
+3 −1
Original line number Diff line number Diff line
@@ -9,7 +9,9 @@
  ],
  "require": {
    "php": "^8.0",
    "unicaen/privilege": "^6.0"
    "laminas/laminas-view": "^2.27",
    "twig/twig": "^3.8",
    "unicaen/privilege": "^6.0",
  },
  "minimum-stability": "dev",
  "prefer-stable": true,
+7 −2
Original line number Diff line number Diff line
<?php

namespace UnicaenRenderer;

use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
use UnicaenPrivilege\Guard\PrivilegeController;
@@ -12,6 +14,8 @@ use UnicaenRenderer\Form\Template\TemplateHydratorFactory;
use UnicaenRenderer\Provider\Privilege\DocumenttemplatePrivileges;
use UnicaenRenderer\Service\Template\TemplateService;
use UnicaenRenderer\Service\Template\TemplateServiceFactory;
use UnicaenRenderer\Service\TemplateEngineManager\TemplateEngineManager;
use UnicaenRenderer\Service\TemplateEngineManager\TemplateEngineManagerFactory;

return [
    'bjyauthorize' => [
@@ -92,9 +96,9 @@ return [
                                ],
                            ],
                            'ajouter' => [
                                'type' => Literal::class,
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/ajouter',
                                    'route' => '/ajouter[/:engine]',
                                    'defaults' => [
                                        'controller' => TemplateController::class,
                                        'action' => 'ajouter',
@@ -131,6 +135,7 @@ return [
    'service_manager' => [
        'factories' => [
            TemplateService::class => TemplateServiceFactory::class,
            TemplateEngineManager::class => TemplateEngineManagerFactory::class,
        ],
    ],
    'form_elements' => [
Loading