Le besoin spécifique
Dans le cadre de mes fonctions, ou plutôt peut-être d'une mauvaise configuration de base de nos logiciels de navigation sur Internet, je me rends compte que le cache de nos navigateurs professionnels ne sont pas forcément très bien gérés. Le problème par rapport à ce cache, c'est lorsque je fais la mise à jour d'un fichier téléchargeable qui porte le même nom, lorsque le demandeur veut vérifier si la mise à jour fonctionne, il téélcharge l'ancien fichier (qu'il a détélargé au moins une fois aupréablable), bien que ma mise à jour a été correctement faite.
Comme cette situation commence à me fatiguer très sérieusement, j'ai fabriqué pour Joomla, au cas où cette situation se retrouve là aussi dans Joomla car là nous avons ce soucis sur des pages statiques, pour l'instant et je n'ai encore pas réussi à bien tester Joomla sur Internet Explorer 7, 1 il va falloir que je m'y colle.
Pour ne pas reproduire cette problématique, j'ai développé un petit plugin Joomla qui permet de spécifier les différents paramètres à passer en compte dans une page web, dans des balises de type méta.
Fonctionnement
Je ne suis pas rentré volontairement dans tous les paramètres possibles dans la mise en place d'une balise de type méta. Ce plugin s'active ou se désactive.Il desactive le cache des pages en ajoutant et à balise metatag no-cache.
J'aurais pu pousser le développement de ce plugin beaucoup plus loin en prenant en compte tous les paramètres possibles et inimaginable de cette base matin, mais je me cantonne uniquement aux besoins professionnels spécifiques. Je vous partage alors ce plugin.
nocache.php
<?php
defined('_JEXEC') or die('Access deny');
class plgContentNoCache extends JPlugin
{
function onContentPrepare($content, $article, $params, $limit){
$doc = JFactory::getDocument();
if ($this->params->get('noncache', '') == 1)
{
$doc->setMetaData('Pragma', 'no-cache');
$doc->setMetaData('Cache-Control', 'no-cache, no-store, must-revalidate');
$doc->setMetaData('Expires', 0);
}
}
}
nocache.xml
<?xml version="1.0" encoding="utf-8"?>
<extension version="1.0" type="plugin" group="Content">
<name>No Cache</name>
<author>Sebastien LHUILLIER</author>
<creationDate>Octobre 2023</creationDate>
<copyright>Sébastien LHUILLIER</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.</authorEmail>
<authorUrl>www.sebastien-lhuillier.com</authorUrl>
<version>1.0</version>
<description>Ce plugin desactive le cache navigateur</description>
<files>
<filename plugin="nocache">nocache.php</filename>
<filename>nocache.xml</filename>
<filename>style.css</filename>
</files>
<config>
<fields name="params">
<fieldset name="basic">
<field name="noncache" type="radio" default="0" label="Méta tags No-cache" description="">
<option value="0">Désactivé</option>
<option value="1">Activé</option>
</field>
</fieldset>
</fields>
</config>
</extension>