如何检测页面是 Joomla 文章还是类别博客视图

How to detect if the page is a Joomla article or category blog view

我想根据页面的特定视图将 class 应用到 div。如果页面是类别博客视图,我想添加 class "blogview",否则如果页面是文章,我想应用 class "articleview"。我会在模板的 index.php 文件中执行此操作。我该怎么做?

提前致谢。

我是这样解决的:

<?php
    if( JRequest::getVar( 'view' ) == 'article' )
    {
        $articleviewornot = "articleview";
    }
    if( JRequest::getVar( 'view' ) == 'category' )
    {
        $categoryviewornot = "categoryview";
    }
?>

您可以通过几种方式处理这个问题,但我刚刚创建了一个 $class 变量并根据视图/布局将其设置为您想要的 classes。

<?php
$joomlaApp = JFactory::getApplication()->input;
$option = $joomlaApp->getCmd('option');
$view = $joomlaApp->getCmd('view');
$layout = $joomlaApp->getCmd('layout');
$class = '';

if ($option == 'com_content' && $view == 'article'){
    $class = 'articleview';
}elseif($option == 'com_content' && $view == 'category' && $layout == 'blog'){
    $class = 'blogview';
}
echo '<div class="'.$class.'">';
?>

JRequest 已弃用。请改用 JFactory::getApplication()->input。例如JFactory::getApplication()->input->get('view')

参见:https://docs.joomla.org/Retrieving_request_data_using_JInput