hook_block_view_alter Implementation



我想更改下面的函数,

function user_block_view($delta = '') {         // Line 1 //
  global $user;                                 // Line 2 //
  $block = array();                             // Line 3 //
  switch ($delta) {                             // Line 4 //
    case 'login':                               // Line 5 //
      if (!$user->uid && !(arg(0) == 'user' && !is_numeric(arg(1)))) {
        $block['subject'] = t('User login');    // Line 7 //
        $block['content'] = drupal_get_form('user_login_block');
      }                                         // Line 9 //
    return $block; // Line 10
  ...
} // Line n

我其实想添加

else if($user -> uid){
  $block['subject'] = t('Subject'); 
  $block['content'] = someotherfunction();
}

在上述代码的第 9 行之后。

如何在我的模板中实现它.php(自定义主题)

我尝试了很多,但没有成功。

<?php
function phptemplate_preprocess_block(&$vars) {    
    if (isset($vars['block'])) {
        if($vars['block']->module == 'user') {
            global $user;
            if (!$user->uid && !(arg(0) == 'user' && !is_numeric(arg(1)))) {
                $vars['block']->subject = t('User login');
                $vars['block']->content = drupal_get_form('user_login_block');
            }
            else if($user->uid){
                $vars['block']->subject = t('Subject');
                $vars['block']->content = someotherfunction();
            }
        }
    }
}

这应该行得通。

以下是更多信息:如何在drupal中覆盖$block>内容?

  switch ($delta) {                             // Line 4 //
    case 'login':                               // Line 5 //
      if (!$user->uid && !(arg(0) == 'user' && !is_numeric(arg(1)))) {
        $block['subject'] = t('User login');    // Line 7 //
        $block['content'] = drupal_get_form('user_login_block');
      }  
     else if($user->uid){  // Line 9 //
       $block['subject'] = t('Subject'); 
       $block['content'] = someotherfunction();
      }                                     
    return $block; // 

但是删除$user -> uid之间的所有空格。

相关内容

  • 没有找到相关文章

最新更新