Skip to content

MelisAICommunityExtensions

Injecte la génération IA dans les surfaces d'édition CMS existantes — créateur de mini-templates, créateur de contenu d'actualités et boutons IA dans les zones de glisser-déposer. Paquet melisplatform/melis-ai-community-extensions.

Présentation

MelisAICommunityExtensions est une couche applicative au-dessus de la suite MelisAI qui relie la génération IA directement aux surfaces d'édition backoffice existantes. Il enregistre deux instances pré-configurées (minitemplatecreator et newscontentcreator), deux ensembles d'outils MCP, et un ensemble de listeners d'événements qui gèrent le cycle de vie des assets front-end générés par l'IA (CSS, JS, images). Il n'ajoute pas d'écran d'outil autonome ; il injecte plutôt des boutons Générer avec l'IA et des modals de chat dans le Mini Template Manager et l'éditeur d'actualités, ainsi que dans les zones de glisser-déposer.

Activation

Ajouter dans config/melis.module.load.php :

php
return [
    'MelisAICommunityExtensions',
];

Nécessite melisplatform/melis-ai ^5.3. Lancer le dbdeploy après activation — le module initialise les lignes d'agent/instance minitemplatecreator et newscontentcreator dans les tables du moteur MelisAI (dbdeploy: true). Le module s'intègre avec MelisCms et MelisCmsNews.

Services principaux

Alias de serviceRôle
generateWithAIBtn (view helper MelisGenerateWithAIBtnHelper)Affiche le bouton réutilisable Générer avec l'IA (en utilisant l'melisAIIcon du moteur) ; réutilisé sur les trois surfaces d'édition.

Le module réutilise les tables melis_ai_instances / melis_ai_agents du moteur — il ne possède pas de tables IA supplémentaires.

Back-office

Trois surfaces d'édition sont étendues. Dans chacune, un bouton IA ouvre un chat ciblé et le résultat est réécrit dans le champ approprié.

Créateur de mini-templates IA (MiniTemplateController)

Surcharge le gestionnaire de mini-templates MelisCms pour ajouter un bouton AI Mini Template Creator qui ouvre le chat minitemplatecreator. Le formulaire manuel Ajouter un mini-template gagne également un bouton Générer avec l'IA dans la barre d'outils TinyMCE du champ HTML du template. Les mini-templates existants portent un badge IA pour les flux de duplication/variation avec l'IA.

ActionRôle
renderAiChatOuvre le chat minitemplatecreator ; passe siteModule et un template de référence optionnel.
getMiniTemplatePreviewShellRetourne l'enveloppe HTML d'aperçu avec les assets IA injectés.
validateTemplateNameValide le nom de template proposé.
checkTemplateAssetsVérifie que les assets attendus existent.
getSiteModuleByPageTemplateIdRésout le module de site d'un template de page.
getAIIcon / getGenerateWithAIButtonRetourne le markup de l'icône et du bouton.

Créateur de contenu d'actualités (NewsController)

Ajoute un bouton Générer avec l'IA sur chaque Paragraphe dans l'onglet Textes de l'éditeur d'actualités, par langue. Ouvre le chat newscontentcreator ciblé sur cet article (session isolée par article pour éviter les collisions de sessions).

ActionRôle
renderAiChatOuvre le chat newscontentcreator ; définit les paramètres de sortie pour router la réponse vers le champ de paragraphe cible ; passe les images de l'article en tant que custom_files.
getNewsTitleRetourne le titre de l'article d'actualités pour initialiser le message d'accueil du chat.
getGenerateWithAIButtonRetourne le markup du bouton par paragraphe.

Génération avec l'IA dans les zones de glisser-déposer

Les zones de glisser-déposer vides reçoivent un bouton Générer avec l'IA injecté. Lorsque l'utilisateur accepte un bloc généré, trois options de validation sont présentées : Annuler, Insérer (déposer dans cette zone uniquement), ou Enregistrer et insérer (déposer et promouvoir en mini-template réutilisable permanent).

BaseController

BaseController fournit emptyGenericModal partagé entre les surfaces.

Listeners d'événements

ListenerÉvénementEffet
…TinyMCEConfigurationListenermeliscore_tinymce_configPointe le plugin TinyMCE minitemplate vers le JS de ce module.
…CreateMiniTemplateListenermeliscms_mini_template_manager_create_endDéplace les CSS/JS/images temporaires vers le stockage permanent ; renomme le JS d'initialisation par template.
…PublishPageListenermeliscms_page_publish_startPromeut les assets temporaires référencés par une page publiée ; met à jour page_content.
…SanitizeSavedPluginHtmlListenermeliscms_page_savesession_plugin_startNettoie le markup runtime carousel/slider (artefacts Owl/Slick/Swiper) avant l'enregistrement.
…DeleteMiniTemplateAssetsListenermeliscms_mini_template_manager_delete_endSupprime le CSS/JS/images du template.
…AttachAIGeneratedCssListenerMvcEvent::EVENT_FINISH (front + back)Injecte le CSS/JS IA dans les pages rendues.
…InjectDndAiButtonListenerMvcEvent::EVENT_FINISHInjecte le bouton Générer avec l'IA dans les zones de glisser-déposer.

