我在我的网站中集成了 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']) {
?> •
<?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 ,但我有点迷茫。
编辑:我仍然坚持这个,任何人都可以帮助我吗?我认为我必须用 $_rootref 替换 $this->_rootref 并可能添加一些包含但我不知道是哪个。谢谢