Joomla 3 隐藏特定页面的内容

Joomla 3 Hide Content from specific page

我希望在所有页面上出现的某些页面上隐藏 div。我使用了一些 php 和 css 为每个页面分配了唯一代码,但我无法获得正确的 css 来隐藏或删除这些页面中的 div。

 .pageid111 .logo{
   display: none;
  }

是我正在尝试使用的。非常感谢任何帮助

一个解决方案是使用 joomla 框架检测主页 https://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page

通过相同的 getMenu() 方法,您可以概括其他菜单项的代码 Joomla 3.1 - Get active menu item url

无需在所有文件中直接调用logo,您可以创建一个模块并在需要的地方显示它。您必须更改模板文件中的一些代码。我将举一个例子,这样你就可以为自己的模板做。

如果您看到 Joomla 自带的默认模板 protostar。它有一个名为 index.php 的文件。 $logo 在第 67-78 行定义为

// Logo file or site title param
if ($this->params->get('logoFile'))
{
    $logo = '<img src="' . JUri::root() . $this->params->get('logoFile') . '" alt="' . $sitename . '" />';
}
elseif ($this->params->get('sitetitle'))
{
    $logo = '<span class="site-title" title="' . $sitename . '">' . htmlspecialchars($this->params->get('sitetitle')) . '</span>';
}
else
{
    $logo = '<span class="site-title" title="' . $sitename . '">' . $sitename . '</span>';
}

你可以评论出来。

接下来,在同一个文件的第 140 行附近,您会找到这段代码

<?php echo $logo; ?>

此代码正在调用徽标文件。只需将此代码替换为

<jdoc:include type="modules" name="logo" style="xhtml" />

您刚刚添加了一个带有名称徽标的新模块位置。

只有在 templateDetails.xml 文件中添加此位置后才会反映出来

如果你打开那个文件你会发现这些行

<positions>
        <position>banner</position>
        <position>debug</position>
        <position>position-0</position>
        <position>position-1</position>
        .............
</positions>

向其添加徽标位置

<positions>
        <position>banner</position>
        <position>debug</position>
        <position>logo</position>
        <position>position-0</position>
        <position>position-1</position>
        .............
</positions>

所以您现在有一个额外的模块位置来代替硬编码徽标图像。您可以将任何图像模块放在那里或只创建一个 html 模块。