Personnalisez et étendez les fonctionnalités de Magix CMS

Un plugin (ou extension) est un module logiciel modulaire qui enrichit le noyau de Magix CMS en lui apportant de nouvelles fonctionnalités adaptées à vos besoins métiers, tout en préservant l’intégrité du code source de base.

Compétences requises pour créer un plugin

Développer et intégrer un plugin dans Magix CMS 4 s'appuie sur des standards modernes du web :

  • PHP (8.2+) & POO : architecture MVC, namespaces PSR-4, manipulation de contrôleurs et services.

  • SQL & QueryBuilder : conception de schémas de données relationnels et requêtes optimisées.

  • Moteur de template Smarty : intégration des vues front/back, exploitation des filtres et dictionnaires de traduction (.conf).

  • JavaScript & Composants Web : interactions dynamiques, gestion AJAX (MagixForms, API Fetch) et animations.

  • Architecture événementielle (Hooks & Filtres) : connexion aux points d'ancrage du CMS via HookManager.

Les types de plugins dans Magix CMS 4

Dans Magix CMS 4, la nature et le comportement d'un plugin sont définis dans son descripteur manifest.json via la propriété "type". Le système distingue quatre architectures complémentaires :

1. Backend ("type": "backend")

Une extension exclusivement dédiée à l’espace d’administration (Back-Office).

  • Rôle : Fournir des outils de gestion, d'analyse, d'automatisation ou de configuration technique sans exposer d'interface publique directe aux visiteurs.

  • Comportement : Accessible depuis le panneau d'administration via son propre contrôleur et sécurisé par le système de rôles et permissions RBAC.

  • Exemples :

    • Outils de maintenance, de purge du cache ou d'optimisation de base de données.

    • Outil de génération ou d'import/export de données (CSV/Excel).

    • Gestionnaire de configuration système ou de sécurité.

2. Widget ("type": "widget")

Un composant d’interface léger conçu pour s’accrocher dans le flux de vos pages.

  • Rôle : Injecter un bloc d'affichage dynamique dans une zone spécifique du site sans disposer de page publique dédiée.

  • Comportement : Se greffe automatiquement ou manuellement aux emplacements réservés du thème grâce aux Hooks (displayHomeTop, displaySidebar, etc.) et est administrable depuis le gestionnaire de disposition (Layout).

  • Exemples :

    • Carrousel de bannières promotionnelles.

    • Bloc des dernières actualités publiées (MagixLastNews).

    • Widget météo, flux de réseaux sociaux ou bouton flottant d’appel à l'action.

3. Hybride ("type": "hybrid")

Une extension complète et autonome associant interface publique et fonctionnalités transversales.

  • Rôle : Déployer une application complète dotée de ses propres routes publiques (URL dédiées), tout en ayant la capacité d'enrichir les modules natifs du CMS (pages, catalogue, actualités).

  • Comportement : Déclare des contrôleurs frontend et backend, dispose de ses propres tables et peut injecter des onglets ou des champs dans les formulaires d'édition du Core via les cibles déclarées (core_targets).

  • Exemples :

    • Gestionnaire multimédia et de documents privés (MagixFiles).

    • Module d'actualités et d'articles de blog avec pagination et commentaires.

    • Système d'espace membre et d'authentification (Magixaccount).

4. Addon ("type": "addon")

Une extension spécialisée conçue pour se greffer sur un autre plugin parent.

  • Rôle : Étendre les fonctionnalités d'un module hôte sans jamais en modifier le code source, garantissant ainsi une indépendance totale et des mises à jour sans rupture.

  • Comportement : Cible un plugin spécifique via la clé plugin_targets du manifest.json. Sa liaison et son activation sont gérées dynamiquement dans la table de liaison mc_plugins_module.

  • Exemples :

    • Passerelles de paiement externes pour la boutique en ligne (ex: Magixstripe ou PayPal pour Magixcartpay).

    • Modules de transporteurs et de calcul de frais de port (Bpost, Mondial Relay) connectés au panier d'achat.

    • Extensions de règles de tarification ou de facturation automatique.

