Ejemplo n.º 1
0
function uddeIMselectComboUserlist( $myself, $my_gid, $lids, $config ) {
	$database = uddeIMgetDatabase();
	$users = Array();
	
	getAdditonalGroups($add_special, $add_admin, $config);

	$ret = '<select multiple="multiple" name="userlist" class="inputbox" ondblclick="userlistdblclick(this.selectedIndex, \'listsform\', \'userlist\', \'selectionlist\', '.$config->maxonlists.')" size="10">';

	if (($config->restrictcon==1 && uddeIMisReggedOnly($my_gid)) ||
		($config->restrictcon==2 && uddeIMisAllNotAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) ||
		($config->restrictcon==3) ) {

		if ($lids)
			$temp = "u.id NOT IN (".uddeIMquoteSmart($lids).") AND ";
		$somanyfriends = 0;
		if (uddeIMcheckCB()) {
			$users = uddeIMselectCBbuddies($myself, $config, $temp);
			$somanyfriends = count($users);
		}

		if (!$somanyfriends) { // no friends found, maybe there are some in CBE?
			if (uddeIMcheckCBE()) {
				$users = uddeIMselectCBEbuddies($myself, $config, $temp);
				$somanyfriends = count($users);
			}
			if (uddeIMcheckCBE2()) {
				$users = uddeIMselectCBE2buddies($myself, $config, $temp);
				$somanyfriends = count($users);
			}
		}

		if (!$somanyfriends) { // no friends found, maybe there are some in JS?
			if (uddeIMcheckJS()) {
				$users = uddeIMselectJSbuddies($myself, $config, $temp);
				$somanyfriends = count($users);
			}
		}

	} else {


		if (uddeIMcheckJversion()>=2) {		// J1.6
			$temp = "";
			if ($lids)
				$temp = "AND u.id NOT IN (".uddeIMquoteSmart($lids).") ";
			switch ($config->hideallusers) {
				case 3:		// special users
					$sql="SELECT DISTINCT u.id,u.".($config->realnames ? "name" : "username")." AS displayname FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
								INNER JOIN #__usergroups AS g ON um.group_id=g.id 
								WHERE u.block=0 ".$temp."AND g.id NOT IN (3,4,5,6,7,8".$add_admin.$add_special.") ORDER BY u.".($config->realnames ? "name" : "username");
					break;
				case 2:		// admins
					$sql="SELECT DISTINCT u.id,u.".($config->realnames ? "name" : "username")." AS displayname FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
								INNER JOIN #__usergroups AS g ON um.group_id=g.id 
								WHERE u.block=0 ".$temp."AND g.id NOT IN (7,8".$add_admin.") ORDER BY u.".($config->realnames ? "name" : "username");
					break;
				case 1:		// superadmins
					$sql="SELECT DISTINCT u.id,u.".($config->realnames ? "name" : "username")." AS displayname FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
								INNER JOIN #__usergroups AS g ON um.group_id=g.id 
								WHERE u.block=0 ".$temp."AND g.id NOT IN (8) ORDER BY u.".($config->realnames ? "name" : "username");
					break;
				default:	// none
					$sql="SELECT u.id,u.".($config->realnames ? "name" : "username")." AS displayname FROM #__users AS u WHERE u.block=0 ".$temp."ORDER BY u.".($config->realnames ? "name" : "username");
					break;
			}
			if (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config))		// do not hide users when it is an admin
				$sql="SELECT u.id,u.".($config->realnames ? "name" : "username")." AS displayname FROM #__users AS u WHERE u.block=0 ".$temp."ORDER BY u.".($config->realnames ? "name" : "username");
		} else {
			$temp = "";
			if ($lids)
				$temp = "AND id NOT IN (".uddeIMquoteSmart($lids).") ";
			switch ($config->hideallusers) {
				case 3:		// special users
					$sql="SELECT id,".($config->realnames ? "name" : "username")." AS displayname FROM #__users WHERE block=0 ".$temp."AND gid NOT IN (19,20,21,23,24,25".$add_admin.$add_special.") ORDER BY ".($config->realnames ? "name" : "username");
					break;
				case 2:		// admins
					$sql="SELECT id,".($config->realnames ? "name" : "username")." AS displayname FROM #__users WHERE block=0 ".$temp."AND gid NOT IN (24,25".$add_admin.") ORDER BY ".($config->realnames ? "name" : "username");
					break;
				case 1:		// superadmins
					$sql="SELECT id,".($config->realnames ? "name" : "username")." AS displayname FROM #__users WHERE block=0 ".$temp."AND gid NOT IN (25) ORDER BY ".($config->realnames ? "name" : "username");
					break;
				default:	// none
					$sql="SELECT id,".($config->realnames ? "name" : "username")." AS displayname FROM #__users WHERE block=0 ".$temp."ORDER BY ".($config->realnames ? "name" : "username");
					break;
			}
			if (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config))		// do not hide users when it is an admin
				$sql="SELECT id,".($config->realnames ? "name" : "username")." AS displayname FROM #__users WHERE block=0 ".$temp."ORDER BY ".($config->realnames ? "name" : "username");
		}
		$database->setQuery( $sql );
		$users = $database->loadObjectList(); 
		if (!$users)
			$users = Array();
	}

	if ( count( $users ) )  {
		foreach ( $users as $user )
			$ret .= '<option value="'.$user->id.'">'.$user->displayname.'</option>';
	}
	$ret .= '</select>';
	return $ret;
}
Ejemplo n.º 2
0
	function sendNewSysMessage($fromid, $recipients, $message, $systemmsg=0, $validfor=0, $sendnotification=0, $forceembedded=0) {
		$database = uddeIMgetDatabase();

		if ($systemmsg) {		// system message
			$sendername = $this->config->sysm_username;
			$savesysflag = addslashes($sendername); 			// system message
			$savedisablereply = 1; 								// and users can't reply to them
			$emn_fromid = 0;									// for email notifications set userid 0
		} else {
			$sendername = uddeIMgetNameFromID($fromid, $this->config);
			$savesysflag = addslashes($sendername);
			$savedisablereply = 0;
			$emn_fromid = $fromid;
		}

		$savedatum = uddetime($this->config->timezone);
		if ($validfor>0) {
			$now = uddetime($this->config->timezone);
			$validuntil = $now+($validfor*3600);
		} else {
			$validuntil = 0;
		}

		if ($this->config->cryptmode>=1) {	// because of encoding do not use slashes
			$savemessage = strip_tags($message);
		} else {
			$savemessage = addslashes(strip_tags($message));   // original 0.6+
		}

		getAdditonalGroups($add_special, $add_admin, $config);
		if (uddeIMcheckJversion()>=2) {		// J1.6
			if ($recipients=="all") {
				$sql="SELECT id FROM #__users WHERE block=0";
			} elseif($recipients=="online") {
				$sql="SELECT a.id, b.userid FROM #__users AS a, #__session AS b WHERE block=0 AND a.id=b.userid";
			} elseif($recipients=="special") {
				$sql="SELECT DISTINCT u.id FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
							INNER JOIN #__usergroups AS g ON um.group_id=g.id 
							WHERE u.block=0 AND g.id IN (3,4,5,6,7,8".$add_admin.$add_special.")";
			} elseif($recipients=="admins") {
				$sql="SELECT DISTINCT u.id FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
							INNER JOIN #__usergroups AS g ON um.group_id=g.id 
							WHERE u.block=0 AND g.id IN (7,8".$add_admin.")";
			} else {
				$sql="SELECT DISTINCT u.id FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
							INNER JOIN #__usergroups AS g ON um.group_id=g.id 
							WHERE u.block=0 AND g.id=".(int)$recipients;
			}
		} else {
			if ($recipients=="all") {
				$sql="SELECT id FROM #__users WHERE block=0";
			} elseif($recipients=="online") {
				$sql="SELECT a.id, b.userid FROM #__users AS a, #__session AS b WHERE block=0 AND a.id=b.userid";
			} elseif($recipients=="special") {
				$sql="SELECT id FROM #__users WHERE block=0 AND gid IN (19,20,21,23,24,25".$add_admin.")";
			} elseif($recipients=="admins") {
				$sql="SELECT id FROM #__users WHERE block=0 AND gid IN (24,25".$add_admin.")";
			} else {
				$sql="SELECT id FROM #__users WHERE block=0 AND gid=".(int)$recipients;
			}
		}
		$database->setQuery($sql);
		$receivers=$database->loadObjectList();

		if (!count($receivers)) {
			return 1;
		}

		foreach($receivers as $receiver) {
			$toid = $receiver->id;

			$themode = 0;
			if ($this->config->cryptmode==1 || $this->config->cryptmode==2 || $this->config->cryptmode==4) {
				$themode = 1;
				$cm = uddeIMencrypt($savemessage,$this->config->cryptkey,CRYPT_MODE_BASE64);
				$sql="INSERT INTO #__uddeim (fromid, toid, message, datum, expires, systemmessage, systemflag, disablereply, totrashoutbox, totrashdateoutbox, cryptmode, crypthash) VALUES (".(int)$fromid.", ".(int)$toid.", '".$cm."', ".$savedatum.", ".$validuntil.", '".$savesysflag."', 1,".$savedisablereply.", 1, ".$savedatum.",1,'".md5($this->config->cryptkey)."')";
			} elseif ($this->config->cryptmode==3) {
				$themode = 3;
				$cm = uddeIMencrypt($savemessage,"",CRYPT_MODE_STOREBASE64);
				$sql="INSERT INTO #__uddeim (fromid, toid, message, datum, expires, systemmessage, systemflag, disablereply, totrashoutbox, totrashdateoutbox, cryptmode) VALUES (".(int)$fromid.", ".(int)$toid.", '".$cm."', ".$savedatum.", ".$validuntil.", '".$savesysflag."', 1,".$savedisablereply.", 1, ".$savedatum.",3)";
			} else {
				$sql="INSERT INTO #__uddeim (fromid, toid, message, datum, expires, systemmessage, systemflag, disablereply, totrashoutbox, totrashdateoutbox) VALUES (".(int)$fromid.", ".(int)$toid.", '".$savemessage."', ".$savedatum.", ".$validuntil.", '".$savesysflag."', 1,".$savedisablereply.", 1,".$savedatum.")";
			}
			$database->setQuery($sql);
			if (!$database->query()) {
				die("SQL error when attempting to save a message" . $database->stderr(true));
			}
			$insID = $database->insertid();

			if ($sendnotification) {
				// Check if E-Mail notification or popups are enabled by default, if so create a record for the receiver.
				if ($this->config->notifydefault>0 || $this->config->popupdefault>0 || $this->config->pubfrontenddefault>0 || $this->config->autoresponder>0 || $this->config->autoforward>0) {
					if (!uddeIMexistsEMN($toid))
						uddeIMinsertEMNdefaults($toid, $this->config);
				}
			}

			// ##################################################################################################
			// email notification
			// ##################################################################################################

			if ($sendnotification) {
				$currentlyonline = uddeIMisOnline($toid);

				if ($this->config->cryptmode>=1) {
					$email = stripslashes($savemessage);
				} else {
					$email = stripslashes(stripslashes($savemessage));
				}

				$type = 0;
				if ($forceembedded)
					$type = 2;
				if ($this->config->allowemailnotify==1) {
					$ison = uddeIMgetEMNstatus($toid);
					if (($ison==1) || ($ison==2 && !$currentlyonline) || $ison==10 || ($ison==20 && !$currentlyonline)) {
						uddeIMdispatchEMN($insID, $item_id, $themode, $emn_fromid, $toid, $email, $type, $this->config);
					}
				} elseif($this->config->allowemailnotify==2) {
					$gid = uddeIMgetGID((int)$toid);
					if (uddeIMisAdmin($gid) || uddeIMisAdmin2($gid, $this->config)) {
						$ison = uddeIMgetEMNstatus($toid);
						if (($ison==1) || ($ison==2 && !$currentlyonline) || $ison==10 || ($ison==20 && !$currentlyonline)) {
							uddeIMdispatchEMN($insID, $item_id, $themode, $emn_fromid, $toid, $email, $type, $this->config);
						}
					}
				}
			}
		}
		return 0;
	}
