Как определить блок-модуль заданного блока delta

Есть ли способ определить модуль блока, учитывая только дельта блока? Я надеюсь на решение, которое не требует пользовательского запроса.

Случай использования:
Мы позволяем нашему клиенту решать, какие блоки отображаются на определенном типе контента. Эти опции включают блоки, созданные через интерфейс администратора блока и блоки, созданные через admin. Из того, что я могу сказать, обычный блок и блок представления отображаются по-разному, поэтому код psuedo будет чем-то вроде.

// In preprocessing
if($block_module === 'views') {
    // do view rendering
} else {
    // do normal block rendering
}

Любые идеи?

5 голосов | спросил David 17 FebruaryEurope/MoscowbSun, 17 Feb 2013 21:17:00 +0400000000pmSun, 17 Feb 2013 21:17:00 +040013 2013, 21:17:00

1 ответ


0

Нет, это невозможно без имени модуля.

Дельты блоков должны быть уникальными для каждого модуля , поэтому любые два модуля могут реализовать блок с точно такой же дельта, и у вас не было бы способа определить, какой из них без имени модуля .

Простейшим доказательством этого в коде является block_load() , которая имеет эту подпись:

function block_load($module, $delta) {

Как вы можете видеть, даже Drupal не может загружать детали блока, не зная имя модуля, к сожалению.

ответил Clive 18 FebruaryEurope/MoscowbMon, 18 Feb 2013 13:43:39 +0400000000pmMon, 18 Feb 2013 13:43:39 +040013 2013, 13:43:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132