0

私のサイトには phpbb3 が統合されています。

https://wiki.phpbb.com/External_Loginで説明されているように、ヘッダー Web ページにログインがあります。

すべて正常に動作しますが、もう少し先に進みたいと思います。ウェブサイトのヘッダーにナビゲーション バーを配置したいのですが、ウェブサイトのヘッダーに新しいメッセージとユーザー プロファイルを表示できます。私はこのコードを使用しています:

    <?php
define('IN_PHPBB', true);
$phpbb_root_path = '../phpbb3/';
$phpEx           = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

?>  


<div class="registro">

<?php
if ($this->_rootref['S_USER_LOGGED_IN']) {
?>

<div class="navbar" style="background-image:url('../img/opaco.png');">
     <div class="inner"><span class="corners-top"><span></span></span>



     <?php
    if (!$this->_rootref['S_IS_BOT'] && $this->_rootref['S_USER_LOGGED_IN']) {
?>

     <ul class="linklist leftside">
        <li class="icon-ucp">
           <a href="<?php
        echo (isset($this->_rootref['U_PROFILE'])) ? $this->_rootref['U_PROFILE'] : '';
?>" title="<?php
        echo ((isset($this->_rootref['L_PROFILE'])) ? $this->_rootref['L_PROFILE'] : ((isset($user->lang['PROFILE'])) ? $user->lang['PROFILE'] : '{ PROFILE }'));
?>" accesskey="e"><?php
        echo ((isset($this->_rootref['L_PROFILE'])) ? $this->_rootref['L_PROFILE'] : ((isset($user->lang['PROFILE'])) ? $user->lang['PROFILE'] : '{ PROFILE }'));
?></a>
              <?php
        if ($this->_rootref['S_DISPLAY_PM']) {
?> (<a href="<?php
            echo (isset($this->_rootref['U_PRIVATEMSGS'])) ? $this->_rootref['U_PRIVATEMSGS'] : '';
?>">
<?php
            echo (isset($this->_rootref['PRIVATE_MESSAGE_INFO'])) ? $this->_rootref['PRIVATE_MESSAGE_INFO'] : '';
?></a>)<?php
        }
        if ($this->_rootref['S_DISPLAY_SEARCH']) {
?> &bull;

           <?php
        }
?>

        </li>
     </ul>
     <?php
    }
?>


     <ul class="linklist rightside">

        <?php
    if (!$this->_rootref['S_IS_BOT']) {
        if ($this->_rootref['S_DISPLAY_MEMBERLIST']) {
?><?php
        }
        if (!$this->_rootref['S_USER_LOGGED_IN'] && $this->_rootref['S_REGISTER_ENABLED'] && !($this->_rootref['S_SHOW_COPPA'] || $this->_rootref['S_REGISTRATION'])) {
?><li class="icon-
register"><a href="<?php
            echo (isset($this->_rootref['U_REGISTER'])) ? $this->_rootref['U_REGISTER'] : '';
?>"><?php
            echo ((isset($this->_rootref['L_REGISTER'])) ? $this->_rootref['L_REGISTER'] : ((isset($user->lang['REGISTER'])) ? $user->lang['REGISTER'] : '{ REGISTER }'));
?></a></li><?php
        }
?>

           <li class="icon-logout"><a href="<?php
        echo (isset($this->_rootref['U_LOGIN_LOGOUT'])) ? $this->_rootref['U_LOGIN_LOGOUT'] : '';
?>" title="<?php
        echo ((isset($this->_rootref['L_LOGIN_LOGOUT'])) ? $this->_rootref['L_LOGIN_LOGOUT'] : ((isset($user->lang['LOGIN_LOGOUT'])) ? $user->lang['LOGIN_LOGOUT'] : '{ LOGIN_LOGOUT }'));
?>" accesskey="x">
<?php
        echo ((isset($this->_rootref['L_LOGIN_LOGOUT'])) ? $this->_rootref['L_LOGIN_LOGOUT'] : ((isset($user->lang['LOGIN_LOGOUT'])) ? $user->lang['LOGIN_LOGOUT'] : '{ LOGIN_LOGOUT 
}'));
?></a></li>
        <?php
    }
?>

     </ul>

     <span class="corners-bottom"><span></span></span></div>
  </div>


<?php
} else
//user is not logged in  
    {
    include('loginGeneral.php');
    // this is a login form
}
?>      


</div>   

ユーザーが登録していない場合はカスタムログインフォームを使用しますが、ユーザーが登録している場合は、一部変更されたナビゲーションバーを表示します。

そのコードは、サイトのphpbb3メニューにいるときに機能します。つまり、フォーラム内でサーフィンしているときは、ウェブサイトのヘッダーにナビゲーションバーを表示できますが、たとえばホームページにいるときは

致命的なエラー: 2 行目の C:\wamp\www\esp\cabecera.php のオブジェクト コンテキストではないときに $this を使用する

ファイルがいくつかのファイルをロードし、コード全体で $this->_rootref を変更する可能性があると思いますが、少し迷っています。

編集済み:私はまだこれにこだわっています。誰か助けてください。$this->_rootref を $_rootref に置き換え、おそらくいくつかのインクルードを追加する必要があると思いますが、どれがわかりません。ありがとう

4

1 に答える 1