web-dev-qa-db-fra.com

Comment obtenir le titre de la catégorie parent pour la vue Tag

Je souhaite que les liens de catégorie et de catégorie parent de mon article actuel soient insérés dans ma page. Je reçois la catégorie via le code suivant:

$db = JFactory::getDbo();
$id = $item->core_catid;
$db->setQuery("SELECT cat.title FROM #__categories cat WHERE cat.id='$id'");
$category = $db->loadResult();
echo '<p>'.$category.'</p>';

Mais je n'arrive pas à obtenir la catégorie parente de toute façon. J'essaye ceci mais n'obtiens aucun résultat:

$db->setQuery("SELECT cat.title FROM #__categories cat WHERE cat.parent_id='$id'");

4
gag

Essayez ceci (testé et travaillé dans Joomla 3.3.0):

Mettez ce code:

<?php
$db = JFactory::getDbo();
$id = $item->core_catid;
$db->setQuery("SELECT cat.parent_id FROM #__categories cat WHERE cat.id='$id'");
$parent_category_id = $db->loadResult();
$db->setQuery("SELECT cat.title FROM #__categories cat WHERE cat.id='$parent_category_id'");
$parent_category_title = $db->loadResult();
if($parent_category_title != 'ROOT'){
 echo '<p>Parent Category: '.$parent_category_title.'</p>';
}
echo '<p>Parent Category: <a href="index.php?option=com_content&view=category&layout=blog&id='.$parent_category_id.'">'.$parent_category_title.'</a></p>';
?>

dans ce fichier:

templates/yourtemplate/html/com_tags/default_items.php

copie de:

composants\com_tags\views\tags\tmpl\default_items.php

entre ces deux lignes

<?php foreach ($items as $i => $item) : ?> //Line 63
<?php endforeach; ?>
5
Joomla Agency

Dans les options de votre article, vous pouvez sûrement définir les options "Afficher la catégorie", "Catégorie de lien", "Afficher le parent" et "Lien du parent" sur "Afficher" (catégorie) et "Oui" (lien).

2
DesignSubway

Je pense que vous pouvez le faire en utilisant le modèle de contenu pour charger l'article.

/* Lets say the article ID is stored in $id */

/* Get an instance of the generic articles model */
$model = JModelLegacy::getInstance('Articles', 'ContentModel');
$myArticle = $model->getItem($id);

$categoryID = $myArticle->catid; /* catid = "9" */
$category_title = $myArticle->category_title; /* category_title = "Blog" */
$category_alias = $myArticle->category_alias; /* category_alias = "blog" */

$parent_id = $myArticle->parent_id; /* parent_id = "1" */
$parent_title = $myArticle->parent_title; /* parent_title = "ROOT" */
$parent_alias = $myArticle->parent_alias; /* parent_alias = "root" */

Les valeurs indiquées dans les commentaires de droite sont ce que je viens d'extraire d'une installation de démonstration de Joomla 3.3 avec l'exemple de contenu "Blog" installé. Note la valeur de la catégorie root.

1
Craig