ビューブロックのマシン名は「ハッシュ」されています(?)


20

Drupalの初心者なので、理解が間違っている場合は修正してください。ただし、通常、ビューによってブロックが作成されると、ブロックのマシン名がビューのマシン名に追加されます。

すなわち、「article_listing_view-block_1」

block_load($ module、$ block_id)関数を使用するとき、私がやってきた方法は次のように呼び出すことです:$ block = block_load( "views"、 "article_listing_view-block_1");

ただし、非常に奇妙な理由で、マシン名を持つ特定の1つのブロック:

「flag_comments_as_offensive-block_1」

ハッシュされたマシンIDは次のとおりです。

「92a591f5a81d13a3dd5492f073f9e135」

マシンIDはブロックのマシン名に直接基づいて変化するため、「ハッシュ」と言います。block_1からblock_1に変更すると、変更されます。blockからblock_1に戻すと、マシンIDは上記に戻ります。そのため、マシン名とそれが生成する「ハッシュ化された」IDとの間には直接的な相関関係があります。

代わりにblock_load(「ビュー」、「マシン名」)を呼び出すので、私は問題ではありませんが、それは私にかかりましたハッシュされたマシンID、使用する必要が長い把握する時間を。私がそれを理解したのは、構造->ブロックに移動し、「構成」リンクの上にマウスを移動してURLを確認することでした。私は気づいすべて私の他のブロックは、そのマシンIDを含まURLを持っていますが、この特定のブロックのために、それはハッシュされ、マシンIDました。マシンIDをblock_load(ビオラ)に入れると、それは魅力のように機能しました!

だから私は質問が要約されると思う:何が起こっているのか、そしてDrupalは私のマシン名をハッシュしているのか?これはバグですか、それとも私のエラーですか?

回答:


23

これは、ブロックモジュールが最大32文字の「デルタ」(ブロックID)を想定しているためです。ただし、ビューブロックディスプレイには最大65文字を使用できます。ビュー名から最大32文字、ディスプレイ名から最大32文字、それらの間にハイフン「-」があります。

デルタが32文字の制限を超えると、Viewsはそれをmd5でハッシュします—これはランダムな文字列ではありません。CSSおよびjQueryセレクターに安全に使用できます。


私の答えのほとんどはdrupal.org/node/346602
Capi Etheriel

ありがとう!ランダムではないことは知っていましたが、何が起こっているのか正確にはわかりませんでした。これはそれを説明します:)。
ピーター

4

ビューのマシン名は、名前の長さが32文字を超える場合にのみハッシュされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.