Ejemplo n.º 3
0
// first try to find a published link
$udd_sql = "SELECT id FROM #__menu WHERE link LIKE '%com_uddeim%' AND published=1 AND access".
		($udd_mygroupid==0 ? "=" : "<=").$udd_mygroupid;
if (uddeIMcheckJversion()>=2) {		// Joomla 1.6+
	$lang = JFactory::getLanguage();
	$udd_sql .= " AND language IN (" . $udd_database->Quote($lang->get('tag')) . ",'*')";
}
$udd_sql .= " LIMIT 1";
$udd_database->setQuery($udd_sql);
$udd_item_id = (int)$udd_database->loadResult();
if (!$udd_item_id) {
	// when no published link has been found, try to find an unpublished one
	$udd_sql="SELECT id FROM #__menu WHERE link LIKE '%com_uddeim%' AND published=0 AND access".
			($udd_mygroupid==0 ? "=" : "<=").$udd_mygroupid;
	if (uddeIMcheckJversion()>=2) {		// Joomla 1.6+
		$lang = JFactory::getLanguage();
		$udd_sql .= " AND language IN (" . $udd_database->Quote($lang->get('tag')) . ",'*')";
	}
	$udd_sql .= " LIMIT 1";
	$udd_database->setQuery($udd_sql);
	$udd_item_id = (int)$udd_database->loadResult();
}
if ($udd_config->overwriteitemid)
	$udd_item_id = $udd_config->useitemid;



$udd_pms_link = uddeIMsefRelToAbs("index.php?option=com_uddeim&task=inbox".($udd_item_id ? "&Itemid=".$udd_item_id : ""));

