Plugin 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 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 :
-
Connectez-vous au panneau d'administration de Magix CMS.
-
Rendez-vous dans Extensions > Gestionnaire.
-
Dans la liste des extensions disponibles, repérez MagixLastNews.
-
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_slugvide (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
calendardans le champitem_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
SqlCachecentralisé de Magix CMS . La présence du filtreis_eventgé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

