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