2010-08-13 27 views
0

Cette question est peu spécifique à joomla.comment obtenir l'objet menu joomla basé sur le nom?

Je sais si avec le code $menu = &JSite::getMenu() je peux obtenir l'objet de référence du menu complet. Mais comment puis-je obtenir un menu spécifique basé sur le nom?

Mon Scénario: J'ai un menu de pied de page avec des éléments: accueil | à propos de nous | règles | politique de confidentialité.

Je dois afficher des liens vers deux éléments de menu Règles et politique de confidentialité dans un composant. Je ne peux pas coder les liens, car itemid serait différent dans l'environnement de développement et de production. Avons-nous une solution de contournement comme $menu = &JSite::getMenu()->get('footer-menu')->getMenuItem('rules'); qui peut me donner un objet de référence à un élément de menu particulier, à partir de laquelle je peux créer mes liens pour cet article particulier.

Merci, Tanmay

+0

Semble la fièvre vendredi !!! :(personne ne semble être en ligne ... S'il vous plaît aidez-moi .. au moins le lundi :) – jtanmay

+0

des conseils s'il vous plaît !!!! – jtanmay

Répondre

2

Pour autant que je sache, il n'y a pas un moyen intégré pour le faire. Mais je sens ta douleur.

Voici une adaptation d'une fonction que j'ai construite auparavant. Ce n'est pas récursif, donc vous n'obtiendrez qu'un seul niveau dans une hiérarchie de menus, mais cela me suffisait.

function getMenuItems($parentAlias) { 
    $db =& JFactory::getDBO(); 
    $sql = 'SELECT * FROM #__menu WHERE parent in ' . 
      '(SELECT id FROM #__menu WHERE alias='.$db->Quote($parentAlias).') '. 
      'AND published=1 ORDER BY ordering'; 
    $db->setQuery($sql); 
    $results = $db->loadObjectList(); 
} 

Faites-moi savoir si cela fonctionne pour vous.

+0

Garrett Bluma, Eh bien à la fin, j'ai fait quelque chose de similaire à votre implémentation, créé une fonction dans le modèle, pour obtenir un objet pour les éléments de menu que je veux. Merci pour votre réponse. Au moins, il a confirmé que je ne manque pas une grande fonction de joomla :) – jtanmay

2

Méthode n ° 1:

$menu = & JSite::getMenu(); 
$item = $menu->getItems('link', 'index.php?option=com_content&view=article&id=1', true); 

Méthode 2:

$menu = & JSite::getMenu(); 
$item = $menu->getItems('alias', 'rules', true); 
Questions connexes