Вот код...
<?php
/**
* @version SVN: $Id$
* @package gxjomsocialpoints
* @subpackage Base
* @author EasyJoomla {@link
http://www.easy-joomla.org Easy-Joomla.org}
* @author Socialables Studios {@link
http://www.Socialables.com} * @author Created on 15-Feb-2010
* @copyright Copyright (C) 2005 - 2010 Socialables.com All rights reserved.
* @license GNU/GPL, see LICENSE.php
* 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.
*/
//-- No direct access
defined('_JEXEC') or die('=;)');
jimport('joomla.plugin.plugin');
/**
* Example User Plugin
*
* @package gxjomsocialpoints
* @subpackage Plugin
*/
class plgUserGxNewUsers extends JPlugin {
var $_user = null;
/**
* Constructor
*
* For php4 compatability we must not use the __constructor as a constructor for plugins
* because func_get_args ( void ) returns a copy of all passed arguments NOT references.
* This causes problems with cross-referencing necessary for the observer design pattern.
*
* @param object $subject The object to observe
* @param array $config An array that holds the plugin configuration
* @since 1.5
*/
function plgUserGxNewUsers(& $subject, $config)
{
parent::__construct($subject, $config);
$this->_user =& JFactory::getUser();
}//function
function onAfterStoreUser($user, $isnew, $success, $msg)
{
global $mainframe;
if ($isnew)
{
$uid = $user['id'];
$email = $user['email'];
$startingbalance = $this->params->get( 'balance' , 0 );
$db = &JFactory::getDBO();
$query="INSERT INTO ". $db->nameQuote( '#__gx_bank' ). "(uid, ledger, balance, balance_changed) VALUES ($uid, 0, $startingbalance, 1 )";
$db->setQuery($query);
if (!$db->query())
{
$this->setError($db->getErrorMsg());
//return false;
}
$query="SELECT ". $db->nameQuote( 'id' ). " FROM ". $db->nameQuote( '#__gx_showcase' ). " WHERE ". $db->nameQuote( 'toemail' ). " = " . $db->Quote($email);
$db->setQuery($query);
$pendinggiftids = $db->loadResultArray();
if ($pendinggiftids)
{
foreach ($pendinggiftids AS $toid)
{
$query="UPDATE ". $db->nameQuote( '#__gx_showcase' ). " SET " . $db->nameQuote( 'toid' ). " = " . $uid . " WHERE " . $db->nameQuote( 'id' ). " = " . $toid;
$db->setQuery($query);
if (!$db->query())
{
$this->setError($db->getErrorMsg());
//return false;
}
}
}
}
}
function onLoginUser($user, $options)
{
global $mainframe;
$uid = $user['id'];
JPluginHelper::importPlugin('giftexchange');
$mainframe->triggerEvent('onAfterGxTransaction');
}
function onLogoutUser($user, $options)
{
global $mainframe;
$uid = $user['id'];
JPluginHelper::importPlugin('giftexchange');
$mainframe->triggerEvent('onAfterGxTransaction', array($uid));
}
function onAfterDeleteUser($user,$deleted,$msg)
{
if ($deleted)
{
$db = &JFactory::getDBO();
$query[] = "DELETE FROM ". $db->nameQuote( '#__gx_history' ). " WHERE " . $db->nameQuote( 'fromid' ). " = ". $user['id'];
$query[] = "DELETE FROM ". $db->nameQuote( '#__gx_ledger' ). " WHERE " . $db->nameQuote( 'uid' ). " = ". $user['id'];
$query[] = "DELETE FROM ". $db->nameQuote( '#__gx_showcase' ). " WHERE " . $db->nameQuote( 'toid' ). " = ". $user['id'];
$query[] = "DELETE FROM ". $db->nameQuote( '#__gx_bank' ). " WHERE " . $db->nameQuote( 'uid' ). " = ". $user['id'];
foreach ($query AS $key)
{
$db->setQuery($key);
if (!$db->query())
{
$this->setError($db->getErrorMsg());
//return false;
}
}
}
else
{
JError::raiseWarning( 500, $msg );
}
}
}//class