ti-enxame.com

Como obter o título da categoria pai para a exibição de tags

Quero colocar a categoria do artigo atual e o link da categoria pai na minha página. Eu recebo a categoria através do seguinte código:

$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>';

Mas não consigo obter a categoria pai de qualquer maneira. Eu tento isso, mas não obtive resultados:

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

4
gag

Tente isto (testado e trabalhado no Joomla 3.3.0):

Coloque este código:

<?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>';
?>

neste arquivo:

templates/yourtemplate/html/com_tags/default_items.php

copiar de:

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

entre essas duas linhas

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

Certamente, nas opções do artigo, você pode apenas definir 'Mostrar categoria', 'Categoria de link', 'Mostrar pai' e 'Vincular pai' como 'Mostrar' (categoria) e 'Sim' (link).

2
DesignSubway

Eu acho que você poderia fazer isso usando o modelo de conteúdo para carregar o artigo.

/* 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" */

Os valores mostrados nos comentários do lado direito são o que acabei de extrair de uma instalação demo do Joomla 3.3 com o conteúdo de amostra "Blog" instalado. Observe o valor da categoria root.

1
Craig