2013-05-19 64 views
0

我有phpbb3集成在我的網站。phpbb navbar在外部網站

我在我的標題網頁中登錄,如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對象方面:\ WAMP \ WWW \ ESP \ cabecera.php第2行

我認爲該文件可能加載一些文件,並修改了$這一點 - 在> _ rootref整個代碼,但我有點失落。

編輯:我仍然堅持這一點,任何人都可以幫助我嗎?我認爲我必須用$ _rootref替換$ this - > _ rootref,並且可能會添加一些include,但我不知道哪個。 感謝

+0

上面的代碼是你的'cabecera.php'廣告,這是'行2' – Yogus

+0

這段代碼是我的cabecera.php,我不明白你對不起。我已經在我的cabecera.php中有這個代碼,因爲是cabecera.php – user2329440

回答

0

取消波蘇晚報quizas,佩羅$this-> SE refiere人objeto闕ESTA declarado,POR ESO沒有TE funciona fuera德爾contexto,EN TU網站東德沒有existe ESE objeto(面向對象編程)。

羅MAS塞古羅ES闕本身refiera人objeto論壇,東德ESTA declarada拉可變_rootref

羅MAS卸妝水詩里亞版本qué時objecto ES $this連接ESE contextoŸllamarlo directamente CON PHP desde fuera,罪惡城市搜救面向對象Ø averiguar quien declara la variable _rootref['S_USER_LOGGED_IN'] y usar eso directamente。

Puedes probar poniendo未echo $this-> _rootref連接ESApágina第一個版本闕本身譖ŸTRATAR德usarlo luego,斯特骰子闕沒有existe,tendras闕版本東德ESTA declarado _rootref['S_USER_LOGGED_IN']Ÿtrabajar CON ESO。

(英文)

有點晚了可能,但$this->使用面向對象編程指的一個聲明的對象在該頁面。該對象只存在於該上下文中,它不像其他非phpbb頁面中那樣存在,因此無論發生什麼,您都會遇到該錯誤。

我沒有看太密切的代碼,但它可能指的是論壇對象或哪個對象持有_rootref變量。

最容易做的事情可能是找出對象$this在該上下文中引用的內容並嘗試從外部頁面調用該對象。或者找出_rootref['S_USER_LOGGED_IN']是在哪裏申明的,並在你的頁面或其變體中使用該功能。

您可以嘗試在該頁面上回顯:echo $this->_rootref以查看是否存在或echo $this->_rootref['S_USER_LOGGED_IN']如果不存在。除此之外,請在項目中查找_rootref['S_USER_LOGGED_IN']以查看其聲明的位置。

希望這可以幫助別人。

+0

Muchisimas gracias! mas vale tarde que nunca;) – user2329440