assez simple ...
Je suppose que vous voulez ajouter la catégorie et la section de l'article et non votre composant personnalisé.
Cochez si demandé l'URL actuelle pour l'article. Si c'est pour l'article que vous connaissez l'ID d'article, utilisez cet article ID pour aller base de données et obtenir catid
de #__content
, Utilisez ce cat_id
pour aller à #__categories
et obtenir section
(c'est l'ID de section), passez à #__sections
pour obtenir le nom de section approprié . Tout cela peut être fait dans une déclaration de 1 sql.
$breadcrumbs =& JFactory::getApplication()->getPathway();
$breadcrumbs->addItem("SECTION_NAME", JRoute::_("index.php?option=com_content&view=section&id=SECTION_ID"));
$breadcrumbs->addItem("CATEGOY_NAME", JRoute::_("index.php?option=com_content&view=category&id=CATEGORY_ID"));
$breadcrumbs->addItem("Article");
Par ailleurs, si vous connaissez l'URL de l'élément de fil d'Ariane. Vous pouvez l'analyser et obtenir IDS. L'astuce ici n'est pas d'obtenir l'objet URI par défaut par JFactory::getURI()
parce que les choses vont devenir moche, utilisez JFactory::getURI('YOU_URI_NAME')
.
<?php
// You need to get Your own uri, you do not want to modify default URI
// because this will messup a lot of things
$uri = JFactory::getURI('MyCustomURI');
// Test # 1 [ID = SECTION_ID]
$url = "index.php?option=com_content&view=section&id=SECTION_ID";
$uri->parse($url);
echo "CURRENT SECTION = " . (int) $uri->getVar('id');
// Test # 2 [ID = 123]
$url = "index.php?option=com_content&view=section&id=123";
$uri->parse($url);
echo "CURRENT SECTION = " . (int) $uri->getVar('id');
?>
Merci, c'est fondamentalement la façon dont fonctionne mod_breadcrumb. Ce que je voulais faire, c'est essentiellement le contraire. Désolé, si mon explication était trompeuse. Asume, que j'ai $ chapelures dans mon module et que vous voulez obtenir le nom de la catégorie pour l'article avec le nom "Article". Je pensais que le plus simple serait de lire le lien (que vous avez rempli avec JRoute :: _ ("index.php? Option = com_content & view = category & id = CATEGORY_ID") ') et d'une façon ou d'une autre obtenir l'identifiant de la catégorie. Est-ce possible? – MaoPU
Est-ce qu'une méthode alternative résout votre dillema? – Alex
Fondamentalement oui. Pour obtenir une catégorie (ou une section) pour un certain article, j'ai utilisé le code suivant: '$ uri = new JURI(); $ uri-> parse ('index.php? option = com_content & view = catégorie & id = CATEGORY_ID'); if ($ uri-> getVar ('view') == 'category') {$ categoryID = $ uri-> getVar ('id');} if ($ uri-> getVar ('view') == 'section ') {$ sectionID = $ uri-> getVar (' id ');} '. De là, je pourrais obtenir le nom de la catégorie (ou le nom de la section) de la base de données en utilisant une requête db. Je suppose, il n'y a pas d'appel API Joomla pour résoudre ce problème, non? Donc je suppose que le problème est presque résolu. – MaoPU