El nombre de la máquina de Views Block está siendo "hash" (?)


20

Un novato de Drupal, así que corrígeme si entiendo mal, pero normalmente, cuando Vistas crea un Bloque, el nombre de la máquina del bloque se agrega al nombre de la máquina de Vistas.

es decir, "article_listing_view-block_1"

Cuando uso la función block_load ($ module, $ block_id), la forma en que lo he estado haciendo es llamarlo así: $ block = block_load ("views", "article_listing_view-block_1");

Sin embargo, por alguna razón muy extraña, un bloque en particular con el nombre de la máquina:

"flag_comments_as_offensive-block_1"

tiene una ID de máquina hash de:

"92a591f5a81d13a3dd5492f073f9e135"

Digo "hash" porque la ID de la máquina cambia directamente en función del nombre de la máquina del bloque. Si lo cambio de block_1 a block, cambiará, y cuando regrese de block a block_1, revertirá la ID de la máquina a la anterior. Por lo tanto, existe una correlación directa entre el nombre de la máquina y la identificación "hash" que genera.

En lugar de llamar a block_load ("vistas", "nombre de la máquina"), tengo que usar la ID de la máquina hash, lo cual no es un problema, pero me llevó mucho tiempo descubrirlo. La forma en que lo descubrí fue ir a Estructura -> Bloques y pasar el cursor sobre el enlace "Configurar" y mirar la URL. Noté que todos mis otros Bloques tienen una URL que incluía su ID de máquina, pero para este bloque en particular, era la ID de máquina hash. Una vez que puse la ID de la máquina en block_load, viola, ¡funcionó de maravilla!

Así que supongo que la pregunta se reduce a: ¿Qué está pasando y por qué Drupal está descifrando el nombre de mi máquina? ¿Es esto un error o un error de mi parte?

Respuestas:


23

Esto se debe a que el módulo de bloque espera un 'delta' (id de bloque) de hasta 32 caracteres de longitud. Pero una pantalla de bloque de vista puede tener hasta 65 caracteres: hasta 32 caracteres del nombre de la vista y 32 caracteres del nombre de la pantalla y un guión '-' entre ellos.

Cuando el delta excede el límite de 32 caracteres, las vistas lo dividirán en md5, no es una cadena aleatoria. Puede usarlo de forma segura para CSS y jQuery selectores.


la mayor parte de mi respuesta proviene de drupal.org/node/346602
Capi Etheriel

¡Gracias! Sabía que no era aleatorio, pero tampoco estaba exactamente seguro de lo que estaba pasando. Esto lo explica :).
Peter

4

Los nombres de las máquinas de vistas solo se combinan si el nombre tiene más de 32 caracteres de longitud.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.