Aller au contenu principal
Version: Current 🚀

cms-integration

Guide d’intégration multi-projets

Ce guide explique comment intégrer isotope-cms, isotope-media et le client React dans une application existante.

1) Dépendances Maven (serveur)

  • Publier ou inclure les modules isotope-cms et isotope-media (ils dépendent d’un BOM isotope-bom et d’artefacts internes isotope-core, isotope-user, isotope-mail).
  • Exemple (pom parent) :
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.ipsosenso</groupId>
<artifactId>isotope-bom</artifactId>
<version>${isotope.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>com.ipsosenso</groupId>
<artifactId>isotope-cms</artifactId>
</dependency>
<dependency>
<groupId>com.ipsosenso</groupId>
<artifactId>isotope-media</artifactId>
</dependency>
</dependencies>

Assurez-vous d’avoir accès au repository Maven indiqué dans les pom.xml (distributionManagement).

2) Configuration Spring Boot

Dans votre application, isotope-cms et isotope-media sont auto-configurés. Fournissez les propriétés nécessaires :

# CMS
isotope.cms.default-language=fr
isotope.cms.domain-url=https://votre-domaine
isotope.cms.css-upload-path=/var/app/css
isotope.cms.days-before-result-form-deletion=30
isotope.cms.enabled-article-field-list=TEXT,TEXTAREA,SWITCH,DATE,DATETIME,VALUE_LIST,LINK,IMAGE,DOCUMENT,RICH_TEXT
isotope.cms.enabled-form-field-list=DATE,DATETIME,CHECKBOX,MULTIPLE_CHECKBOXES,SELECT,TEXT,TEXTAREA,NUMBER
isotope.cms.article-number-step-tolerance=0.01
isotope.cms.enable-contributors=true
isotope.cms.use-native-required=false
isotope.cms.mail-from=no-reply@votre-domaine

# Media (exemple)
isotope.media.storage.path=/var/app/media

Pour la purge planifiée des résultats de formulaires, ajoutez les tâches dans vos propriétés jobs (cf. README isotope-cms).

3) Sécurité et URL

  • Protégez les endpoints d’admin (/api/admin/**) avec vos règles Spring Security et mappez les autorités suivantes : access_cms_page, access_cms_forms, access_cms_forms_result, access_cms_articles_model, access_cms_articles, access_css, access_cms_contributors.
  • Routage recommandé (front BO vs rendu serveur) :
    • Whitelister les routes BO : /cms, /css, /login, /medias, /users, /jobs, /values, /languages, etc. vers le front React.
    • Rediriger les autres URLs publiques vers /view/{shortcut} (rendu dynamique Freemarker).

4) Client React (BO)

  • Cloner isotope-client-cms-master dans votre mono-repo ou comme projet séparé.
  • Configurer la variable d’API (base URL) selon votre environnement (proxy dev recommandé).
  • Installer et builder :
npm install
npm run build
  • Déployer le contenu de build/ derrière une route BO (ex. /cms) et servir l’app React (Nginx, Spring static resources, ou CDN).

5) Templating et rendu

  • Pour personnaliser le rendu, surchargez les templates Freemarker dans votre application (même arborescence templates/).
  • Utilisez les variables exposées (pages, forms, articles) et les contributeurs pour enrichir les vues.

6) Médias

  • isotope-media gère les uploads et la persistance de documents ; adaptez IMediaStorageService si vous visez S3/MinIO.
  • Exposez le domaine (isotope.cms.domain-url) pour générer des URLs publiques dans les contenus.

7) Données d’exemple

  • Chargez isotope-cms/docs/mysql.sql pour le schéma et isotope-cms/docs/data.sql + menu.sql pour initialiser fonctions/menus.

8) Checklist d’intégration

  • Dépendances Maven résolues (BOM/artefacts internes disponibles)
  • Propriétés CMS/Média renseignées
  • Règles de sécurité et autorités mappées
  • Routage : BO vs /view/{shortcut}
  • Client React construit et servi
  • Templates Freemarker surchargés si besoin
  • Stockage média opérationnel (permissions, quota)