Si vous aussi vous utilisez le module Joomla Content pour partager des articles contenant des informations, peut-être que vous avez aussi trouvé difficile ou pas pratique, de spécifier dans les menus, les conditions de restriction. J'entends par là, par analogie au langage SQL, l'équivalent de ce que vous trouvez dans la clause WHERE des requetes lancées par les menus Joomla.
En effet, lorsque vous créez un menu de type Joomla Content, vous avez la possibilité de spécifier plusieurs types de sélections comme la sélection des éléments par tags, par catégories, sélection d'un article spécifique, et même sûrement d'autres types de section que je ne mentionne pas ici.

<?xml version="1.0"?>
<aide_menu>
<nom>Accueil</nom>
<fonctionnalite>Ce menu retourne l'utilisateur à la page d'accueil du site</fonctionnalite>
<conditions_restriction>Aucune condition particulière, le menu </conditions_restriction>
<aide_technique>Aide technique libelle</aide_technique>
</aide_menu>
- le nom du menu,
- une description de ses fonctionnalités,
- les conditions de restriction sous l'unique forme textuel (ce n'est que pour informer l'utilisateur, par pour faire une restriction au sens données/sgbd)
- une aide technique sous la forme d'une chaine de caractères
helper.php
<?php
class mod_aidemenu{
public static function getAideMenu(){
$document = JFactory::getDocument()->addstylesheet('modules'.DIRECTORY_SEPARATOR.'mod_aidemenu'.DIRECTORY_SEPARATOR.'style.css');
$app = JFactory::getApplication();
$menu = $app->getMenu()->getActive();
$chemin = __DIR__.DIRECTORY_SEPARATOR."fichiers_aide".DIRECTORY_SEPARATOR.$menu->id.".xml";
$user = JFactory::getUser();
if (!file_exists($chemin))
{
echo "Aucune aide de prévu pour ce menu. Merci de créer le fichier ".__DIR__.DIRECTORY_SEPARATOR."fichiers_aide".DIRECTORY_SEPARATOR.$menu->id.".xml pour expliquer à l'utilisateur ce qu'il retourne.<br><span style=\"font-weight:bolder;\">Si ce message apparait, merci de nous faire un ticket d'incident via le lien de la colonne de droite \"Nous prévenir d'un bug\". Nous vous remercions.</span>";
}
else
{
//On charge le fic XML dans un objet
$chemin= "modules/mod_aidemenu/fichiers_aide/135.xml";
$xml_str = file_get_contents($chemin);
$xml = simpleXML_load_string($xml_str);
$xml_extract = $xml->xpath('/aide_menu/nom');
$nom = $xml_extract[0][0];
echo "⬤". $nom."<br>";
$xml_extract = $xml->xpath('/aide_menu/fonctionnalite');
$fonctionnalite = $xml_extract[0][0];
echo "🍶". $fonctionnalite."<br>";
$xml_extract = $xml->xpath('/aide_menu/conditions_restriction');
$conditions_restriction = $xml_extract[0][0];
echo "⛔<span style=\"font-style:italic;\">". $conditions_restriction."</span>";
if ($user->guest == 0)
{
$xml_extract = $xml->xpath('/aide_menu/aide_technique');
print_r($xml_extract);
$conditions_restriction = $xml_extract[0][0];
echo "⭕". $conditions_restriction."<br>";
}
}
if (isset($menu)){
echo '<div style="width: 100%; border: 5px red solid; min-height: 120px;">';
echo '<div style="margin: 5px; float: left; width: 88%; text-align: center; font-weight: bold; font-size: 280%; color: red;"><img src="/images/Categories/photo_pucelle.png" alt="photo pucelle" width="118" height="99" style="float: left;" />';
echo '<div style="margin-left: 10px; margin-top: 35px;">'.$menu->title.'</div>';
echo '</div>';
echo '</div>';
echo '<div> </div>';
}
}
}
?>
