web-dev-qa-db-fra.com

Comment obtenir l'alias ou le titre de l'élément de menu actif?

Dans mon modèle, je souhaite donner une classe supplémentaire au corps du document, qui prendra les noms de l'alias de l'élément de menu, afin de pouvoir créer un style individuel entre les pages.

Mais comment puis-je obtenir le pseudonyme ou le titre de l'élément de menu actif?

6
FFrewin

Pour obtenir les données de l'élément de menu actif (actuel), utilisez le code suivant:

 $app       = JFactory::getApplication(); // Access the Application Object

 $menu      = $app->getMenu(); // Load the JMenuSite Object

 $active    = $menu->getActive(); // Load the Active Menu Item as an stdClass Object

Le $active est un objet de l'élément de menu actuel.

Sortir avec print_r($active) vous pouvez avoir une vue de toutes ses propriétés.

Exemple de sortie de ce qui précède print_r();

stdClass Object
(
    [id] => 136
    [menutype] => main-menu
    [title] => Photos
    [alias] => photos
    [note] => 
    [route] => photos
    [link] => index.php?option=com_content&view=article&id=157
    [type] => component
    [level] => 1
    [language] => en-US
    [browserNav] => 0
    [access] => 1
    [params] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [show_title] => 
                    [link_titles] => 
                    [show_intro] => 
                    [info_block_position] => 
                    [show_category] => 
                    [link_category] => 
                    [show_parent_category] => 
                    [link_parent_category] => 
                    [show_author] => 
                    [link_author] => 
                    [show_create_date] => 
                    [show_modify_date] => 
                    [show_publish_date] => 
                    [show_item_navigation] => 
                    [show_vote] => 
                    [show_icons] => 
                    [show_print_icon] => 
                    [show_email_icon] => 
                    [show_hits] => 
                    [show_tags] => 
                    [show_noauth] => 
                    [urls_position] => 
                    [menu-anchor_title] => 
                    [menu-anchor_css] => 
                    [menu_image] => 
                    [menu_text] => 1
                    [page_title] => 
                    [show_page_heading] => 0
                    [page_heading] => 
                    [pageclass_sfx] => 
                    [menu-meta_description] => 
                    [menu-meta_keywords] => 
                    [robots] => 
                    [secure] => 0
                )

        )

    [home] => 0
    [img] => 
    [template_style_id] => 0
    [component_id] => 22
    [parent_id] => 1
    [component] => com_content
    [tree] => Array
        (
            [0] => 136
        )

    [query] => Array
        (
            [option] => com_content
            [view] => article
            [id] => 157
        )

)

Pour utiliser n’importe laquelle des propriétés, vous pouvez faire un echo $active->'property name';

par exemple. echo $active->alias;

10
FFrewin