Récupérer identifiant du menu parent dans fichier tpl

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Salut

J'aimerai, dans le fichier page.tpl.php, récupérer l'identifiant du menu parent (celui du premier niveau) de la page courante.

Merci

Forum : 
Version de Drupal : 

Bonjour,
dans le fichier template.php du theme, il faut définir une variable qui récupère ça :

function phptemplate_preprocess_page(&$variables) {

$variables['mon_menu'] = menu_get_active_trail();
// ou bien
$variables['mon_menu'] = menu_get_active_breadcrumb();
// ou bien
$variables['mon_menu'] = menu_get_active_menu_name();
// ou bien une autre fonction du meme genre, il y a toute une série de menu_get_... en fonction de la partie du menu à obtenir. Voir http://api.drupal.org pour plus d'info

}

Une fois fait (et le cache vidé !), la variable $mon_menu contiendra la valeur en question dans page.tpl.php

Bonjour,
je me permets de venir ici car ces informations ne m'apportes pas l'identifiant de l'élément parent.. il me mets juste "navigation" pour menu_get_active_menu_name(), et tout plein d'autres infos pour les 2 autres fonctions, mais pas d'éléments parent :(

Une idée ?

quand je fais un print_r de la variable $parent, il m'affiche ça, et il n'y a pas de parametre mlid... :( : (Désolé pour l'encodage, en format d'entrée filtred html il me sautais pas de ligne) Array ( [0] => Array ( [title] => Accueil [href] => [localized_options] => Array ( )

        [type] => 0
    )

[1] => Array
    (
        [path] => node/%
        [load_functions] => Array
            (
                [1] => node_load
            )

        [to_arg_functions] => 
        [access_callback] => node_access
        [access_arguments] => a:2:{i:0;s:4:"view";i:1;i:1;}
        [page_callback] => node_page_view
        [page_arguments] => Array
            (
                [0] => stdClass Object
                    (
                        [nid] => 33
                        [type] => page
                        [language] => fr
                        [uid] => 1
                        [status] => 1
                        [created] => 1287049479
                        [changed] => 1287049479
                        [comment] => 0
                        [promote] => 0
                        [moderate] => 0
                        [sticky] => 0
                        [tnid] => 0
                        [translate] => 0
                        [vid] => 33
                        [revision_uid] => 1
                        [title] => Adhésion
                        [body] => 
                        [log] => 
                        [revision_timestamp] => 1287049479
                        [format] => 1
                        [name] => admin
                        [picture] => 
                        [data] => a:0:{}
                        [print_display] => 1
                        [print_display_comment] => 0
                        [print_display_urllist] => 1
                        [print_mail_display] => 1
                        [print_mail_display_comment] => 0
                        [print_mail_display_urllist] => 1
                        [print_pdf_display] => 1
                        [print_pdf_display_comment] => 0
                        [print_pdf_display_urllist] => 1
                        [last_comment_timestamp] => 1287049479
                        [last_comment_name] => 
                        [comment_count] => 0
                        [taxonomy] => Array
                            (
                            )

                        [files] => Array
                            (
                            )

                        [build_mode] => 0
                        [readmore] => 
                        [content] => Array
                            (
                                [print_links] => Array
                                    (
                                        [#weight] => -101
                                        [#suffix] => 
                                        [#value] => 
                                        [#prefix] => 
                                        [#title] => 
                                        [#description] => 
                                        [#printed] => 1
                                    )

                                [#content_extra_fields] => Array
                                    (
                                        [title] => Array
                                            (
                                                [label] => Titre
                                                [description] => Formulaire du module node.
                                                [weight] => -5
                                            )

                                        [body_field] => Array
                                            (
                                                [label] => Corps
                                                [description] => Formulaire du module node.
                                                [weight] => 0
                                                [view] => body
                                            )

                                        [revision_information] => Array
                                            (
                                                [label] => Informations sur les révisions
                                                [description] => Formulaire du module node.
                                                [weight] => 20
                                            )

                                        [author] => Array
                                            (
                                                [label] => Informations de publication
                                                [description] => Formulaire du module node.
                                                [weight] => 20
                                            )

                                        [options] => Array
                                            (
                                                [label] => Options de publication
                                                [description] => Formulaire du module node.
                                                [weight] => 25
                                            )

                                        [comment_settings] => Array
                                            (
                                                [label] => Paramètres des commentaires
                                                [description] => Comment module form.
                                                [weight] => 30
                                            )

                                        [menu] => Array
                                            (
                                                [label] => Paramètres du menu
                                                [description] => Formulaire du module menu.
                                                [weight] => -2
                                            )

                                        [book] => Array
                                            (
                                                [label] => Livre
                                                [description] => Formulaire du module livre (book).
                                                [weight] => 10
                                            )

                                        [path] => Array
                                            (
                                                [label] => Paramètres de chemin
                                                [description] => Path module form.
                                                [weight] => 30
                                            )

                                        [attachments] => Array
                                            (
                                                [label] => Fichiers attachés
                                                [description] => Formulaire du module upload.
                                                [weight] => 30
                                                [view] => files
                                            )

                                        [print] => Array
                                            (
                                                [label] => Printer, e-mail and PDF versions
                                                [description] => Print module form.
                                                [weight] => 30
                                            )

                                    )

                                [#pre_render] => Array
                                    (
                                        [0] => content_alter_extra_weights
                                    )

                                [body] => Array
                                    (
                                        [#weight] => 0
                                        [#value] => 
                                        [#title] => 
                                        [#description] => 
                                        [#printed] => 1
                                    )

                                [#title] => 
                                [#description] => 
                                [#printed] => 1
                            )

                        [links] => Array
                            (
                                [print_html] => Array
                                    (
                                        [href] => print/33
                                        [title] => Imprimer
                                        [attributes] => Array
                                            (
                                                [title] => Display a printer-friendly version of this page.
                                                [class] => print-page
                                                [rel] => nofollow
                                            )

                                        [html] => 1
                                        [query] => 
                                    )

                                [print_mail] => Array
                                    (
                                        [href] => printmail/33
                                        [title] => Envoyer par email
                                        [attributes] => Array
                                            (
                                                [title] => Send this page by e-mail.
                                                [class] => print-mail
                                                [rel] => nofollow
                                            )

                                        [html] => 1
                                        [query] => 
                                    )

                            )

                    )

            )

        [fit] => 2
        [number_parts] => 2
        [tab_parent] => 
        [tab_root] => node/%
        [title] => Adhésion
        [title_callback] => node_page_title
        [title_arguments] => a:1:{i:0;i:1;}
        [type] => 4
        [block_callback] => 
        [description] => 
        [position] => 
        [weight] => 0
        [file] => 
        [href] => node/33
        [options] => Array
            (
            )

        [access] => 1
        [localized_options] => Array
            (
            )

        [map] => Array
            (
                [0] => node
                [1] => stdClass Object
                    (
                        [nid] => 33
                        [type] => page
                        [language] => fr
                        [uid] => 1
                        [status] => 1
                        [created] => 1287049479
                        [changed] => 1287049479
                        [comment] => 0
                        [promote] => 0
                        [moderate] => 0
                        [sticky] => 0
                        [tnid] => 0
                        [translate] => 0
                        [vid] => 33
                        [revision_uid] => 1
                        [title] => Adhésion
                        [body] => 
                        [log] => 
                        [revision_timestamp] => 1287049479
                        [format] => 1
                        [name] => admin
                        [picture] => 
                        [data] => a:0:{}
                        [print_display] => 1
                        [print_display_comment] => 0
                        [print_display_urllist] => 1
                        [print_mail_display] => 1
                        [print_mail_display_comment] => 0
                        [print_mail_display_urllist] => 1
                        [print_pdf_display] => 1
                        [print_pdf_display_comment] => 0
                        [print_pdf_display_urllist] => 1
                        [last_comment_timestamp] => 1287049479
                        [last_comment_name] => 
                        [comment_count] => 0
                        [taxonomy] => Array
                            (
                            )

                        [files] => Array
                            (
                            )

                        [build_mode] => 0
                        [readmore] => 
                        [content] => Array
                            (
                                [print_links] => Array
                                    (
                                        [#weight] => -101
                                        [#suffix] => 
                                        [#value] => 
                                        [#prefix] => 
                                        [#title] => 
                                        [#description] => 
                                        [#printed] => 1
                                    )

                                [#content_extra_fields] => Array
                                    (
                                        [title] => Array
                                            (
                                                [label] => Titre
                                                [description] => Formulaire du module node.
                                                [weight] => -5
                                            )

                                        [body_field] => Array
                                            (
                                                [label] => Corps
                                                [description] => Formulaire du module node.
                                                [weight] => 0
                                                [view] => body
                                            )

                                        [revision_information] => Array
                                            (
                                                [label] => Informations sur les révisions
                                                [description] => Formulaire du module node.
                                                [weight] => 20
                                            )

                                        [author] => Array
                                            (
                                                [label] => Informations de publication
                                                [description] => Formulaire du module node.
                                                [weight] => 20
                                            )

                                        [options] => Array
                                            (
                                                [label] => Options de publication
                                                [description] => Formulaire du module node.
                                                [weight] => 25
                                            )

                                        [comment_settings] => Array
                                            (
                                                [label] => Paramètres des commentaires
                                                [description] => Comment module form.
                                                [weight] => 30
                                            )

                                        [menu] => Array
                                            (
                                                [label] => Paramètres du menu
                                                [description] => Formulaire du module menu.
                                                [weight] => -2
                                            )

                                        [book] => Array
                                            (
                                                [label] => Livre
                                                [description] => Formulaire du module livre (book).
                                                [weight] => 10
                                            )

                                        [path] => Array
                                            (
                                                [label] => Paramètres de chemin
                                                [description] => Path module form.
                                                [weight] => 30
                                            )

                                        [attachments] => Array
                                            (
                                                [label] => Fichiers attachés
                                                [description] => Formulaire du module upload.
                                                [weight] => 30
                                                [view] => files
                                            )

                                        [print] => Array
                                            (
                                                [label] => Printer, e-mail and PDF versions
                                                [description] => Print module form.
                                                [weight] => 30
                                            )

                                    )

                                [#pre_render] => Array
                                    (
                                        [0] => content_alter_extra_weights
                                    )

                                [body] => Array
                                    (
                                        [#weight] => 0
                                        [#value] => 
                                        [#title] => 
                                        [#description] => 
                                        [#printed] => 1
                                    )

                                [#title] => 
                                [#description] => 
                                [#printed] => 1
                            )

                        [links] => Array
                            (
                                [print_html] => Array
                                    (
                                        [href] => print/33
                                        [title] => Imprimer
                                        [attributes] => Array
                                            (
                                                [title] => Display a printer-friendly version of this page.
                                                [class] => print-page
                                                [rel] => nofollow
                                            )

                                        [html] => 1
                                        [query] => 
                                    )

                                [print_mail] => Array
                                    (
                                        [href] => printmail/33
                                        [title] => Envoyer par email
                                        [attributes] => Array
                                            (
                                                [title] => Send this page by e-mail.
                                                [class] => print-mail
                                                [rel] => nofollow
                                            )

                                        [html] => 1
                                        [query] => 
                                    )

                            )

                    )

            )

    )

)

Bonjour,

Savez-vous s'il est possible de récupérer l'alias du chemin (généré avec pathauto) quand on récupère un résultat de la table menu_links ?

la requete est la suivante:

SELECT *
FROM `menu_links`
WHERE plid = '157'

la réponse est la suivante:

Array
(
    [menu_name] => menu
    [mlid] => 154
    [plid] => 153
    [link_path] => node/8
    [router_path] => node/%
    [link_title] => produits
    [options] => a:3:{s:10:"attributes";a:1:{s:5:"class";s:12:"niveau2depli";}s:8:"langcode";s:2:"fr";s:5:"alter";b:1;}
    [module] => menu
    [hidden] => 0
    [external] => 0
    [has_children] => 1
    [expanded] => 1
    [weight] => 0
    [depth] => 2
    [customized] => 1
    [p1] => 153
    [p2] => 154
    [p3] => 0
    [p4] => 0
    [p5] => 0
    [p6] => 0
    [p7] => 0
    [p8] => 0
    [p9] => 0
    [updated] => 0
)

Merci

Merci ludwig, ça marche nickel.

Pour ceux qui désirent récupérer le nom du parent, il suffit de faire dans votre page.tpl.php :

<?php
 
print render($parent['1']['title']);
?>

Sans oublier bien sûr la déclaration dans le fichier template.php