Views Block的计算机名称正在“散列”(?)


20

Drupal的新手,如果我的理解是错误的,请纠正我,但是通常,当Views创建一个Block时,该Block的机器名会附加到Views的机器名上。

即“ article_listing_view-block_1”

当使用block_load($ module,$ block_id)函数时,我一直在这样调用它:$ block = block_load(“ views”,“ article_listing_view-block_1”);

但是,由于某些非常奇怪的原因,一个特定的Block具有机器名称:

“ flag_comments_as_offensive-block_1”

哈希计算机ID为:

“ 92a591f5a81d13a3dd5492f073f9e135”

我之所以说“已散列”,是因为机器ID直接根据块的机器名称更改。如果我将其从block_1更改为block,它将更改,并且当我从block_1恢复为block_1时,它将把机器ID恢复为上述值。因此,计算机名称与其生成的“哈希” ID之间存在直接关联。

我不必使用block_load(“ views”,“ machine name”),而必须使用哈希的计算机ID,这不是问题,但花了我长时间才能弄清楚。我发现的方法是进入“结构”->“块”,然后将鼠标悬停在“配置”链接上,然后查看URL。我注意到我所有其他块都有一个包含其机器ID的URL,但是对于此特定块,它是哈希的机器ID。一旦我将机器ID放入中提琴block_load中,它就像一个魅力!

所以我想这个问题可以归结为:怎么回事,为什么Drupal哈希我的机器名?这是错误还是我的错误?

Answers:


23

这是因为块模块期望最长32个字符的'delta'(块ID)。但是视图块显示最多可以包含65个字符:视图名称中最多可以包含32个字符,显示名称中最多可以包含32个字符,并且它们之间必须带有连字符'-'。

当变化量超过32个字符的限制时,Views将通过md5对其进行哈希处理-这不是随机字符串。您可以安全地将其用于CSS和jQuery选择器。


我的大部分答案来自drupal.org/node/346602
Capi Etheriel

谢谢!我知道这不是随机的,但我不确定这到底是怎么回事。这解释了:)。
彼得

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.