|
<?php
|
|
/**
|
|
* PMS Handler and Tab Class for handling the CB tab api
|
|
* @version $Id: pms.mypmspro.php 1614 2011-10-30 15:57:40Z beat $
|
|
* @package Community Builder
|
|
* @subpackage pms.mypmspro.php
|
|
* @author JoomlaJoe and Beat, UddeIM part contributed by Benjamin, PMS Enhanced part contributed by Stefan, JIM part contributed by Nick
|
|
* @copyright (C) JoomlaJoe and Beat, www.joomlapolis.com
|
|
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL version 2
|
|
*/
|
|
|
|
// ensure this file is being included by a parent file
|
|
if ( ! ( defined( '_VALID_CB' ) || defined( '_JEXEC' ) || defined( '_VALID_MOS' ) ) ) { die( 'Direct Access to this location is not allowed.' ); }
|
|
|
|
// register delete user code function
|
|
global $_PLUGINS;
|
|
$_PLUGINS->registerFunction( 'onAfterDeleteUser', 'userDeleted','getmypmsproTab' );
|
|
|
|
class getmypmsproTab extends cbPMSHandler {
|
|
private $uddeconfig;
|
|
/**
|
|
* Constructor
|
|
*/
|
|
function getmypmsproTab() {
|
|
$this->cbPMSHandler();
|
|
}
|
|
function _setStatusMenuSBstats($sbConfig, $user, &$params, $sbUserDetails) {
|
|
/* already done in the core cb.menu plugin:
|
|
global $_CB_framework;
|
|
IF($_CB_framework->myId()!=$user->id && $_CB_framework->myId() > 0) {
|
|
$pmsurl=...
|
|
$mi = array(); $mi["_UE_MENU_MESSAGES"]["_UE_PM_USER"]=null;
|
|
$this->menuBar->addObjectItem($mi, _UE_PM_USER,cbSef($pmsurl), "",
|
|
"","", _UE_MENU_PM_USER_DESC,"");
|
|
}
|
|
*/
|
|
/* example for a status display:
|
|
if ($sbConfig['postStats'] && ($params->get('statPosts', '1') == 1)) {
|
|
$mi = array(); $mi["_UE_MENU_STATUS"][$params->get('statPostsText', "_UE_FORUM_TOTALPOSTS")]["_UE_FORUM_TOTALPOSTS"]=null;
|
|
$_PLUGINS->addMenu( array( "position" => "menuList" ,
|
|
"arrayPos" => $mi ,
|
|
"caption" => (($sbUserDetails !== false) ? $sbUserDetails->posts : "0") ,
|
|
"url" => "" ,
|
|
"target" => "" ,
|
|
"img" => null ,
|
|
"alt" => null ,
|
|
"tooltip" => "") );
|
|
}
|
|
*/
|
|
}
|
|
function _checkPMSinstalled($pmsType) {
|
|
global $_CB_framework;
|
|
|
|
$absolutePath = $_CB_framework->getCfg('absolute_path');
|
|
|
|
if (!( (($pmsType==1 || $pmsType==5) && file_exists( $absolutePath . '/components/com_pms/pms.php' ))
|
|
|| ($pmsType==2 && file_exists( $absolutePath . '/components/com_mypms/mypms.php' ))
|
|
|| ($pmsType==6 && file_exists( $absolutePath . '/components/com_jim/jim.php' ))
|
|
|| (($pmsType==3 || $pmsType==4) && file_exists( $absolutePath . '/components/com_uddeim/uddeim.php' )))) {
|
|
$this->_setErrorMSG(_UE_PMS_NOTINSTALLED);
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
function _sendPMSProMSG($to,$from,$sub,$msg) {
|
|
global $_CB_database;
|
|
|
|
// escaping not necessary, already escaped before this internal function gets called
|
|
$sql="INSERT INTO #__mypms (username,whofrom,time,readstate,subject,message,owner,sent_id) VALUES('"
|
|
.$_CB_database->getEscaped($to)."','".$_CB_database->getEscaped($from)."',NOW(),0,'".$sub."','".$msg."','".$to."',0);";
|
|
$_CB_database->SetQuery($sql);
|
|
if (!$_CB_database->query()) {
|
|
die("SQL error" . $_CB_database->stderr(true));
|
|
}
|
|
|
|
}
|
|
function _sendPMSOSMSG($to,$from,$sub,$msg) {
|
|
global $_CB_database;
|
|
|
|
// escaping not necessary, already escaped before this internal function gets called
|
|
$sql="INSERT INTO #__pms (username,whofrom,date,time,readstate,subject,message) VALUES('" // MyPMS II
|
|
.$_CB_database->getEscaped($to)."','".$_CB_database->getEscaped($from)."',CURDATE(),CURTIME(),0,'".$sub."','".$msg."');";
|
|
$_CB_database->SetQuery($sql);
|
|
if (!$_CB_database->query()) {
|
|
$sql = "INSERT INTO #__pms (username,whofrom,date,readstate,subject,message) VALUES('" // PMS OS
|
|
.$to."','".$from."',NOW(),0,'".$sub."','".$msg."');";
|
|
$_CB_database->SetQuery($sql);
|
|
if (!$_CB_database->query()) {
|
|
die("SQL error" . $_CB_database->stderr(true));
|
|
}
|
|
}
|
|
}
|
|
function _sendPMSJimMSG($to,$from,$sub,$msg) {
|
|
global $_CB_database;
|
|
|
|
// escaping not necessary, already escaped before this internal function gets called
|
|
$sql="INSERT INTO #__jim (username,whofrom,date,readstate,subject,message) VALUES('"
|
|
.$_CB_database->getEscaped($to)."','".$_CB_database->getEscaped($from)."',NOW(),0,'".$sub."','".$msg."');";
|
|
$_CB_database->SetQuery($sql);
|
|
if (!$_CB_database->query()) {
|
|
die("SQL error" . $_CB_database->stderr(true));
|
|
}
|
|
}
|
|
function _sendPMSenhancedMSG($to_id,$from_id,$sub,$msg) {
|
|
global $_CB_framework, $_CB_database;
|
|
|
|
// escaping not necessary, already escaped before this internal function gets called
|
|
$sql="INSERT INTO #__pms (recip_id,sender_id,date,time,readstate,subject,message) VALUES(".$to_id.",".$from_id.",CURDATE(),CURTIME(),0,'".$sub."','".$msg."');";
|
|
$_CB_database->SetQuery($sql);
|
|
if (!$_CB_database->query()) {
|
|
die("SQL error" . $_CB_database->stderr(true));
|
|
}
|
|
|
|
|
|
// email notification
|
|
|
|
require_once( "administrator/components/com_pms/config.pms.php" );
|
|
|
|
// get the right language if it exists
|
|
if (file_exists('administrator/components/com_pms/language/'.$_CB_framework->getCfg( 'lang' ).'.php')) {
|
|
include_once( 'administrator/components/com_pms/language/'.$_CB_framework->getCfg( 'lang' ).'.php' );
|
|
}
|
|
else include_once('administrator/components/com_pms/language/english.php');
|
|
|
|
// get default configuration from database
|
|
$_CB_database->setQuery("SELECT email_new, email_html, email_offline FROM #__pms_conf WHERE user_id=0");
|
|
if (!$_CB_database->query()) {
|
|
die("SQL error" . $_CB_database->stderr(true));
|
|
}
|
|
$rows = $_CB_database->loadObjectList();
|
|
$row = $rows[0];
|
|
$email_new = $row->email_new;
|
|
$email_html = $row->email_html;
|
|
$email_offline = $row->email_offline;
|
|
|
|
// check settings of recip and override defaults if allowed
|
|
if($allow_change_email_new==1)
|
|
{
|
|
// check if recip has personal settings, otherwise load defaults
|
|
$_CB_database->setQuery("SELECT count(id) FROM #__pms_conf WHERE user_id=$to_id", 0, 1);
|
|
if(!$_CB_database->query()) die("SQL error" . $_CB_database->stderr(true));
|
|
$result = $_CB_database->loadResult();
|
|
if($result==1)
|
|
{
|
|
$_CB_database->setQuery("SELECT email_new, email_html, email_offline FROM #__pms_conf WHERE user_id=$to_id");
|
|
if(!$_CB_database->query()) die("SQL error" . $_CB_database->stderr(true));
|
|
$rows = $_CB_database->loadObjectList();
|
|
$row = $rows[0];
|
|
if($allow_change_email_new==1) $email_new = $row->email_new;
|
|
if($allow_change_email_html==1) $email_html = $row->email_html;
|
|
if($allow_change_email_offline==1) $email_offline = $row->email_offline;
|
|
}
|
|
}
|
|
|
|
// send email notification
|
|
if($email_new==1)
|
|
{
|
|
// get name and email of recip
|
|
$_CB_database->setQuery("SELECT username, email FROM #__users WHERE id=$to_id");
|
|
if(!$_CB_database->query()) die("SQL error" . $_CB_database->stderr(true));
|
|
$rows = $_CB_database->loadObjectList();
|
|
$row = $rows[0];
|
|
$recip_name = $row->username;
|
|
$recip_email = $row->email;
|
|
|
|
// check if recip is offline
|
|
$_CB_database->setQuery("SELECT count(session_id) FROM #__session WHERE userid=$to_id");
|
|
if(!$_CB_database->query()) die("SQL error" . $_CB_database->stderr(true));
|
|
$result = $_CB_database->loadResult();
|
|
if($result==0 OR $email_offline==0)
|
|
{
|
|
$email_site_name = $_CB_framework->getCfg( 'sitename' );
|
|
$email_sender_name = $_CB_framework->myUsername();
|
|
$_CB_database->setQuery("SELECT email FROM #__users WHERE id=$from_id", 0, 1);
|
|
if(!$_CB_database->query()) die("SQL error" . $_CB_database->stderr(true));
|
|
$email_sender_email = $_CB_database->loadResult();
|
|
$email_recip_name = $recip_name;
|
|
$email_recip_email = $recip_email;
|
|
$message = stripslashes($msg);
|
|
$subject = stripslashes($sub);
|
|
if($email_html==1) $message = nl2br($message);
|
|
|
|
$email_subject = sprintf(_PMS_EMAIL_SUBJECT_NEW, $email_site_name, $email_sender_name);
|
|
if($email_html==0) $email_message = sprintf(_PMS_EMAIL_MESSAGE_NEW_TEXT, $email_recip_name, $email_sender_name, $email_site_name, $subject, $message, $email_site_name);
|
|
else $email_message = sprintf(_PMS_EMAIL_MESSAGE_NEW_HTML, $email_recip_name, $email_sender_name, $email_site_name, $subject, $message, $email_site_name);
|
|
|
|
comprofilerMail( $email_sender_email, $email_sender_name, $email_recip_email, $email_subject, $email_message, $email_html );
|
|
} // end check if recip is offline
|
|
} // end send email notification
|
|
}
|
|
|
|
function _sendPMSuddesysMSG($udde_toid,$udde_fromid,$to,$from,$sub,$msg) {
|
|
global $_CB_database, $_CB_framework;
|
|
|
|
$params = $this->params;
|
|
$pmsType = $params->get('pmsType', '1');
|
|
$udde_sysm = "System";
|
|
$config_realnames = "0";
|
|
$config_cryptmode = 0;
|
|
$config_cryptkey = 'uddeIMcryptkey';
|
|
|
|
if ( ( $pmsType==4 ) && file_exists( $_CB_framework->getCfg('absolute_path') . "/components/com_uddeim/crypt.class.php" ) ) { // uddeIM 1.0+
|
|
require_once( $_CB_framework->getCfg('absolute_path') . "/components/com_uddeim/crypt.class.php");
|
|
|
|
if ( file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/config.class.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/config.class.php");
|
|
}
|
|
$this->uddeconfig = $config = new uddeimconfigclass();
|
|
if ( isset($config->sysm_username)) {
|
|
$udde_sysm = $config->sysm_username;
|
|
}
|
|
if (isset($config->realnames)) {
|
|
$config_realnames = $config->realnames;
|
|
}
|
|
if (isset($config->cryptmode)) {
|
|
$config_cryptmode = $config->cryptmode;
|
|
}
|
|
if (file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_crypt.php" )) {
|
|
require_once ( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_crypt.php" );
|
|
}
|
|
if (isset($config->cryptkey)) {
|
|
$config_cryptkey = $config->cryptkey;
|
|
}
|
|
|
|
} else {
|
|
if(file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_config.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_config.php");
|
|
}
|
|
if(isset($config_sysm_username)) {
|
|
$udde_sysm = $config_sysm_username;
|
|
}
|
|
}
|
|
|
|
// format the message
|
|
if($sub) {
|
|
$udde_msg = "[b]".$sub."[/b]\n\n".$msg;
|
|
} else {
|
|
$udde_msg = $msg;
|
|
}
|
|
|
|
// now change the <strong> or <b> tags to BB Code
|
|
$udde_msg = str_replace("<strong>","[b]",$udde_msg);
|
|
$udde_msg = str_replace("<b>","[b]",$udde_msg);
|
|
$udde_msg = str_replace("</strong>","[/b]",$udde_msg);
|
|
$udde_msg = str_replace("</b>","[/b]",$udde_msg);
|
|
|
|
// now change the links to BB code links
|
|
$udde_msg = str_replace("<a href=\"", "[url=", $udde_msg);
|
|
$udde_msg = str_replace("<a href=\\\"", "[url=", $udde_msg);
|
|
$udde_msg = str_replace("\">", "]", $udde_msg);
|
|
$udde_msg = str_replace("\\\">", "]", $udde_msg);
|
|
$udde_msg = str_replace("</a>", "[/url]", $udde_msg);
|
|
$udde_msg = str_replace("<br/>", "\n", $udde_msg);
|
|
$udde_msg = str_replace("<br />", "\n", $udde_msg);
|
|
$udde_msg = str_replace("<br>", "\n", $udde_msg);
|
|
$udde_msg = str_replace("&", "&", $udde_msg);
|
|
|
|
// workaround
|
|
// commands above made the closing bracket of the div to a ]
|
|
// we change it back to a > here so that the next command can strip the div entirely
|
|
$udde_msg = str_replace("cbNotice\\\"]", "cbNotice\\\">", $udde_msg);
|
|
$udde_msg = str_replace("cbNotice]", "cbNotice\">", $udde_msg);
|
|
$udde_msg = str_replace("cbNotice\\]", "cbNotice\">", $udde_msg);
|
|
|
|
// now strip the remaining html tags
|
|
$udde_msg = strip_tags($udde_msg);
|
|
|
|
// get current time but recognize time offset
|
|
$currentTime=time();
|
|
$udde_time=$this->_pmsUddeGetTime($currentTime);
|
|
|
|
// set the udde systemmessage username to the virtual sender
|
|
$udde_sysm=$from;
|
|
|
|
// try to find the realnames settings of udde
|
|
// if(file_exists( $_CB_framework->getCfg('absolute_path') . '/administrator/components/com_uddeim/uddeim_config.php')) {
|
|
// include_once( $_CB_framework->getCfg('absolute_path') . '/administrator/components/com_uddeim/uddeim_config.php');
|
|
if($config_realnames) {
|
|
$sql="SELECT name FROM #__users WHERE id=".(int) $udde_fromid;
|
|
$_CB_database->setQuery($sql);
|
|
$quereply=$_CB_database->loadResult();
|
|
if($quereply) {
|
|
$udde_sysm=$quereply;
|
|
}
|
|
}
|
|
|
|
if ($config_cryptmode==1) {
|
|
if (function_exists('uddeIMencrypt')) { // this added for uddeIM 1.4+
|
|
$cm = uddeIMencrypt($udde_msg,$config_cryptkey,CRYPT_MODE_BASE64);
|
|
} else {
|
|
$cm = Encrypt($udde_msg,$config_cryptkey,CRYPT_MODE_BASE64);
|
|
}
|
|
$sql="INSERT INTO #__uddeim (fromid, toid, message, datum, systemmessage, disablereply, cryptmode, crypthash) VALUES (".$udde_fromid.", ".$udde_toid.", '".$cm."', ".$udde_time.", '".$udde_sysm."', 0, 1,'".md5($config_cryptkey)."')";
|
|
} else {
|
|
$sql="INSERT INTO #__uddeim (fromid, toid, message, datum, systemmessage, disablereply) VALUES (".$udde_fromid.", ".$udde_toid.", '".$udde_msg."', ".$udde_time.", '".$udde_sysm."', 0)";
|
|
}
|
|
|
|
|
|
// escaping not necessary, already escaped before this internal function gets called
|
|
// now insert the message as system message
|
|
// REPLY IS NOT DISABLED AS THE SYSTEMMESSAGE USERNAME WILL CONTAIN A VALID USERNAME
|
|
if($udde_fromid && $udde_toid) {
|
|
$_CB_database->SetQuery($sql);
|
|
if (!$_CB_database->query()) {
|
|
die("SQL error" . $_CB_database->stderr(true));
|
|
}
|
|
}
|
|
|
|
$udde_msgid = $_CB_database->insertid();
|
|
|
|
// E-Mail notification code
|
|
$this->_pmsUddeNotify($udde_msgid, $udde_fromid, $udde_toid, $udde_msg, $udde_sysm);
|
|
|
|
}
|
|
function _sendPMSuddeimMSG($udde_toid,$udde_fromid,$to,$from,$sub,$msg) {
|
|
global $_CB_database, $_CB_framework;
|
|
|
|
$params = $this->params;
|
|
$pmsType = $params->get('pmsType', '1');
|
|
$udde_sysm = "System";
|
|
$config_realnames = "0";
|
|
$config_cryptmode = 0;
|
|
$config_cryptkey = 'uddeIMcryptkey';
|
|
|
|
if ($pmsType==4) { // uddeIM 1.0+
|
|
require_once( $_CB_framework->getCfg('absolute_path') . "/components/com_uddeim/crypt.class.php");
|
|
|
|
if(file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/config.class.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/config.class.php");
|
|
}
|
|
$this->uddeconfig = $config = new uddeimconfigclass();
|
|
if(isset($config->sysm_username)) {
|
|
$udde_sysm = $config->sysm_username;
|
|
}
|
|
if (isset($config->realnames)) {
|
|
$config_realnames = $config->realnames;
|
|
}
|
|
if (isset($config->cryptmode)) {
|
|
$config_cryptmode = $config->cryptmode;
|
|
}
|
|
if (file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_crypt.php" )) {
|
|
require_once ( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_crypt.php" );
|
|
}
|
|
if (isset($config->cryptkey)) {
|
|
$config_cryptkey = $config->cryptkey;
|
|
}
|
|
} else {
|
|
if(file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_config.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_config.php");
|
|
}
|
|
if(isset($config_sysm_username)) {
|
|
$udde_sysm = $config_sysm_username;
|
|
}
|
|
}
|
|
// format the message
|
|
if($sub) { // is actually impossible
|
|
$udde_msg = "[b]".$sub."[/b]\n\n".$msg;
|
|
} else {
|
|
$udde_msg = $msg;
|
|
}
|
|
|
|
// strip any bb code that might be present, but only in 0.4
|
|
if($pmsType==3) {
|
|
require_once ( $_CB_framework->getCfg('absolute_path') . '/components/com_uddeim/bbparser.php' );
|
|
$udde_msg=bbcode_strip($udde_msg);
|
|
}
|
|
|
|
// now strip the remaining html tags
|
|
$udde_msg = strip_tags($udde_msg);
|
|
|
|
// escape dangerous stuff
|
|
// not necessary, already escaped before this internal function gets called
|
|
|
|
// get current time but recognize time offset
|
|
$currentTime=time();
|
|
$udde_time=$this->_pmsUddeGetTime($currentTime);
|
|
|
|
// set the udde systemmessage username to the virtual sender
|
|
|
|
$udde_sysm=$from;
|
|
|
|
if ($config_cryptmode==1) {
|
|
if (function_exists('uddeIMencrypt')) { // this added for uddeIM 1.4+
|
|
$cm = uddeIMencrypt($udde_msg,$config_cryptkey,CRYPT_MODE_BASE64);
|
|
} else {
|
|
$cm = Encrypt($udde_msg,$config_cryptkey,CRYPT_MODE_BASE64);
|
|
}
|
|
$sql="INSERT INTO #__uddeim (fromid, toid, message, datum, cryptmode, crypthash) VALUES (".$udde_fromid.", ".$udde_toid.", '".$cm."', ".$udde_time.",1,'".md5($config_cryptkey)."')";
|
|
} else {
|
|
$sql="INSERT INTO #__uddeim (fromid, toid, message, datum) VALUES (".$udde_fromid.", ".$udde_toid.", '".$udde_msg."', ".$udde_time.")";
|
|
}
|
|
|
|
// now insert the message
|
|
if($udde_fromid && $udde_toid) {
|
|
$_CB_database->SetQuery($sql);
|
|
if (!$_CB_database->query()) {
|
|
die("SQL error" . $_CB_database->stderr(true));
|
|
}
|
|
}
|
|
|
|
$udde_msgid = $_CB_database->insertid();
|
|
|
|
// E-Mail notification code
|
|
$udde_sysm="";
|
|
$this->_pmsUddeNotify($udde_msgid, $udde_fromid, $udde_toid, $udde_msg, $udde_sysm);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* Sends a PMS message
|
|
* @param int userId of receiver (ESCAPED)
|
|
* @param int userId of sender (ESCAPED)
|
|
* @param string subject of PMS message (ESCAPED Subject)
|
|
* @param string body of PMS message (html, ESCAPED Body)
|
|
* @param boolean false: real user-to-user message = default; true: system-Generated by an action from user $fromid (if non-null)
|
|
* @param boolean false: subject and message body UNESCAPED = default; true: ESCAPED
|
|
* @return boolean : true for OK, or false if ErrorMSG generated. Special error: _UE_PMS_TYPE_UNSUPPORTED : if anonym fromid>=0 sysgenerated unsupported
|
|
*/
|
|
function sendUserPMS($toid, $fromid, $subject, $message, $systemGenerated=false, $escaped=false) {
|
|
global $_CB_database;
|
|
|
|
$params = $this->params;
|
|
$pmsType = $params->get('pmsType', '1');
|
|
|
|
if (!$this->_checkPMSinstalled($pmsType)) {
|
|
return false;
|
|
}
|
|
|
|
$toid = (int) $toid;
|
|
$fromid = (int) $fromid;
|
|
if (!$escaped) {
|
|
$subject = $_CB_database->getEscaped($subject);
|
|
$message = $_CB_database->getEscaped($message);
|
|
}
|
|
|
|
if ($systemGenerated && ($fromid == 0)) {
|
|
if (in_array($pmsType,array(1,2,6))) {
|
|
$this->_setErrorMSG(_UE_PMS_TYPE_UNSUPPORTED); // PMS OS, MyPMS Pro and JIM do not handle systemGenerated from nobody)
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if ($fromid != 0) {
|
|
$rowFrom = new moscomprofilerUser( $_CB_database );
|
|
$rowFrom->load( (int) $fromid );
|
|
$from = $rowFrom->username;
|
|
} else {
|
|
$from = null;
|
|
}
|
|
|
|
$rowTo = new moscomprofilerUser( $_CB_database );
|
|
$rowTo->load( (int) $toid );
|
|
$to=$rowTo->username;
|
|
|
|
SWITCH($pmsType) {
|
|
case 1: //MyPMS OS
|
|
$this->_sendPMSOSMSG($to,$from,$subject,$message);
|
|
return true;
|
|
break;
|
|
case 2: //PMS Pro
|
|
$this->_sendPMSProMSG($to,$from,$subject,$message);
|
|
return true;
|
|
break;
|
|
case 3: //UddeIM 0.4
|
|
case 4: //UddeIM 1.0
|
|
if($systemGenerated || $fromid==0) {
|
|
$this->_sendPMSuddesysMSG($toid,$fromid,$to,$from,$subject,$message);
|
|
} else {
|
|
$this->_sendPMSuddeimMSG($toid,$fromid,$to,$from,$subject,$message);
|
|
}
|
|
return true;
|
|
break;
|
|
case 5: //PMS enhanced 2.x by Stefan Klingner
|
|
$this->_sendPMSenhancedMSG($toid,$fromid,$subject,$message);
|
|
return true;
|
|
break;
|
|
case 6: //JIM 1.0.1
|
|
$this->_sendPMSJimMSG($to,$from,$subject,$message);
|
|
return true;
|
|
break;
|
|
default:
|
|
$this->_setErrorMSG("Incorrect PMS type");
|
|
return false;
|
|
break;
|
|
}
|
|
}
|
|
/**
|
|
* returns all the parameters needed for a hyperlink or a menu entry to do a pms action
|
|
* @param int userId of receiver
|
|
* @param int userId of sender
|
|
* @param string subject of PMS message
|
|
* @param string body of PMS message
|
|
* @param int kind of link: 1: link to compose new PMS message for $toid user. 2: link to inbox of $fromid user; 3: outbox, 4: trashbox,
|
|
5: link to edit pms options
|
|
* @return mixed array of string {"caption" => menu-text ,"url" => NON-cbSef relative url-link, "tooltip" => description} or false and errorMSG
|
|
*/
|
|
function getPMSlink($toid, $fromid, $subject, $message, $kind) {
|
|
global $_CB_database;
|
|
|
|
$params = $this->params;
|
|
$pmsType = $params->get('pmsType', '1');
|
|
|
|
if (!$this->_checkPMSinstalled($pmsType)) {
|
|
return false;
|
|
}
|
|
|
|
SWITCH($pmsType) {
|
|
case 1: //MyPMS OS
|
|
$rowTo = new moscomprofilerUser( $_CB_database );
|
|
$rowTo->load( (int) $toid );
|
|
$pmsurlBase="index.php?option=com_pms";
|
|
$pmsurlSend=$pmsurlBase."&page=new&id=".urlencode($rowTo->username);
|
|
$pmsurlInbox=$pmsurlBase."&page=index";
|
|
$query_pms_link = "SELECT id FROM #__menu WHERE published>=0 AND link LIKE '%com_pms%'";
|
|
break;
|
|
case 2: //PMS Pro
|
|
$rowTo = new moscomprofilerUser( $_CB_database );
|
|
$rowTo->load( (int) $toid );
|
|
$pmsurlBase="index.php?option=com_mypms";
|
|
$pmsurlSend=$pmsurlBase."&task=new&to=".urlencode($rowTo->username);
|
|
$pmsurlInbox=$pmsurlBase."&task=inbox";
|
|
$pmsurlOutbox=$pmsurlBase."&task=sent";
|
|
$pmsurlTrashbox=$pmsurlBase."&task=trash";
|
|
$pmsurlOptions=$pmsurlBase."&task=editprofile";
|
|
$query_pms_link = "SELECT id FROM #__menu WHERE published>=0 AND link LIKE '%com_mypms%'";
|
|
break;
|
|
case 3: //UddeIM 0.4
|
|
$pmsurlBase="index.php?option=com_uddeim";
|
|
$pmsurlSend=$pmsurlBase."&task=new&recip=".$toid;
|
|
$pmsurlInbox=$pmsurlBase."&task=inbox";
|
|
$pmsurlOutbox=$pmsurlBase."&task=outbox";
|
|
$pmsurlTrashbox=$pmsurlBase."&task=trashcan";
|
|
$query_pms_link = "SELECT id FROM #__menu WHERE published>=0 AND link LIKE '%com_uddeim%'";
|
|
break;
|
|
case 4: //UddeIM 1.0
|
|
$pmsurlBase="index.php?option=com_uddeim";
|
|
$pmsurlSend=$pmsurlBase."&task=new&recip=".$toid;
|
|
$pmsurlInbox=$pmsurlBase."&task=inbox";
|
|
$pmsurlOutbox=$pmsurlBase."&task=outbox";
|
|
$pmsurlTrashbox=$pmsurlBase."&task=trashcan";
|
|
$pmsurlOptions=$pmsurlBase."&task=settings";
|
|
$query_pms_link = "SELECT id FROM #__menu WHERE published>=0 AND link LIKE '%com_uddeim%'";
|
|
break;
|
|
case 5: //PMS enhanced 2.x by Stefan Klingner
|
|
$rowTo = new moscomprofilerUser( $_CB_database );
|
|
$rowTo->load( (int) $toid );
|
|
$pmsurlBase="index.php?option=com_pms";
|
|
$pmsurlSend=$pmsurlBase."&page=new&id=".urlencode($rowTo->username);
|
|
$pmsurlInbox=$pmsurlBase."&page=index";
|
|
$pmsurlOutbox=$pmsurlBase."&page=sent_items";
|
|
$pmsurlTrashbox=$pmsurlBase."&page=trash";
|
|
$pmsurlOptions=$pmsurlBase."&page=settings";
|
|
$query_pms_link = "SELECT id FROM #__menu WHERE published>=0 AND link LIKE '%com_pms%'";
|
|
break;
|
|
case 6: //JIM 1.0.1
|
|
$rowTo = new moscomprofilerUser( $_CB_database );
|
|
$rowTo->load( (int) $toid );
|
|
$pmsurlBase="index.php?option=com_jim";
|
|
$pmsurlSend=$pmsurlBase."&page=new&id=".urlencode($rowTo->username);
|
|
$pmsurlInbox=$pmsurlBase."&page=index";
|
|
$query_pms_link = "SELECT id FROM #__menu WHERE published>=0 AND link LIKE '%com_jim%'";
|
|
break;
|
|
default:
|
|
$this->_setErrorMSG("Incorrect PMS type");
|
|
return false;
|
|
break;
|
|
}
|
|
$_CB_database->setQuery( $query_pms_link );
|
|
$pms_id = $_CB_database->loadResult();
|
|
if ($pms_id) {
|
|
$pmsitemid = "&Itemid=".$pms_id;
|
|
} else {
|
|
$pmsitemid = null;
|
|
}
|
|
|
|
switch($kind) {
|
|
case 1:
|
|
return array("caption" => $params->get('pmsMenuText', _UE_PM_USER),
|
|
"url" => $pmsurlSend.$pmsitemid,
|
|
"tooltip" => $params->get('pmsMenuDesc', _UE_MENU_PM_USER_DESC));
|
|
break;
|
|
case 2:
|
|
return array("caption" => $params->get('pmsMenuInboxText', _UE_PM_INBOX),
|
|
"url" => $pmsurlInbox.$pmsitemid,
|
|
"tooltip" => $params->get('pmsMenuInboxDesc', _UE_MENU_PM_INBOX_DESC));
|
|
break;
|
|
case 3:
|
|
if ($pmsType != 1 && $pmsType !=6) return array("caption" => $params->get('pmsMenuOutboxText', _UE_PM_OUTBOX),
|
|
"url" => $pmsurlOutbox.$pmsitemid,
|
|
"tooltip" => $params->get('pmsMenuOutboxDesc', _UE_MENU_PM_OUTBOX_DESC));
|
|
break;
|
|
case 4:
|
|
if ($pmsType != 1 && $pmsType !=6) return array("caption" => $params->get('pmsMenuTrashboxText', _UE_PM_TRASHBOX),
|
|
"url" => $pmsurlTrashbox.$pmsitemid,
|
|
"tooltip" => $params->get('pmsMenuTrashboxDesc', _UE_MENU_PM_TRASHBOX_DESC));
|
|
break;
|
|
case 5:
|
|
if ($pmsType == 2 || $pmsType == 5) return array("caption" => $params->get('pmsMenuOptionsText', _UE_PM_OPTIONS),
|
|
"url" => $pmsurlOptions.$pmsitemid,
|
|
"tooltip" => $params->get('pmsMenuOptionsDesc', _UE_MENU_PM_OPTIONS_DESC));
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
$this->_setErrorMSG("Function not supported by this PMS type");
|
|
return false;
|
|
}
|
|
/**
|
|
* gets PMS system capabilities
|
|
* @return mixed array of string {"subject" => boolean ,"body" => boolean} or false if ErrorMSG generated
|
|
*/
|
|
function getPMScapabilites() {
|
|
$params = $this->params;
|
|
$pmsType = $params->get('pmsType', '1');
|
|
|
|
if (!$this->_checkPMSinstalled($pmsType)) {
|
|
return false;
|
|
}
|
|
|
|
SWITCH($pmsType) {
|
|
case 1:
|
|
case 2:
|
|
case 6:
|
|
$capacity = array( "subject" => true, "body" => true);
|
|
break;
|
|
case 3:
|
|
case 4:
|
|
$capacity = array( "subject" => false, "body" => true);
|
|
break;
|
|
case 5:
|
|
$capacity = array( "subject" => true, "body" => true);
|
|
break;
|
|
default:
|
|
$this->_setErrorMSG("Incorrect PMS type");
|
|
$capacity = false;
|
|
break;
|
|
}
|
|
return $capacity;
|
|
}
|
|
/**
|
|
* gets PMS unread messages count
|
|
* @param int user id
|
|
* @return mixed number of messages unread by user $userid or false if ErrorMSG generated
|
|
*/
|
|
function getPMSunreadCount($userid) {
|
|
global $_CB_database;
|
|
|
|
$params = $this->params;
|
|
$pmsType = $params->get('pmsType', '1');
|
|
|
|
if (!$this->_checkPMSinstalled($pmsType)) {
|
|
return false;
|
|
}
|
|
|
|
$user = new moscomprofilerUser( $_CB_database );
|
|
$user->load( (int) $userid );
|
|
|
|
SWITCH($pmsType) {
|
|
case 1:
|
|
$query_pms_count = "SELECT count(id) FROM #__pms WHERE username='" . $_CB_database->getEscaped($user->username) ."' AND readstate=0";
|
|
$_CB_database->setQuery( $query_pms_count );
|
|
$total_pms = $_CB_database->loadResult();
|
|
break;
|
|
case 2:
|
|
$query_pms_count = "SELECT count(id) FROM #__mypms WHERE username='" . $_CB_database->getEscaped($user->username) ."' AND readstate=0";
|
|
$_CB_database->setQuery( $query_pms_count );
|
|
$total_pms = $_CB_database->loadResult();
|
|
break;
|
|
case 3:
|
|
case 4:
|
|
$sql="SELECT count(id) FROM #__uddeim WHERE toread<1 AND toid=".(int) $userid;
|
|
$_CB_database->setQuery($sql);
|
|
$total_pms = $_CB_database->loadResult();
|
|
break;
|
|
case 5:
|
|
$query_pms_count = "SELECT count(id) FROM #__pms WHERE recip_id=" . (int) $userid ." AND readstate%2=0 AND inbox=1";
|
|
$_CB_database->setQuery( $query_pms_count );
|
|
$total_pms = $_CB_database->loadResult();
|
|
break;
|
|
case 6:
|
|
$query_pms_count = "SELECT count(id) FROM #__jim WHERE username='" . $_CB_database->getEscaped($user->username) ."' AND readstate=0";
|
|
$_CB_database->setQuery( $query_pms_count );
|
|
$total_pms = $_CB_database->loadResult();
|
|
break;
|
|
default:
|
|
$this->_setErrorMSG("Incorrect PMS type");
|
|
$total_pms = false;
|
|
break;
|
|
}
|
|
return $total_pms;
|
|
}
|
|
|
|
/**
|
|
* Generates the HTML to display the user profile tab
|
|
* @param moscomprofilerTab $tab the tab database entry
|
|
* @param moscomprofilerUser $user the user being displayed
|
|
* @param int $ui 1 for front-end, 2 for back-end
|
|
* @return mixed either string HTML for tab content, or false if ErrorMSG generated
|
|
*/
|
|
function getDisplayTab($tab,$user,$ui) {
|
|
global $_CB_framework, $ueConfig, $_POST, $_CB_OneTwoRowsStyleToggle;
|
|
|
|
if ( ! $_CB_framework->myId() ) {
|
|
return null;
|
|
}
|
|
|
|
$return = "";
|
|
|
|
$params = $this->params;
|
|
$pmsType = $params->get('pmsType', '1');
|
|
$showTitle = $params->get('showTitle', "1");
|
|
$showSubject = $params->get('showSubject', "1");
|
|
$width = $params->get('width', "30");
|
|
$height = $params->get('height', "5");
|
|
|
|
$capabilities = $this->getPMScapabilites();
|
|
|
|
if (!$this->_checkPMSinstalled($pmsType) || ($capabilities === false)) {
|
|
return false;
|
|
}
|
|
if ($_CB_framework->myId() == $user->id) {
|
|
return null;
|
|
}
|
|
|
|
$newsub = null;
|
|
$newmsg = null;
|
|
|
|
// send PMS from this tab form input:
|
|
if ( cbGetParam( $_POST, $this->_getPagingParamName("sndnewmsg") ) == _UE_PM_SENDMESSAGE ) {
|
|
$sender = $this->_getReqParam("sender", null);
|
|
$recip = $this->_getReqParam("recip", null);
|
|
if ( $sender && $recip && ( $sender == $_CB_framework->myId() ) && ( $recip == $user->id ) && ( allowAccess( $ueConfig['allow_profileviewbyGID'], 'RECURSE', $_CB_framework->acl->get_groups_below_me( null, true ) ) ) ) {
|
|
cbSpoofCheck( 'pms' );
|
|
$newsub = htmlspecialchars($this->_getReqParam("newsub", null)); //urldecode done in _getReqParam
|
|
if($pmsType=='3' || $pmsType=='4') {
|
|
$newmsg = $this->_getReqParam("newmsg", null);
|
|
} else {
|
|
$newmsg = htmlspecialchars($this->_getReqParam("newmsg", null)); //don't allow html input on user profile!
|
|
}
|
|
if ( ( $newsub || $newmsg ) && isset( $_POST[$this->_getPagingParamName( "protect" )] ) ) {
|
|
$parts = explode( '_', $this->_getReqParam('protect', '' ) );
|
|
if ( ( count( $parts ) == 3 ) && ( $parts[0] == 'cbpms1' ) && ( strlen( $parts[2] ) == 32 ) && ( $parts[1] == md5($parts[2].$user->id.$user->lastvisitDate) ) )
|
|
{
|
|
if (!$newsub && $capabilities["subject"]) $newsub = _UE_PM_PROFILEMSG;
|
|
if ($this->sendUserPMS($recip, $sender, $newsub, $newmsg, $systemGenerated=false, $escaped=true)) {
|
|
$return .= "\n<script type='text/javascript'>alert('"._UE_PM_SENTSUCCESS."')</script>";
|
|
$newsub = null;
|
|
$newmsg = null;
|
|
} else {
|
|
$return .= "\n<script type='text/javascript'>alert('".$this->getErrorMSG()."')</script>";
|
|
}
|
|
} else {
|
|
$return .= "\n<script type='text/javascript'>alert('"._UE_SESSIONTIMEOUT." "._UE_PM_NOTSENT." "._UE_TRYAGAIN."')</script>";
|
|
}
|
|
} else {
|
|
$return .= "\n<script type='text/javascript'>alert('"._UE_PM_EMPTYMESSAGE." "._UE_PM_NOTSENT."')</script>";
|
|
}
|
|
}
|
|
}
|
|
// display Quick Message tab:
|
|
$return .= "\n\t<div class=\"sectiontableentry".$_CB_OneTwoRowsStyleToggle."\" style=\"padding-bottom:5px;\">\n";
|
|
$_CB_OneTwoRowsStyleToggle = ($_CB_OneTwoRowsStyleToggle == 1 ? 2 : 1);
|
|
if($showTitle) $return .= "\t\t<div class=\"titleCell\" style=\"align: left; text-align:left; margin-left: 0px;\">"
|
|
.cbUnHtmlspecialchars(getLangDefinition($tab->title)).(($showSubject && $capabilities["subject"])?"" : ":")."</div>\n";
|
|
$return .= $this->_writeTabDescription( $tab, $user );
|
|
|
|
$base_url = $this->_getAbsURLwithParam(array());
|
|
$return .= '<form method="post" action="'.$base_url.'">';
|
|
$return .= '<table cellspacing="0" cellpadding="5" class="contentpane" style="border:0px;align:left;width:90%;">';
|
|
if ($showSubject && $capabilities["subject"]) {
|
|
$return .= '<tr><td><b>'._UE_EMAILFORMSUBJECT.'</b></td>';
|
|
$return .= '<td><input type="text" class="inputbox" name="'.$this->_getPagingParamName("newsub")
|
|
.'" size="'.($width-8).'" value="'.stripslashes($newsub).'" /></td></tr>';
|
|
$return .= '<tr class="sectiontableentry1"><td colspan="2"><b>'._UE_EMAILFORMMESSAGE.'</b></td></tr>';
|
|
}
|
|
$return .= '<tr><td colspan="2"><textarea name="'.$this->_getPagingParamName("newmsg")
|
|
.'" class="inputbox" rows="'.$height.'" cols="'.$width.'">'.stripslashes($newmsg).'</textarea></td></tr>';
|
|
$return .= '<tr><td colspan="2"><input type="submit" class="button" name="'.$this->_getPagingParamName("sndnewmsg").'" value="'._UE_PM_SENDMESSAGE.'" /></td></tr>';
|
|
$return .= '</table>';
|
|
$return .= "<input type=\"hidden\" name=\"".$this->_getPagingParamName("sender")."\" value=\"" . $_CB_framework->myId() . "\" />";
|
|
$return .= "<input type=\"hidden\" name=\"".$this->_getPagingParamName("recip")."\" value=\"$user->id\" />";
|
|
|
|
$salt = cbMakeRandomString( 32 );
|
|
$return .= "<input type=\"hidden\" name=\"".$this->_getPagingParamName("protect")."\" value=\""
|
|
. 'cbpms1_' . md5($salt.$user->id.$user->lastvisitDate) . '_' . $salt . "\" />";
|
|
$return .= cbGetSpoofInputTag( 'pms' );
|
|
$return .= '</form>';
|
|
$return .= "</div>";
|
|
|
|
return $return;
|
|
}
|
|
|
|
//****************************************************************************
|
|
// UddeIM specific private methods:
|
|
|
|
/**
|
|
* Udde PMS notification by email depending on user's settings
|
|
*
|
|
* @access private
|
|
* @param int $savemsgid
|
|
* @param int $savefromid
|
|
* @param int $savetoid
|
|
* @param string $savemessage
|
|
* @param boolean $udde_sysm
|
|
*/
|
|
function _pmsUddeNotify ($savemsgid, $savefromid, $savetoid, $savemessage, $udde_sysm) {
|
|
global $_CB_database, $_CB_framework;
|
|
|
|
$params = $this->params;
|
|
$pmsType = $params->get('pmsType', '1');
|
|
$config_realnames = "0";
|
|
$config_cryptmode = 0;
|
|
$config_cryptkey = 'uddeIMcryptkey';
|
|
|
|
if ($pmsType==4 && file_exists( $_CB_framework->getCfg('absolute_path') . "/components/com_uddeim/crypt.class.php" ) ) { // uddeIM 1.0+
|
|
require_once( $_CB_framework->getCfg('absolute_path') . "/components/com_uddeim/crypt.class.php");
|
|
|
|
if(file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/config.class.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/config.class.php");
|
|
}
|
|
$this->uddeconfig = $config = new uddeimconfigclass();
|
|
|
|
if ($config->notifydefault>0 || $config->popupdefault>0) {
|
|
$sql="SELECT count(id) FROM #__uddeim_emn WHERE userid=".(int)$savetoid;
|
|
$_CB_database->setQuery($sql);
|
|
$entryexists=$_CB_database->loadResult();
|
|
if (!$entryexists) {
|
|
$sql="INSERT INTO #__uddeim_emn (status, popup, userid) VALUES (".(int)$config->notifydefault.", ".(int)$config->popupdefault.", ".(int)$savetoid.")";
|
|
$_CB_database->setQuery($sql);
|
|
$ret=$_CB_database->query();
|
|
}
|
|
}
|
|
if (isset($config->realnames)) {
|
|
$config_realnames = $config->realnames;
|
|
}
|
|
if (isset($config->cryptmode)) {
|
|
$config_cryptmode = $config->cryptmode;
|
|
}
|
|
if (file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_crypt.php" )) {
|
|
require_once ( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_crypt.php" );
|
|
}
|
|
if (isset($config->cryptkey)) {
|
|
$config_cryptkey = $config->cryptkey;
|
|
}
|
|
if (isset($config->emailtrafficenabled)) {
|
|
$config_emailtrafficenabled = $config->emailtrafficenabled;
|
|
}
|
|
if (isset($config->quotedivider)) {
|
|
$config_quotedivider = $config->quotedivider;
|
|
}
|
|
if (isset($config->allowemailnotify)) {
|
|
$config_allowemailnotify = $config->allowemailnotify;
|
|
}
|
|
} else {
|
|
if (file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_config.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_config.php");
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
|
|
// --
|
|
|
|
// is this a reply?
|
|
$itisareply= (isset($config_quotedivider) ? stristr($savemessage, $config_quotedivider) : false);
|
|
|
|
// is the receiver currently online?
|
|
$sql="SELECT userid FROM #__session WHERE userid=".(int) $savetoid;
|
|
$_CB_database->setQuery($sql);
|
|
$currentlyonline=$_CB_database->loadResult();
|
|
|
|
if (isset( $config_allowemailnotify )) {
|
|
if ($config_allowemailnotify==1) {
|
|
$sql="SELECT status FROM #__uddeim_emn WHERE userid=".(int) $savetoid;
|
|
$_CB_database->setQuery($sql);
|
|
$ison=$_CB_database->loadResult();
|
|
if (($ison==1) || ($ison==2 && !$currentlyonline) || ($ison==10 && !$itisareply) || ($ison==20 && !$currentlyonline && !$itisareply)) {
|
|
$this->_pmsUddeDispatchEMN($savemsgid, $savefromid, $savetoid, $savemessage, 0, $udde_sysm);
|
|
// 0 stands for normal (not forgetmenot)
|
|
}
|
|
} elseif ($config_allowemailnotify==2) {
|
|
$sql="SELECT gid FROM #__users WHERE id=".(int) $savetoid;
|
|
$_CB_database->setQuery($sql);
|
|
$my_gid=$_CB_database->loadResult();
|
|
// if ($my_gid>23) { // JACL support
|
|
if ( in_array( $my_gid, $_CB_framework->acl->mapGroupNamesToValues( array( 'Administrator', 'Superadministrator' ) ) ) ) {
|
|
$sql="SELECT status FROM #__uddeim_emn WHERE userid=".(int) $savetoid;
|
|
$_CB_database->setQuery($sql);
|
|
$ison=$_CB_database->loadResult();
|
|
if (($ison==1) || ($ison==2 && !$currentlyonline) || ($ison==10 && !$itisareply) || ($ison==20 && !$currentlyonline && !$itisareply)) {
|
|
$this->_pmsUddeDispatchEMN($savemsgid, $savefromid, $savetoid, $savemessage, 0, $udde_sysm);
|
|
// 0 stands for normal (not forgetmenot)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Udde PMS notification by email
|
|
*
|
|
* @access private
|
|
* @param int $var_msgid
|
|
* @param int $var_fromid
|
|
* @param int $var_toid
|
|
* @param string $var_message
|
|
* @param int $emn_option
|
|
* @param boolean $udde_sysm
|
|
*/
|
|
function _pmsUddeDispatchEMN($var_msgid, $var_fromid, $var_toid, $var_message, $emn_option, $udde_sysm) {
|
|
global $_CB_database, $_CB_framework;
|
|
|
|
// --
|
|
$params = $this->params;
|
|
$pmsType = $params->get('pmsType', '1');
|
|
$udde_sysm = "System";
|
|
$config_realnames = "0";
|
|
$config_cryptmode = 0;
|
|
$config_cryptkey = 'uddeIMcryptkey';
|
|
|
|
if ($pmsType==4) { // uddeIM 1.0+
|
|
require_once( $_CB_framework->getCfg('absolute_path') . "/components/com_uddeim/crypt.class.php");
|
|
|
|
if(file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/config.class.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/config.class.php");
|
|
}
|
|
$this->uddeconfig = $config = new uddeimconfigclass();
|
|
if (isset($config->realnames)) {
|
|
$config_realnames = $config->realnames;
|
|
}
|
|
if (isset($config->cryptmode)) {
|
|
$config_cryptmode = $config->cryptmode;
|
|
}
|
|
if (file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_crypt.php" )) {
|
|
require_once ( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_crypt.php" );
|
|
}
|
|
if (isset($config->cryptkey)) {
|
|
$config_cryptkey = $config->cryptkey;
|
|
}
|
|
if (isset($config->emailtrafficenabled)) {
|
|
$config_emailtrafficenabled = $config->emailtrafficenabled;
|
|
}
|
|
if (isset($config->emailwithmessage)) {
|
|
$config_emailwithmessage = $config->emailwithmessage;
|
|
}
|
|
if (isset($config->emn_sendername)) {
|
|
$config_emn_sendername = $config->emn_sendername;
|
|
}
|
|
if (isset($config->emn_sendermail)) {
|
|
$config_emn_sendermail = $config->emn_sendermail;
|
|
}
|
|
} else {
|
|
if (file_exists( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_config.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim/uddeim_config.php");
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
|
|
// --
|
|
|
|
// load the uddeim lang file
|
|
$adminpath = $_CB_framework->getCfg('absolute_path') . "/administrator/components/com_uddeim";
|
|
if (file_exists($adminpath.'/language/'.$_CB_framework->getCfg( 'lang' ).'.php')) {
|
|
include_once($adminpath.'/language/'.$_CB_framework->getCfg( 'lang' ).'.php');
|
|
} elseif (file_exists($adminpath.'/language/english.php')) {
|
|
include_once($adminpath.'/language/english.php');
|
|
}
|
|
|
|
// if e-mail traffic stopped, don't send.
|
|
if (isset($config_emailtrafficenabled) && !($config_emailtrafficenabled > 0)) {
|
|
return;
|
|
}
|
|
|
|
if (isset($config_realnames) && $config_realnames) {
|
|
$sql = "SELECT name FROM #__users WHERE `id`=".(int) $var_fromid;
|
|
} else {
|
|
$sql = "SELECT username FROM #__users WHERE `id`=".(int) $var_fromid;
|
|
}
|
|
$_CB_database->setQuery($sql);
|
|
$var_fromname=$_CB_database->loadResult();
|
|
if (!$var_fromname) {
|
|
$var_fromname = $udde_sysm;
|
|
}
|
|
|
|
if (isset($config_realnames) && $config_realnames) {
|
|
$sql = "SELECT name AS displayname, email FROM #__users WHERE `id`=".(int) $var_toid;
|
|
} else {
|
|
$sql = "SELECT username AS displayname, email FROM #__users WHERE `id`=".(int) $var_toid;
|
|
}
|
|
$_CB_database->setQuery($sql);
|
|
$results=$_CB_database->loadObjectList();
|
|
foreach ($results as $result) {
|
|
$var_toname = $result->displayname;
|
|
$var_tomail = $result->email;
|
|
}
|
|
|
|
if (!$var_tomail) {
|
|
return;
|
|
}
|
|
|
|
$msglink = cbSef( "index.php?option=com_uddeim&task=show&messageid=" . (int) $var_msgid, false );
|
|
|
|
if ($emn_option==1) {
|
|
$var_body = _UDDEIM_EMN_FORGETMENOT;
|
|
$var_body = str_replace("%livesite%", $_CB_framework->getCfg( 'live_site' ), $var_body);
|
|
$var_body = str_replace("%you%", $var_toname, $var_body);
|
|
$var_body = str_replace("%site%", $_CB_framework->getCfg( 'sitename' ), $var_body);
|
|
$var_body = str_replace("%msglink%", $msglink, $var_body);
|
|
} else {
|
|
if (isset($config_emailwithmessage) && $config_emailwithmessage) {
|
|
$var_body = _UDDEIM_EMN_BODY_WITHMESSAGE;
|
|
$var_body = str_replace("%livesite%", $_CB_framework->getCfg( 'live_site' ), $var_body);
|
|
$var_body = str_replace("%you%", $var_toname, $var_body);
|
|
$var_body = str_replace("%site%", $_CB_framework->getCfg( 'sitename' ), $var_body);
|
|
$var_body = str_replace("%msglink%", $msglink, $var_body);
|
|
$var_body = str_replace("%user%", $var_fromname, $var_body);
|
|
$var_body = str_replace("%pmessage%", $var_message, $var_body);
|
|
} else {
|
|
$var_body = _UDDEIM_EMN_BODY_NOMESSAGE;
|
|
$var_body = str_replace("%livesite%", $_CB_framework->getCfg( 'live_site' ), $var_body);
|
|
$var_body = str_replace("%you%", $var_toname, $var_body);
|
|
$var_body = str_replace("%site%", $_CB_framework->getCfg( 'sitename' ), $var_body);
|
|
$var_body = str_replace("%msglink%", $msglink, $var_body);
|
|
$var_body = str_replace("%user%", $var_fromname, $var_body);
|
|
}
|
|
}
|
|
|
|
$subject = _UDDEIM_EMN_SUBJECT;
|
|
$subject = str_replace("%livesite%", $_CB_framework->getCfg( 'live_site' ), $subject);
|
|
$subject = str_replace("%site%", $_CB_framework->getCfg( 'sitename' ), $subject);
|
|
$subject = str_replace("%you%", $var_toname, $subject);
|
|
$subject = str_replace("%user%", $var_fromname, $subject);
|
|
|
|
/*
|
|
$header = "MIME-Version: 1.0\n";
|
|
// $header .= "Content-type: text/plain; charset=iso-8859-1\n";
|
|
$header .= "Content-type: text/plain; charset=".$this->_pmsUddeGetCharsetname($config_mailcharset)."\n";
|
|
$header .= "Organization: ".$_CB_framework->getCfg( 'sitename' )."\n";
|
|
$header .= "Content-Transfer-encoding: 8bit\n";
|
|
$header .= "From: \"".$config_emn_sendername."\" <".$config_emn_sendermail.">\n";
|
|
$header .= "Reply-To: ".$config_emn_sendermail."\n";
|
|
$header .= "Message-ID: <".md5(uniqid(time()))."@{$_SERVER['SERVER_NAME']}>\n";
|
|
$header .= "Return-Path: ".$config_emn_sendermail."\n";
|
|
$header .= "X-Priority: 3\n";
|
|
$header .= "X-MSmail-Priority: Low\n";
|
|
// $header .= "X-Mailer: PHP\r\n"; //hotmail and others dont like PHP mailer. --Microsoft Office Outlook, Build 11.0.5510
|
|
$header .= "X-Mailer: Microsoft Office Outlook, Build 11.0.5510\n";
|
|
$header .= "X-Sender: ".$config_emn_sendermail."\n";
|
|
|
|
// debug:
|
|
// $header.="\n".$this->_pmsMailcompatible($var_body);
|
|
// die($header);
|
|
|
|
// -----
|
|
if(mail ($var_tomail,$subject,$this->_pmsMailcompatible($var_body),$header)) {
|
|
*/
|
|
// $cbNotif = new cbNotification;
|
|
// if ($cbNotif->sendUserEmail($var_toid,$var_fromid,$subject,$this->_pmsMailcompatible($var_body))) {
|
|
if (comprofilerMail($config_emn_sendermail, $config_emn_sendername, $var_tomail,$subject,$this->_pmsMailcompatible($var_body))) {
|
|
// set the remindersent status of this user to true
|
|
$sql="SELECT count(id) FROM #__uddeim_emn WHERE userid=".(int) $var_toid;
|
|
$_CB_database->setQuery($sql);
|
|
$exists=$_CB_database->loadResult();
|
|
if($exists) {
|
|
$sql="UPDATE #__uddeim_emn SET remindersent=".(int) $this->_pmsUddeGetTime(time())." WHERE userid=".(int) $var_toid;
|
|
$_CB_database->setQuery($sql);
|
|
if (!$_CB_database->query()) {
|
|
die("SQL error" . $_CB_database->stderr(true));
|
|
}
|
|
} else {
|
|
$sql="INSERT INTO #__uddeim_emn (userid, status, remindersent) VALUES (".(int) $var_toid.", 0, ".(int) $this->_pmsUddeGetTime(time()).")";
|
|
$_CB_database->setQuery($sql);
|
|
if (!$_CB_database->query()) {
|
|
die("SQL error" . $_CB_database->stderr(true));
|
|
} // end if database query
|
|
} // end else
|
|
} // end if mail
|
|
} // end function
|
|
|
|
/*
|
|
function _pmsUddeGetCharsetname($analias) {
|
|
|
|
switch ($analias) {
|
|
|
|
case "ISO8859-1":
|
|
$notalias="ISO-8859-1";
|
|
break;
|
|
case "ISO8859-15":
|
|
$notalias="ISO-8859-15";
|
|
break;
|
|
case "ISO-8859-1":
|
|
$notalias="ISO-8859-1";
|
|
break;
|
|
case "ISO-8859-15":
|
|
$notalias="ISO-8859-15";
|
|
break;
|
|
case "UTF-8":
|
|
$notalias="UTF-8";
|
|
break;
|
|
case "ibm866":
|
|
$notalias="ibm866";
|
|
break;
|
|
case "866":
|
|
$notalias="ibm866";
|
|
break;
|
|
case "cp866":
|
|
$notalias="ibm866";
|
|
break;
|
|
case "cp1251":
|
|
$notalias="Windows-1251";
|
|
break;
|
|
case "Windows-1251":
|
|
$notalias="Windows-1251";
|
|
break;
|
|
case "win-1251":
|
|
$notalias="Windows-1251";
|
|
break;
|
|
case "1251":
|
|
$notalias="Windows-1251";
|
|
break;
|
|
case "cp1252":
|
|
$notalias="Windows-1252";
|
|
break;
|
|
case "Windows-1252":
|
|
$notalias="Windows-1252";
|
|
break;
|
|
case "1252":
|
|
$notalias="Windows-1252";
|
|
break;
|
|
case "koi8-ru":
|
|
$notalias="KOI8-R";
|
|
break;
|
|
case "koi8r":
|
|
$notalias="KOI8-R";
|
|
break;
|
|
case "KOI8-R":
|
|
$notalias="KOI8-R";
|
|
break;
|
|
case "BIG5":
|
|
$notalias="Big5";
|
|
break;
|
|
case "Big5":
|
|
$notalias="Big5";
|
|
break;
|
|
case "950":
|
|
$notalias="Big5";
|
|
break;
|
|
case "GB2312":
|
|
$notalias="GB2312";
|
|
break;
|
|
case "936":
|
|
$notalias="GB2312";
|
|
break;
|
|
case "BIG5-HKSCS":
|
|
$notalias="BIG5-HKSCS";
|
|
break;
|
|
case "SJIS":
|
|
$notalias="Shift_JIS";
|
|
break;
|
|
case "Shift_JIS":
|
|
$notalias="Shift_JIS";
|
|
break;
|
|
case "932":
|
|
$notalias="Shift_JIS";
|
|
break;
|
|
case "EUC-JP":
|
|
$notalias="EUC-JP";
|
|
break;
|
|
case "EUCJP":
|
|
$notalias="EUC-JP";
|
|
break;
|
|
default:
|
|
$notalias=$analias;
|
|
break;
|
|
}
|
|
|
|
if(!$notalias) {
|
|
$notalias="ISO-8859-1";
|
|
}
|
|
return $notalias;
|
|
|
|
}
|
|
*/
|
|
|
|
function _pmsMailcompatible($string) {
|
|
|
|
$string=str_replace('\\n', '#!CRLF!#', $string);
|
|
|
|
$string=stripslashes($string);
|
|
|
|
// bold
|
|
$string = preg_replace("/(\[b\])(.*?)(\[\/b\])/si","\\2",$string);
|
|
|
|
// underline
|
|
$string = preg_replace("/(\[u\])(.*?)(\[\/u\])/si","\\2",$string);
|
|
|
|
// italic
|
|
$string = preg_replace("/(\[i\])(.*?)(\[\/i\])/si","\\2",$string);
|
|
|
|
// size Max size is 7
|
|
$string = preg_replace("/\[size=([1-7])\](.+?)\[\/size\]/si","\\2",$string);
|
|
|
|
// color
|
|
$string = preg_replace("%\[color=(.*?)\](.*?)\[/color\]%si","\\2",$string);
|
|
|
|
// ul li replacements
|
|
|
|
// lists
|
|
$string = preg_replace("/(\[ul\])(.*?)(\[\/ul\])/si","\\2",$string);
|
|
$string = preg_replace("/(\[ol\])(.*?)(\[\/ol\])/si","\\2",$string);
|
|
$string = preg_replace("/(\[li\])(.*?)(\[\/li\])/si","\\2\\n",$string);
|
|
|
|
// url replacement
|
|
$string = preg_replace('/\[url\](.*?)javascript(.*?)\[\/url\]/si','',$string);
|
|
$string = preg_replace('/\[url=(.*?)javascript(.*?)\](.*?)\[\/url\]/si','',$string);
|
|
$string = preg_replace("/\[url\](.*?)\[\/url\]/si","\\1",$string);
|
|
$string = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/si","\\2 (\\1)",$string);
|
|
|
|
// only front tag present
|
|
$string = preg_replace("/\[url=(.*?)\]/si","",$string);
|
|
|
|
// img replacement
|
|
// img
|
|
$string = preg_replace("/\[img size=([0-9][0-9][0-9])\](.*?)\[\/img\]/si","",$string);
|
|
$string = preg_replace("/\[img size=([0-9][0-9])\](.*?)\[\/img\]/si","",$string);
|
|
$string = preg_replace("/\[img\](.*?)\[\/img\]/si","",$string);
|
|
$string = preg_replace("/<img(.*?)javascript(.*?)>/si",'',$string);
|
|
|
|
// only front tag present
|
|
$string = preg_replace("/\[img size=([0-9][0-9][0-9])\]]/si","",$string);
|
|
$string = preg_replace("/\[img size=([0-9][0-9])\]]/si","",$string);
|
|
|
|
// cut remaining single tags
|
|
$string=str_replace(array("[i]","[/i]","[b]","[/b]","[u]","[/u]","[ul]","[/ul]","[ol]","[/ol]","[li]","[/li]"), "", $string);
|
|
|
|
$string = preg_replace('/\[url=(.*?)javascript(.*?)\]/si','',$string);
|
|
$string = preg_replace("/\[img size=([0-9][0-9][0-9])\]/si","",$string);
|
|
$string = preg_replace("/\[img size=([0-9][0-9])\]/si","",$string);
|
|
$string = preg_replace("/\[size=([1-7])\]/si","",$string);
|
|
$string = preg_replace("%\[color=(.*?)\]%si","",$string);
|
|
$string=str_replace(array("[img]","[/img]","[url]","[/url]","[/color]","[/size]"), "", $string);
|
|
|
|
$string=str_replace("#!CRLF!#", "\n", $string);
|
|
return $string;
|
|
|
|
}
|
|
|
|
function _pmsUddeGetTime($currentTime) {
|
|
global $_CB_framework;
|
|
|
|
static $notLoaded = true;
|
|
if ( $notLoaded ) {
|
|
if ( defined( 'JPATH_ADMINISTRATOR' ) ) {
|
|
if ( file_exists( JPATH_SITE.'/components/com_uddeim/uddeimlib17.php' ) ) {
|
|
$ver = new JVersion();
|
|
if (!strncasecmp($ver->RELEASE, "1.7", 3)) {
|
|
require_once(JPATH_SITE.'/components/com_uddeim/uddeimlib17.php');
|
|
} elseif (!strncasecmp($ver->RELEASE, "1.6", 3)) {
|
|
require_once(JPATH_SITE.'/components/com_uddeim/uddeimlib16.php');
|
|
} else {
|
|
require_once(JPATH_SITE.'/components/com_uddeim/uddeimlib15.php');
|
|
}
|
|
}
|
|
} else {
|
|
global $mainframe;
|
|
if ( file_exists( $mainframe->getCfg('absolute_path').'/components/com_uddeim/uddeimlib17.php' ) ) {
|
|
require_once($mainframe->getCfg('absolute_path').'/components/com_uddeim/uddeimlib10.php');
|
|
}
|
|
}
|
|
$notLoaded = false;
|
|
}
|
|
if ( is_callable( 'uddetime' ) && isset( $this->uddeconfig ) ) {
|
|
return uddetime($this->uddeconfig->timezone);
|
|
} else {
|
|
global $_CB_framework;
|
|
return $currentTime+($_CB_framework->getCfg( 'offset' )*3600);
|
|
}
|
|
}
|
|
|
|
// delete user code function
|
|
function userDeleted($user, $success) {
|
|
global $_CB_database,$_CB_framework;
|
|
|
|
$params = $this->params;
|
|
$pmsType = $params->get('pmsType', '1');
|
|
|
|
if (!$this->_checkPMSinstalled($pmsType)) {
|
|
return false;
|
|
}
|
|
$pmsUserDeleteOption = $params->get('pmsUserDeleteOption', '3');
|
|
$pmsUserFunction = $params->get('pmsUserFunction','1');
|
|
|
|
$cb_extra_rules = 0;
|
|
SWITCH($pmsType) {
|
|
case 1: //MyPMS OS
|
|
switch ($pmsUserDeleteOption) {
|
|
case '1': // Keep all messages
|
|
$query_pms_delete = "";
|
|
break;
|
|
case '2': // Remove all messages (received and sent)
|
|
case '3': // Remove received messages only
|
|
case '4': // Remove sent message only
|
|
$query_pms_delete = "DELETE FROM #__pms WHERE username='" . $_CB_database->getEscaped($user->username) ."'";
|
|
break;
|
|
default:
|
|
$query_pms_delete = "DELETE FROM #__pms WHERE username='" . $_CB_database->getEscaped($user->username) ."'";
|
|
break;
|
|
}
|
|
if(file_exists( $_CB_framework->getCfg('absolute_path') . "/components/com_pms/cb_extra.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/components/com_pms/cb_extra.php");
|
|
if (function_exists('user_delete')) {
|
|
$cb_extra_rules = 1;
|
|
}
|
|
if (function_exists('user_delete_ext')) {
|
|
$cb_extra_rules = 2;
|
|
}
|
|
}
|
|
break;
|
|
case 2: //PMS Pro
|
|
switch ($pmsUserDeleteOption) {
|
|
case '1': // Keep all messages
|
|
$query_pms_delete = "";
|
|
break;
|
|
case '2': // Remove all messages (received and sent)
|
|
case '3': // Remove received messages only
|
|
case '4': // Remove sent message only
|
|
$query_pms_delete = "DELETE FROM #__mypms WHERE username='" . $_CB_database->getEscaped($user->username) ."'";
|
|
break;
|
|
default:
|
|
$query_pms_delete = "DELETE FROM #__mypms WHERE username='" . $_CB_database->getEscaped($user->username) ."'";
|
|
break;
|
|
}
|
|
if(file_exists( $_CB_framework->getCfg('absolute_path') . "/components/com_mypms/cb_extra.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/components/com_mypms/cb_extra.php");
|
|
if (function_exists('user_delete')) {
|
|
$cb_extra_rules = 1;
|
|
}
|
|
if (function_exists('user_delete_ext')) {
|
|
$cb_extra_rules = 2;
|
|
}
|
|
}
|
|
break;
|
|
case 3: //UddeIM 0.4
|
|
case 4: //UddeIM 1.0
|
|
switch ($pmsUserDeleteOption) {
|
|
case '1': // Keep all messages
|
|
$query_pms_delete = "";
|
|
break;
|
|
case '2': // Remove all messages (received and sent)
|
|
$query_pms_delete = "DELETE FROM #__uddeim WHERE fromid='" . (int) $user->id ."' OR toid='" . (int) $user->id . "'";
|
|
break;
|
|
case '3': // Remove received messages only
|
|
$query_pms_delete = "DELETE FROM #__uddeim WHERE toid='" . (int) $user->id . "'";
|
|
break;
|
|
case '4': // Remove sent message only
|
|
$query_pms_delete = "DELETE FROM #__uddeim WHERE fromid='" . (int) $user->id ."'";
|
|
break;
|
|
default:
|
|
$query_pms_delete = "DELETE FROM #__uddeim WHERE fromid='" . (int) $user->id ."' OR toid='" . (int) $user->id . "'";
|
|
break;
|
|
}
|
|
$query_pms_delete_extra1 = "DELETE FROM #__uddeim_emn WHERE userid='" . (int) $user->id . "'";
|
|
$query_pms_delete_extra2 = "DELETE FROM #__uddeim_blocks WHERE blocker='" . (int) $user->id . "' OR blocked='" . (int) $user->id . "'";
|
|
if(file_exists( $_CB_framework->getCfg('absolute_path') . "/components/com_uddeim/cb_extra.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/components/com_uddeim/cb_extra.php");
|
|
if (function_exists('user_delete')) {
|
|
$cb_extra_rules = 1;
|
|
}
|
|
if (function_exists('user_delete_ext')) {
|
|
$cb_extra_rules = 2;
|
|
}
|
|
}
|
|
break;
|
|
case 5: //PMS enhanced 2.x by Stefan Klingner
|
|
switch ($pmsUserDeleteOption) {
|
|
case '1': // Keep all messages
|
|
$query_pms_delete = "";
|
|
break;
|
|
case '2': // Remove all messages (received and sent)
|
|
$query_pms_delete = "DELETE FROM #__pms WHERE recip_id='" . (int) $user->id . "' OR sender_id='" . (int) $user->id . "'";
|
|
break;
|
|
case '3': // Remove received messages only
|
|
$query_pms_delete = "DELETE FROM #__pms WHERE recip_id='" . (int) $user->id . "'";
|
|
break;
|
|
case '4': // Remove sent message only
|
|
$query_pms_delete = "DELETE FROM #__pms WHERE sender_id='" . (int) $user->id . "'";
|
|
break;
|
|
default:
|
|
$query_pms_delete = "DELETE FROM #__pms WHERE recip_id='" . (int) $user->id . "' OR sender_id='" . (int) $user->id . "'";
|
|
break;
|
|
}
|
|
if(file_exists( $_CB_framework->getCfg('absolute_path') . "/components/com_pms/cb_extra.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/components/com_pms/cb_extra.php");
|
|
if (function_exists('user_delete')) {
|
|
$cb_extra_rules = 1;
|
|
}
|
|
if (function_exists('user_delete_ext')) {
|
|
$cb_extra_rules = 2;
|
|
}
|
|
}
|
|
break;
|
|
case 6: //JIM 1.0.1
|
|
$query_pms_delete = "DELETE FROM #__jim WHERE username='" . $_CB_database->getEscaped($user->username) ."'";
|
|
if(file_exists( $_CB_framework->getCfg('absolute_path') . "/components/com_jim/cb_extra.php")) {
|
|
include_once( $_CB_framework->getCfg('absolute_path') . "/components/com_jim/cb_extra.php");
|
|
if (function_exists('user_delete')) {
|
|
$cb_extra_rules = 1;
|
|
}
|
|
if (function_exists('user_delete_ext')) {
|
|
$cb_extra_rules = 2;
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
$this->_setErrorMSG("Incorrect PMS type");
|
|
return false;
|
|
break;
|
|
}
|
|
|
|
if (!$cb_extra_rules || $pmsUserFunction=='1') {
|
|
// print "Deleting pms data for user ".$user->id;
|
|
if ($pmsUserDeleteOption != 1) {
|
|
$_CB_database->setQuery( $query_pms_delete );
|
|
if (!$_CB_database->query()) {
|
|
$this->_setErrorMSG("SQL error " . $query_pms_delete . $_CB_database->stderr(true));
|
|
return false;
|
|
}
|
|
}
|
|
if ($pmsType == 4 || $pmsType == 3) {
|
|
$_CB_database->setQuery( $query_pms_delete_extra1 );
|
|
if (!$_CB_database->query()) {
|
|
$this->_setErrorMSG("SQL error " . $query_pms_delete_extra1 . $_CB_database->stderr(true));
|
|
return false;
|
|
}
|
|
$_CB_database->setQuery( $query_pms_delete_extra2 );
|
|
if (!$_CB_database->query()) {
|
|
$this->_setErrorMSG("SQL error " . $query_pms_delete_extra2 . $_CB_database->stderr(true));
|
|
return false;
|
|
}
|
|
}
|
|
$cb_extra_return = true;
|
|
} else {
|
|
switch ($cb_extra_rules) {
|
|
case 1:
|
|
$cb_extra_return = user_delete($user->id);
|
|
break;
|
|
case 2:
|
|
$cb_extra_return = user_delete_ext($user->id,$pmsUserDeleteOption);
|
|
break;
|
|
}
|
|
}
|
|
return $cb_extra_return;
|
|
}
|
|
} // end class getmypmsproTab.
|
|
?>
|