[Résolu]Récupérer le niveau hiérarchique d'une page appelante - Version imprimable +- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr) +-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html) +--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html) +--- Sujet : [Résolu]Récupérer le niveau hiérarchique d'une page appelante (/thread-1811.html) |
[Résolu]Récupérer le niveau hiérarchique d'une page appelante - eric62 - 13/03/2012 Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~ Ecrivez votre question ici. Bonjour, Pour harmoniser/automatiser certaines pages, j'utilise des "pages génériques" qui récupère un argument de 'POST' pour, via un UDT, une recherche spécifique sur la BD et un affichage en correspondance. J'ai également besoin, pour l'affichage d'un sous-menu des pages du même niveau hiérarchique, de connaitre la position de la page appelante. N'est-ce pas possible (via un smarty ou autre) ? Actuellement, je passe cela également comme paramètre, mais avec comme problème que si je change l'ordre des pages, je dois ré-adapter "à la main" tous les paramètres. Comme exemple, j'ai une page "Liste des membres" qui a pour parent le 3.4.1.1, et pour qui je passe dans "additional parameters" une variable à laquelle j'assigne cette valeur (et qu'il me faut donc manuellement changer si le 'parent' est modifié par l'insertion /suppression d'une page). Une variable $_SESSION actualisée par la page appelante fait évidemment l'affaire, mais pose naturellement problème si on ouvre d'autres fenêtres/tabs en même temps. Merci pour vos idées. [Résolu]Récupérer le niveau hiérarchique d'une page appelante - jissey - 13/03/2012 Bonjour et bienvenue, puisque tu développes, tu peux t'inspirer du module "menuManager" qui travaille avec la hiérarchie des pages. Dans ton UDT, tu peux aussi interroger la BDD et récupérer les champs "parent_id" et "hierarchy" dans la table content. Je ne suis pas sûr d'avoir compris à quel niveau et pourquoi tu as besoin de la hiérarchie, mais tout est dans la table content. eric62 a écrit :J'ai également besoin, pour l'affichage d'un sous-menu des pages du même niveau hiérarchiqueEst-ce qu'une simple balise Code : {menu start_level="2"} [Résolu]Récupérer le niveau hiérarchique d'une page appelante - eric62 - 13/03/2012 Bon, en cherchant un peu, il y a bien-sûr la "méthode dure", à se faire un petit utilitaire de "mise en cohérence" qui va récupérer dans la table "cms_content" le champ "hierarchy" qui a p.e. la valeur "00003.00004.00001.00001.00001" et mettre à jour la valeur correspondante du champ "params" dans la table "cms_content_props" avec pour valeur "&Depth=3.4.1.1" Mais bon, il y a peut-être + élégant ... [Résolu]Récupérer le niveau hiérarchique d'une page appelante - eric62 - 13/03/2012 Merci pour la réponse ! jissey a écrit :Dans ton UDT, tu peux aussi interroger la BDD et récupérer les champs "parent_id" et "hierarchy" dans la table contentLe problème, c'est que le parent réel est une simple rubrique "non-visible", et que la/les pages appelantes sont de simples "Internal Page Link" avec la "cible" définie dans la "Destination Page" jissey a écrit :Est-ce qu'une simple baliseBen justement, c'est la valeur du "2" que j'aimerai avoir comme variable, avec comme valeur celle de la page "appelante" (et pas "parente"). [Résolu]Récupérer le niveau hiérarchique d'une page appelante - jissey - 13/03/2012 et si tu réussi à récupèrer le http_referer? [Résolu]Récupérer le niveau hiérarchique d'une page appelante - eric62 - 13/03/2012 jissey a écrit :et si tu réussi à récupèrer le http_referer?Malheureusement ça ne marche pas, car http_refer retourne la page précédente, mais pas (p.e.) le (sous-)menu sur lequel on a clické pour avoir la page. On peut donc avoir le 1. qui via menu fait appel au 3.4.4.1... Ce que je voudrais récupérer, c'est 3.4.4, pas 1. [Résolu]Récupérer le niveau hiérarchique d'une page appelante - jissey - 13/03/2012 désolé, difficile de t'aider plus pour moi, je passe la main. [Résolu]Récupérer le niveau hiérarchique d'une page appelante - bess - 14/03/2012 http://wiki.cmsmadesimple.org/index.php/Share_your_tags_here#Get_a_page.27s_root_parent.27s_hierarchy-position http://wiki.cmsmadesimple.org/index.php/Share_your_tags_here#Get_a_page.27s_root_parent.27s_alias tu peux t'inspirer de ces exemples pour récupérer la node parente de ta page, de définir son level et d'afficher ensuite {menu start_level="$new_var"} dans ton gabarit pour afficher le menu désiré. code rapide non testé à placer dans une UDT que t'appellera avant {menu ...} dans ton template Code : global $smarty; PS: je suis pas certain pour la ligne 3, essai également : $thisPage = cmsms()->get_variable['content_id']; [Résolu]Récupérer le niveau hiérarchique d'une page appelante - eric62 - 14/03/2012 Trop fort ! Excellent, Ca marche... J'avais pourtant essayé plusieurs trucs du genre, le 'code' actuel étant: Code : # Name: hierarchy La "page générique" est devenue: Citation :{hierarchy}{menu start_element=$new_var template="minimal_psn"} $new_var remplacant $h_level. Mille mercis !! |