我正在建立我的第一个drupal(6)网站,到目前为止我喜欢这个系统。
我现在遇到了一个问题:为内容提供更多空间我想在特定模块的每个页面上隐藏右侧边栏(使用导航菜单等)(或者也可以:节点/来自模块的视图)
我想出的唯一方法是在模块CSS文件中添加一些CSS,但这对我来说似乎不太干净,因为我需要在每次更新时重做它(模块也使用5个CSS)不同视图的文件)
有更好的方法吗?
要明确:我不想隐藏一个块,我想隐藏整个侧边栏
答案 0 :(得分:2)
嗯。这是一个自定义模块或通常可用的东西吗?有些模块允许您为它们创建自定义tpl.php文件(请参阅theming guide)。这可能会很快解决您的问题。
如果您正在使用节点,那么它会更加容易。您可以通过命名约定(再次通过主题中的.tpl.php文件)来主题特定类型的节点。您可以查看how to do that here。
绝对查看主题指南,因为您可能想要创建自己的主题而不是黑客攻击其中一个核心主题(不推荐)。通常,您可以将/ themes / garland复制到/ sites / all / themes / my_garland,将您的网站主题切换为该主题,然后进行所需的任何更改(否则每次更新核心时都必须重新应用更改)。
最后,如果你想在PHP中做更复杂的事情(参见arg函数),你可以检查路径参数(这对我来说似乎很奇怪)。如果这是您的第一个Drupal站点,您可能还需要知道how to include css programatically。
祝你好运! Drupal是一个有趣而有趣的产品。答案 1 :(得分:1)
您可以为网站中的每个块和路径配置块可见性(admin / build / block)。在“配置”/“特定于页面的可见性设置”/“在特定页面上显示块”下,您可以设置不显示某些特定路径的导航菜单块。如果侧边栏没有要显示的块,它将隐藏自身,从而为内容留出更多空间。
答案 2 :(得分:1)
你可以使用Context模块,除此之外,你可以为每个块/菜单设置规则,在何时何地显示(或不显示)。你也可以像Josep解释的那样做,但是使用Context可以获得更多选择。
正如Josep所说,当边栏中没有活动的块时,它应该会自动消失,如果没有检查你的page.tpl.php它应该有这样的内容:
<?php if ($right): ?>
<div id="sidebar-right">
<div id="sidebar-right-inner"> <?php print $right; ?> </div>
</div>
<?php endif; ?>
因此,如果Right区域中没有任何内容,则不会显示侧边栏。也许您必须更改区域的名称,具体取决于您在模板中调用它们的方式。
答案 3 :(得分:0)
我相信你已经得到了答案或解决问题的方法。
有一种简单的方法可以解决您的问题。这是a link。