Il nome della macchina di Views Block viene "cancellato" (?)


20

Un principiante di Drupal, quindi correggimi se la mia comprensione è sbagliata, ma normalmente, quando viene creato un blocco da Views, il nome della macchina del blocco viene aggiunto al nome della macchina di Views.

cioè "article_listing_view-block_1"

Quando uso la funzione block_load ($ module, $ block_id), il modo in cui l'ho fatto è chiamarla così: $ block = block_load ("views", "article_listing_view-block_1");

Tuttavia, per qualche motivo molto strano, un particolare blocco con il nome della macchina:

"Flag_comments_as_offensive-block_1"

ha un ID macchina con hash di:

"92a591f5a81d13a3dd5492f073f9e135"

Dico "hash" perché l'ID macchina cambia in base direttamente al nome macchina del blocco. Se lo cambio da blocco_1 a blocco, cambierà e quando torno da blocco a blocco_1, ripristinerà l'ID macchina su quanto sopra. Quindi esiste una correlazione diretta tra il nome della macchina e l'ID "hash" che genera.

Invece di chiamare block_load ("viste", "nome macchina"), devo usare l'ID macchina con hash, il che non è un problema ma mi ci è voluto molto tempo per capire. Il modo in cui l'ho capito è stato andare in Struttura -> Blocchi e passare con il mouse sopra il link "Configura" e guardare l'URL. Ho notato che tutti gli altri miei blocchi hanno un URL che includeva l'ID macchina, ma per questo blocco particolare era l'ID macchina con hash. Una volta inserito l'ID macchina in block_load, viola, ha funzionato come un incantesimo!

Quindi suppongo che la domanda si riduce a: Cosa sta succedendo e perché Drupal ha il nome della mia macchina? È un errore o un errore da parte mia?

Risposte:


23

Questo perché il modulo a blocchi prevede un 'delta' (ID blocco) lungo fino a 32 caratteri. Ma un display a blocchi di vista può avere fino a 65 caratteri: fino a 32 caratteri dal nome della vista e 32 caratteri dal nome della visualizzazione e un trattino '-' tra di loro.

Quando il delta supera il limite di 32 caratteri, Views lo hash tramite md5 - non è una stringa casuale. Puoi usarlo in sicurezza per i selettori CSS e jQuery.


la maggior parte della mia risposta arriva da drupal.org/node/346602
Capi Etheriel,

Grazie! Sapevo che non era casuale, ma non ero nemmeno sicuro di cosa stesse succedendo. Questo lo spiega :).
Peter,

4

I nomi delle macchine delle viste sono sottoposti a hash solo se il nome è più lungo di 32 caratteri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.