Php Joomla显示/隐藏页面标题,如果类别或文章视图


Php Joomla show/hide pageheading if category or article view

我需要在Joomla模板中编辑此代码,以便仅当我在类别博客视图中显示页面标题(id="jf_page_heading"),并在文章内部隐藏它。

<?php
            $menu               = JFactory::getApplication()->getMenu();
            $active             = $menu->getActive();
            if (is_object($active)) {
                $pageHeading        = $active->params->get('page_heading');
                $show_pageHeading   = $active->params->get('show_page_heading');
                // CALL
                if($pageHeading != ''){ // or - if($pageHeading != '' && $show_pageHeading){
        ?>
            <div id="jf_page_heading">
                <div class="rt-container">
                    <div class="rt-block">
                        <h1><?php echo $pageHeading; ?></h1>
                        <?php echo $gantry->displayModules('jf-page-heading','basic','basic'); ?>
                        <div class="clear"></div>
                    </div>
                </div>
            </div>
        <?php } } ?>

我应该如何编辑它?

  1. 要在类别博客视图中显示页面标题,不需要编辑代码。相反,您可以简单地在类别博客菜单中启用show page heading参数。要在文章视图中隐藏页面标题,需要在模板文件夹中为其创建覆盖。

    文章路径: site/templates/html/com_content/Article/default.php

  2. 另一种方法,如果你想通过代码来做,因为你在类别博客视图中使用龙门阵模板,如果代码不存在您不应该在if条件下检查$pageheading,而应该检查show_pageHeading变量。

    分类-博客路径: site/templates/html/com_content/category/blog.php

       <?php $menu  = JFactory::getApplication()->getMenu();
        $active = $menu->getActive();
        if (is_object($active)) {
        $pageHeading        = $active->params->get('page_heading');
        $show_pageHeading   = $active->params->get('show_page_heading'); // returns 1 or 0 if set to Yes or no in menu item
        // check if showpageheading is set in menu item
       if($show_pageHeading){ ?>
        <div id="jf_page_heading">
        <div class="rt-container">
            <div class="rt-block">
                <h1><?php echo $pageHeading; ?></h1>
                <?php echo $gantry->displayModules('jf-page-heading','basic','basic'); ?>
            <div class="clear"></div>
            </div>
       </div>
       </div>
      <?php } } ?>
    

按照第(1)点在文章视图中隐藏页面标题。

试试

$input = JFactory::getApplication()->input; 
if (
  $input->getCmd('option') == 'com_content' &&
  $input->getCmd('layout') == 'blog' &&
  $input->getCmd('view') == 'category'
) {
    // Show title
}