Le nom de la machine de Views Block est «haché» (?)

20

Un débutant Drupal, corrigez-moi si ma compréhension est fausse, mais normalement, lorsqu'un bloc est créé par Views, le nom de la machine du bloc est ajouté au nom de la machine des vues.

c'est-à-dire "article_listing_view-block_1"

Lorsque j'utilise la fonction block_load ($ module, $ block_id), la façon dont je l'ai fait est de l'appeler ainsi: $ block = block_load ("views", "article_listing_view-block_1");

Cependant, pour certains très raison étrange, un bloc particulier avec le nom de la machine:

"flag_comments_as_offensive-block_1"

a un ID de machine hachée de:

"92a591f5a81d13a3dd5492f073f9e135"

Je dis "haché" parce que l'ID de la machine change directement en fonction du nom de la machine du bloc. Si je le change de block_1 en block, il changera et quand je reviendrai de block en block_1, il reviendra l'ID de la machine à ce qui précède. Il existe donc une corrélation directe entre le nom de la machine et l'ID "haché" qu'elle génère.

Au lieu d'appeler block_load ("vues", "nom de la machine"), je dois utiliser l'ID de la machine hachée, ce qui n'est pas un problème mais cela m'a pris du temps à comprendre. La façon dont je l'ai compris était d'aller dans Structure -> Blocs et de survoler le lien "Configurer" et de regarder l'URL. J'ai remarqué que tous mes autres blocs ont une URL qui comprenait son ID de machine, mais pour ce bloc particulier, c'était l'ID de machine hachée. Une fois que j'ai mis l'ID de la machine dans block_load, alto, cela a fonctionné comme un charme!

Je suppose donc que la question se résume à: Que se passe-t-il et pourquoi Drupal hache-t-il le nom de ma machine? Est-ce un bug ou une erreur de ma part?

Peter
la source

Réponses:

23

Cela est dû au fait que le module de bloc attend un «delta» (identifiant de bloc) jusqu'à 32 caractères. Mais un affichage de bloc de vue peut avoir jusqu'à 65 caractères: jusqu'à 32 caractères du nom de vue et 32 ​​caractères du nom d'affichage et un trait d'union «-» entre eux.

Lorsque le delta dépasse la limite de 32 caractères, Views le hachera via md5 - ce n'est pas une chaîne aléatoire. Vous pouvez l'utiliser en toute sécurité pour les sélecteurs CSS et jQuery.

Capi Etheriel
la source
la plupart de ma réponse vient de drupal.org/node/346602
Capi Etheriel
Merci! Je savais que ce n'était pas aléatoire, mais je n'étais pas exactement sûr de ce qui se passait non plus. Cela l'explique :).
Peter
4

Les noms de machine des vues sont hachés uniquement si le nom comporte plus de 32 caractères.

tim.plunkett
la source