Skip to content

MelisDemoCms ​

Le site de référence et de démonstration officiel de Melis Platform — un module de site prêt à installer qui montre aux développeurs comment un site front-office Melis est architecturé. Paquet melisplatform/melis-demo-cms.

Présentation ​

MelisDemoCms est un site web front-office complet et installable (melis-site: true, type: melisplatform-module, catégorie cms). Ce n'est pas un outil de back-office : ses pages, contrôleurs et gabarits de plugins illustrent les trois techniques de composition de contenu — placement manuel de plugins, zones de drag-and-drop et balises éditables en ligne — en s'appuyant sur MelisFront, MelisEngine et les modules de contenu CMS (slider, actualités, prospects). À utiliser comme implémentation de référence pour construire un site.

Activation ​

MelisDemoCms est un module de site Laminas installé sous module/MelisSites/MelisDemoCms/ par les installer-paths de Composer. Son propre config/module.load.php déclare les modules qu'il attend à ses côtés :

php
// vendor/melisplatform/melis-demo-cms/config/module.load.php
'MelisAssetManager', 'MelisEngine', 'MelisFront',
'MelisCmsNews', 'MelisCmsSlider', 'MelisCmsProspects',
'MelisDemoCms', 'MelisCmsPageScriptEditor'

Dépendances Composer requises : melis-cms, melis-cms-slider, melis-cms-prospects, melis-cms-news, melis-cms-page-script-editor (^5.2). melis-engine et melis-front sont suggérés (et requis à l'exécution). Le site est activé pour un domaine en définissant la variable d'environnement vhost MELIS_MODULE "MelisDemoCms".

Services principaux ​

Alias de serviceRôle
DemoCmsServiceAides propres au site, utilisées par les contrôleurs front et les listeners d'installation.
MelisPlatformTableTable gateway générique sur la table centrale de la plateforme (MelisEngine\Model\Tables\MelisGenericTable, clé primaire plf_id).

Back-office ​

Ce module n'ajoute aucune entrée dans l'arbre des outils du back-office. Sa seule surface back-office est l'assistant de mise en place du site utilisé par la marketplace / l'installeur : contrôleurs MelisDemoCms\Controller\MelisSetupController (route /MelisDemoCms/setup), MelisSetupPostDownloadController et MelisSetupPostUpdateController. La configuration de setup se trouve dans config/setup/download.config.php et config/setup/update.config.php.

Front office ​

Le site est piloté par de simples contrôleurs de site MelisFront, un par type de page :

ContrôleurPage
MelisDemoCms\Controller\HomeAccueil (carrousel + slider secondaire, témoignages, bannière RGPD)
MelisDemoCms\Controller\NewsListe / détail des actualités
MelisDemoCms\Controller\TeamÉquipe
MelisDemoCms\Controller\ServicesListe / détail des services
MelisDemoCms\Controller\FaqListe FAQ et blocs par catégorie
MelisDemoCms\Controller\ContactContact / formulaire prospects
MelisDemoCms\Controller\TestimonialTémoignages
MelisDemoCms\Controller\TemplateDémos de gabarits (statique / drag-drop / mixte)
MelisDemoCms\Controller\Page404Page d'erreur 404

Plutôt que de livrer ses propres plugins, MelisDemoCms fournit des gabarits de plugins (view/plugins/*.phtml) câblés dans config/melis.plugins.config.php :

Plugin de templating (module propriétaire)Gabarits fournis
MelisFrontMenuPlugin (MelisFront)menu, white-menu, footer-menu
MelisFrontShowListFromFolderPlugin (MelisFront)faq-listing, faq-values, home-testimonial-slider
MelisFrontGdprBannerPlugin (MelisFront)gdpr-banner
MelisCmsSliderShowSliderPlugin (MelisCmsSlider)home-carousel-slider, home-slider2, team-slider
MelisCmsNewsListNewsPlugin / …ShowNewsPlugin / …LatestNewsPlugin (MelisCmsNews)news-list, news-details, latest-news-vertical, latest-news-horizontal
MelisCmsProspectsShowFormPlugin (MelisCmsProspects)prospect-form

Les trois techniques de composition ​

TechniqueFonctionnementPages concernées
Placement manuelLe plugin est instancié dans le contrôleur, rendu avec des paramètres et ajouté comme enfant de la vue — la vue l'affiche avec echo.Accueil, Équipe (slider), Actualités, FAQ, Contact
Zone de drag-and-dropLe .phtml déclare une zone nommée ; l'éditeur back-office y dépose n'importe quel plugin sans aucun code contrôleur.Démos DragDrop, Template
Balises éditables en ligneMelisTag encapsule une valeur par défaut dans la vue ; l'utilisateur back-office modifie le texte / les images directement en place.Services, Témoignages, 404

Listeners ​

SetupDemoCmsListener pilote le processus d'installation du site. MelisDemoCmsCreateConfigListener génère MelisDemoCms.config.php à partir du .config.stub après une installation via la marketplace. SiteMenuCustomizationListener personnalise le menu front. LatestNewsHorizontalListener ajuste la sortie du plugin de dernières actualités.

Base de données ​

MelisDemoCms ne définit aucune table melis_* propre. MelisPlatformTable lit la table centrale melis_core_platform. Tout le contenu de la démo (pages, gabarits, sliders, actualités, clés de config) est créé à l'installation par les listeners de setup, à partir des valeurs de config/MelisDemoCms.config.php telles que home_page_id, news_page_id et home_page_slider_1_id.

Exemple ​

Un contrôleur front rend un plugin de templating en lui injectant un chemin de gabarit propre au site et un identifiant issu de la config — le motif utilisé partout dans le site (HomeController) :

php
$cfg = $this->getServiceManager()->get('MelisSiteConfigService');

$slider = $this->MelisCmsSliderShowSliderPlugin();
$homeSlider1 = $slider->render([
    'template_path' => 'MelisDemoCms/plugins/home-carousel-slider',
    'id'            => 'homeSlider1',
    'pageId'        => $this->idPage,
    'sliderId'      => $cfg->getSiteConfigByKey('home_page_slider_1_id', $this->idPage),
]);
$this->view->addChild($homeSlider1, 'homeSlider1');
// vue : <?= $this->homeSlider1 ?>

Une zone de drag-and-drop ne nécessite qu'un seul appel dans la vue — aucun code contrôleur :

php
<?= $this->MelisDragDropZone($this->idPage, 'dragdropzone_home_1') ?>

Une balise éditable en ligne avec une valeur par défaut :

php
<?= $this->MelisTag($this->idPage, 'static-html-1', 'html', '<h1>Accessible…</h1>') ?>

Fichiers clés ​

ÉlémentChemin (sous vendor/melisplatform/melis-demo-cms/)
Routes, contrôleurs, mapping de gabaritsconfig/module.config.php
Modules chargés avec le siteconfig/module.load.php
Câblage des gabarits de pluginsconfig/melis.plugins.config.php
Clés de config par site (IDs de page / slider / dossier)config/MelisDemoCms.config.php, …config.stub
Flux de setup du siteconfig/setup/download.config.php, config/setup/update.config.php
Bootstrap et enregistrement des listenerssrc/Module.php
Service d'aide du sitesrc/Service/DemoCmsService.php
Contrôleurs de setup et post-installationsrc/Controller/MelisSetupController.php, …PostDownloadController.php, …PostUpdateController.php
Listeners d'installation / menu / actualitéssrc/Listener/
Gabarits de pluginsview/plugins/*.phtml
Gabarits de pagesview/melis-demo-cms/*/*.phtml
Démos de gabaritsview/melis-demo-cms/template/

Voir aussi : Référence des modules, Construire un site, Plugins.