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 module News dans les différentes zones d'accroche (hooks) de votre thème (page d'accueil, colonnes, pied de page).

Depuis sa version 4, le plugin intègre un comportement multi-instance intelligent : il est capable d'agir soit comme un fil d'actualités classique (blog), soit comme un aperçu de l'agenda des prochains événements (calendar), en fonction de sa configuration dans le gestionnaire de Layout

1. Installation et activation

Le dossier du plugin est présent dans le répertoire /plugins/MagixLastNews/. Pour l'activer sur votre installation :

  1. Connectez-vous au panneau d'administration de Magix CMS.

  2. Rendez-vous dans Extensions > Gestionnaire.

  3. Dans la liste des extensions disponibles, repérez MagixLastNews.

  4. Cliquez sur le bouton d'installation automatique.

2. Emplacements pris en charge (Hooks)

Le plugin s'adapte automatiquement à la zone dans laquelle il est positionné via le contrôleur frontend

  • Zones de contenu / Accueil (displayHome, displayHomeTop, etc.) : Utilise la vue complète en grille avec gestion des tags et de l'en-tête

  • Colonnes de pied de page (displayFooterColLeft, displayFooterColRight, etc.) : Bascule automatiquement sur un rendu compact et allégé (widget_footer.tpl) optimisé pour le footer

3. Configuration dans le Layout (Double usage Blog / Agenda)

MagixLastNews tire parti du champ technique item_slug de la table d'accroche (mc_hook_item) . Cela permet de positionner le plugin plusieurs fois sur la même page tout en lui attribuant des rôles distincts

A. Instance classique (Fil d'actualités)

  • Configuration : Laissez le champ item_slug vide (ou non renseigné).

  • Comportement SQL : Récupère les 3 dernières actualités traditionnelles (les événements avec une date de début sont automatiquement exclus)

  • Tri : Par date de publication décroissante (date_publish DESC)

B. Instance Agenda / Événements

  • Configuration : Renseignez la valeur calendar dans le champ item_slug.

  • Comportement SQL : Récupère les 3 prochains événements à venir (articles disposant d'une date_event_start)

  • Tri : Chronologique par date d'événement croissante (date_event_start ASC)

Respect de l'ordonnancement : Si vous placez les deux widgets sur le même hook (par exemple le blog puis l'agenda, ou inversement), le composant PluginDb::getWidgetOrder() synchronise l'ordre d'exécution pour que l'inversion des blocs dans l'administration soit immédiatement répercutée sur le frontend

4. Personnalisation des vues (Smarty)

Les gabarits de présentation sont isolés dans le dossier /plugins/MagixLastNews/views/front/ :

  • widget.tpl : Gabarit principal pour les blocs de contenu (accueil, colonnes)

  • widget_footer.tpl : Gabarit compact pour le pied de page

Exemple de conditionnement dans le template

Grâce au booléen {$is_event_widget}, vous pouvez utiliser un template unique qui adapte ses titres, ses badges de dates ou ses boutons d'action selon le contexte : 

{if $is_event_widget}
    <div class="widget-agenda">
        <h2 class="h3 fw-bold"><i class="bi bi-calendar-event me-2"></i>Agenda à venir</h2>
        <a href="{$base_url}{$current_lang.iso_lang}/calendar/" class="btn btn-sm btn-outline-primary">
            Voir tout l'agenda
        </a>
        {include file="news/loop/news-grid.tpl" data=$last_news classType="event"}
    </div>
{else}
    <div class="widget-news">
        <h2 class="h3 fw-bold"><i class="bi bi-newspaper me-2"></i>Dernières actualités</h2>
        <a href="{$base_url}{$current_lang.iso_lang}/news/" class="btn btn-sm btn-outline-primary">
            Toutes les actualités
        </a>
        {include file="news/loop/news-grid.tpl" data=$last_news classType="normal"}
    </div>
{/if}

5. Performances et cache

  • Cache SQL natif : Les requêtes exploitent le SqlCache centralisé de Magix CMS . La présence du filtre is_event génère des empreintes de cache distinctes, évitant toute collision mémoire entre la liste du blog et celle de l'agenda

  • Cache de rendu Smarty : Chaque instance possède un identifiant de fragment unique (cacheId) intégrant l'index de position et le slug, garantissant que deux instances consécutives sur la même page ne s'écrasent jamais mutuellement

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.