Widoki Nazwa maszyny Blocka jest „mieszana” (?)

20

Nowicjusz Drupala, więc popraw mnie, jeśli nie rozumiem, ale normalnie, gdy Blok jest tworzony przez Widoki, nazwa maszyny bloku jest dołączana do nazwy maszyny Widoku.

tzn. „article_listing_view-block_1”

Kiedy korzystam z funkcji block_load ($ module, $ block_id), tak to zrobiłem, aby wywołać ją w ten sposób: $ block = block_load („views”, „article_listing_view-block_1”);

Jednak z bardzo dziwnego powodu, jeden konkretny Blok z nazwą komputera:

„flag_comments_as_offensive-block_1”

ma identyfikator maszyny mieszającej:

„92a591f5a81d13a3dd5492f073f9e135”

Mówię „haszowany”, ponieważ identyfikator komputera zmienia się bezpośrednio na podstawie nazwy komputera bloku. Jeśli zmienię go z bloku_1 na blok, zmieni się, a kiedy wrócę z bloku do bloku_1, przywróci identyfikator maszyny z powrotem do powyższego. Istnieje więc bezpośrednia korelacja między nazwą komputera a generowanym przez niego „zakodowanym” identyfikatorem.

Zamiast wywoływać block_load („widoki”, „nazwa maszyny”), muszę użyć identyfikatora maszyny z haszowaniem, co nie jest problemem, ale zajęło mi dużo czasu, aby się zorientować. Sposób, w jaki to wymyśliłem, to przejście do Struktura -> Bloki i najechanie kursorem na link „Konfiguruj” i sprawdzenie adresu URL. Zauważyłem, że wszystkie moje inne bloki mają adres URL zawierający identyfikator maszyny, ale dla tego konkretnego bloku był to identyfikator maszyny mieszanej. Kiedy włożyłem identyfikator maszyny do block_load, altówka, działało to jak urok!

Sądzę więc, że pytanie sprowadza się do: Co się dzieje i dlaczego Drupal wymyślił nazwę mojej maszyny? Czy to błąd, czy błąd z mojej strony?

Piotr
źródło

Odpowiedzi:

23

Wynika to z faktu, że moduł blokowy oczekuje „delty” (id bloku) o długości do 32 znaków. Ale wyświetlanie bloku widoku może zawierać do 65 znaków: do 32 znaków z nazwy widoku i 32 znaków z nazwy wyświetlanej oraz myślnik „-” między nimi.

Gdy delta przekroczy limit 32 znaków, widok wyświetli ją za pomocą md5 - nie jest to ciąg losowy. Możesz bezpiecznie używać go do selektorów CSS i jQuery.

Capi Etheriel
źródło
większość mojej odpowiedzi pochodzi z drupal.org/node/346602
Capi Etheriel
Dzięki! Wiedziałem, że to nie był przypadek, ale nie byłem do końca pewien, co się dzieje. To wyjaśnia :).
Peter
4

Widoki nazw komputerów są mieszane tylko wtedy, gdy nazwa ma ponad 32 znaki.

tim.plunkett
źródło