0

以下の関数を変更したいのですが、

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行目以降。

template.php(カスタムテーマ)でそれを実装するにはどうすればよいですか

いろいろ試しましたが、まだ成功していません。

4

2 に答える 2

2
<?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->content をオーバーライドする方法は?

于 2013-09-10T09:16:02.087 に答える