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; }
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; }
// 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";
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"; " /> <?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 }
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=\"\"> </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; }
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)) { // } } }
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; }
// 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");
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>"; }