web-dev-qa-db-fra.com

Comment ajouter / supprimer un élément de menu par programme?

J'ai une application Joomla v2.5.14 et je me trouve dans une situation où je dois cacher un élément de menu aux utilisateurs en fonction d'une valeur de base de données. Ce dont j'ai besoin, c'est de masquer l'élément de menu en fonction d'une condition.

Ma question est la suivante: où est le bon endroit pour effectuer cela? et comment le faire?

2
skinni

En supposant que l’option de menu possède un sélecteur CSS approprié, par ex. "item-135", il pourrait être caché via CSS.

Vous pouvez créer un module HTML personnalisé pour ajouter le code approprié aux pages applicables. Définissez la position du module HTML personnalisé sur "débogage" ou similaire si votre modèle comporte cette option (car la position du module de débogage est moins susceptible d’être associée à des marges ou à des marges intérieures).

Installez et activez le plugin Regular Labs Sourcerer ou similaire afin que le code ne soit pas supprimé de votre module HTML personnalisé.

Dans le module HTML personnalisé, votre code ressemblera à ceci:

{source}
  <?php
    if ([some condition]) {
      $document = JFactory::getDocument();
      $style = '.item-135 {display: none;}';
      $document->addStyleDeclaration ($style);
    }
  ?>
{/source}
2
Neil Robertson