Pourquoi utiliser des extensions ?

  1. Modularité & Propreté : Vous activez uniquement les fonctionnalités nécessaires à votre projet, sans alourdir le noyau de base.

  2. Évolutivité sans régression : Grâce au système de hooks, de filtres et d'addons, vos développements personnalisés restent protégés lors des futures mises à jour du CMS.

  3. Réutilisabilité : Développez un plugin une seule fois et déployez-le facilement sur plusieurs projets web grâce au système de paquets et d'installation automatisée (manifest.json, scripts SQL d'installation et de désinstallation).

FAQ : Extensions

Un plugin est un module logiciel autonome conçu pour étendre les fonctionnalités natives du CMS sans jamais modifier les fichiers du noyau ( Core ). Grâce à l'architecture événementielle basée sur le HookManager , le code personnalisé s'exécute aux points d'ancrage prévus,  ce qui permet de mettre à jour le CMS sans écraser ni altérer vos développements métiers.

Le développement d'un plugin repose sur les standards modernes du web :

  • PHP 8.2+ & POO : Maîtrise de l'architecture MVC, des espaces de noms PSR-4, des contrôleurs et des services d'injection.

  • SQL & QueryBuilder : Définition des schémas de données relationnels et requêtes optimisées via l'ORM/QueryBuilder natif.

  • Smarty 5 : Gestion des templates pour les interfaces front et back, exploitation des filtres et fichiers de configuration linguistique ( .conf ).

  • JavaScript moderne (ES6+ Vanilla) : Zéro dépendance externe (sans jQuery), utilisation de l'API Fetch et des utilitaires natifs ( MagixForms , MagixAjaxManager ).

  • Architecture événementielle : Utilisation des points d'ancrage (Hooks et Filtres).