$udd_sql="SELECT a.*, b.".($udd_config->realnames ? "name" : "username")." AS displayname FROM #__uddeim AS a LEFT JOIN #__users AS b ON a.fromid=b.id WHERE `a`.`delayed`=0 AND a.toread=0 AND a.totrash=0 AND a.toid=".(int)$udd_userid." ORDER BY a.datum";
Ejemplo n.º 4
0
function uddeIMshowUsersettings($option, $task, $act, $config) {
	// $mosConfig_offset = uddeIMgetOffset();
	$database = uddeIMgetDatabase();
	$emnid = intval( uddeIMmosGetParam( $_POST, 'id', '' ) );

	switch($act) {
	//	case "autor":	uddeIMchangeAutor($option, $task, $emnid, $config);		break;
		case "popup":		uddeIMchangePopup($option, $task, $emnid, $config);		break;
		case "public":		uddeIMchangePublic($option, $task, $emnid, $config);	break;
		case "status":		uddeIMchangeStatus($option, $task, $emnid, $config);	break;
		case "locked":		uddeIMchangeLocked($option, $task, $emnid, $config);	break;
		case "moderated":	uddeIMchangeModerated($option, $task, $emnid, $config);	break;
	}

	// get parameter from filter
	$f_param = array();
	$f_where = array();

	$f_param[0] = uddeIMmosGetParam($_POST, 'f_username', '');
	if($f_param[0]!="") $f_where[] = "b.username LIKE '$f_param[0]%'";

	$f_param[1] = uddeIMmosGetParam($_POST, 'f_name', '');
	if($f_param[1]!="") $f_where[] = "b.name LIKE '$f_param[1]%'";

	$f_param[2] = uddeIMmosGetParam($_POST, 'f_status', '');
	if($f_param[2]!="") $f_where[] = "a.status='$f_param[2]'";

	$f_param[3] = uddeIMmosGetParam($_POST, 'f_popup', '');
	if($f_param[3]!="") $f_where[] = "a.popup='$f_param[3]'";

	$f_param[4] = uddeIMmosGetParam($_POST, 'f_public', '');
	if($f_param[4]!="") $f_where[] = "a.public='$f_param[4]'";

	$f_param[5] = uddeIMmosGetParam($_POST, 'f_id', '');
	if($f_param[5]!="") $f_where[] = "a.id IS $f_param[5]";

	$f_param[6] = uddeIMmosGetParam($_POST, 'f_autor', '');
	if($f_param[6]!="") $f_where[] = "a.autoresponder='$f_param[6]'";

	$f_param[7] = uddeIMmosGetParam($_POST, 'f_autof', '');
	if($f_param[7]!="") $f_where[] = "a.autoforward='$f_param[7]'";

	$f_param[8] = uddeIMmosGetParam($_POST, 'f_locked', '');
	if($f_param[8]!="") $f_where[] = "a.locked='$f_param[8]'";

	$f_param[9] = uddeIMmosGetParam($_POST, 'f_moderated', '');
	if($f_param[9]!="") $f_where[] = "a.moderated='$f_param[9]'";

	$limit      = intval( uddeIMmosGetParam( $_POST, 'limit', 10 ) );
	$limitstart = intval( uddeIMmosGetParam( $_POST, 'limitstart', 0 ) );
	$where = count($f_where) ? " WHERE " . implode(' AND ', $f_where) : "";

	$sql="SELECT count(b.id) FROM #__uddeim_emn AS a RIGHT JOIN #__users AS b ON a.userid=b.id".$where;
	$database->setQuery($sql);
	$total = (int)$database->loadResult();
	if ($limit==0) {
		$limit = $total;
		$limitstart = 0;
	}
	if ($limitstart>=$total)
		$limitstart = 0;

// echo($sql." ==> ".$total."<br />");

	$sql  = "SELECT a.*,b.id AS uid,b.name,b.username,b.block ";
	$sql .= "FROM #__uddeim_emn AS a RIGHT JOIN #__users AS b ON a.userid=b.id";
	$sql .= $where;
	$sql .= " ORDER BY name LIMIT $limitstart,$limit";
	$database->setQuery($sql);
	$rows = $database->loadObjectList();

// echo($sql."<br />");

	// include_once(uddeIMgetPath('absolute_path')."/administrator/includes/pageNavigation.php");
	$pageNav = new uddeIMmosPageNav( $total, $limitstart, $limit  );

	$sql="SELECT username,name FROM #__users WHERE block!='1' ORDER BY username";
	$database->setQuery($sql);
	$results = $database->loadObjectList();

	$results = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
	
	$the_username='******';
	if ($f_param[0]=="") $the_username.=' selected';
	$the_username.='>'._UDDEADM_USERSET_SELUSERNAME.'</option>';
	foreach($results as $result) {
		$the_username.='<option value="'.$result.'"';
		if ($result==$f_param[0]) $the_username.=' selected';
		$the_username.='>'.$result.'...</option>';
	}
	$the_username.="</select>";

	$the_name='<select id="f_name" class="text" name="f_name" size="1"><option value=""';
	if ($f_param[1]=="") $the_name.=' selected';
	$the_name.='>'._UDDEADM_USERSET_SELNAME.'</option>';
	foreach($results as $result) {
		$the_name.='<option value="'.$result.'"';
		if ($result==$f_param[1]) $the_name.=' selected';
		$the_name.='>'.$result.'...</option>';
	}
	$the_name.="</select>";

//			<h4><img align="middle" style="display: inline;" src="<?php echo uddeIMgetPath('live_site')."/administrator/images/inbox.png"; " />&nbsp;<?php echo _UDDEADM_USERSET_EDITSETTINGS; </h4>
    ?>
    <form action="<?php echo uddeIMredirectIndex(); ?>" method="post" name="adminForm" id='adminForm'>

	<div align="center">
    <table cellpadding="4" cellspacing="0" border="0" width="98%">
	<tr>
		<td class="sectionname" align="left">
			<h4><?php echo _UDDEADM_USERSET_EDITSETTINGS; ?></h4>
		</td>
		<td class="sectionname" align="right">
			<img align="middle" style="display: inline; border:1px solid lightgray;" src="<?php echo uddeIMgetPath('live_site')."/components/com_uddeim/templates/images/uddeim_logo.png"; ?>" />
		</td>
	</tr>
	</table>
	</div>

	<table cellpadding="4" cellspacing="0" border="0" width="100%" class="adminlist">
	<tr>
		<td nowrap="nowrap" width="100%" align="left"><?php echo $pageNav->writeLimitBox('?option=$option&task=$task'); ?></td>
		<td>
<?php
	$id_items_arr[] = mosHTML::makeOption('', _UDDEADM_USERSET_SELENTRY);
	$id_items_arr[] = mosHTML::makeOption('NOT NULL', _UDDEADM_USERSET_EXISTING);
	$id_items_arr[] = mosHTML::makeOption('NULL', _UDDEADM_USERSET_NONEXISTING);
	echo mosHTML::selectList($id_items_arr, 'f_id', 'size="1" class="text"', 'value', 'text', $f_param[5]);
?>
		</td>
		<td><?php echo $the_username; ?></td>
		<td><?php echo $the_name; ?></td>
		<td>
<?php
	$status_arr[] = mosHTML::makeOption('', _UDDEADM_USERSET_SELNOTIFICATION);
	$status_arr[] = mosHTML::makeOption('0', _UDDEADM_USERSET_NONOTIFICATION);
	$status_arr[] = mosHTML::makeOption('1', _UDDEADM_USERSET_ALWAYS);
	$status_arr[] = mosHTML::makeOption('2', _UDDEADM_USERSET_WHENOFFLINE);
	$status_arr[] = mosHTML::makeOption('10', _UDDEADM_USERSET_ALWAYSEXCEPT);
	$status_arr[] = mosHTML::makeOption('20', _UDDEADM_USERSET_WHENOFFLINEEXCEPT);
	echo mosHTML::selectList($status_arr, 'f_status', 'size="1" class="text"', 'value', 'text', $f_param[2]);
?>
		</td>
		<td>
<?php
	$popup_items_arr[] = mosHTML::makeOption('', _UDDEADM_USERSET_SELPOPUP);
	$popup_items_arr[] = mosHTML::makeOption('0', _UDDEADM_USERSET_NO);
	$popup_items_arr[] = mosHTML::makeOption('1', _UDDEADM_USERSET_YES);
	echo mosHTML::selectList($popup_items_arr, 'f_popup', 'size="1" class="text"', 'value', 'text', $f_param[3]);
?>
		</td>
		<td>
<?php
	$public_items_arr[] = mosHTML::makeOption('', _UDDEADM_USERSET_SELPUBLIC);
	$public_items_arr[] = mosHTML::makeOption('0', _UDDEADM_USERSET_NO);
	$public_items_arr[] = mosHTML::makeOption('1', _UDDEADM_USERSET_YES);
	echo mosHTML::selectList($public_items_arr, 'f_public', 'size="1" class="text"', 'value', 'text', $f_param[4]);
?>
		</td>
		<td>
<?php
	$autor_items_arr[] = mosHTML::makeOption('', _UDDEADM_USERSET_SELAUTOR);
	$autor_items_arr[] = mosHTML::makeOption('0', _UDDEADM_USERSET_NO);
	$autor_items_arr[] = mosHTML::makeOption('1', _UDDEADM_USERSET_YES);
	echo mosHTML::selectList($autor_items_arr, 'f_autor', 'size="1" class="text"', 'value', 'text', $f_param[6]);
?>
		</td>
		<td>
<?php
	$autof_items_arr[] = mosHTML::makeOption('', _UDDEADM_USERSET_SELAUTOF);
	$autof_items_arr[] = mosHTML::makeOption('0', _UDDEADM_USERSET_NO);
	$autof_items_arr[] = mosHTML::makeOption('1', _UDDEADM_USERSET_YES);
	echo mosHTML::selectList($autof_items_arr, 'f_autof', 'size="1" class="text"', 'value', 'text', $f_param[7]);
?>
		</td>
		<td>
<?php
	$moderated_items_arr[] = mosHTML::makeOption('', _UDDEADM_USERSET_SELMODERATE);
	$moderated_items_arr[] = mosHTML::makeOption('0', _UDDEADM_USERSET_NO);
	$moderated_items_arr[] = mosHTML::makeOption('1', _UDDEADM_USERSET_YES);
	echo mosHTML::selectList($moderated_items_arr, 'f_moderated', 'size="1" class="text"', 'value', 'text', $f_param[9]);
?>
		</td>
		<td>
<?php
	$locked_items_arr[] = mosHTML::makeOption('', _UDDEADM_USERSET_SELLOCKED);
	$locked_items_arr[] = mosHTML::makeOption('0', _UDDEADM_USERSET_NO);
	$locked_items_arr[] = mosHTML::makeOption('1', _UDDEADM_USERSET_YES);
	echo mosHTML::selectList($locked_items_arr, 'f_locked', 'size="1" class="text"', 'value', 'text', $f_param[8]);
?>
		</td>
		<td>
			<input type="submit" class="button" value="<?php echo _UDDEADM_ADMIN_FILTER; ?>" />
		</td>
	</tr>
	</table>

	<br />

	<table class="adminlist">
	<tr>
<?php if (uddeIMcheckJversion()>=7) {		// Joomla 3.2 or higher ?>
	<th class="title" width="4%"><input type="checkbox" name="toggle" value="" onclick="Joomla.checkAll(this);" /></th>
<?php } else { ?>
	<th class="title" width="4%"><input type="checkbox" name="toggle" value="" onclick="checkAll(<?php echo count( $rows ); ?>);" /></th>
<?php } ?>
		<th class="title" width="4%"><?php echo "UID"; ?></th>
		<th class="title" width="4%"><?php echo "ID"; ?></th>
		<th class="title" nowrap="nowrap"><?php echo _UDDEADM_USERSET_USERNAME; ?></th>
		<th class="title"><?php echo _UDDEADM_USERSET_NAME; ?></th>
		<th class="title"><?php echo _UDDEADM_USERSET_NOTIFICATION; ?></th>
		<th class="title"><?php echo _UDDEADM_USERSET_POPUP; ?></th>
		<th class="title"><?php echo _UDDEADM_USERSET_PUBLIC; ?></th>
		<th class="title"><?php echo _UDDEADM_USERSET_AUTOR; ?></th>
		<th class="title"><?php echo _UDDEADM_USERSET_AUTOF; ?></th>
		<th class="title"><?php echo _UDDEADM_USERSET_MODERATE; ?></th>
		<th class="title"><?php echo _UDDEADM_USERSET_LOCKED; ?></th>
		<th class="title" nowrap="nowrap"><?php echo _UDDEADM_USERSET_LASTACCESS; ?></th>
		<th class="title" nowrap="nowrap"><?php echo _UDDEADM_USERSET_LASTSENT; ?></th>
	</tr>
<?php
	$k = 0;
	for($i=0, $n=count( $rows ); $i < $n; $i++)
	{
		$row = &$rows[$i];
		echo "<tr class='row$k'>";
		if (uddeIMcheckJversion()>=7) {		// Joomla 3.2 or higher
			echo "<td width='5%'><input type='checkbox' id='cb$i' name='uddeid[]' value='$row->uid' onclick='Joomla.isChecked(this.checked);' /></td>";
		} else {
			echo "<td width='5%'><input type='checkbox' id='cb$i' name='uddeid[]' value='$row->uid' onclick='isChecked(this.checked);' /></td>";
		}
		echo "<td align='left'>$row->uid</td>";
		echo "<td align='left'>". (is_null($row->id) ? "-" : "$row->id") ."</td>";
		echo "<td align='left'>$row->username</td>";
		echo "<td align='left'>$row->name</td>";
		echo "<td align='left'>";
		if (is_null($row->status)) { 
			echo "(";
			switch($config->notifydefault) {
				case 0: echo _UDDEADM_USERSET_NONOTIFICATION; break;
				case 1: echo _UDDEADM_USERSET_ALWAYS; break;
				case 2: echo _UDDEADM_USERSET_WHENOFFLINE; break;
				case 10: echo _UDDEADM_USERSET_ALWAYSEXCEPT; break;
				case 20: echo _UDDEADM_USERSET_WHENOFFLINEEXCEPT; break;
				default: echo _UDDEADM_USERSET_UNKNOWN; break;
			}
			echo ")";
		} else {
			echo "<a href='javascript:document.adminForm.act.value=\"status\"; document.adminForm.id.value=\"".$row->id."\"; document.adminForm.submit();'>";
//			echo "<a href='indexX.php?option=$option&task=$task&act=status&id=$row->id'>";
			switch($row->status) {
				case 0: echo _UDDEADM_USERSET_NONOTIFICATION; break;
				case 1: echo _UDDEADM_USERSET_ALWAYS; break;
				case 2: echo _UDDEADM_USERSET_WHENOFFLINE; break;
				case 10: echo _UDDEADM_USERSET_ALWAYSEXCEPT; break;
				case 20: echo _UDDEADM_USERSET_WHENOFFLINEEXCEPT; break;
				default: echo _UDDEADM_USERSET_UNKNOWN; break;
			}
			echo "</a>";
		}
		echo "</td>";
		echo "<td align='left'>";
		if (is_null($row->popup)) { 
			uddeIMshowTick($config->popupdefault,true);
		} else {
			// echo "<a href='javascript:document.adminForm.act.value=\"popup\"; document.adminForm.id.value=\"".$row->id."\"; document.adminForm.submit();'>".($row->popup ? _UDDEADM_USERSET_YES : _UDDEADM_USERSET_NO)."</a>";
			echo "<a href='javascript:document.adminForm.act.value=\"popup\"; document.adminForm.id.value=\"".$row->id."\"; document.adminForm.submit();'>";
			uddeIMshowTick($row->popup);
			echo "</a>";
//			echo "<a href='indexX.php?option=$option&task=$task&act=popup&id=$row->id'>".($row->popup ? _UDDEADM_USERSET_YES : _UDDEADM_USERSET_NO)."</a>";
		}
		echo "</td>";
		echo "<td align='left'>";
		if (is_null($row->public)) { 
			uddeIMshowTick($config->pubfrontenddefault,true);
		} else {
			echo "<a href='javascript:document.adminForm.act.value=\"public\"; document.adminForm.id.value=\"".$row->id."\"; document.adminForm.submit();'>";
			uddeIMshowTick($row->public);
			echo "</a>";
//			echo "<a href='indexX.php?option=$option&task=$task&act=public&id=$row->id'>".($row->public ? _UDDEADM_USERSET_YES : _UDDEADM_USERSET_NO)."</a>";
		}
		echo "</td>";
		echo "<td align='left'>";
		if (is_null($row->autoresponder)) { 
			uddeIMshowTick(0,true);	// default is 0"
		} else {
//			echo "<a href='javascript:document.adminForm.act.value=\"autor\"; document.adminForm.id.value=\"".$row->id."\"; document.adminForm.submit();'>".($row->autoresponder ? _UDDEADM_USERSET_YES : _UDDEADM_USERSET_NO)."</a>";
			echo "<a href='javascript:document.adminForm.task.value=\"editautoresponder\"; document.adminForm.id.value=\"".$row->id."\"; document.adminForm.submit();'>";
			uddeIMshowTick($row->autoresponder);
			echo "</a>";
		}
		echo "</td>";
		echo "<td align='left'>";
		if (is_null($row->autoforward)) { 
			uddeIMshowTick(0,true);	// default is "0"
		} else {
			echo "<a href='javascript:document.adminForm.task.value=\"editautoforward\"; document.adminForm.id.value=\"".$row->id."\"; document.adminForm.submit();'>";
			uddeIMshowTick($row->autoforward);
			echo "</a>";
		}
		echo "</td>";
		echo "<td align='left'>";
		if (is_null($row->moderated)) { 
			uddeIMshowTick(0,true);	// default is "0"
		} else {
			echo "<a href='javascript:document.adminForm.act.value=\"moderated\"; document.adminForm.id.value=\"".$row->id."\"; document.adminForm.submit();'>";
			uddeIMshowTick($row->moderated);
			echo "</a>";
		}
		echo "</td>";
		echo "<td align='left'>";
		if (is_null($row->locked)) { 
			uddeIMshowTick(0,true);	// default is "0"
		} else {
			echo "<a href='javascript:document.adminForm.act.value=\"locked\"; document.adminForm.id.value=\"".$row->id."\"; document.adminForm.submit();'>";
			uddeIMshowTick($row->locked);
			echo "</a>";
		}
		echo "</td>";
		echo "<td align='left'>";
		if (is_null($row->remindersent)) { 
			echo "---";
		} else {
			echo $row->remindersent ? date("Y-m-d H:i:s", $row->remindersent + (3600*uddeIMgetUserTZ())) : "-";
		}
		echo "</td>";
		echo "<td align='left'>";
		if (is_null($row->lastsent)) { 
			echo "---";
		} else {
			echo $row->lastsent ? date("Y-m-d H:i:s", $row->lastsent + (3600*uddeIMgetUserTZ())) : "-";
		}
		echo "</td>";
		echo "</tr>\n";
		$k = 1 - $k;
	}
?>
<tr>
	<th align="center" colspan="14" ><div id='uddeim-pagenav'><?php echo $pageNav->writePagesLinks(); ?></div></th>
</tr>
<tr>
	<td align="center" colspan="14"><?php echo $pageNav->writePagesCounter(); ?></td>
</tr>
</table>
	<input type="hidden" name="option" value="<?php echo $option;?>" />
	<input type="hidden" name="task" value="<?php echo $task;?>" />
	<input type="hidden" name="act" value="" />
	<input type="hidden" name="id" value="" />
	<input type="hidden" name="boxchecked" value="0" />
	<input type="hidden" name="hidemainmenu" value="0" />
<?php
	if (uddeIMcheckJversion()>=1) {
		echo "<input type=\"hidden\" name=\"limitstart\" value=\"".(int)$limitstart."\" />";
	}
	// $version = uddeIMgetVersion();
	// if ($version->PRODUCT == "Joomla!" || $version->PRODUCT == "Accessible Joomla!")
	// 	if (strncasecmp($version->RELEASE, "1.0", 3)) {
	// 		echo "<input type=\"hidden\" name=\"limitstart\" value=\"".(int)$limitstart."\" />";
	// 	}
?>
</form>
<?php
}
Ejemplo n.º 5
0
function uddeIMdoShowAllUsers($myself, $my_gid, $config, $mode, $enabled=1, $defaultvalue=0) {						
	$database = uddeIMgetDatabase();

	$sep=",";
	if ($config->separator==1)
		$sep=";";

	if (uddeIMcheckJversion()>=2) {		// J1.6
		$hide = "";
		if ($config->hideusers)
			$hide = "AND u.id NOT IN (".uddeIMquoteSmart($config->hideusers).") ";

		$hide2 = "";
		if (uddeIMisReggedOnly($my_gid) && $config->blockgroups)
			$hide2 = "AND g.id NOT IN (".uddeIMquoteSmart($config->blockgroups).") ";

		getAdditonalGroups($add_special, $add_admin, $config);
		switch ($config->hideallusers) {
			case 3:		// special users
				$sql="SELECT DISTINCT u.".($config->realnames ? "name" : "username")." AS displayname, u.id 
						FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
							INNER JOIN #__usergroups AS g ON um.group_id=g.id 
							WHERE u.block=0 AND g.id NOT IN (3,4,5,6,7,8".$add_admin.$add_special.") AND u.id<>".$myself." ".$hide.$hide2."ORDER BY u.".($config->realnames ? "name" : "username");
				break;
			case 2:		// admins
				$sql="SELECT DISTINCT u.".($config->realnames ? "name" : "username")." AS displayname, u.id 
						FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
							INNER JOIN #__usergroups AS g ON um.group_id=g.id 
							WHERE u.block=0 AND g.id NOT IN (7,8".$add_admin.") AND u.id<>".$myself." ".$hide.$hide2."ORDER BY u.".($config->realnames ? "name" : "username");
				break;
			case 1:		// superadmins
				$sql="SELECT DISTINCT u.".($config->realnames ? "name" : "username")." AS displayname, u.id 
						FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
							INNER JOIN #__usergroups AS g ON um.group_id=g.id 
							WHERE u.block=0 AND g.id NOT IN (8) AND u.id<>".$myself." ".$hide.$hide2."ORDER BY u.".($config->realnames ? "name" : "username");
				break;
			default:	// none
				$sql="SELECT DISTINCT u.".($config->realnames ? "name" : "username")." AS displayname, u.id 
						FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
							INNER JOIN #__usergroups AS g ON um.group_id=g.id 
							WHERE u.block=0 AND u.id<>".$myself." ".$hide.$hide2."ORDER BY u.".($config->realnames ? "name" : "username");
				break;
		}
		if (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config))		// do not hide users when it is an admin
			$sql="SELECT ".($config->realnames ? "name" : "username")." AS displayname, id FROM #__users WHERE block=0 AND id<>".$myself." ORDER BY ".($config->realnames ? "name" : "username");
	} else {
		$hide = "";
		if ($config->hideusers)
			$hide = "AND id NOT IN (".uddeIMquoteSmart($config->hideusers).") ";

		$hide2 = "";
		if (uddeIMisReggedOnly($my_gid) && $config->blockgroups)
			$hide2 = "AND gid NOT IN (".uddeIMquoteSmart($config->blockgroups).") ";

		switch ($config->hideallusers) {
			case 3:		// special users
				$sql="SELECT ".($config->realnames ? "name" : "username")." AS displayname, id FROM #__users WHERE block=0 AND gid NOT IN (19,20,21,23,24,25".$add_admin.") AND id<>".$myself." ".$hide.$hide2."ORDER BY ".($config->realnames ? "name" : "username");
				break;
			case 2:		// admins
				$sql="SELECT ".($config->realnames ? "name" : "username")." AS displayname, id FROM #__users WHERE block=0 AND gid NOT IN (24,25".$add_admin.") AND id<>".$myself." ".$hide.$hide2."ORDER BY ".($config->realnames ? "name" : "username");
				break;
			case 1:		// superadmins
				$sql="SELECT ".($config->realnames ? "name" : "username")." AS displayname, id FROM #__users WHERE block=0 AND gid NOT IN (25) AND id<>".$myself." ".$hide.$hide2."ORDER BY ".($config->realnames ? "name" : "username");
				break;
			default:	// none
				$sql="SELECT ".($config->realnames ? "name" : "username")." AS displayname, id FROM #__users WHERE block=0 AND id<>".$myself." ".$hide.$hide2."ORDER BY ".($config->realnames ? "name" : "username");
				break;
		}
		if (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config))		// do not hide users when it is an admin
			$sql="SELECT ".($config->realnames ? "name" : "username")." AS displayname, id FROM #__users WHERE block=0 AND id<>".$myself." ORDER BY ".($config->realnames ? "name" : "username");
	}

	$database->setQuery($sql);
	$rows=$database->loadObjectList();
	if (!$rows)
		$rows = array();
	
	if ($mode==1) {					// CREATE NEW MESSAGE
		if ($config->allowmultipleuser)
			$allnames="<select size=\"1\" class=\"inputbox\" name=\"userlist\" onchange=\"document.sendeform.to_name.value=(document.sendeform.to_name.value.length>0 && document.sendeform.userlist.value.length>0) ? document.sendeform.to_name.value+'".$sep."'+document.sendeform.userlist.value : document.sendeform.userlist.value; return false;\">";
		else
			$allnames="<select size=\"1\" class=\"inputbox\" name=\"userlist\" onchange=\"document.sendeform.to_name.value=document.sendeform.userlist.value; return false;\">";
		$allnames.="<option value=\"\">&nbsp;</option>";
		foreach ($rows as $row) {
			$allnames.="<option value=\"".$row->displayname."\">".$row->displayname."</option>";
		}
		$allnames.="</select>";
		echo _UDDEIM_USERLIST."<br />";

	} elseif ($mode==2) {				// AUTOFORWARDING BOX
		$allnames="<select size=\"1\" class=\"inputbox\" name=\"autoforwardid\"".($enabled==1 ? "" : " disabled=\"disabled\"").">";
		foreach ($rows as $row) {
			$allnames.="<option value=\"".$row->id."\"".($defaultvalue==$row->id ? " selected=\"selected\"" : "").">".$row->displayname."</option>";
		}
		$allnames.="</select>";

	} else {								// NOT USED
		$allnames="<select size=\"1\" class=\"inputbox\" name=\"userlist\">";
		$allnames.="<option value=\"0\">WRONG FUNCTION CALL</option>";
		foreach ($rows as $row) {
			$allnames.="<option value=\"".$row->displayname."\">".$row->displayname."</option>";
		}
		$allnames.="</select>";
	}
	echo $allnames;
}
Ejemplo n.º 6
0
function uddeIMnotifySpam($myself, $item_id, $fromid, $toid, $config) {
	$db = uddeIMgetDatabase();
	$mosConfig_sitename = uddeIMgetSitename();
	$pathtosite  = uddeIMgetPath('live_site');

	if(!$config->emailtrafficenabled) {
		return;
	}
	if(!$config->allowemailnotify) {
		return;
	}
	
	getAdditonalGroups($add_special, $add_admin, $config);
	if (uddeIMcheckJversion()>=2) {		// J1.6
		$sql="SELECT DISTINCT u.id FROM (#__users AS u INNER JOIN #__user_usergroup_map AS um ON u.id=um.user_id) 
				INNER JOIN #__usergroups AS g ON um.group_id=g.id 
				WHERE u.block=0 AND g.id IN (7,8".$add_admin.")";
	} else {
		$sql="SELECT id FROM #__users WHERE block=0 AND gid IN (24,25".$add_admin.")";
	}
	$db->setQuery($sql);
	$receivers = $db->loadObjectList();
	if (!count($receivers)) {
		return;
	}

	foreach($receivers as $receiver) {
		// the admin
		$var_toid = $receiver->id;
		$var_toname = uddeIMgetNameFromID($var_toid, $config);
		$var_tomail = uddeIMgetEMailFromID($var_toid, $config);
		if(!$var_tomail)
			continue;
		if (!$var_toname)
			$var_toname = "Anonymous";
	
		$sname = uddeIMgetNameFromID($fromid, $config);
		$dname = uddeIMgetNameFromID($toid, $config);

		$var_body = _UDDEIM_BODY_SPAMREPORT;
		$var_body = str_replace("%livesite%", $pathtosite, $var_body);
		$var_body = str_replace("%you%", $var_toname, $var_body);
		$var_body = str_replace("%fromuser%", $sname, $var_body);
		$var_body = str_replace("%touser%", $dname, $var_body);
		$var_body = str_replace("%site%", $mosConfig_sitename, $var_body);

		$subject = _UDDEIM_SUBJECT_SPAMREPORT;
		$subject = str_replace("%livesite%", $pathtosite, $subject);
		$subject = str_replace("%you%", $var_toname, $subject);
		$var_body = str_replace("%fromuser%", $sname, $var_body);
		$var_body = str_replace("%touser%", $dname, $var_body);
		$subject = str_replace("%site%", $mosConfig_sitename, $subject);

		$replyto = $var_tomail;
		$replytoname = "";

		if(uddeIMsendmail($config->emn_sendername, $config->emn_sendermail, $var_toname, $var_tomail, $subject, $var_body, $replyto, $replytoname, "", $config)) {
			// 
		}
	}
}
Ejemplo n.º 7
0
function uddeIMgetItemidComponent($component, $config) {
	$database = uddeIMgetDatabase();
	$gid = uddeIMgetGroupID2($config);

	$sql="SELECT COUNT(id) FROM #__menu WHERE link LIKE '%".$component."%' AND published=1 AND access".($gid==0 ? "=" : "<=").$gid;
	if (uddeIMcheckJversion()>=2) {          // J1.6
		$lang = JFactory::getLanguage();
		$sql.=" AND language IN (" . $database->Quote($lang->get('tag')) . ",'*')";
	}
	$sql.=" LIMIT 1";
	$database->setQuery($sql);
	if ($component=="com_uddeim" && 
		(int)$database->loadResult() > 1) {
		$found = JRequest::getint('Itemid');
	} else {
		$sql="SELECT id FROM #__menu WHERE link LIKE '%".$component."%' AND published=1 AND access".($gid==0 ? "=" : "<=").$gid;
		if (uddeIMcheckJversion()>=2) {         // J1.6
			$lang = JFactory::getLanguage();
			$sql.=" AND language IN (" . $database->Quote($lang->get('tag')) . ",'*')";
		}
		$sql.=" LIMIT 1";
		$database->setQuery($sql);
		$found = (int)$database->loadResult();
	}

	// first try to find a published link
//	$sql="SELECT id FROM #__menu WHERE link LIKE '%".$component."%' AND published=1 AND access".
//			($gid==0 ? "=" : "<=").$gid;
//	if (uddeIMcheckJversion()>=2) {		// J1.6
//		$lang = JFactory::getLanguage();
//		$sql.=" AND language IN (" . $database->Quote($lang->get('tag')) . ",'*')";
//	}
//	$sql.=" LIMIT 1";
//	$database->setQuery($sql);
//	$found = (int)$database->loadResult();

	if (!$found) {
		// when no published link has been found, try to find an unpublished one
		$sql="SELECT id FROM #__menu WHERE link LIKE '%".$component."%' AND published=0 AND access".($gid==0 ? "=" : "<=").$gid;
		if (uddeIMcheckJversion()>=2) {		// J1.6
			$lang = JFactory::getLanguage();
			$sql.=" AND language IN (" . $database->Quote($lang->get('tag')) . ",'*')";
		}
		$sql.=" LIMIT 1";
		$database->setQuery($sql);
		$found = (int)$database->loadResult();
	}
	return $found;
}
Ejemplo n.º 8
0
//                Redistributing this file is only allowed when keeping the header unchanged.
// ********************************************************************************************

