Exibições O nome da máquina do bloco está sendo "hash" (?)

20

Como iniciante no Drupal, corrija-me se meu entendimento estiver errado, mas normalmente, quando um bloco é criado pelo Views, o nome da máquina do bloco é anexado ao nome da máquina do Views.

ou seja, "article_listing_view-block_1"

Ao usar a função block_load ($ module, $ block_id), a maneira como eu faço isso é chamá-la assim: $ block = block_load ("views", "article_listing_view-block_1");

No entanto, por alguma razão muito estranha, um bloco em particular com o nome da máquina:

"flag_comments_as_offensive-block_1"

possui um ID de máquina com hash de:

"92a591f5a81d13a3dd5492f073f9e135"

Eu digo "hash" porque o ID da máquina muda com base diretamente no nome da máquina do bloco. Se eu mudar de bloco_1 para bloco, ele será alterado e, quando eu voltar do bloco para o bloco_1, ele reverterá o ID da máquina para o anterior. Portanto, existe uma correlação direta entre o nome da máquina e o ID "hash" gerado por ela.

Em vez de chamar block_load ("views", "nome da máquina"), preciso usar o ID da máquina com hash, o que não é um problema, mas demorei muito tempo para descobrir. A maneira que eu descobri foi entrar em Estrutura -> Blocos e passar o mouse sobre o link "Configurar" e olhar para a URL. Percebi que todos os meus outros blocos têm uma URL que incluía sua ID de máquina, mas, para esse bloco em particular, era a ID da máquina com hash. Depois de inserir o ID da máquina em block_load, viola, funcionou como um encanto!

Acho que a pergunta se resume a: o que está acontecendo e por que o Drupal está usando o nome da minha máquina? Isso é um bug ou um erro da minha parte?

Pedro
fonte

Respostas:

23

Isso ocorre porque o módulo de bloco espera um 'delta' (ID do bloco) com até 32 caracteres. Mas uma exibição de bloco de exibição pode ter até 65 caracteres: até 32 caracteres no nome da exibição e 32 caracteres no nome da exibição e um hífen '-' entre eles.

Quando o delta excede o limite de 32 caracteres, o Views faz o hash através do md5 - não é uma sequência aleatória. Você pode usá-lo com segurança para seletores CSS e jQuery.

Capi Etheriel
fonte
maior parte da minha resposta vem de drupal.org/node/346602
Capi Etheriel
Obrigado! Eu sabia que não era aleatório, mas também não tinha certeza do que estava acontecendo. Isso explica :).
Peter
4

Os nomes das máquinas de visualizações são hash apenas se o nome tiver mais de 32 caracteres.

tim.plunkett
fonte