Le choix se définit dans la propriété "type" du fichier manifest.json selon l'usage visé :

  • backend : Pour un outil réservé exclusivement aux administrateurs (ex. purge de cache, imports/exports, outils d'analyse) sécurisé par les rôles RBAC.

  • widget : Pour un composant d'affichage sans URL publique, greffé sur les zones de templates via des hooks visuels (ex. displaySidebar , displayHomeTop ).

  • hybrid : Pour une application complète disposant de ses propres routes publiques (URL dédiées) et capable d'enrichir les entités natives (pages, catalogue) via core_targets .

  • addon : Pour une sous-extension ciblant un plugin parent spécifique sans en toucher le code source (ex. passerelle de paiement connectée au module panier).

L'extension déclare le module cible dans la clé plugin_targets de son fichier manifest.json . À l'activation, Magix CMS 4 enregistre dynamiquement cette relation dans la table système mc_plugins_module . Ce mécanisme garantit l'indépendance des versions et permet de charger conditionnellement les fonctionnalités (ex. Stripe ou Bpost) uniquement lorsque le module parent (ex. Magixcartpay ) est actif.

Non. Les extensions sont isolées dans leur propre répertoire (/plugins/[nom_plugin]/) et communiquent avec le noyau uniquement par le biais d'interfaces publiques, de contrôleurs dédiés et d'écouteurs d'événements (HookManager). Tant que les bonnes pratiques et les signatures de méthodes du noyau sont respectées, les montées de version du CMS n'entraînent aucune régression sur vos modules.

Chaque plugin constitue un paquet autonome piloté par son descripteur manifest.json. L'installation et la désinstallation exécutent automatiquement les scripts SQL dédiés situés dans le sous-dossier /db/ (création ou suppression de tables, injection des hooks par défaut), garantissant une configuration propre de la base de données sans intervention manuelle.

Souhaitez-vous que nous rédigions également un exemple commenté de fichier manifest.json type pour illustrer ces différents cas dans votre documentation technique ?

  • MagixDailymotion

    MagixDailymotion

    Allégez la charge de votre serveur tout en enrichissant vos contenus multimédias. MagixDailymotion connecte directement l'administration de Magix CMS 4 à l'API officielle de Dailymotion pour...

  • MagixTabs

    MagixTabs

    MagixTabs est une extension conçue pour enrichir vos fiches produits, pages de contenu, catégories et actualités avec des sections d'informations supplémentaires organisées sous forme d'onglets....

  • MagixSlideshow

    MagixSlideshow

    MagixSlideshow est le module officiel de gestion de bannières défilantes et de diaporamas dynamiques pour Magix CMS 4. Conçu comme une extension modulaire de type Widget , il s'interface...

  • Magixaccount

    Magixaccount

    Authentification OAuth Avertissement technique & Prérequis d'installation Le module Magixaccount gère les données d'identité, les flux d'authentification sécurisés et les protocoles...

  • Magixcartpay

    Magixcartpay

    Architecture E-commerce Avertissement technique & Prérequis d'installation Le module Magixcartpay constitue le composant central du commerce électronique sous Magix CMS 4. En raison...

  • Magixsearch

    Magixsearch

    Avertissement technique & Prérequis d'installation L'intégration, la configuration avancée des index MySQL et le raccordement événementiel de MagixSearch exigent des compétences...

  • MagixLastNews

    MagixLastNews

    MagixLastNews est un composant d'affichage (widget) natif pour Magix CMS 4 . Fourni directement avec le CMS sans être activé par défaut, il permet d'injecter dynamiquement les publications du...

  • Hipay

    Hipay

    Le plugin Hipay permet de gérer vos transactions en ligne sans contrat VAD, avec un système anti-fraude intégré. Accédez à toutes les solutions de paiement internationales et locales (Visa,...

  • Gmap

    Gmap

    Le plugin Gmap est un Google Map pour Magix CMS afin de permettre la création de plan d'accès de manière intuitive et simple. Configurer votre carte Google Map Donner un titre a votre...

  • Slideshow

    Slideshow

    Slideshow est un slider ou un carrousel d'image. Il vous permet de faire défiler, par exemple en haut de la page d'accueil du site web, des images avec pour chacune un texte et un lien....

  • Advantage

    Advantage

    Le plugin advantage permet d'ajouter les points fort de votre entreprise ou activité a votre site internet. On peut utiliser 2 jeux d'icônes pour la création des points fort de manière très...

  • Recaptcha

    Recaptcha

    Le plugin recaptcha permet l'intégration de Google Recaptcha a vos formulaires. Vous pouvez utiliser la v2 ou la v3 de Google Recaptcha en sélectionnant dans l'administration. Il nécessite...

  • Homecatalog

    Homecatalog

    Le plugin homecatalog permet d'a jouter un ou plusieurs produits sur la page d'accueil de votre site internet. Il nécessite du développement pour son intégration ainsi que de la mise en page....

  • Mainsectors

    Mainsectors

    Le plugin mainsectors permet d'a jouter une ou plusieurs pages et ou catégories sur la page d'accueil de votre site internet. Attention ce plugin n'est compatible que sous magix cms 3

  • Paypal

    Paypal

    Le plugin paypal permet d'utiliser les paiements par PayPal, l'un des systèmes de paiement les plus répandus, réputé pour être un moyen sécurisé et fiable d'effectuer des paiements en ligne. Il...

  • Mollie

    Mollie

    Le plugin Mollie permet d'utiliser les paiements disponible Mollie, l'un des systèmes de paiement les plus simple à intégrer. Il peut être utilisé en tant qu'extension d'un panier en ligne....

  • Search

    Search

    Le plugin search permet d'effectuer une recherche dans les différents modules de votre site internet, tel que les pages, les produits, les catégories, les actualités. Il nécessite du...

  • homebrands

    homebrands

    Le plugin homebrands permet d'afficher un caroussel de marque sur la page d'accueil. Il nécessite du développement et de la mise en page pour son intégration. Attention ce plugin n'est...

  • Homeblock

    Homeblock

    Le plugin homeblock permet d'afficher un block de contenu supplémentaire sur votre page d'accueil. Attention ce plugin n'est compatible que sous magix cms 3

Haut

Nous utilisons des cookies pour vous garantir la meilleure expérience, analyser notre trafic et vous proposer des contenus adaptés. En savoir plus.