如何在不同的 Drupal 主题上显示不同的视图
Posted
技术标签:
【中文标题】如何在不同的 Drupal 主题上显示不同的视图【英文标题】:How to show different Views on different Drupal Themes 【发布时间】:2011-01-23 00:08:20 【问题描述】:假设我的 drupal 网站有一个默认主题。在这里,我创建了视图、块等,并按照我想要的方式为公众设计了所有样式。现在,作为管理员,我想要一个完全独立的主题。没问题,我在主题目录中创建了第二个主题,并将我的管理员用户主题配置切换到第二个主题。但是,如果在我的第二个主题中我想展示完全不同的内容(即视图、块等)怎么办? 让我们以我的首页为例(正面)。 现在我的首页有一个使用视图的幻灯片。无论我使用什么主题,这个视图显然都会显示在首页上。那么对于我的首页,我如何才能为第二个主题显示与我用于第一个主题的幻灯片视图完全不同的视图(例如博客文章列表)?
【问题讨论】:
【参考方案1】:最简单的方法是将您的视图放在一个块中,因为块是按主题配置的。不同的主题可以有完全不同的块配置。这种方法的一个潜在问题是,要让参数之类的东西与块中托管的视图很好地配合使用,确实需要做更多的工作。
另一个可能对您有用的选项是使用不同的方式以相同的视图为主题。视图与 Drupal 的主题层配合得非常好,您可以为特定视图或视图显示创建模板文件。查看视图管理页面中的主题信息链接以查看视图的所有可能覆盖。当然,这是假设您要显示的内容之间存在一些共同的元素。
第三种选择可能是在一个页面上显示多个视图,并使用权限系统确保任何时候只显示一个。我过去曾使用过这种方法,但它确实有点难以管理,因为随着需求的变化,我必须在多个视图中复制这些变化。
【讨论】:
是的,根据我的需要和您的回答,权限似乎很大程度上是我现在关注的重点。谢谢。【参考方案2】:如果问题是关于在不同路径上触发的管理主题,并且块具有路径可见性设置。视图不只是出现在页面上,如果它们在一个块中,则处理,如果不是 - 它们如何出现在页面上?
至于前面,如果您说有两个主题并且用户可以切换,那么您需要自己的“路由代码”。对此没有任何支持。即,您需要自己的块,根据主题调用相关块。
【讨论】:
我猜“管理主题”这个词具有误导性,因为在大多数情况下,这意味着 drupal 管理页面的主题。这不是我的意思。我们有 2 个主题。主题 1 在首页显示幻灯片,但如果激活主题 2,则首页将显示博客文章列表。 至于视图,它们是页面——我在它们的配置中给了它们一个路径。【参考方案3】:这看起来像是两个相当新但非常强大的模块的奇妙应用。
上下文 - http://drupal.org/project/context 与 空格 - http://drupal.org/project/spaces
或
面板 http://drupal.org/project/panels
两者都有允许您为页面设置上下文的概念,以根据各种标准更改输出。在您的情况下,标准将是查看页面的用户的角色。两者都比 CurtainDog 提供的技巧更不笨拙,顺便说一句,这些技巧都是非常有效的方法。这两个模块的优点是它们使组织和选择过程更加理智和简单。
很难对其中一个提出建议,但简而言之:面板在界面中有更多选项,但在代码级别有一点学习曲线。 上下文/空间在编程级别上非常容易使用,但需要更多编码才能完成大多数任务。我建议在承诺之前尝试两者。有关两者的精彩讨论,请收听this podcast。
【讨论】:
谢谢!我对面板很熟悉,但上下文和空间对我来说是新的。非常强大的模块!以上是关于如何在不同的 Drupal 主题上显示不同的视图的主要内容,如果未能解决你的问题,请参考以下文章