Новичок в Drupal, так что поправьте меня, если мое понимание неверно, но обычно, когда Блок создается Представлениями, имя машины блока добавляется к имени машины Представлений.
то есть "article_listing_view-block_1"
Когда я использую функцию block_load ($ module, $ block_id), я вызывал ее так: $ block = block_load ("views", "article_listing_view-block_1");
Однако, по какой-то очень странной причине, один конкретный блок с именем машины:
"Flag_comments_as_offensive-block_1"
имеет идентификатор хэшированной машины:
"92a591f5a81d13a3dd5492f073f9e135"
Я говорю «хэшировано», потому что идентификатор машины изменяется в зависимости от имени машины блока. Если я изменю его с block_1 на block, он изменится, и когда я вернусь обратно из block в block_1, он вернет идентификатор машины обратно к описанному выше. Таким образом, существует прямая корреляция между именем машины и «хэшированным» идентификатором, который она генерирует.
Вместо вызова block_load («views», «имя машины») я должен использовать хешированный идентификатор машины, что не является проблемой, но мне понадобилось много времени, чтобы разобраться. Я понял, что нужно зайти в Structure -> Blocks и навести курсор мыши на ссылку «Configure» и посмотреть URL. Я заметил, что у всех моих других Блоков есть URL, который включал его идентификатор машины, но для этого конкретного блока это был хешированный идентификатор машины. Как только я вставил идентификатор машины в block_load, альт, это сработало как шарм!
Поэтому я думаю, что вопрос сводится к следующему: что происходит, и почему Drupal хэширует мое имя машины? Это ошибка или ошибка с моей стороны?
Имена компьютеров представлений хэшируются только в том случае, если длина имени превышает 32 символа.
источник