mirror of
https://github.com/e107inc/e107.git
synced 2025-08-18 20:31:41 +02:00
Another attack on globals and notices
This commit is contained in:
@@ -6,98 +6,134 @@
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*
|
||||
* Private messenger plugin - utility functions
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/pm/pm_func.php,v $
|
||||
* $Revision: 1.7 $
|
||||
* $Date: 2009-11-18 01:05:53 $
|
||||
* $Author: e107coders $
|
||||
* $Revision: 1.8 $
|
||||
* $Date: 2009-12-17 22:47:20 $
|
||||
* $Author: e107steved $
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* e107 Private messenger plugin
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage pm
|
||||
* @version $Id: pm_func.php,v 1.8 2009-12-17 22:47:20 e107steved Exp $;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
function pm_getInfo($which = "inbox")
|
||||
|
||||
|
||||
class pmbox_manager
|
||||
{
|
||||
static $pm_info;
|
||||
global $sql, $pref, $pm_prefs;
|
||||
if('clear' == $which)
|
||||
protected $pmPrefs = array();
|
||||
protected $pmDB;
|
||||
|
||||
public function __construct($prefs)
|
||||
{
|
||||
unset($pm_info['inbox']);
|
||||
unset($pm_info['outbox']);
|
||||
return;
|
||||
$this->pmDB = e107::getDb();
|
||||
$this->pmPrefs = $prefs;
|
||||
}
|
||||
|
||||
if('inbox' == $which)
|
||||
{
|
||||
$qry = "SELECT count(pm.pm_id) AS total, SUM(pm.pm_size)/1024 size, SUM(pm.pm_read = 0) as unread FROM #private_msg as pm WHERE pm.pm_to = ".USERID." AND pm.pm_read_del = 0";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "SELECT count(pm.pm_from) AS total, SUM(pm.pm_size)/1024 size, SUM(pm.pm_read = 0) as unread FROM #private_msg as pm WHERE pm.pm_from = ".USERID." AND pm.pm_sent_del = 0";
|
||||
}
|
||||
|
||||
if(!isset($pm_info[$which]['total']))
|
||||
/**
|
||||
* Get the box-related information for inbox or outbox - limits, message count etc
|
||||
* The information read from the DB is cached internally for efficiency
|
||||
*
|
||||
* @param string $which = inbox|outbox|clear
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
*/
|
||||
function pm_getInfo($which = 'inbox')
|
||||
{
|
||||
$sql->db_Select_gen($qry);
|
||||
$pm_info[$which] = $sql->db_Fetch();
|
||||
if ($which == 'inbox' && ($pm_prefs['animate'] == 1 || $pm_prefs['popup'] == 1))
|
||||
static $pm_info;
|
||||
|
||||
if('clear' == $which)
|
||||
{
|
||||
if($new = $sql->db_Count("private_msg", "(*)", "WHERE pm_sent > '".USERLV."' AND pm_read = 0 AND pm_to = '".USERID."' AND pm_read_del != 1"))
|
||||
{
|
||||
$pm_info['inbox']['new'] = $new;
|
||||
}
|
||||
else
|
||||
{
|
||||
$pm_info['inbox']['new'] = 0;
|
||||
}
|
||||
unset($pm_info['inbox']);
|
||||
unset($pm_info['outbox']);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($pm_info[$which]['limit']))
|
||||
{
|
||||
if(varset($pref['pm_limits'],0) > 0)
|
||||
if('inbox' == $which)
|
||||
{
|
||||
if($pref['pm_limits'] == 1)
|
||||
{
|
||||
$qry = "SELECT MAX(gen_user_id) AS inbox_limit, MAX(gen_ip) as outbox_limit FROM #generic WHERE gen_type='pm_limit' AND gen_datestamp IN (".USERCLASS_LIST.")";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "SELECT MAX(gen_intdata) AS inbox_limit, MAX(gen_chardata) as outbox_limit FROM #generic WHERE gen_type='pm_limit' AND gen_datestamp IN (".USERCLASS_LIST.")";
|
||||
}
|
||||
if($sql->db_Select_gen($qry))
|
||||
{
|
||||
$row = $sql->db_Fetch();
|
||||
$pm_info['inbox']['limit'] = $row['inbox_limit'];
|
||||
$pm_info['outbox']['limit'] = $row['outbox_limit'];
|
||||
}
|
||||
$pm_info['inbox']['limit_val'] = ($pref['pm_limits'] == 1 ? varset($pm_info['inbox']['total'],'') : varset($pm_info['inbox']['size'],''));
|
||||
if(!$pm_info['inbox']['limit'] || !$pm_info['inbox']['limit_val'])
|
||||
{
|
||||
$pm_info['inbox']['filled'] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$pm_info['inbox']['filled'] = number_format($pm_info['inbox']['limit_val']/$pm_info['inbox']['limit'] * 100, 2);
|
||||
}
|
||||
$pm_info['outbox']['limit_val'] = ($pref['pm_limits'] == 1 ? varset($pm_info['outbox']['total'],'') : varset($pm_info['outbox']['size'],''));
|
||||
if(!$pm_info['outbox']['limit'] || !$pm_info['outbox']['limit_val'])
|
||||
{
|
||||
$pm_info['outbox']['filled'] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$pm_info['outbox']['filled'] = number_format($pm_info['outbox']['limit_val']/$pm_info['outbox']['limit'] * 100, 2);
|
||||
}
|
||||
$qry = "SELECT count(pm.pm_id) AS total, SUM(pm.pm_size)/1024 size, SUM(pm.pm_read = 0) as unread FROM `#private_msg` as pm WHERE pm.pm_to = ".USERID." AND pm.pm_read_del = 0";
|
||||
}
|
||||
else
|
||||
{
|
||||
$pm_info['inbox']['limit'] = "";
|
||||
$pm_info['outbox']['limit'] = "";
|
||||
$pm_info['inbox']['filled'] = "";
|
||||
$pm_info['outbox']['filled'] = "";
|
||||
$qry = "SELECT count(pm.pm_from) AS total, SUM(pm.pm_size)/1024 size, SUM(pm.pm_read = 0) as unread FROM `#private_msg` as pm WHERE pm.pm_from = ".USERID." AND pm.pm_sent_del = 0";
|
||||
}
|
||||
|
||||
if(!isset($pm_info[$which]['total']))
|
||||
{
|
||||
$this->pmDB->db_Select_gen($qry);
|
||||
$pm_info[$which] = $this->pmDB->db_Fetch();
|
||||
if ($which == 'inbox' && ($this->pmPrefs['animate'] == 1 || $this->pmPrefs['popup'] == 1))
|
||||
{
|
||||
if($new = $this->pmDB->db_Count('private_msg', '(*)', "WHERE pm_sent > '".USERLV."' AND pm_read = 0 AND pm_to = '".USERID."' AND pm_read_del != 1"))
|
||||
{
|
||||
$pm_info['inbox']['new'] = $new;
|
||||
}
|
||||
else
|
||||
{
|
||||
$pm_info['inbox']['new'] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($pm_info[$which]['limit']))
|
||||
{
|
||||
if(varset($this->pmPrefs['pm_limits'],0) > 0)
|
||||
{
|
||||
if($this->pmPrefs['pm_limits'] == 1)
|
||||
{
|
||||
$qry = "SELECT MAX(gen_user_id) AS inbox_limit, MAX(gen_ip) as outbox_limit FROM `#generic` WHERE gen_type='pm_limit' AND gen_datestamp IN (".USERCLASS_LIST.")";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "SELECT MAX(gen_intdata) AS inbox_limit, MAX(gen_chardata) as outbox_limit FROM `#generic` WHERE gen_type='pm_limit' AND gen_datestamp IN (".USERCLASS_LIST.")";
|
||||
}
|
||||
if($this->pmDB->db_Select_gen($qry))
|
||||
{
|
||||
$row = $this->pmDB->db_Fetch();
|
||||
$pm_info['inbox']['limit'] = $row['inbox_limit'];
|
||||
$pm_info['outbox']['limit'] = $row['outbox_limit'];
|
||||
}
|
||||
$pm_info['inbox']['limit_val'] = ($this->pmPrefs['pm_limits'] == 1 ? varset($pm_info['inbox']['total'],'') : varset($pm_info['inbox']['size'],''));
|
||||
if(!$pm_info['inbox']['limit'] || !$pm_info['inbox']['limit_val'])
|
||||
{
|
||||
$pm_info['inbox']['filled'] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$pm_info['inbox']['filled'] = number_format($pm_info['inbox']['limit_val']/$pm_info['inbox']['limit'] * 100, 2);
|
||||
}
|
||||
$pm_info['outbox']['limit_val'] = ($this->pmPrefs['pm_limits'] == 1 ? varset($pm_info['outbox']['total'],'') : varset($pm_info['outbox']['size'],''));
|
||||
if(!$pm_info['outbox']['limit'] || !$pm_info['outbox']['limit_val'])
|
||||
{
|
||||
$pm_info['outbox']['filled'] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$pm_info['outbox']['filled'] = number_format($pm_info['outbox']['limit_val']/$pm_info['outbox']['limit'] * 100, 2);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$pm_info['inbox']['limit'] = '';
|
||||
$pm_info['outbox']['limit'] = '';
|
||||
$pm_info['inbox']['filled'] = '';
|
||||
$pm_info['outbox']['filled'] = '';
|
||||
}
|
||||
}
|
||||
return $pm_info;
|
||||
}
|
||||
return $pm_info;
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
Reference in New Issue
Block a user