Community « Le forum « Besoin d'aide «
L'emplacement du formulaire d'authentification
Lors de l'installation par défaut, le formulaire de login fait partie du main_menu. Comment peut-on le placer dans user_menu ?
Dans l'installation par défaut de yacs, la page d'acceuil présente notamment un menu intitulé Menu (
id=main_menu) et un autre intitulé Utilisateurs (id=user_menu).Il y a également un formulaire d'authentification (login) avec 2 boîtes (pour le nom d'utilisateur et le mot de passe) et un bouton intitulé Connexion.
Si on le désire, on peut enlever ce formulaire de la boîte
main_menu et le placer dans une autre boîte, ou toute autre page. Il suffit (à un associé) d'aller à Carte_du_site > Menus > Menu > modifier et d'enlever le code (anonymous)(---)(login)(/anonymous), quitte à le replacer ailleurs.Par contre, je n'ai pas trouvé comment placer ce formulaire à l'endroit qui me semble le plus logique (ma logique à moi, bien sûr
) : la boîte Utilisateurs.Cette boîte (
user_menu) est construite par Surfer::build_user_menu(), appellée par skin_skeleton.php. Dans ce dernier fichier, on peut lire "You can overload this function in your own skin to change this behaviour".Je n'ai aucune idée de comment m'y prendre (sans modifier
surfer.php évidemment
), mais j'aimerais bien pouvoir placer le formulaire de login dans la boîte Utilisateurs. Quelqu'un peut-il m'indiquer la marche à suivre, si c'est faisable à partir d'un skin ?| Bernard from nearby-an-airport Associate, 6927 posts | La construction du menu utilisateur résulte d'une cascade d'appels, comme toujours en programmation objet. La séquence est la suivante : template.php lors de la construction du panneau de côté. pour les tyles de référence, ceci se traduit par appel de la fonction Page::side().skins/page.php, et elle sous-traite la construction du menu à la fonction Skin::build_user_menu().skins/skin_skeleton.php et passe la main à Surfer::build_user_menu(), dans le script de référence shared/surfer.php.Surfer::build_user_menu() produit un contenu adapté au profil du surfeur.Donc, pour changer le menu à votre convenance, vous pouvez copier le code de la fonction Surfer::build_user_menu() de shared/surfer.php dans le fichier skin.php de votre skin. C'est cette fonction, dans votre skin.php, qui sera exécutée en lieu et place de celle par défaut. A partir de là, tout est possible...
|
| Lasares from Montréal ou Chambly, Québec 781 posts |
Bernard : Merci ! bien compris. J'ai testé et réussi à faire une modification au menu Utilisateurs. Ça a bien fonctionné. Il me reste à récupérer le formulaire de login pour l'utiliser. Il est dans la base de données, j'imagine. |
| Bernard from nearby-an-airport Associate, 6927 posts | Lasares: le rendu du code [login] est traité par Skin::build_block(), par défaut implémenté dans skins/skin_skeleton.php.Dépliez la boîte suivante pour avoir une idée : |