Le module enregistre également un MelisPluginRendererOverride afin que les assets IA soient injectés correctement lors du rendu des plugins.

Serveur MCP

Un serveur MCP stdio minitemplate_creator (point d'entrée mcp/minitemplatecreator/bin/server.php) est enregistré dans config['mcp']['servers']. Les outils ci-dessous sont déclarés dans function_declarations avec mcp: true :

OutilParamètresRôle
readSiteAssetssiteModule, templateRequestRetourne les fichiers CSS/JS/vues pertinents du site afin que l'IA corresponde au design réel.
getSitePublicUrlsiteModuleRetourne l'URL/domaine public du site pour inspection visuelle avant génération.
uploadMinitemplateImagessiteModule, image, filenameEnregistre une image (base64/data-URL/HTTP) dans le répertoire temporaire IA et retourne un chemin web pour <img src>.
renderMinitemplatePreviewsiteModuleDéclenche l'aperçu éditeur du template généré.

L'agent minitemplatecreator dispose également des outils filesystem du moteur (createFile / readFile / updateFiles / …) dans sa liste d'autorisations.

Tables de base de données

Ce module ne crée aucune table. Ses deltas dbdeploy insèrent des lignes dans les tables détenues par melis-ai :

TableContenu
melis_ai_instancesLes instances minitemplatecreator et newscontentcreator initialisées.
melis_ai_agentsLes agents initialisés pour les deux instances.

À l'exécution, les données d'actualités sont accédées via NewsTable (getNewsData($newsId)), qui joint la table du site pour résoudre le siteModule nécessaire au placement des images générées.

Exemple

Ouvrir le chat newscontentcreator ciblé sur un article et relié à un champ de paragraphe spécifique :

php
// Suffixer l'ID d'instance avec l'ID de l'actualité pour isoler la session par article.
$instanceId = 'newscontentcreator|' . $newsId;

// exitParamArr route la réponse de l'agent vers le champ de paragraphe cible.
$exitParamArr = [
    'masse_exit_input_1'     => $paragraphField,             // ex. 'news_paragraph_1'
    'masse_exit_js_callback' => "setParagraphContent($paragraphField)",
];

// Afficher le chat via le view helper du moteur.
echo $this->AIChatViewHelper(
    $instanceId,
    null,
    ['custom_text' => '...', 'custom_files' => $images],
    false,
    $exitParamArr
);

Le schéma général : (1) injecter un generateWithAIBtn via app.toolstree.php + un listener EVENT_FINISH ; (2) ouvrir AIChatViewHelper(<instance>, …) avec des paramètres de sortie qui routent la réponse vers le champ hôte ; (3) donner à l'agent des outils MCP qui exposent le contexte hôte ; (4) gérer le cycle de vie temp→permanent des assets générés avec des listeners d'événements CMS.

Fichiers clés

ÉlémentChemin
Config du modulevendor/melisplatform/melis-ai-community-extensions/config/module.config.php
Injections UI backofficevendor/melisplatform/melis-ai-community-extensions/config/app.toolstree.php
Interface (câblage bouton + modal)vendor/melisplatform/melis-ai-community-extensions/config/app.interface.php
Déclaration des outils MCPvendor/melisplatform/melis-ai-community-extensions/config/mcp.tools.php
Contrôleur mini-templatesvendor/melisplatform/melis-ai-community-extensions/src/Controller/MiniTemplateController.php
Contrôleur actualitésvendor/melisplatform/melis-ai-community-extensions/src/Controller/NewsController.php
Listenersvendor/melisplatform/melis-ai-community-extensions/src/Listener/
Helper bouton Générer avec l'IAvendor/melisplatform/melis-ai-community-extensions/src/View/Helper/MelisGenerateWithAIBtnHelper.php
Table-gateway des actualitésvendor/melisplatform/melis-ai-community-extensions/src/Model/Tables/NewsTable.php
Point d'entrée du serveur MCPvendor/melisplatform/melis-ai-community-extensions/mcp/minitemplatecreator/bin/server.php
Répertoire des assets IApublic/miniTemplatesTinyMce/AI/{siteModule}/{temp|css|js|images}/
Deltas d'installation (initialisation des agents)vendor/melisplatform/melis-ai-community-extensions/install/dbdeploy/

Voir aussi : MelisAIEngine, MelisAI, MelisAIToolCreator, MelisCms, MelisCmsNews