在drupal 7中嵌入块无论如何都会失败

swa*_*wan 2 drupal drupal-blocks

这是我用drupal 7玩过的一周.使用drupal 6,我曾经能够在任何地方放置(登录)块:

  $block = (object) module_invoke($module, 'block', 'view', $delta);
  $block->module = $module;
  $block->delta = $delta;
  return theme('block', $block);
Run Code Online (Sandbox Code Playgroud)

或这个:

$block = module_invoke('user', 'block', 'view', 0); 
$vars['login'] = $block['content'];
Run Code Online (Sandbox Code Playgroud)

我更改了Drupal 7的delta'0':

$block = module_invoke('user', 'block', 'view', 'login'); // I have changed from 0 to 'login' for delta at drupal 7
$vars['login'] = $block['content'];
Run Code Online (Sandbox Code Playgroud)

两者都会导致致命错误.使用module_invoke我不知道的任何变化?http://api.drupal.org/api/drupal/includes--module.inc/function/module_invoke/7没有具体的变化

任何提示都将非常感激.

Dav*_*eid 6

hook_block($ op)在Drupal 7中更改为hook_block_op().尝试:

$block = module_invoke('user', 'block_view', 'login');
$vars['login'] = $block['content'];
Run Code Online (Sandbox Code Playgroud)

或者为什么不直接使用表单:

$vars['login'] = drupal_get_form('user_login_block');
Run Code Online (Sandbox Code Playgroud)