if (!(defined('_JEXEC') || defined('_VALID_MOS'))) { die( 'Direct Access to this location is not allowed.' ); }

if ( defined( 'JPATH_ADMINISTRATOR' ) ) {
	require_once(JPATH_SITE.'/components/com_uddeim/uddeimlib.php');
	require_once(JPATH_SITE.'/administrator/components/com_uddeim/admin.uddeimlib.php');
} else {
	global $mainframe;
	require_once($mainframe->getCfg('absolute_path').'/components/com_uddeim/uddeimlib.php');
	require_once($mainframe->getCfg('absolute_path').'/administrator/components/com_uddeim/admin.uddeimlib.php');
}
require_once(uddeIMgetPath('absolute_path').'/administrator/components/com_uddeim/admin.shared.php');

if (uddeIMcheckJversion()>=4) {	// Joomla >=2.5
	// Options button. -> Action: "Configure"
	if (JFactory::getUser()->authorise('core.admin', 'com_uddeim')) {
		JToolBarHelper::preferences('com_uddeim');
	}
}

// $act = uddeIMmosGetParam( $_REQUEST, 'act', '' );
$index = uddeIMredirectIndex();

switch ($task) {
	case "mcp":
		mosMenuBar::startTable();
		mosMenuBar::addNew('messagedeliver', _UDDEIM_TOOLBAR_DELIVERMESSAGE);				// Deliver message
		mosMenuBar::deleteList('', 'messageremove', _UDDEIM_TOOLBAR_REMOVEMESSAGE);			// Delete Message
		mosMenuBar::back(_UDDEIM_TOOLBAR_BACK, $index."?option=$option&task=settings");
Ejemplo n.º 9
0
function uddeIMmaintenanceCheckTrash($option, $task, $act, $config) {
	$database = uddeIMgetDatabase();
	$jobtodo=0;
	if ($act=="check") {
		echo _UDDEADM_MAINTENANCE_MC1;
		echo "<br />";
		echo _UDDEADM_MAINTENANCE_MC2;
		echo _UDDEADM_MAINTENANCE_MC3;
		echo _UDDEADM_MAINTENANCE_MC4;
		echo _UDDEADM_MAINTENANCE_MC5;
		echo _UDDEADM_MAINTENANCE_MC6;
		echo "<br />";
	}
	if ($act=="trash") {
		echo _UDDEADM_MAINTENANCE_MT1;
		echo "<br />";
	}

//SELECT id AS uid FROM jos_users WHERE id>0
//UNION
//SELECT fromid AS uid  FROM jos_uddeim WHERE fromid>0
//UNION
//SELECT toid AS uid FROM jos_uddeim WHERE toid>0
//UNION
//SELECT blocker AS uid FROM jos_uddeim_blocks WHERE blocker>0
//UNION
//SELECT blocked AS uid FROM jos_uddeim_blocks WHERE blocked>0 
//	$database->setQuery($query);
//	$xuserlist = $database->loadObjectList();;
//	foreach ($xuserlist as $ii) {
//		$i = (int)$ii->uid;
	
	$query = "SELECT min(id) FROM #__users WHERE id>0";
	$database->setQuery($query);
	$mmin = (int)$database->loadResult();
	$query = "SELECT min(fromid) FROM #__uddeim WHERE fromid>0";	// don't select public users
	$database->setQuery($query);
	$mmin1 = (int)$database->loadResult();
	$query = "SELECT min(toid) FROM #__uddeim WHERE toid>0";		// don't select public users
	$database->setQuery($query);
	$mmin2 = (int)$database->loadResult();

	$query = "SELECT max(id) FROM #__users WHERE id>0";
	$database->setQuery($query);
	$mmax = (int)$database->loadResult();
	$query = "SELECT max(fromid) FROM #__uddeim WHERE fromid>0";
	$database->setQuery($query);
	$mmax1 = (int)$database->loadResult();
	$query = "SELECT max(toid) FROM #__uddeim WHERE toid>0";
	$database->setQuery($query);
	$mmax2 = (int)$database->loadResult();

	$mmin = min($mmin,$mmin1,$mmin2);
	$mmax = max($mmax,$mmax1,$mmax2);

	for ($i=$mmin;$i<=$mmax;$i++) {
//    $query = "SELECT * FROM #__users WHERE id=".$i;
//    $result = mysql_query($query, $link) or die(mysql_error());
//    $id = mysql_fetch_assoc($result);
//    $value = $id["username"];
//    mysql_free_result($result);
//    echo("$i - $value vorhanden<br />");

		$query = "SELECT count(id) FROM #__users WHERE id=".(int)$i;
		$database->setQuery($query);
		$value = (int)$database->loadResult();

		if ($value==0) {
			// the user does not exist, so count if there are still messages from or to him in the database
			$query = 'SELECT COUNT(id) FROM #__uddeim WHERE fromid='.(int)$i;
			$database->setQuery($query);
			$mvon = (int)$database->loadResult();

			$query = 'SELECT COUNT(id) FROM #__uddeim WHERE toid='.(int)$i;
			$database->setQuery($query);
			$man = (int)$database->loadResult();

			$query = 'SELECT COUNT(id) FROM #__uddeim_emn WHERE userid='.(int)$i;
			$database->setQuery($query);
			$memn = (int)$database->loadResult();

			$query = 'SELECT COUNT(id) FROM #__uddeim_blocks WHERE blocker='.(int)$i;
			$database->setQuery($query);
			$mbl1 = (int)$database->loadResult();

			$query = 'SELECT COUNT(id) FROM #__uddeim_blocks WHERE blocked='.(int)$i;
			$database->setQuery($query);
			$mbl2 = (int)$database->loadResult();

			if ($mvon>0 || $man>0 || $mbl1>0 || $memn>0 || $mbl2>0)
				echo "<b>#$i "._UDDEADM_MAINTENANCE_NOTFOUND." $mvon/$man/$memn/$mbl1/$mbl2</b><br />";

			if ($act!="trash" && ($mvon>0 || $man>0 || $memn>0 || $mbl1>0 || $mbl2>0)) {
				$jobtodo=1;
			}
			if ($act=="trash" && ($mvon>0 || $man>0 || $memn>0 || $mbl1>0 || $mbl2>0)) {
				echo _UDDEADM_MAINTENANCE_MT2." #$i<br />";
				$query = "DELETE FROM #__uddeim_emn WHERE userid=".(int)$i;
				$database->setQuery($query);
				if (!$database->query()) { die("SQL error" . $database->stderr(true)); }	

				echo _UDDEADM_MAINTENANCE_MT3." #$i<br />";
				$query = "DELETE FROM #__uddeim_blocks WHERE blocker=".(int)$i." OR blocked=".(int)$i;
				$database->setQuery($query);
				if (!$database->query()) { die("SQL error" . $database->stderr(true)); }	

				$trashoffset=((float)$config->TrashLifespan)*86400;
				$deletetime=uddetime($config->timezone)-$trashoffset-1;	// "-1" to ensure that pruning will delete the message

// when this is removed, deleted users are shown as "User deleted" in the outbox
				echo _UDDEADM_MAINTENANCE_MT4." #$i<br />";		// Recdipient does not longer exist, so delete from all outboxes and from non-existing users inbox
				// This following statement is ok, when also messages from purged users are listed in the Outbox, unfortunately they are not, so these messages are also purged.
				//              $query = "UPDATE #__uddeim SET totrash=1, totrashdate=".$deletetime." WHERE toid=".(int)$i;
				$query = "UPDATE #__uddeim SET totrashoutbox=1, totrashdateoutbox=".$deletetime.", totrash=1, totrashdate=".$deletetime." WHERE toid=".(int)$i;
				$database->setQuery($query);
				if (!$database->query()) { die("SQL error" . $database->stderr(true)); }	

// when this is removed, deleted users are shown as "User deleted" in the inbox
				echo _UDDEADM_MAINTENANCE_MT5." #$i<br />";
				// This following statement is ok, when also messages from purged users are listed in the Inbox, unfortunately they are not, so these messages are also purged.
				//              $query = "UPDATE #__uddeim SET totrashoutbox=1, totrashdateoutbox=".$deletetime." WHERE fromid=".(int)$i;
				$query = "UPDATE #__uddeim SET totrashoutbox=1, totrashdateoutbox=".$deletetime.", totrash=1, totrashdate=".$deletetime." WHERE fromid=".(int)$i;
				$database->setQuery($query);
				if (!$database->query()) { die("SQL error" . $database->stderr(true)); }	
			}
		} else {		// user exists, so display some stats only
			$query = 'SELECT COUNT(id) FROM #__uddeim WHERE totrashoutbox=0 AND fromid='.(int)$i;
			$database->setQuery($query);
			$mvonoutbox = (int)$database->loadResult();

			$query = 'SELECT COUNT(id) FROM #__uddeim WHERE totrashoutbox=1 AND fromid='.(int)$i;
			$database->setQuery($query);
			$mvonoutboxtrashed = (int)$database->loadResult();

			$query = 'SELECT COUNT(id) FROM #__uddeim WHERE totrash=0 AND toid='.(int)$i;
			$database->setQuery($query);
			$maninbox = (int)$database->loadResult();

			$query = 'SELECT COUNT(id) FROM #__uddeim WHERE totrash=1 AND toid='.(int)$i;
			$database->setQuery($query);
			$maninboxtrashed = (int)$database->loadResult();

			$query = "SELECT username FROM #__users WHERE id=".(int)$i;
			$database->setQuery($query);
			$username = $database->loadResult();

			if ($act=="check") {
				echo "#$i ($username): [$maninbox|$maninboxtrashed|$mvonoutbox|$mvonoutboxtrashed]<br />";
			}
		}
	}
	
	// step 2: search other problems
	$query = 'SELECT COUNT(id) FROM #__uddeim WHERE totrash=0 AND totrashdate IS NOT NULL';
	$database->setQuery($query);
	$datein = (int)$database->loadResult();

	$query = 'SELECT COUNT(id) FROM #__uddeim WHERE totrashoutbox=0 AND totrashdateoutbox IS NOT NULL';
	$database->setQuery($query);
	$dateout = (int)$database->loadResult();

	if ($act=="check") {
		echo "<br />";
		echo _UDDEADM_MAINTENANCE_D1."$datein/$dateout<br />";
		if ($datein>0 || $dateout>0)
			$jobtodo=1;
	}
	if ($act=="trash" && ($datein>0 || $dateout>0)) {
		$query = 'UPDATE #__uddeim SET totrashdate=NULL WHERE totrash=0 AND totrashdate IS NOT NULL';
		$database->setQuery($query);
		$ret=$database->query();
		$query = 'UPDATE #__uddeim SET totrashdateoutbox=NULL WHERE totrashoutbox=0 AND totrashdateoutbox IS NOT NULL';
		$database->setQuery($query);
		$ret=$database->query();
		echo "<br />";
		echo _UDDEADM_MAINTENANCE_D2."<br />";
	}

	// step 3: search orphaned files
	$query = "SELECT count(id) FROM #__uddeim_attachments WHERE mid=-1";
	$database->setQuery($query);
	$count = (int)$database->loadResult();
	if ($act=="check") {
		echo "<br />";
		echo _UDDEADM_MAINTENANCE_F1."$count<br />";

		if ($count>0)
			$jobtodo=1;
	}
	if ($act=="trash" && ($count>0)) {
		echo "<br />";
		echo _UDDEADM_MAINTENANCE_F2;
		uddeIMpreSaveAttachmentsRemove($config);
	}

	// now pune messages
	if ($act=="trash") {
		// now prune all messages and files
		uddeIMdoPrune($config);
		uddeIMdoFilePrune($config);
		
	}

	// not really a database fix but helpful for existing Joomla 1.0 installations
	if ($act=="trash" && uddeIMcheckJversion()<=1) {
		//$database = uddeIMgetDatabase();
		//$query = "SELECT COUNT(id) FROM #__components WHERE admin_menu_img <> '../components/com_uddeim/templates/images/uddeim-favicon.png' WHERE admin_menu_link = 'option=com_uddeim'";
		//$database->setQuery($query);
		//$ret = (int)$database->loadResult();
		//if ($ret) {
			// ok this is not really an XML fix but its ok
			$database = uddeIMgetDatabase();
			$database->setQuery( "UPDATE #__components SET admin_menu_img = '../components/com_uddeim/templates/images/uddeim-favicon.png' WHERE admin_menu_link = 'option=com_uddeim'" );
			$database->query();
		//}
	}
	if ($act=="trash" && uddeIMcheckJversion()>=2) {
		$database = uddeIMgetDatabase();
		$database->setQuery( "UPDATE #__menu SET img = '../components/com_uddeim/templates/images/uddeim-favicon.png' WHERE link = 'index.php?option=com_uddeim'" );
		$database->query();
	}

	if ($act=="check") {
		echo "<br />";
		if ($jobtodo==1) {
			echo _UDDEADM_MAINTENANCE_JOBTODO;
		} else {
			echo _UDDEADM_MAINTENANCE_NOTHINGTODO;
		}
	}
	echo "<p><b><a href=".uddeIMredirectIndex()."?option=com_uddeim>"._UDDEADM_CONTINUE."</a></b></p>";
}