【问题标题】:Theming two Drupal aggregator blocks separately分别对两个 Drupal 聚合器块进行主题化
【发布时间】:2011-02-07 16:11:14
【问题描述】:

我对 Drupal 还很陌生,但已经玩了一段时间了 - 但这个让我很难过:

我目前正在构建的网站上有两个聚合器块。有没有办法为整个区块设置主题?其次,有没有办法根据它是哪个聚合器来对整个块进行主题化?

我可以通过theme_aggregator_block_item 为单个项目设置主题。但是,我的两个聚合器块中的这个主题项目。我想要不同的项目输出,具体取决于它是哪个聚合器。

我尝试了 block-aggregator.tpl.php 方法,但我在该文件中所做的任何更改都不会得到反映(即使在清除缓存之后)。我把这个文件放在我的主题目录和我的主题目录/模板中(只是为了确保),但仍然无处可去。当我将其他内容放在此文件夹中时,它们将被覆盖。另外,我看不出这将如何让我选择一个主题。

我想用if($block_name_var == 'aggregator 1') { // do this } 类型的方法是可能的,但我似乎无法让块模板首先为其设置主题。

任何想法或想法将不胜感激。

【问题讨论】:

    标签: php drupal drupal-6 drupal-theming drupal-blocks


    【解决方案1】:

    Theme developer 模块可用于确定如何覆盖网站的特定部分。它会告诉您当前正在使用哪些主题函数或模板文件,以及您有哪些选项可以覆盖它们。

    在这种情况下,您可以通过覆盖 block.tpl.php 来设置整个块的主题。要分别对不同的聚合器块进行主题化,可以使用 block-aggregator-feed-1.tpl.php 和 block-aggregator-feed-2.tpl.php 分别覆盖 block.tpl.php 函数。

    至于为什么您当前的 block-aggregator.tpl.php 没有被拾取,我的第一个猜测是您的主题还没有包含 block.tpl.php。创建新模板文件时,请确保您的主题已包含基本模板文件。有关更多详细信息,请参阅Core templates and suggestions page。查找以“注意:有一个错误阻止...”开头的部分

    【讨论】:

    • 太好了,谢谢。我的主题是 Zen 子主题,并认为 Zen 模板文件夹中的 block.tpl.php 可以被覆盖。我将它移到我的主题模板文件夹中,一切都很好。感谢您的帮助和出色、全面的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多