?? user.php
字號:
<?php
/**
* @version $Id: user.php 8536 2007-08-23 18:14:11Z jinx $
* @package Joomla.Framework
* @subpackage User
* @copyright Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant to the
* GNU General Public License, and as distributed it includes or is derivative
* of works licensed under the GNU General Public License or other free or open
* source software licenses. See COPYRIGHT.php for copyright notices and
* details.
*/
// Check to ensure this file is within the rest of the frameworkdefined('JPATH_BASE') or die();
jimport( 'joomla.html.parameter');
/**
* User class. Handles all application interaction with a user
*
* @author Louis Landry <louis.landry@joomla.org>
* @package Joomla.Framework
* @subpackage User
* @since 1.5
*/
class JUser extends JObject
{
/**
* Unique id
* @var int
*/
var $id = null;
/**
* The users real name (or nickname)
* @var string
*/
var $name = null;
/**
* The login name
* @var string
*/
var $username = null;
/**
* The email
* @var string
*/
var $email = null;
/**
* MD5 encrypted password
* @var string
*/
var $password = null;
/**
* Clear password, only available when a new password is set for a user
* @var string
*/
var $password_clear = '';
/**
* Description
* @var string
*/
var $usertype = null;
/**
* Description
* @var int
*/
var $block = null;
/**
* Description
* @var int
*/
var $sendEmail = null;
/**
* The group id number
* @var int
*/
var $gid = null;
/**
* Description
* @var datetime
*/
var $registerDate = null;
/**
* Description
* @var datetime
*/
var $lastvisitDate = null;
/**
* Description
* @var string activation hash
*/
var $activation = null;
/**
* Description
* @var string
*/
var $params = null;
/**
* Description
* @var string integer
*/
var $aid = null;
/**
* Description
* @var boolean
*/
var $guest = null;
/**
* User parameters
* @var object
*/
var $_params = null;
/**
* Error message
* @var string
*/
var $_errorMsg = null;
/**
* Constructor activating the default information of the language
*
* @access protected
*/
function __construct($identifier = 0)
{
// Create the user parameters object
$this->_params = new JParameter( '' );
// Load the user if it exists
if (!empty($identifier)) {
$this->load($identifier);
} else {
//initialise
$this->id = 0;
$this->gid = 0;
$this->sendEmail = 1;
$this->aid = 0;
$this->guest = 1;
}
}
/**
* Returns a reference to the global User object, only creating it if it
* doesn't already exist.
*
* This method must be invoked as:
* <pre> $user =& JUser::getInstance($id);</pre>
*
* @access public
* @param int $id The user to load - Can be an integer or string - If string, it is converted to ID automatically.
* @return JUser The User object.
* @since 1.5
*/
function &getInstance($id = 0)
{
static $instances;
if (!isset ($instances)) {
$instances = array ();
}
// Find the user id
if(!is_numeric($id))
{
jimport('joomla.user.helper');
if (!$id = JUserHelper::getUserId($id)) {
JError::raiseWarning( 'SOME_ERROR_CODE', 'JUser::_load: User '.$id.' does not exist' );
return false;
}
}
if (empty($instances[$id])) {
$user = new JUser($id);
$instances[$id] = $user;
}
return $instances[$id];
}
/**
* Method to get a parameter value
*
* @access public
* @param string $key Parameter key
* @param mixed $default Parameter default value
* @return mixed The value or the default if it did not exist
* @since 1.5
*/
function getParam( $key, $default = null )
{
return $this->_params->get( $key, $default );
}
/**
* Method to set a parameter
*
* @access public
* @param string $key Parameter key
* @param mixed $value Parameter value
* @return mixed Set parameter value
* @since 1.5
*/
function setParam( $key, $value )
{
return $this->_params->set( $key, $value );
}
/**
* Method to set a default parameter if it does not exist
*
* @access public
* @param string $key Parameter key
* @param mixed $value Parameter value
* @return mixed Set parameter value
* @since 1.5
*/
function defParam( $key, $value )
{
return $this->_params->def( $key, $value );
}
/**
* Method to check JUser object authorization against an access control
* object and optionally an access extension object
*
* @access public
* @param string $acoSection The ACO section value
* @param string $aco The ACO value
* @param string $axoSection The AXO section value [optional]
* @param string $axo The AXO value [optional]
* @return boolean True if authorized
* @since 1.5
*/
function authorize( $acoSection, $aco, $axoSection = null, $axo = null )
{
$acl = & JFactory::getACL();
// the native calls (Check Mode 1) work on the user id, not the user type
$value = $acl->getCheckMode() == 1 ? $this->id : $this->usertype;
return $acl->acl_check( $acoSection, $aco, 'users', $value, $axoSection, $axo );
}
/**
* Pass through method to the table for setting the last visit date
*
* @access public
* @param int $timestamp The timestamp, defaults to 'now'
* @return boolean True on success
* @since 1.5
*/
function setLastVisit($timestamp=null)
{
// Create the user table object
$table =& JTable::getInstance( 'user');
$table->load($this->id);
return $table->setLastVisit($timestamp);
}
/**
* Method to get the user parameters
*
* @access public
* @return object The user parameters object
* @since 1.5
*/
function &getParameters()
{
return $this->_params;
}
/**
* Method to get the user table object
*
* @access public
* @return object The user table object
* @since 1.5
*/
function &getTable()
{
// Create the user table object
$table =& JTable::getInstance( 'user');
$table->load($this->id);
return $table;
}
/**
* Method to set the user parameters
*
*
* @access public
* @param string $data The paramters string in INI format
* @param string $path Path to the parameters xml file [optional]
* @since 1.5
*/
function setParameters($data, $path = null)
{
// Assume we are using the xml file from com_users if no other xml file has been set
if (is_null($path))
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -