在模板中显示类别名称

时间:2012-01-19 15:46:14

标签: joomla joomla-template

我正在尝试在模块位置显示类别名称。

我试过了:

<?php echo $listing['Category']['title'];?>

它不起作用。

我关注了this link,但它显示了文章标题,我需要第一类。 我正在研究Joomla 1.7。

3 个答案:

答案 0 :(得分:6)

更简单的回答:

<?php echo $this->escape($this->item->category_title);?>

答案 1 :(得分:5)

根据OP中的海报评论:

<?php 
    $db = &JFactory::getDBO(); 
    $id = JRequest::getString('id'); 
    $db->setQuery('SELECT #__categories.title FROM #__content, #__categories WHERE #__content.catid = #__categories.id AND #__content.id = '.$id); 
    $category = $db->loadResult();
    echo $category; 
?>

答案 2 :(得分:5)

Travega非常接近,他的代码适用于页面,但不适用于类别页面。

在类别页面(例如类别博客或列表页面)上使用 $ id = JRequest :: getString('id'); 时,将返回该类别的ID。这意味着我们需要更多id变量的上下文,在本例中是'view'。

这是我修改过的travega代码版本:


function getCategoryName() {
    //Modified from: http://stackoverflow.com/questions/8928967/joomla-display-catagory-name-in-template

    $db = &JFactory::getDBO(); 
    $id = JRequest::getString('id'); 
    $view = JRequest::getString('view'); 

    if ($view == 'category') {
        $sql = "SELECT title FROM #__categories WHERE #__categories.id = $id";
    } else {
        $sql = "SELECT #__categories.title FROM #__content, #__categories WHERE #__content.catid = #__categories.id AND #__content.id = $id";
    }

    $db->setQuery($sql); 
    $category = $db->loadResult(); 
    return $category; 
}

其他相关信息:

我只在猫博客和猫列表页面上对Joomla 2.5.3进行了测试。我没有在com_content组件之外的任何东西上测试它。这意味着它可能无法在weblink,contact等页面上工作,因为您可能会再次松开上下文。