PHPBB导航条在外部网站



我有phpbb3集成在我的网站。

我有登录在我的头网页如https://wiki.phpbb.com/External_Login解释。

一切都很好,但我想走得更远一点,我想有导航栏在我的网站标题,然后我可以看到新的消息和用户资料在我的网站标题。我正在使用这个代码:

    <?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菜单在我的网站,我的意思是,当我在论坛中冲浪,我可以显示导航栏在我的网站标题,但当我在我的主页,我得到

致命错误:在C:wampwwwespcabecera.php的第2行中,当不在对象上下文中使用$this

我认为文件可能会加载一些文件,并在整个代码中更改$this->_rootref,但我有点迷路了。

编辑:我仍然被这个困住了,有人可以帮助我吗?我认为我必须用$_rootref替换$this->_rootref,并可能添加一些包括,但我不知道哪一个。由于

面向对象编程(Object Oriented Programming,面向对象编程)

在面向对象编程(Object Oriented Programming,面向对象编程)中,per $this->使用了特定的对象来进行声明,而在面向对象编程(objectoriented Programming,面向对象编程)中,不存在特定的对象。

在PHP设计的框架中,使用usar面向对象(Object Oriented)来声明变量_rootref['S_USER_LOGGED_IN'],使用usar面向对象(Object Oriented)来声明变量CC_4,使用usar面向对象(Object Oriented)来声明变量CC_4。

Puedes probar poniendo un echo $this-> _rootref en esa página para ver a que se traduce by tratar de usarlo luego,如果该dicute不存在,tendras que ver donde esta declarado _rootref['S_USER_LOGGED_IN'] y trabajar coneso。

(英语)

可能有点晚了,但是$this->引用了使用面向对象编程的该页中的声明对象。该对象只存在于该上下文中,而不存在于该上下文中而不存在于其他非phpbb页面中因此无论如何,总是会得到这个错误。

我没有仔细看代码,但它可能指的是论坛对象或任何持有_rootref变量的对象。

最简单的事情可能是找出$this在该上下文中引用的对象,并尝试从外部页面调用它。或者找出在哪里声明_rootref['S_USER_LOGGED_IN']并在您的页面中使用该函数或它的变体。

您可以尝试在该页:echo $this->_rootref上回显它是否存在或echo $this->_rootref['S_USER_LOGGED_IN'],如果不存在。除此之外,在项目中查找_rootref['S_USER_LOGGED_IN']以查看它被声明的位置。

希望这能帮助到别人。

最新更新