我以前从未做过任何 php 编码,但我正在使用来自 chronoforums 的论坛扩展程序,并且我正在尝试向论坛添加一些 php,以便如果用户登录,它将显示 Welcome: $user,如果没有它将显示一个链接登录/注册。这是我尝试过的代码,但它使论坛页面崩溃。
<?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
}
}