在模板中显示类别名称

0 joomla joomla-template

我试图在模块位置显示类别名称.

我试过了:

<?php echo $listing['Category']['title'];?>
Run Code Online (Sandbox Code Playgroud)

那没起效.

我按照这个链接,但它显示了文章标题,我需要第一类.我正在研究Joomla 1.7.

小智 6

更简单的答案:

<?php echo $this->escape($this->item->category_title);?>
Run Code Online (Sandbox Code Playgroud)


tra*_*ega 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; 
?>
Run Code Online (Sandbox Code Playgroud)


小智 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; 
}
Run Code Online (Sandbox Code Playgroud)

其他相关信息:

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