Skip to main content Help Control Panel

YACS CMS : Open source !

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
avatar
from nearby-an-airport
Associate, 6927 posts

on Jan. 15 2007


La construction du menu utilisateur résulte d'une cascade d'appels, comme toujours en programmation objet.

La séquence est la suivante :

-  Le menu est construit dans 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().

-  Cette fonction est implémentée dans la librairie skins/page.php, et elle sous-traite la construction du menu à la fonction Skin::build_user_menu().

-  Par défaut, cette fonction est implémentée dans 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
avatar
from Montréal ou Chambly, Québec
781 posts

inspired from Bernard on Jan. 15 2007


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
avatar
from nearby-an-airport
Associate, 6927 posts

on Jan. 15 2007


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 :

Click to fold/unfold Extrait du script

 
Lesage Alain

avatar
Lasares
on Jan. 15 2007
from Montréal ou Chambly, Québec

YACS team (Quebec)
Share
Information channels
Recent files