Ім'я машини блоку Views "хеширується" (?)


20

Новачок у Drupal, тому виправте мене, якщо я розумію, що це неправильно, але зазвичай, коли блок створюється видами Views, ім'я блоку блоку додається до імені машини Views.

тобто "article_listing_view-block_1"

Під час використання функції block_load ($ module, $ block_id) я так називаю так: $ block = block_load ("views", "article_listing_view-block_1");

Однак, з дуже дивної причини, один конкретний Блок з назвою машини:

"flag_comments_as_offtack-block_1"

має хешированний ідентифікатор машини:

"92a591f5a81d13a3dd5492f073f9e135"

Я кажу "хеш", тому що ідентифікатор машини змінюється безпосередньо на основі імені машини блоку. Якщо я зміню його з block_1 на block, він зміниться, а коли я поверну назад з блоку до block_1, він поверне ідентифікатор машини назад до вищевказаного. Тож існує пряма кореляція між назвою машини та ідентифікованим "хешованим" ідентифікатором.

Замість виклику block_load ("перегляди", "ім'я машини") я повинен використовувати ідентифікований ідентифікований верстат машини, що не є проблемою, але це знадобило мені багато часу. Я зрозумів це, як зайти в Структура -> Блоки та навести курсор миші на посилання "Налаштувати" та подивитися URL-адресу. Я помітив, що всі інші мої блоки мають URL-адресу, яка включає його ідентифікатор машини, але для цього конкретного блоку це був ідентифікований ідентифікатор машини. Після того, як я поставив ідентифікатор машини в block_load, альта, це спрацювало як шарм!

Тому я думаю, що питання зводиться до: Що відбувається, і чому Drupal хеширує мою назву машини? Це помилка чи помилка з мого боку?

Відповіді:


23

Це відбувається тому, що модуль блоку очікує 'дельта' (ідентифікатор блоку) довжиною до 32 символів. Але дисплей блоку перегляду може містити до 65 символів: до 32 символів від імені перегляду та 32 символи від відображуваного імені та дефіс '-' між ними.

Коли дельта перевищить ліміт 32 символів, Views буде хешировать її через md5 - це не випадкова рядок. Ви можете сміливо використовувати його для селекторів CSS та jQuery.


більшість моєї відповіді надходить від drupal.org/node/346602
Capi Etheriel

Спасибі! Я знав, що це не випадково, але я не був точно впевнений, що відбувається. Це пояснює це :).
Пітер

4

Імена машин перегляду хешируються, лише якщо ім'я має довжину понад 32 символи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.