J'utilise T3 Framework modèle vierge. Dans le megamenu, j'ai inséré le formulaire de connexion en tant que sous-menu. Il apparaît donc lorsque l'utilisateur survole l'élément de menu.
Je souhaite modifier le titre de l'élément de menu (ou le texte qui y figure), selon que l'utilisateur est connecté, par exemple. 'Login' s'ils ne le sont pas et 'hi (nom d'utilisateur)' quand ils le sont.
Est-ce possible, peut-être en ajoutant du php dans le modèle, sans créer 2 éléments de menu différents, un pour les utilisateurs invités et un autre pour les inscrits?
C'est ce que j'ai fait:
Créez un remplacement du modèle pour mod_login
Une fois cela fait, ouvrez le fichier suivant:
templates/YOUR_TEMPLATE/html/mod_login/default_logout.php
et ajoutez ce qui suit:
$doc = JFactory::getDocument();
$doc->addScriptDeclaration('
jQuery(document).ready(function($){
$(".menu").find("a.something").empty().text("Hi ' . $user->username .'");
});
');
Si je comprends votre question, vous voulez masquer/changer l’élément de menu selon qu’une personne est connectée ou non?
OK, c’est ainsi que j’ai réussi à cacher le contenu des utilisateurs invités ou des utilisateurs connectés.
Créez un nouveau groupe 'Invité';
Il y a un guide détaillé ici .
Alors;
Cela devrait résoudre vos problèmes de niveau d'accès.
Afin d'ajouter le 'Salut {Nom d'utilisateur}', j'ai utilisé NoNumbers Sourcerer et simplement faire écho à la $user->username
dans le titre du module.
Sourcerer vérifie votre code php pour voir si vous référencez des objets/variables Joomla couramment utilisés, puis les crée pour vous. Cela signifie que vous n'avez pas à créer ces variables vous-même à chaque fois.
Peut-être pas la méthode la plus propre (comparée à @Lodders), mais cela fonctionne et est facilement répliqué pour d'autres modules, etc.
J'espère que cela t'aides!