2013-10-07 73 views
1

我從來沒有做過任何PHP編碼之前,但我使用chronoforums論壇擴展,我試圖添加一些PHP的論壇,這樣,如果用戶登錄在它將顯示歡迎:$用戶,如果沒有,它會顯示一個鏈接登錄/註冊。這是我嘗試的代碼,但它崩潰了論壇頁面。試圖添加PHP Joomla網站崩潰

<?php 
    $user = JFactory::getUser(); 
    $status = $user->guest; 
    if($status == 1) { 
     $url = "/forum/login"; 
     echo "<a href=\"$url\">Login/Register</a>"; 
    } else { 
     echo "<p>Welcome: {$user->username}</p>"; 
    } 
?> 

錯誤:

Fatal error: Class 'GCore\Extensions\Chronoforums\Helpers\JFactory' not found in D:\wamp\www\administrator\components\com_chronoforums\extensions\chronoforums\helpers\elements.php on line 72 
Call Stack 
# Time Memory Function Location 
1 0.0008 687992 {main}() ..\index.php:0 
2 0.1207 9311448 JSite->dispatch() ..\index.php:52 
3 0.1248 9382296 JComponentHelper::renderComponent() ..\application.php:220 
4 0.1318 9428368 JComponentHelper::executeComponent() ..\helper.php:335 
5 0.1322 9495248 require_once('D:\wamp\www\components\com_chronoforums\chronoforums.php') ..\helper.php:355 
6 0.1401 10315576 GCore\Libs\AppJ::call() ..\chronoforums.php:20 
7 0.1402 10318272 GCore\Libs\AppJ->dispatch() ..\app_j.php:290 
8 0.2263 14214704 GCore\Libs\View->renderView() ..\app_j.php:208 
9 0.2267 14328112 include('D:\wamp\www\administrator\components\com_chronoforums\extensions\chronoforums\views\index.php') ..\view.php:69 
10 0.2268 14328112 GCore\Extensions\Chronoforums\Helpers\Elements->header() ..\index.php:6 

這裏是整個頁面我添加的代碼:

<?php 
/** 
* ChronoCMS version 1.0 
* Copyright (c) 2012 ChronoCMS.com, All rights reserved. 
* Author: (ChronoCMS.com Team) 
* license: Please read LICENSE.txt 
* Visit http://www.ChronoCMS.com for regular updates and information. 
**/ 
namespace GCore\Extensions\Chronoforums\Helpers; 
defined('_JEXEC') or die('Restricted access'); 
defined("GCORE_SITE") or die; 
class Elements { 
    function footer($data = array()){ 
     $topic = isset($data['topic']) ? $data['topic'] : null; 
     $subscribed = isset($data['subscribed']) ? $data['subscribed'] : null; 

     ?> 
     <div class="cfu-navbar"> 
      <div class="cfu-inner"> 
      <span class="cfu-corners-top"><span></span></span> 
      <ul class="cfu-linklist"> 
       <li class="cfu-icon-home"><a accesskey="h" href="<?php echo r_("index.php?option=com_chronoforums"); ?>"><?php echo l_('CHRONOFORUMS_BOARD_INDEX'); ?></a></li> 

       <?php if(\GCore\Libs\Authorize::authorized('\GCore\Extensions\Chronoforums\Chronoforums', 'make_posts')): ?> 
        <?php if(isset($subscribed)): ?> 
         <?php if(!empty($subscribed['Subscribed'])): ?> 
         <li class="cfu-icon-unsubscribe"><a title="<?php echo l_('CHRONOFORUMS_UNSUBSCRIBE_TOPIC'); ?>" href="<?php echo r_("index.php?option=com_chronoforums&cont=topics&act=unsubscribe&t=".$topic['Topic']['id']); ?>"><?php echo l_('CHRONOFORUMS_UNSUBSCRIBE_TOPIC'); ?></a></li> 
         <?php else: ?> 
         <li class="cfu-icon-subscribe"><a title="<?php echo l_('CHRONOFORUMS_SUBSCRIBE_TOPIC_DESC'); ?>" href="<?php echo r_("index.php?option=com_chronoforums&cont=topics&act=subscribe&t=".$topic['Topic']['id']); ?>"><?php echo l_('CHRONOFORUMS_SUBSCRIBE_TOPIC'); ?></a></li> 
         <?php endif; ?> 
        <?php endif; ?> 
        <?php if(0): ?> 
        <li class="cfu-icon-bookmark"><a title="Bookmark topic" href="">Bookmark topic</a></li> 
        <?php endif; ?> 
       <?php endif; ?> 
      </ul> 
      <span class="cfu-corners-bottom"><span></span></span></div> 
     </div> 
     <?php 
    } 

    function header($data = array()){ 
     $forum = isset($data['forum']) ? $data['forum'] : null; 
     ?> 
     <div class="cfu-navbar"> 
      <div class="cfu-inner"> 
      <span class="cfu-corners-top"><span></span></span> 
      <ul class="cfu-linklist cfu-leftside"> 
       <li class="cfu-icon-home"> 
        <a accesskey="h" href="<?php echo r_("index.php?option=com_chronoforums"); ?>"><?php echo l_('CHRONOFORUMS_BOARD_INDEX'); ?></a> 
        <?php if(!empty($forum)): ?> 
        <strong>‹</strong> 
        <a href="<?php echo r_("index.php?option=com_chronoforums&cont=forums&f=".$forum['id']); ?>"><?php echo $forum['title']; ?></a> 
        <?php endif; ?> 
       </li> 

      </ul> 

      <div class="cfu-rightside"> 
       <form action="<?php echo r_('index.php?option=com_chronoforums&cont=search'); ?>" method="post" name="searchform"> 
       <fieldset> 
        <input type="text" value="" size="20" id="cfu-search_keywords" name="skeywords" class="cfu-inputbox cfu-search cfu-tiny"/> 
        <input type="submit" name="forums_search" value="<?php echo l_('CHRONOFORUMS_SEARCH'); ?>" class="cfu-button2"/> 
        <input type="hidden" name="f" value=""/> 
       </fieldset> 
       </form> 
      </div> 

      <span class="cfu-corners-bottom"><span></span></span></div> 
     </div> 
<?php 
$user = JFactory::getUser(); 
$status = $user->guest; 
if($status == 1){ 
$url = "/forum/login"; 
echo "<a href=\"$url\">Login/Register</a>"; 
} 
else 
{ 
echo "<p>Welcome: {$user->username}</p>"; 
} 
?> 
     <?php 
    } 
} 
+0

這是什麼'd的第36行:\ WAMP \ WWW \管理員\分量\ com_chronoforums \庫\圖.php'看起來像? – Phil

+0

$ this - > $ alias = new $ helper(); – user2852977

+0

對不起給了你錯誤的信息。 – user2852977

回答

0

正如你在GCore\Extensions\Chronoforums\Helpers工作和JFactory類是在全局空間,你只需要將它作爲前綴,例如

$user = \JFactory::getUser(); 

或者,你可以在上面添加一個use聲明,如

namespace GCore\Extensions\Chronoforums\Helpers; 

use \JFactory; 

http://php.net/manual/language.namespaces.global.php

+0

我一直在尋找小時,並修復它。謝謝! – user2852977