首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >块在区域间移动时更改其ID?

块在区域间移动时更改其ID?
EN

Stack Overflow用户
提问于 2011-09-30 11:13:59
回答 1查看 111关注 0票数 1

在Drupal 6下,我有一个自定义块,我已经将它命名并放置到一个自定义的右侧侧边栏区域中。这个块的ID (我从block.tpl.php中从$block_id助手变量中发现)是7。

我正在重写这个块的输出,因为它显示一个视图,我需要更改标记;我在template.php中有一个名为myTheme_preprocess_block()的预处理函数,它搜索块的唯一ID,因此:

代码语言:javascript
运行
复制
myTheme_preprocess_block(&$vars) {

    $this_block_id = $vars['id']; /* region-independent ID (for reliability) */
    $vars['template_files'] = array();

    switch ($this_block_id) {

        case 7:
            $vars['template_files'][] = 'block-my-override-template';
            break;
        default:
            /* take no action */
    }
}

现在,我已经将这个块从右边的侧边栏区域(它是一个自定义区域,而不是Garland附带的默认区域)移动到一个页脚区域,它也有一个自定义名称。突然,我的重写模板文件block-my-override-template.tpl.php不再被引用。

我从block.tpl.php内部挖掘并输出了唯一的块ID,这个块神奇地将的ID从7更改为13!带着一张笔直的脸,也一样!将这个块返回到右边的侧边栏区域也会将这个块返回到ID 7(我的所有代码都开始工作了)。

我的问题是:当块从一个区域移动到另一个区域时,如果它的“唯一”ID发生变化,我们如何才能唯一地识别它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-11 18:30:16

如果您使用的是视图,为什么不重写视图的块显示,而不是使用实际的块呢?

您也可以简单地在模块中声明自定义块吗?这将使您更容易管理块的主题化方面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7609532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档