1

我是 Drupal 的新手,所以如果我遗漏了任何明显的东西,请原谅。我们可以使用描述而不是 id 以编程方式查找块吗?

目前正在使用:

module_invoke('block', 'block', 'view', 17);

我希望使用类似的东西

module_invoke('block', 'block', 'view', 'myBlockName');

有什么想法吗 ?

4

2 回答 2

2

区块钩子的“查看”操作,根据“出价”在数据库中进行查找

"SELECT body, format FROM {boxes} WHERE bid = {$delta}"

因此,除非您覆盖该钩子,否则您将无法通过其名称调用块。即创建自己的

于 2012-08-03T04:17:55.867 回答
0

谢谢回复。我最终结束了我们执行以下操作。这使您可以避免对块 ID 进行硬编码

$result = db_query("Select bid from boxes where info ='your_block_name'");
$row = db_fetch_object($result);
$block = module_invoke('block', 'block', 'view', $row->bid);
于 2012-08-09T16:53:00.060 回答