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; }
function uddeIMrestoreMessage($myself, $messageid, $limit, $limitstart, $item_id, $config) { $my_gid = $config->usergid; if( ($config->trashrestriction==0) || ($config->trashrestriction==1 && (uddeIMisSpecial($my_gid) || uddeIMisSpecial2($my_gid, $config))) || ($config->trashrestriction==2 && (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config))) ) { // ok trashcan enabled } else { $mosmsg=_UDDEADM_NOTRASHACCESS_NOT; uddeJSEFredirect("HTTP_REFERER", $mosmsg, "trashcan"); } // to do: show error message when trying to restore message that has been purged or is no longer available $exists = uddeIMexistsMessage($messageid); if (!$exists) { $mosmsg = _UDDEIM_CANTRESTORE; uddeJSEFredirect("index.php?option=com_uddeim&task=trashcan&Itemid=".$item_id."&limit=".$limit."&limitstart=".$limitstart, $mosmsg); return; } $total = uddeIMgetArchiveCount($myself); if ($config->inboxlimit && $config->allowarchive) { // inbox + archive $total = uddeIMgetInboxArchiveCount($myself); } if ($total >= $config->maxarchive && !uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) { // echo "<p>"._UDDEIM_ARC_SAVED_1.$total._UDDEIM_ARC_SAVED_2."</p>\n"; // echo "<p>"._UDDEIM_ARC_SAVED_3."</p>\n"; $mosmsg = _UDDEIM_LIMITREACHED; uddeJSEFredirect("index.php?option=com_uddeim&task=trashcan&Itemid=".$item_id."&limit=".$limit."&limitstart=".$limitstart, $mosmsg); } // WAS: check if the deleted message was in the archive, but the archive in not longer enabled, so deny access to the message // NOW: check if the deleted message was in the archive, but the archive in not longer enabled, so unarchive message $isarchived = uddeIMgetArchivedFromTrashedMessage($myself, $messageid); if(!$config->allowarchive && $isarchived) { uddeIMupdateArchived($messageid, 0); } uddeIMrestoreMessageToInboxOutboxArchive($myself, $messageid); uddeJSEFredirect("index.php?option=com_uddeim&task=trashcan&Itemid=".$item_id."&limit=".$limit."&limitstart=".$limitstart); }
function uddeIMdeleteListsMultiple($myself, $item_id, $arcmes, $limit, $limitstart, $config) { $my_gid = $config->usergid; $lg = 0; if (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config)) $lg = true; $n = count($arcmes); if (!$n) { echo _UDDEIM_NOLISTSELECTED."<br /><a href='javascript:history.go(-1)'>"._UDDEIM_BACK."</a>"; return; } for ($i = 0; $i <= ($n-1); $i++) { if ($arcmes[$i]>0) { uddeIMpurgeUserlist($myself, $arcmes[$i], $lg); } } uddeJSEFredirect("index.php?option=com_uddeim&task=showlists&Itemid=".$item_id."&limit=".$limit."&limitstart=".$limitstart); }
function uddeIMarchiveMessage ($myself, $item_id, $messageid, $cryptpass, $config) { $my_gid = $config->usergid; if (!$config->allowarchive) { $mosmsg=_UDDEIM_ARCHIVENOTENABLED; uddeJSEFredirect("HTTP_REFERER", $mosmsg, "archive"); } $exists = uddeIMexistsMessageToUser($myself, $messageid); if(!$exists) { $mosmsg=_UDDEIM_ARCHIVE_ERROR." (ERR: no message found)"; // debug uddeJSEFredirect("HTTP_REFERER", $mosmsg, "archive"); } // is the message already saved in archive? $isarchived = uddeIMgetArchived($messageid); if($isarchived) { $mosmsg=_UDDEIM_MESSAGE_ARCHIVED; uddeJSEFredirect("index.php?option=com_uddeim&task=show&Itemid=".$item_id."&messageid=".$messageid, $mosmsg); } $total = uddeIMgetArchiveCount($myself); if ($total>=$config->maxarchive && !uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) { // echo "<p>"._UDDEIM_ARC_SAVED_1.$total._UDDEIM_ARC_SAVED_2."</p>\n"; // echo "<p>"._UDDEIM_ARC_SAVED_3."</p>\n"; $mosmsg = _UDDEIM_ARCHIVEFULL; // uddeJSEFredirect("HTTP_REFERER", $mosmsg, "archive"); uddeJSEFredirect("index.php?option=com_uddeim&task=show&Itemid=".$item_id."&messageid=".$messageid, $mosmsg); } uddeIMupdateArchivedToid($myself, $messageid, 1); // redirect to archived message $mosmsg=_UDDEIM_MESSAGE_ARCHIVED; uddeJSEFredirect("index.php?option=com_uddeim&task=show&Itemid=".$item_id."&messageid=".$messageid, $mosmsg); }
function uddeIMdrawWriteform($myself, $my_gid, $item_id, $backto, $recipname, $pmessage, $messageid, $dwf_isreply, $dwf_errorcode, $dwf_sysgm, $config) { $pathtouser = uddeIMgetPath('user'); $pathtosite = uddeIMgetPath('live_site'); // possible values for dwf_errorcode: // 0 = no error // 1 = no error, show complete userlist // 2 = don't send to yourself // 3 = username not found // 4 = no message // 5 = no username // 6 = too many recipients // 7 = wrong captcha code // 8 = does not allow public messages // 9 = one user has blocked you // 10 = sending to this group not allowed // 11 = contact list not found // 12 = error in from name (n/a, public frontend only) // 13 = error in from email (n/a, public frontend only) // 14 = time delay for spam protection // 15 = csrf protection // 16 = administrative blocking // 17 = user is banned // 18 = file upload failed // 19 = file size exceeded // 20 - file type not allowed // 21 - bad words // This functions expects values stripslashed // allowed to send messages? if ($config->waitdays && uddeIMisReggedOnly($my_gid)) { $rightnow=uddetime($config->timezone); $offset=((float)$config->waitdays) * 86400; $timeframe=$rightnow-$offset; $registerDate=uddeIMgetRegisterDate($myself, $config); // $registerDate=mktime(0, 0, 0, 3, 28, 2010); if ($timeframe<$registerDate) { $temp = ($registerDate-$timeframe)/86400; $showinboxlimit_borderbottom = "<span class='uddeim-warning'>"; if ($temp>=1) $showinboxlimit_borderbottom.= _UDDEIM_WAITDAYS1.sprintf("%0.1f", $temp)._UDDEIM_WAITDAYS2; else $showinboxlimit_borderbottom.= _UDDEIM_WAITDAYS1.sprintf("%0.1f", $temp*24)._UDDEIM_WAITDAYS2H; $showinboxlimit_borderbottom.= "</span>"; echo "<div id='uddeim-bottomlines'>".$showinboxlimit_borderbottom."</div>"; return; } } echo "<div id='uddeim-writeform'>\n"; if ($dwf_sysgm) { echo "<br />"; echo "<form enctype='multipart/form-data' name='sendeform' method='post' action='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=savesysgm&Itemid=".$item_id)."'>\n"; uddeIMwriteCSRF($config); echo "<p><input type='checkbox' checked='checked' name='sysgm_sys' value='1' />"._UDDEIM_SEND_ASSYSM."</p>\n"; if ($config->showgroups) { echo "<p><select name='sysgm_universe' size='1'>"; echo "<option value='sysgm_toall'>"._UDDEIM_SEND_TOALL."</option>"; echo "<option value='sysgm_toallspecial'>"._UDDEIM_SEND_TOALLSPECIAL."</option>"; echo "<option value='sysgm_toalladmins'>"._UDDEIM_SEND_TOALLADMINS."</option>"; echo "<option value='sysgm_toalllogged'>"._UDDEIM_SEND_TOALLLOGGED."</option>"; $groups = uddeIMselectAROgroups(); foreach ($groups as $group) { $groupid = $group->id; $groupname = $group->name; echo "<option value='".$groupid."'>".$groupname."</option>"; } echo "</select></p>"; } else { echo "<p><input type='radio' name='sysgm_universe' value='sysgm_toall' />"._UDDEIM_SEND_TOALL."<br />\n"; echo "<input type='radio' name='sysgm_universe' checked='checked' value='sysgm_toallspecial' />"._UDDEIM_SEND_TOALLSPECIAL."<br />\n"; echo "<input type='radio' name='sysgm_universe' checked='checked' value='sysgm_toalladmins' />"._UDDEIM_SEND_TOALLADMINS."<br />\n"; echo "<input type='radio' name='sysgm_universe' value='sysgm_toalllogged' />"._UDDEIM_SEND_TOALLLOGGED."</p>\n"; } echo "<p>"._UDDEIM_VALIDFOR_1; echo "<input name='sysgm_validfor' type='text' size='4' />"._UDDEIM_VALIDFOR_2."</p>\n"; echo "<p>"._UDDEIM_SYSGM_SHORTHELP."</p>\n"; } else { echo "<br />"; echo "<form enctype='multipart/form-data' name='sendeform' method='post' action='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=save&Itemid=".$item_id)."'>"; echo "<input type='hidden' name='sendeform_showallusers' value='' />\n"; uddeIMwriteCSRF($config); if (uddeIMgetEMNmoderated($myself) ) { //&& uddeIMisReggedOnly($my_gid)) { echo "<p>"._UDDEIM_MCP_MODERATED."</p>"; } } echo "\n"; if($dwf_errorcode==0 && $backto) { echo "<input type='hidden' name='backto' value='".htmlspecialchars($backto)."' />"; } if(!$dwf_sysgm) { if($dwf_isreply!=1) { // if this is NOT a reply echo "<table width='100%' cellspacing='0' cellpadding='0' width='100%'>"; if(0 && $dwf_errorcode==0 && $recipname) { // BUGBUG "0 &&". don't need this case echo "<tr><td valign='top'>"; echo "<b>".$recipname."</b>"; echo "<input type='hidden' name='to_name' id='input_to_name' value='".htmlentities($recipname, ENT_QUOTES, $config->charset)."' /> "; echo "</td></tr>"; } else { // START FIRST LINE IN TABLE (contains two fields: TO USER and select from ALL USER list) echo "<tr><td valign='top'>"; // if ($dwf_errorcode==0 && $recipname) { // does not really make sense // echo "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=new&Itemid=".$item_id)."'>"._UDDEIM_TODP."</a>"; // } else { echo "<span title='".($config->allowmultipleuser ? _UDDEIM_TODP_TITLE_CC : _UDDEIM_TODP_TITLE)."'>"; echo _UDDEIM_TODP; // } echo "<br />"; if($dwf_errorcode==2 || $dwf_errorcode==3 || $dwf_errorcode==5 || $dwf_errorcode==6 || $dwf_errorcode==8 || $dwf_errorcode==9 || $dwf_errorcode==10 || $dwf_errorcode==11 || $dwf_errorcode==16 || $dwf_errorcode==17 || $dwf_errorcode==18 || $dwf_errorcode==19 || $dwf_errorcode==20) { $errorstyle='style="background-color: #ff0000;" '; } else { $errorstyle=''; } echo "<input type='hidden' name='to_id' value='' />"; echo "<input type='hidden' name='messageid' value='".$messageid."' />"; if (!($config->flags & 0x04)) { echo "<input type='text' ".$errorstyle."name='to_name' id='input_to_name' value='".htmlentities($recipname, ENT_QUOTES, $config->charset)."' /> "; } else { echo "<span ".$errorstyle.">".htmlentities($recipname, ENT_QUOTES, $config->charset)."</span>"; echo "<input type='hidden' name='to_name' id='input_to_name' value='".htmlentities($recipname, ENT_QUOTES, $config->charset)."' /> "; } echo "</span>"; if ($config->useautocomplete) { uddeIMdoAutocomplete($config); } // SECOND FIELD IN FIRST LINE IN TABLE echo "</td><td valign='top' align='right'>\n"; $allusersallowed = 0; if( ($config->restrictallusers==0) || ($config->restrictallusers==1 && (uddeIMisSpecial($my_gid) || uddeIMisSpecial2($my_gid, $config))) || ($config->restrictallusers==2 && (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config))) ) $allusersallowed=1; if (!($config->flags & 0x01) && $allusersallowed) { if ($config->modeshowallusers==1 || $config->modeshowallusers==2) { if ($dwf_errorcode==0 && $config->modeshowallusers==1) { // link to drop down box with names of connected users, value is 2 since it is shown the first time (so selecting the link does not show an error message because of an empty recipient field) echo "<br />"; echo "<a href=\"#\" onclick=\"document.sendeform.sendeform_showallusers.value='2'; document.sendeform.submit(); return false;\">"._UDDEIM_SHOWUSERS."</a>"; } else { // now show all users uddeIMdoShowAllUsers($myself, $my_gid, $config, 1); } } } echo "</td></tr>"; // START SECOND LINE IN TABLE (colspan=2) if ($dwf_errorcode==3) { echo "<tr><td valign=left colspan=2>"._UDDEIM_NOSUCHUSER."</td></tr>"; } elseif ($dwf_errorcode==2) { echo "<tr><td valign=left colspan=2>"._UDDEIM_NOTTOYOURSELF."</td></tr>"; } elseif ($dwf_errorcode==5) { echo "<tr><td valign=left colspan=2>"._UDDEIM_ENTERNAME."</td></tr>"; } elseif ($dwf_errorcode==6) { echo "<tr><td valign=left colspan=2>"._UDDEIM_TOOMANYRECIPIENTS."</td></tr>"; } elseif ($dwf_errorcode==7) { if ($config->captchatype==0) { echo "<tr><td valign=left colspan=2>"._UDDEIM_WRONGCAPTCHA."</td></tr>"; } else { echo "<tr><td valign=left colspan=2><span style='background-color: #ff0000;'>"._UDDEIM_WRONGCAPTCHA."</span></td></tr>"; } } elseif ($dwf_errorcode==8) { echo "<tr><td valign=left colspan=2>"._UDDEIM_NOPUBLICMSG."</td></tr>"; } elseif ($dwf_errorcode==9) { echo "<tr><td valign=left colspan=2>"._UDDEIM_ONEUSERBLOCKS."</td></tr>"; } elseif ($dwf_errorcode==10) { echo "<tr><td valign=left colspan=2>"._UDDEIM_GROUPBLOCKED."</td></tr>"; } elseif ($dwf_errorcode==11) { echo "<tr><td valign=left colspan=2>"._UDDEIM_NOSUCHLIST."</td></tr>"; } elseif ($dwf_errorcode==12) { echo "<tr><td valign=left colspan=2>"._UDDEIM_ERRORINFROMNAME."</td></tr>"; } elseif ($dwf_errorcode==13) { echo "<tr><td valign=left colspan=2>"._UDDEIM_ERRORINEMAIL."</td></tr>"; } elseif ($dwf_errorcode==14) { echo "<tr><td valign=left colspan=2>"._UDDEIM_YOUHAVETOWAIT."</td></tr>"; } elseif ($dwf_errorcode==15) { echo "<tr><td valign=left colspan=2>"._UDDEIM_ERRORCSRF."</td></tr>"; } elseif ($dwf_errorcode==16) { echo "<tr><td valign=left colspan=2>"._UDDEIM_USERBLOCKED."</td></tr>"; } elseif ($dwf_errorcode==17) { echo "<tr><td valign=left colspan=2>"._UDDEIM_USERBANNED."</td></tr>"; } elseif ($dwf_errorcode==18) { echo "<tr><td valign=left colspan=2>"._UDDEIM_FILEUPLOAD_FAILED."</td></tr>"; } elseif ($dwf_errorcode==19) { echo "<tr><td valign=left colspan=2>"._UDDEIM_FILESIZE_EXCEEDED."</td></tr>"; } elseif ($dwf_errorcode==20) { echo "<tr><td valign=left colspan=2>"._UDDEIM_FILETYPE_NOTALLOWED."</td></tr>"; } elseif ($dwf_errorcode==21) { echo "<tr><td valign=left colspan=2>"._UDDEIM_BADWORD."</td></tr>"; } // START THIRD LINE IN TABLE WHEN CONNECTIONS AVAILABLE $have_lists=0; if( ($config->enablelists==1) || ($config->enablelists==2 && (uddeIMisSpecial($my_gid) || uddeIMisSpecial2($my_gid, $config))) || ($config->enablelists==3 && (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config))) ) $have_lists=1; if (!($config->flags & 0x02)) { if ($config->showconnex || $have_lists) { // if (uddeIMcheckCB() && $showconnex && !($recipname && $dwf_errorcode==0)) { uddeIMdoShowConnections($myself, $my_gid, $config); // this creates a third row in table } } } echo "</table>"; echo "<br />"; } else { // it IS a reply if ($dwf_errorcode) { echo "<table width='100%' cellspacing='0' cellpadding='0'>"; if ($dwf_errorcode==7) { echo "<tr><td valign=left colspan=2>"._UDDEIM_WRONGCAPTCHA."</td></tr>"; } elseif ($dwf_errorcode==13) { echo "<tr><td valign=left colspan=2>"._UDDEIM_ERRORINEMAIL."</td></tr>"; } elseif ($dwf_errorcode==14) { echo "<tr><td valign=left colspan=2>"._UDDEIM_YOUHAVETOWAIT."</td></tr>"; } echo "</table>"; echo "<br />"; } echo "<input type='hidden' name='to_id' value='".htmlentities($recipname, ENT_QUOTES, $config->charset)."' /> "; echo "<input type='hidden' name='messageid' value='".$messageid."' />"; echo "<input type='hidden' name='to_name' value='' />"; } } if(($config->showtextcounter && $config->maxlength) || $config->cryptmode==2 || $config->cryptmode==4) { uddeIMaddScript($pathtosite."/components/com_uddeim/js/uddeimtools.js"); } if($config->allowbb || $config->allowsmile) { uddeIMaddScript($pathtosite."/components/com_uddeim/js/bbsmile.js"); $num = uddeIMdoSmileysEx($config); uddeIMdoBB($config); uddeIMdoSmileys($config, $num); } // well, I think the complete textarea should be red (or only the label? or both?) // if($dwf_errorcode==4) { // $errorstyle=' style="background-color: #ff0000;"'; // } else { $errorstyle=''; // } if($dwf_isreply==1) { echo "<span".$errorstyle.">"._UDDEIM_REPLY."</span>"; } else { echo "<span".$errorstyle.">"._UDDEIM_MESSAGE."</span>"; } echo "<br />"; $thestyle = ""; if ($config->width) $thestyle .= "width: ".(int)$config->width."px; "; if ($dwf_errorcode==4 || $dwf_errorcode==21) $thestyle .= "background-color: #ff0000; "; $errorstyle=""; if ($thestyle!="") $errorstyle="style='".$thestyle."' "; // ================================== TEXTBOX/TEXTCOUNTER ============================== if($config->showtextcounter && $config->maxlength) { $uc = ($config->showtextcounter) ? "textCount(document.sendeform.pmessage,document.sendeform.characterstyped,".$config->maxlength.");" : ""; echo "<textarea name='pmessage' ".$errorstyle."class='inputbox' rows='".(int)$config->rows."' cols='".(int)$config->cols."' onkeydown='".$uc."' onkeyup='".$uc."'>".$pmessage."</textarea>"; echo "<div class='uddeim-textcounter'>"; echo "<input style='background-color: lightgray;' readonly='readonly' type='text' name='characterstyped' size='4' maxlength='4' value='".$config->maxlength."' /> "._UDDEIM_CHARSLEFT; echo "</div>"; } else { echo "<textarea name='pmessage' ".$errorstyle."class='inputbox' rows='".(int)$config->rows."' cols='".(int)$config->cols."'>".$pmessage."</textarea>"; } // ================================== FILE UPLOAD ============================== if( $config->enableattachment && uddeIMisAttachmentAllowed($my_gid, $config)) uddeIMshowUploadButtons($config); // ================================== PASSWORD ============================== // CRYPT if($config->cryptmode==2 || $config->cryptmode==4) { echo "<div class='uddeim-password'>"; echo "<a href='javascript:uddeidswap(\"divpass\");'>"._UDDEIM_PASSWORDBOX."</a>"; echo "<span id='divpass' style='visibility:hidden;'>: <input name='cryptpass' value='' />"._UDDEIM_ENCRYPTIONTEXT."</span>"; echo "</div>"; } // ================================== CAPTCHA ============================== if ( $config->usecaptcha>=4 || // all users (incl. admins) ($config->usecaptcha==3 && !uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) || // CAPTCHA enabled for public frontend, registered and special users ($config->usecaptcha==2 && !uddeIMisSpecial($my_gid) && !uddeIMisSpecial2($my_gid, $config)) ) { // CAPTCHA enabled for public frontend and registered users (note: 0 is not required since this is done in public.php) // CAPTCHA if ($config->captchatype==0) { if($dwf_errorcode==7) { $errorstyle='style="background-color: #ff0000;" '; } else { $errorstyle=''; } echo "<div class='uddeim-captcha'>"; echo "<label for='security_code'>"._UDDEIM_SECURITYCODE." </label><input id='security_code' name='security_code' type='text' ".$errorstyle." /> "; if (class_exists('JFactory')) { // CAPTCHA15 echo "<img style='vertical-align:middle;' src='".$pathtosite."/components/com_uddeim/captcha15.php' alt='' /><br />"; } else { // CAPTCHA10 echo "<img style='vertical-align:middle;' src='".$pathtosite."/components/com_uddeim/captcha.php' alt='' /><br />"; } echo "</div>"; } else { $pathtouser = uddeIMgetPath('user'); require_once($pathtouser."/recaptchalib.php"); echo "<div class='uddeim-captcha'>"; echo recaptcha_get_html($config->recaptchapub); echo "</div>"; } } // ================================== Show the SEND OPTIONS ============================== $showoptions = ($config->trashoriginal && $dwf_isreply==1) || ($config->trashoriginalsent && !$dwf_sysgm) || ($config->allowcopytome && !$dwf_sysgm) || ($config->addccline && $config->allowmultipleuser && !$dwf_sysgm) || ($config->allowemailnotify && $config->emailwithmessage==2 && (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config))) || ($config->allowemailnotify && $dwf_sysgm); if ($showoptions) { echo "<div class='uddeim-sendoption'>"; } if($config->trashoriginal && $dwf_isreply==1) { echo "<input type='checkbox' value='1' checked='checked' name='tobedeleted' />"._UDDEIM_TRASHORIGINAL." "; } if($config->trashoriginalsent && !$dwf_sysgm) { echo "<input type='checkbox' value='1' name='tobedeletedsent' />"._UDDEIM_TRASHORIGINALSENT." "; } if($config->allowcopytome && !$dwf_sysgm) { echo "<input type='checkbox' value='1' name='copytome' />"._UDDEIM_SENDCOPYTOME." "; } if($config->addccline && $config->allowmultipleuser && !$dwf_sysgm) { echo "<span title='"._UDDEIM_ADDCCINFO_TITLE."'>"; echo "<input type='checkbox' value='1' checked='checked' name='addccinfo' />"._UDDEIM_ADDCCINFO; echo "</span>"; } // Email notifications must be on AND emailwithmessage for admins AND its an admin if($config->allowemailnotify && $config->emailwithmessage==2 && (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config))) { echo "<span title='"._UDDEAIM_ADDEMAIL_TITLE."'>"; echo "<input type='checkbox' value='1' name='forceembedded' />"._UDDEAIM_ADDEMAIL_SELECT; echo "</span>"; } if($config->allowemailnotify && $dwf_sysgm) { echo "<span><input type='checkbox' value='1' name='sysgm_nonotify' />"._UDDEIM_SEND_NONOTIFY."</span>\n"; } if ($showoptions) { echo "</div>"; } // ================================== SEND BUTTON ============================== echo "<div class='uddeim-sendbutton'>"; // when going back one page (history(-1)) the button stays disabled // echo "<input type='submit' name='reply' class='button' onclick=\"this.disabled=true;this.value='"._UDDEIM_PROCESSING."';this.form.submit();\" value='"._UDDEIM_SUBMIT."' /> "; echo "<input type='submit' name='reply' class='button' value='"._UDDEIM_SUBMIT."' /> "; echo "</div>"; echo "</form>\n"; echo "</div>\n"; // end of uddeim-writeform }
function uddeIMshowMessage($myself, $item_id, $messageid, $isforward, $cryptpass, $config) { global $uddeicons_onlinepic, $uddeicons_offlinepic, $uddeicons_readpic, $uddeicons_unreadpic; $my_gid = $config->usergid; $displaymessages = uddeIMselectInboxMessage($myself, $messageid, $config, 0); if (count($displaymessages)<1) { echo _UDDEIM_MESSAGENOACCESS; return; } // write the uddeim menu uddeIMprintMenu($myself, 'showMessage', $item_id, $config); echo "<div id='uddeim-m'>\n"; foreach($displaymessages as $displaymessage) { $is_spam = 0; if ($config->reportspam) // save one database query if possible $is_spam = uddeIMgetSpamStatus($messageid); $fromname = uddeIMevaluateUsername($displaymessage->fromname, $displaymessage->fromid, $displaymessage->publicname); if ($displaymessage->systemflag) $fromname = $displaymessage->systemmessage; $personalsys = 0; if ($displaymessage->systemflag && $displaymessage->systemmessage==$displaymessage->fromname) $personalsys = 1; // CRYPT $cm = uddeIMgetMessage($displaymessage->message, $cryptpass, $displaymessage->cryptmode, $displaymessage->crypthash, $config->cryptkey); // echo str_replace("&#", "&#", nl2br(htmlspecialchars(stripslashes($cm), ENT_QUOTES, $config->charset))); $dmessage = nl2br(htmlspecialchars(stripslashes($cm), ENT_QUOTES, $config->charset)); $dmessage = str_replace("&#", "&#", $dmessage); // unicode workaround $dmessage = str_replace("&</br>", "</br>", $dmessage); // if system message or bbcodes allowed, call parser if ($displaymessage->systemflag || $config->allowbb) $dmessage = uddeIMbbcode_replace($dmessage, $config); if ($config->allowsmile) $dmessage = uddeIMsmile_replace($dmessage, $config); $bodystring = $dmessage; // converted message for email body $replytomessage = ""; if ($config->replytext) $replytomessage = uddeIMreplySuggestion($cm, $displaymessage, $fromname, "", $isforward, "inbox", $config); // We used an placeholder above to insert the "reply suggestion" for the "mailto:" link $urlbody = rawurlencode($replytomessage); // display the message $headerstring="<table class='innermost'><tr>"; // does CB have a thumbnail image of the sender? if ($config->showcbpic && $displaymessage->fromname || $config->gravatar) { $frompic = uddeIMgetPicOnly($displaymessage->fromid, $config); if ($frompic && ($personalsys || !$displaymessage->systemflag)) $headerstring.="<td valign='top' rowspan='2'>".$frompic."</td>\n"; } $headerstring.="<td valign='top' width='99%'><div class='uddeim-messagefrom'>"; if ($displaymessage->toid!=$displaymessage->fromid) { // not a copy to myself $headerstring.=_UDDEIM_MESSAGEFROM; } else { // $headerstring.=_UDDEIM_MESSAGE." "; // BUGBUG: "Message admin" - sollte besser "Copy to yourself" sein if ( 0 == strncasecmp($displaymessage->systemmessage, _UDDEIM_TO_SMALL." ", strlen(_UDDEIM_TO_SMALL)+1 ) ) $headerstring.=_UDDEIM_MESSAGE." "; // systemmsg is "to XXX", so suppress the from (copy2me) else $headerstring.=_UDDEIM_MESSAGEFROM." "; // systemmsg is a name } // show links ??? $temp = $fromname; if ($config->showcblink && $displaymessage->fromname) { if (!$displaymessage->systemflag || $personalsys) { $temp = uddeIMgetLinkOnly($displaymessage->fromid, $fromname, $config); } } // display email address if ($displaymessage->fromname==NULL && !$displaymessage->fromid && $displaymessage->publicemail!=NULL) $temp .= " <<a href='mailto:".$displaymessage->publicemail."?body=".$urlbody."'>".$displaymessage->publicemail."</a>>"; $headerstring.=$temp; // is this user currently online? if ($config->showonline && $displaymessage->fromname) { if (!$displaymessage->systemflag || $personalsys) { $isonline = uddeIMisOnline($displaymessage->fromid); if ($isonline) $headerstring.=" ".$uddeicons_onlinepic; else $headerstring.=" ".$uddeicons_offlinepic; } } $headerstring.="<br />"; $headerstring.=uddeLdate($displaymessage->datum, $config, uddeIMgetUserTZ()); $headerstring.="</div></td><td valign='top'><span class='uddeim-clear'> </span><ul>"; // show delete & block links if ($config->allowforwards) { if ($displaymessage->cryptmode==2 || $displaymessage->cryptmode==4) { // Message is encrypted, so go to enter password page $headerstring.="<li class='uddeim-messageactionlink-forward'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forwardpass&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_FORWARDLINK."</a></li>\n"; } else { // normal message $headerstring.="<li class='uddeim-messageactionlink-forward'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forward&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_FORWARDLINK."</a></li>\n"; } } if (!$displaymessage->archived && $config->allowarchive) $headerstring.="<li class='uddeim-messageactionlink-archive'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=archivemessage&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_STORE."</a></li>\n"; if ( $displaymessage->archived && $config->allowarchive) $headerstring.="<li class='uddeim-messageactionlink-archive'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=unarchive&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_UNARCHIVE."</a></li>\n"; if (!$displaymessage->totrash) { // but only if not already moved to trash $headerstring.="<li class='uddeim-messageactionlink-delete'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=delete&Itemid=".$item_id."&ret=top&messageid=".$displaymessage->id)."'>"._UDDEIM_DELETELINK."</a></li>\n"; if ($config->blocksystem && !$displaymessage->systemflag && $displaymessage->fromid) { $headerstring.="<li class='uddeim-messageactionlink-block'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=blockuser&Itemid=".$item_id."&recip=".$displaymessage->fromid)."'>"._UDDEIM_BLOCKNOW."</a></li>\n"; } } if ($config->reportspam) { // uddeIMcheckPlugin('spamcontrol') && not required since uddeIMcheckConfig sets this 0 if plugin is missing if ($is_spam) $headerstring.="<br /><li class='uddeim-messageactionlink-spam'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=unreportspam&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_SPAMCONTROL_UNREPORT."</a></li>"; else $headerstring.="<br /><li class='uddeim-messageactionlink-spam'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=reportspam&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_SPAMCONTROL_REPORT."</a></li>"; } $headerstring.="</ul>"; $headerstring.="</td>"; $headerstring.="</tr>"; $msgnavigation = " "; if ($config->enablereply) { $msgnavigation = ""; $pathtosite = uddeIMgetPath('live_site'); $pic = "<img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/envelope.gif' alt='"._UDDEIM_PMNAV_EXISTS."' title='"._UDDEIM_PMNAV_EXISTS."' />"; $picdel = "<img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/envelope_deleted.gif' alt='"._UDDEIM_PMNAV_DELETED."' title='"._UDDEIM_PMNAV_DELETED."' />"; $replyid = $displaymessage->replyid; if ($replyid) { $msgnavigation .= _UDDEIM_PMNAV_THISISARESPONSE; $copy2me = ($displaymessage->toid==$displaymessage->fromid && $displaymessage->fromid==$myself); if ($copy2me) // this is a copy2me message, so the original is also stored in inbox $orig = uddeIMselectInboxMessage($myself, $replyid, $config, 0); else $orig = uddeIMselectOutboxMessage($myself, $replyid, $config, 0); $temp = Array(); foreach($orig as $or) $temp = $or; $orig = $temp; if (count($orig)>0) { // the message should be stored in the outbox $goto = "showout"; $c2me = ""; if ($copy2me) // this is a copy2me message, so the original is also stored in inbox $goto = "show"; if ($orig->cryptmode==2 || $orig->cryptmode==4) { // Message is encrypted, so go to enter password page $msgnavigation .= " <a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=".$goto."pass&Itemid=".$item_id."&messageid=".$replyid)."'>".$pic."</a>"; } else { // normal message $msgnavigation .= " <a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=".$goto."&Itemid=".$item_id."&messageid=".$replyid)."'>".$pic."</a>"; } } else { $msgnavigation .= " ".$picdel; } } $repls = uddeIMselectMessageReplies($displaymessage->id, 'outbox', $myself); if (count($repls)>0) { $msgnavigation .= "<br />"; $msgnavigation .= _UDDEIM_PMNAV_THEREARERESPONSES; foreach($repls as $repl) { $goto = "showout"; $c2me = ""; if ($repl->toid==$repl->fromid) { // copy2me are stored in the inbox $goto = "show"; $c2me = " "._UDDEIM_PMNAV_COPY2ME; // BUGBUG } if ($repl->cryptmode==2 || $repl->cryptmode==4) { // Message is encrypted, so go to enter password page $msgnavigation .= " <a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=".$goto."pass&Itemid=".$item_id."&messageid=".$repl->id)."'>".$pic."</a>".$c2me; } else { // normal message $msgnavigation .= " <a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=".$goto."&Itemid=".$item_id."&messageid=".$repl->id)."'>".$pic."</a>".$c2me; } $msgnavigation .= " "; } } } $headerstring.="<tr>"; $headerstring.="<td valign='bottom'><div class='uddeim-messagefrom'>".trim($msgnavigation)."</div></td>"; $headerstring.="<td valign='bottom'>"; if ($config->reportspam) { // uddeIMcheckPlugin('spamcontrol') && not required since uddeIMcheckConfig sets this 0 if plugin is missing if ($is_spam) $headerstring.="<div class='uddeim-messagefrom-spam'>"._UDDEIM_SPAMCONTROL_MARKED."</div>"; } $headerstring.="</td>"; $headerstring.="</tr>"; $headerstring.="</table>"; // output the message if (!$isforward) { echo "<div class='uddeim-messageheader'>".$headerstring."</div>"; echo "<div class='uddeim-messagebody'>".uddeIMreplyquoteMarkup($bodystring,$config->quotedivider)."</div>"; // UDDEIMFILE if( $config->enableattachment ) // Always show attachments when attachments are enabled uddeIMshowAttachments("inbox", $item_id, $displaymessage->id, $config); } $trashmessage = $displaymessage->totrash; $to_id = $displaymessage->fromid; $replytoid = $displaymessage->id; $disablereply = $displaymessage->disablereply; // now check, if we can send a reply if (!$config->pubreplies) { // we do not allow replies to public users, so check if it is a public user if ( uddeIMisPublicUser($displaymessage->fromname,$displaymessage->fromid) ) // it is $displaymessage->fromname which specifies if it is a public user or not $disablereply = 1; } else { // we allow replies to public users, so check if it is a public user... if ( uddeIMisPublicUser($displaymessage->fromname,$displaymessage->fromid) && (!$displaymessage->publicemail || $displaymessage->publicemail==NULL)) $disablereply = 1; // ..its a public user and there is no email address given, we could send a reply to } if ( uddeIMisDeletedUser($displaymessage->fromname,$displaymessage->fromid) ) $disablereply = 1; // ..its a deleted user so disable replies if ($displaymessage->archived) $disablereply = 1; // ..no reply to archived messages if ($displaymessage->fromid==$myself && $displaymessage->fromid==$displaymessage->toid) $disablereply = 1; // ...no reply to copy2me messages } // read flag set to true, but only when its a forward if (!$isforward) uddeIMupdateToread($myself, $displaymessage->id, 1); if ($config->inboxlimit) { // there is a limit for inbox + archive if ($config->allowarchive) { // have an archive and an "archive and inbox" limit, so get number of messages in inbox and archive $universeflag = _UDDEIM_ARC_UNIVERSE_BOTH; // inbox and archive $total = uddeIMgetInboxArchiveCount($myself); } else { // user has switched of archive but there is an limit for "inbox and archive", so count inbox messages only $universeflag = _UDDEIM_ARC_UNIVERSE_INBOX; // inbox $total = uddeIMgetInboxCount($myself); } // "You have XX messages in your inbox/inbox+archive." $limitreached = _UDDEIM_INBOX_LIMIT_1." ".$total; $limitreached.= " ".($total==1 ? _UDDEIM_INBOX_LIMIT_2_SINGULAR : _UDDEIM_INBOX_LIMIT_2)." "; $limitreached.= $universeflag; if (!uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config) && (!$disablereply || ($isforward && $config->allowforwards))) { // so the warning is only displayed when a forward or reply is possible // "The allowed maximum is XX." // $limitreached.= _UDDEIM_INBOX_LIMIT_3." ".$config->maxarchive.". "; $limitreached.= " "._UDDEIM_SHOWINBOXLIMIT_2." ".$config->maxarchive.")."; // (of max. ) if ($total > $config->maxarchive) { // "You have XX messages in your inbox/inbox+archive." $limitreached = _UDDEIM_INBOX_LIMIT_1." ".$total; $limitreached.= " ".($total==1 ? _UDDEIM_INBOX_LIMIT_2_SINGULAR : _UDDEIM_INBOX_LIMIT_2)." "; $limitreached.= $universeflag; // You can still receive and read messages but you will not be able to reply or to compose new ones until you delete messages. $limitwarning = _UDDEIM_INBOX_LIMIT_4; $showinboxlimit_borderbottom = "<span class='uddeim-warning'>"; $showinboxlimit_borderbottom.= $limitreached." "; $showinboxlimit_borderbottom.= $limitwarning; $showinboxlimit_borderbottom.= "</span>"; echo "<div id='uddeim-bottomlines'>".$showinboxlimit_borderbottom."</div>"; // close main container echo "</div>\n<div id='uddeim-bottomborder'>".uddeIMcontentBottomborder($myself, $item_id, 'standard', $limitreached, $config)."</div>\n"; return; } } } if (($isforward && $config->allowforwards) || !$disablereply) { // it is a forward or you can reply to the message // show reply form if(!$trashmessage) { // but only if not already moved to trash // echo "<div id='uddeim-writeform'><b>"._UDDEIM_REPLY."</b><br />"; // which page did refer to this "show Message" page? we want to send back the user where he came from $tbackto = uddeIMmosGetParam($_SERVER, 'HTTP_REFERER', null); if(stristr($tbackto, "com_uddeim")) { $tbackto=""; } if ($isforward && $config->allowforwards) { // it is a forward, so allow selecting a recipient uddeIMdrawWriteform($myself, $my_gid, $item_id, $tbackto, "", $replytomessage, 0, 0, 0, 0, $config); } else { // it is a reply, so reply to $to_id { uddeIMdrawWriteform($myself, $my_gid, $item_id, $tbackto, $to_id, $replytomessage, $replytoid, 1, 0, 0, $config); // isreply, errorcode, sysmsg } } else { // offer restore link echo "<div id='uddeim-bottomlines'>"._UDDEIM_YOUMOVEDTOTRASH; echo "<br />"; echo "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=restore&Itemid=".$item_id."&messageid=".$replytoid)."'>"._UDDEIM_RESTORE."</a></div>\n"; } } else { // don't allow replies ($disablereply) if ($displaymessage->archived) echo "<div id='uddeim-bottomlines'>"._UDDEIM_CANTREPLYARCHIVE."</div>\n"; else echo "<div id='uddeim-bottomlines'>"._UDDEIM_CANTREPLY."</div>\n"; } // close container echo "</div>\n<div id='uddeim-bottomborder'>".uddeIMcontentBottomborder($myself, $item_id, 'standard', 'none', $config)."</div>\n"; }
function uddeIMpublicSaveMessage($fromname, $fromemail, $to_name, $to_id, $pmessage, $item_id, $sendeform_showallusers, $backto, $config) { $mosConfig_sitename = uddeIMgetSitename(); $pathtosite = uddeIMgetPath('live_site'); $database = uddeIMgetDatabase(); $to_name = stripslashes($to_name); $to_name_bak = $to_name; // save all already typed in names if(!$to_id && !$to_name && $sendeform_showallusers!=2) { // write the uddeim menu uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 5, $config); return; } if($sendeform_showallusers) { // =2, click on button / =1, keep on showing // write the uddeim menu uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 1, $config); return; } // do not allow multiple recipients from public frontend $to_name = trim($to_name); $fromname = trim($fromname); $fromemail = trim($fromemail); if(!$fromname) { // write the uddeim menu uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 12, $config); return; } // When there is an email address this must be valid if ($fromemail && !preg_match("/\b[a-z0-9!#$%&'*+\/=?^_`{|}-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b/i", $fromemail)) { // write the uddeim menu uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 13, $config); return; } // Check if an email address is required if (!$fromemail && $config->pubemail) { // write the uddeim menu uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 13, $config); return; } $to_id = uddeIMgetIDfromNamePublic($to_name, $config, true); // add "AND block=0" // BUGBUG: Maybe it is a good idea to do the query vice versa (so I could add a query for "realname"s here) if (!$to_id) { // no user with this name found, so try again with username (maybe we do the query twice (see query above, but who cares) if ($config->pubrealnames) { $to_id = uddeIMgetIDfromUsername($to_name, true); // add "AND block=0" } } if(!$to_id) { // no user with this username found // display to form again so that the user can correct his/her fault // the wrong name is displayed in brackets (add brackets only once) if (substr($to_name,0,1)!="(") { $to_name = str_replace($to_name, "(".$to_name.")", $to_name_bak); } // write the uddeim menu uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 3, $config); return; } // now check banning $is_banned = uddeIMisBanned($to_id, $config); if ($is_banned) { if (substr($to_name,0,1)!="(") { $to_name = str_replace($to_name, "(".$to_name.")", $to_name_bak); } // write the uddeim menu uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 17, $config); return; } // now check group blocking $is_group_blocked = uddeIMisRecipientBlockedPublic($to_id, $config); if ($is_group_blocked) { if (substr($to_name,0,1)!="(") { $to_name = str_replace($to_name, "(".$to_name.")", $to_name_bak); } uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 10, $config); return; } if(!$pmessage) { // write the uddeim menu $to_name = $to_name_bak; uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 4, $config); return; } // check if user allows public access (this check must be done after group blocking, because the admin can block a certain group and the user cannot longer decide if he allows the public frontend or not) $ispublic = uddeIMgetEMNpublic($to_id); if (!$ispublic) { // user does not allow public messages uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 8, $config); return; } // CAPTCHA (first check for all other errors and then the CAPTCHA) if ($config->usecaptcha>=1) { // CAPTCHA is enabled for public frontend if ($config->captchatype==0) { if (class_exists('JFactory')) { // CAPTCHA15 $session = JFactory::getSession(); $_SESSION['security_code'] = $session->get('security_code'); // so I do not need to modify saveMessage code } else { // CAPTCHA10 session_start(); } if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) { // CAPTCHA is correct, so unset security code if (class_exists('JFactory')) { $session = JFactory::getSession(); $session->set('security_code', null); } else { unset($_SESSION['security_code']); } } else { // wrong captcha, so write the uddeim menu $to_name = $to_name_bak; uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 7, $config); return; } } else { $pathtouser = uddeIMgetPath('user'); require_once($pathtouser."/recaptchalib.php"); $resp = recaptcha_check_answer ($config->recaptchaprv, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { $to_name = $to_name_bak; uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 7, $config); return; // die ("The reCAPTCHA wasn't entered correctly. Go back and try it again. (reCAPTCHA said: " . $resp->error . ")"); } } } if (!uddeIMcheckCSRF($config)) { $to_name = $to_name_bak; uddeIMpublicMenuWriteform($item_id, $fromname, $fromemail, $to_name, $pmessage, 15, $config); return; } $savedatum = uddetime($config->timezone); $savetoid = $to_id; $savefromid = 0; // This is '0' in public frontend // CRYPT if ($config->cryptmode>=1) { // because of encoding do not use slashes $savemessage=strip_tags($pmessage); } else { $savemessage=addslashes(strip_tags($pmessage)); // original 0.6+ } // strip bbcodes if (!$config->allowbb) { $savemessage=uddeIMbbcode_strip($savemessage); } // set message max length if ($config->maxlength>0) { // because if 0 do not use any maxlength $savemessage=substr($savemessage, 0, $config->maxlength); } $fromname=addslashes(strip_tags($fromname)); $fromemail=addslashes(strip_tags($fromemail)); $delayed = 0; if ($config->modpubusers) $delayed = 1; // we have all we need, now save it // no replyid can be set here, since public users cannot reply to a message, replyid = 0 // CRYPT if ($config->cryptmode==1 || $config->cryptmode==2 || $config->cryptmode==4) { // do not allow individual encryption $cm = uddeIMencrypt($savemessage,$config->cryptkey,CRYPT_MODE_BASE64); $sql="INSERT INTO #__uddeim (`delayed`, publicname, publicemail, fromid, toid, message, datum, totrashoutbox, totrashdateoutbox, cryptmode, crypthash) VALUES (".(int)$delayed.", '".$fromname."', '".$fromemail."', ".(int)$savefromid.", ".(int)$savetoid.", '".$cm."', ".$savedatum.",1,".$savedatum.",1,'".md5($config->cryptkey)."')"; } elseif ($config->cryptmode==3) { $cm = uddeIMencrypt($savemessage,"",CRYPT_MODE_STOREBASE64); $sql="INSERT INTO #__uddeim (`delayed`, publicname, publicemail, fromid, toid, message, datum, totrashoutbox, totrashdateoutbox, cryptmode) VALUES (".(int)$delayed.", '".$fromname."', '".$fromemail."', ".(int)$savefromid.", ".(int)$savetoid.", '".$cm."', ".$savedatum.",1,".$savedatum.",3)"; } else { $sql="INSERT INTO #__uddeim (`delayed`, publicname, publicemail, fromid, toid, message, datum, totrashoutbox, totrashdateoutbox) VALUES (".(int)$delayed.", '".$fromname."', '".$fromemail."', ".(int)$savefromid.", ".(int)$savetoid.", '".$savemessage."', ".$savedatum.",1,".$savedatum.")"; } $database->setQuery($sql); if (!$database->query()) { die("SQL error when attempting to save a message" . $database->stderr(true)); } $insID = $database->insertid(); // When public users are moderated, delay the message // if (uddeIMgetEMNmoderated($savefromid) ) { // && uddeIMisReggedOnly($my_gid)) { // uddeIMupdateDelayed($savefromid, $insID, 1); // } // Check if E-Mail notification or popups are enabled by default, if so create a record for the receiver. // Note: Not necessary for "copy to myself" sind the record for the current user has been set at the very beginning... if ($config->notifydefault>0 || $config->popupdefault>0 || $config->pubfrontenddefault>0 || $config->autoresponder>0 || $config->autoforward>0) { if (!uddeIMexistsEMN($savetoid)) uddeIMinsertEMNdefaults($savetoid, $config); } $rec_gid = uddeIMgetGID((int)$savetoid); // ################################################################################################## // autoforward code // ################################################################################################## if ($config->autoforward==1 || ($config->autoforward==2 && (uddeIMisAdmin($rec_gid) || uddeIMisAdmin2($rec_gid, $config)))) { $ison = uddeIMgetEMNautoforward($savetoid); // recipient has autoforward enabled if ($ison==1) { $autoforwardid = uddeIMgetEMNautoforwardid($savetoid); // new recipient $forwardheader=" [i]("._UDDEIM_THISISAFORWARD.uddeIMgetNameFromID($savetoid, $config).")[/i]"; $savemessagecopy = $savemessage.$forwardheader; $themode = 0; if ($config->cryptmode==1) { $themode = 1; $cm = uddeIMencrypt($savemessagecopy,$config->cryptkey,CRYPT_MODE_BASE64); $sql = "INSERT INTO #__uddeim (fromid, toid, message, datum, cryptmode, crypthash) VALUES (".(int)$savefromid.", ".(int)$autoforwardid.", '".$cm."', ".$savedatum.",1,'".md5($config->cryptkey)."')"; } elseif ($config->cryptmode==2) { $themode = 2; $thepass=$cryptpass; if (!$thepass) { // no password entered, then fallback to obfuscating $themode = 1; $thepass=$config->cryptkey; } $cm = uddeIMencrypt($savemessagecopy,$thepass,CRYPT_MODE_BASE64); $sql = "INSERT INTO #__uddeim (fromid, toid, message, datum, cryptmode, crypthash) VALUES (".(int)$savefromid.", ".(int)$autoforwardid.", '".$cm."', ".$savedatum.",".$themode.",'".md5($thepass)."')"; } elseif ($config->cryptmode==3) { $themode = 3; $cm = uddeIMencrypt($savemessagecopy,"",CRYPT_MODE_STOREBASE64); $sql = "INSERT INTO #__uddeim (fromid, toid, message, datum, cryptmode) VALUES (".(int)$savefromid.", ".(int)$autoforwardid.", '".$cm."', ".$savedatum.",3)"; } elseif ($config->cryptmode==4) { $themode = 4; $thepass=$cryptpass; if (!$thepass) { // no password entered, then fallback to obfuscating $themode = 1; $thepass=$config->cryptkey; } $cm = uddeIMencrypt($savemessagecopy,$thepass,CRYPT_MODE_3DESBASE64); $sql = "INSERT INTO #__uddeim (fromid, toid, message, datum, cryptmode, crypthash) VALUES (".(int)$savefromid.", ".(int)$autoforwardid.", '".$cm."', ".$savedatum.",".$themode.",'".md5($thepass)."')"; } else { $sql = "INSERT INTO #__uddeim (fromid, toid, message, datum) VALUES (".(int)$savefromid.", ".(int)$autoforwardid.", '".$savemessage."', ".$savedatum.")"; } $database->setQuery($sql); if (!$database->query()) { die("SQL error when attempting to save a message" . $database->stderr(true)); } $insIDforward = $database->insertid(); } } // ################################################################################################## // autoresponder // ################################################################################################## if ($config->autoresponder==1 || ($config->autoresponder==2 && (uddeIMisAdmin($rec_gid) || uddeIMisAdmin2($rec_gid, $config)))) { $ison = uddeIMgetEMNautoresponder($savetoid); if ($ison==1) { // $sql="INSERT INTO #__uddeim (fromid, toid, message, datum, totrashoutbox, totrashdateoutbox) VALUES (".(int)$savetoid.", ".(int)$savefromid.", '". _UDDEIM_AUTORESPONDER_DEFAULT ."', ".$savedatum.", 1,".uddetime($config->timezone).")"; // BUGBUG: An autoresponder message is send via email but no message in the outbox is created. // This is not a bug since in my opinion it does not make sense to store autoresponder messages AND the received message. if($config->emailtrafficenabled && $fromemail) { $autorespondertext = uddeIMgetEMNautorespondertext($savetoid); $var_fromname = uddeIMgetNameFromID($savetoid, $config); if (!$var_fromname) $var_fromname=$config->sysm_username; $var_body = _UDDEIM_EMN_BODY_PUBLICWITHMESSAGE; $var_body = str_replace("%livesite%", $pathtosite, $var_body); $var_body = str_replace("%user%", $var_fromname, $var_body); $var_body = str_replace("%site%", $mosConfig_sitename, $var_body); $var_body = str_replace("%you%", $fromname, $var_body); $autorespondertext = str_replace(chr(13).chr(10), "\n", $autorespondertext); $var_body = str_replace("%pmessage%", $autorespondertext, $var_body); $subject = _UDDEIM_EMN_SUBJECT; $subject = str_replace("%livesite%", $pathtosite, $subject); $subject = str_replace("%site%", $mosConfig_sitename, $subject); $subject = str_replace("%you%", $fromname, $subject); $subject = str_replace("%user%", $var_fromname, $subject); $replyto = $fromemail; $replytoname = ""; if(uddeIMsendmail($config->emn_sendername, $config->emn_sendermail, $var_toname, $fromemail, $subject, $var_body, $replyto, $replytoname, "", $config)) { // maybe a code here that the email cound not have been sent } } } } // ################################################################################################## // email notification // ################################################################################################## // is the receiver currently online? $currentlyonline = uddeIMisOnline($savetoid); if ($config->cryptmode>=1) { $email=stripslashes($savemessage); } else { $email=stripslashes(stripslashes($savemessage)); // without encoding remove the safety slashes } if($config->allowemailnotify==1) { $ison = uddeIMgetEMNstatus($savetoid); if (($ison==1) || ($ison==2 && !$currentlyonline) || ($ison==10) || ($ison==20 && !$currentlyonline)) { uddeIMpublicDispatchEMN($insID, $fromname, $savetoid, $email, 0, $config); // 0 stands for normal (not forgetmenot) } } elseif($config->allowemailnotify==2) { $my_gid = uddeIMgetGID((int)$savetoid); if (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config)) { $ison = uddeIMgetEMNstatus($savetoid); if (($ison==1) || ($ison==2 && !$currentlyonline) || ($ison==10) || ($ison==20 && !$currentlyonline)) { uddeIMpublicDispatchEMN($insID, $fromname, $savetoid, $email, 0, $config); // 0 stands for normal (not forgetmenot) } } } $mosmsg=""; // _UDDEIM_MESSAGE_SENT uddeJSEFredirect("index.php?option=com_uddeim&task=publicsent&Itemid=".$item_id, $mosmsg); }
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 uddeIMshowPostboxUser($myself, $userid, $item_id, $limit, $limitstart, $cryptpass, $config, $filter_user, $filter_unread, $filter_flagged, $sort_mode) { global $uddeicons_delayedpic, $uddeicons_flagged, $uddeicons_unflagged, $uddeicons_onlinepic, $uddeicons_offlinepic, $uddeicons_readpic, $uddeicons_unreadpic; $pathtosite = uddeIMgetPath('live_site'); // invoke pruning if set so $my_gid = $config->usergid; // message limit for inbox? if ($config->inboxlimit && $config->allowarchive) { $universeflag = _UDDEIM_ARC_UNIVERSE_BOTH; // inbox and archive } else { $universeflag = _UDDEIM_ARC_UNIVERSE_INBOX; // inbox } if ($config->inboxlimit && $config->allowarchive) { // inbox + archive, already stored messages in archive are not counted, when archive is disabled $total = uddeIMgetInboxArchiveCount($myself); } else { $total = uddeIMgetInboxCount($myself); // also used for navigation } $limitwarning = ""; // "You have XX messages in your inbox/inbox+archive." $limitreached = _UDDEIM_INBOX_LIMIT_1." ".$total; $limitreached.= " ".($total==1 ? _UDDEIM_INBOX_LIMIT_2_SINGULAR : _UDDEIM_INBOX_LIMIT_2)." "; $limitreached.= $universeflag; if ($config->inboxlimit) { // there is a limit for inbox + archive if (!uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) { // "The allowed maximum is XX." // $limitreached.= _UDDEIM_INBOX_LIMIT_3." ".$config->maxarchive.". "; $limitreached.= " "._UDDEIM_SHOWINBOXLIMIT_2." ".$config->maxarchive.")."; // (of max. ) if ($total > $config->maxarchive) { $limitwarning = _UDDEIM_INBOX_LIMIT_4; // You can still receive and read messages but you will not be able to reply or to compose new ones until you delete messages. } } } else { // there is a limit for the archive only $limitreached.= "."; // so inbox is unlimited } $totalpostbox = uddeIMgetPostboxUserCount($myself, $userid, $filter_user, $filter_unread, $filter_flagged); // now load messages as required if(!$limitstart) $limitstart = 0; if(!$limit) $limit=$config->perpage; if ($limitstart>=$totalpostbox) $limitstart=max(0,$limitstart - $limit); // $allmessages = uddeIMselectInbox($myself, $limitstart, $limit, $config, $filter_user, $filter_unread, $filter_flagged, $sort_mode); $allmessages = uddeIMselectPostboxUser($myself, $userid, $limitstart, $limit, $config); // write the uddeim menu uddeIMprintMenu($myself, 'inbox', $item_id, $config); echo "<div id='uddeim-m'>\n"; //if ($config->enablefilter==1 || $config->enablefilter==3) // uddeIMprintFilter($myself, 'postboxuser', $totalpostbox, $item_id, $config, $filter_user, $filter_unread, $filter_flagged); // if no messages: if (count($allmessages)<1) { // no messages to list uddeIMshowNoMessage('postbox', $filter_user, $filter_unread, $filter_flagged); echo "</div>\n<div id='uddeim-bottomborder'>".uddeIMcontentBottomborder($myself, $item_id, 'standard', 'none', $config)."</div>\n"; return; } uddeIMaddScript($pathtosite."/components/com_uddeim/js/uddeimtools.js"); if ($config->blocksystem) { if ($userid && $userid!=$myself) { $isblocked = uddeIMcheckBlockerBlocked($myself, $userid); if (!$isblocked) { echo "<div id='uddeim-block'>"; echo "<table border='0' cellpadding='0' cellspacing='0' width='100%'><tr><td align='left'>"; $blockcell = "<div style='text-align:right;'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=blockuser&Itemid=".$item_id."&recip=".$userid."&ret=postboxuser")."'>"._UDDEIM_BLOCKNOW."</a></div>"; echo $blockcell; echo "</td></tr></table>"; echo "</div>"; } } } echo "<form method='post' name='messages' action='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=inboxfork&Itemid=".$item_id)."'>\n"; // now open the inbox container and table; write table headings echo "<div id='uddeim-overview'>"; echo "<table cellpadding='7' width='100%'>\n"; // checkcell $delall="<input type=\"checkbox\" name=\"arcmes[]\" value=\"\" onclick=\"wiglwogl(this);\" title=\""._UDDEIM_CHECKALL."\" />"; echo "<tr>"; echo "<th style='border:none; text-align:center;' class='sectiontableheader'>".$delall."</th>"; echo "<th style='border:none;' class='sectiontableheader'> </th>"; echo "<th style='border:none;' class='sectiontableheader'>"._UDDEIM_FROM."/"._UDDEIM_TO."</th>"; echo "<th style='border:none;' class='sectiontableheader'>"._UDDEIM_DATE."</th>"; echo "<th style='border:none;' class='sectiontableheader'> </th>"; echo "</tr>\n"; $k = 1; $i = 1; // now write the list foreach($allmessages as $themessage) { $isinbox = 0; $isoutbox = 0; if ($myself==$themessage->toid && $myself!=$themessage->fromid) { $isinbox = 1; } elseif ($myself==$themessage->fromid && $myself!=$themessage->toid) { $isoutbox = 1; } else { // this case appears when a copy to me message has been trashed my myself $isinbox = 1; } $is_spam = 0; if ($config->reportspam) // save one database query if possible $is_spam = uddeIMgetSpamStatus($themessage->id); $flagcell = ""; $archivecell = ""; $fwdcell = ""; $deletecell = ""; $recallcell = ""; $attachcell = ""; $spamcell = ""; $spamcellflag = ""; if ($isinbox) { if($config->allowflagged) { if($themessage->flagged) $flagcell="<br /><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=unflag&recip=".$userid."&ret=postboxuser&Itemid=".$item_id."&messageid=".$themessage->id."&limit=".$limit."&limitstart=".$limitstart)."'>".$uddeicons_flagged."</a>"; else $flagcell="<br /><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=flag&recip=".$userid."&ret=postboxuser&Itemid=".$item_id."&messageid=".$themessage->id."&limit=".$limit."&limitstart=".$limitstart)."'>".$uddeicons_unflagged."</a>"; } if($themessage->toread) $readcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=markunread&recip=".$userid."&ret=postboxuser&Itemid=".$item_id."&messageid=".$themessage->id."&limit=".$limit."&limitstart=".$limitstart)."'>".$uddeicons_readpic."</a>"; else $readcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=markread&recip=".$userid."&ret=postboxuser&Itemid=".$item_id."&messageid=".$themessage->id."&limit=".$limit."&limitstart=".$limitstart)."'>".$uddeicons_unreadpic."</a>"; if ($config->showlistattachment) { $cnt = uddeIMgetAttachmentCount($themessage->id); if ($cnt) $attachcell = "<br /><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/attachment.gif' alt='"._UDDEIM_ATTACHMENT."' title='"._UDDEIM_ATTACHMENT."' border='0' />"; } if ($config->actionicons) { $deletecell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=postboxdeleteinbox&recip=".$userid."&Itemid=".$item_id."&limit=".$limit."&limitstart=".$limitstart."&messageid=".$themessage->id)."'><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/trash.gif' alt='"._UDDEIM_DELETELINK."' title='"._UDDEIM_DELETELINK."' /></a>"; if ($config->allowforwards) { if ($themessage->cryptmode==2 || $themessage->cryptmode==4) { // Message is encrypted, so go to enter password page $fwdcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forwardpass&Itemid=".$item_id."&messageid=".$themessage->id)."'><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/forward.gif' alt='"._UDDEIM_FORWARDLINK."' title='"._UDDEIM_FORWARDLINK."' /></a><br />"; } else { // normal message $fwdcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forward&Itemid=".$item_id."&messageid=".$themessage->id)."'><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/forward.gif' alt='"._UDDEIM_FORWARDLINK."' title='"._UDDEIM_FORWARDLINK."' /></a><br />"; } } if ($config->allowarchive && $themessage->toread) $archivecell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=archivemessage&Itemid=".$item_id."&limit=".$limit."&limitstart=".$limitstart."&messageid=".$themessage->id)."'><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/archive.gif' alt='"._UDDEIM_STORE."' title='"._UDDEIM_STORE."' /></a><br />"; } else { $deletecell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=postboxdeleteinbox&recip=".$userid."&Itemid=".$item_id."&limit=".$limit."&limitstart=".$limitstart."&messageid=".$themessage->id)."'>"._UDDEIM_DELETELINK."</a>"; if ($config->allowforwards) { if ($themessage->cryptmode==2 || $themessage->cryptmode==4) { // Message is encrypted, so go to enter password page $fwdcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forwardpass&Itemid=".$item_id."&messageid=".$themessage->id)."'>"._UDDEIM_FORWARDLINK."</a><br />"; } else { // normal message $fwdcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forward&Itemid=".$item_id."&messageid=".$themessage->id)."'>"._UDDEIM_FORWARDLINK."</a><br />"; } } if ($config->allowarchive && $themessage->toread) $archivecell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=archivemessage&Itemid=".$item_id."&limit=".$limit."&limitstart=".$limitstart."&messageid=".$themessage->id)."'>"._UDDEIM_STORE."</a><br />"; } if ($config->reportspam) { // uddeIMcheckPlugin('spamcontrol') && not required since uddeIMcheckConfig sets this 0 if plugin is missing if ($is_spam) { $spamcell = "<br /><br /><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=unreportspam&Itemid=".$item_id."&messageid=".$themessage->id."&recip=".$userid."&ret=postboxuser")."'>"._UDDEIM_SPAMCONTROL_UNREPORT."</a>"; $spamcellflag = "<br /><div class='uddeim-messagefrom-spam'>"._UDDEIM_SPAMCONTROL_MARKED."</div>"; } else { $spamcell = "<br /><br /><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=reportspam&Itemid=".$item_id."&messageid=".$themessage->id."&recip=".$userid."&ret=postboxuser")."'>"._UDDEIM_SPAMCONTROL_REPORT."</a>"; } } } if ($isoutbox) { if ($themessage->delayed) { $readcell=$uddeicons_delayedpic; } else { if ($themessage->toread) $readcell=$uddeicons_readpic; else $readcell=$uddeicons_unreadpic; } if ($config->showlistattachment) { $cnt = uddeIMgetAttachmentCount($themessage->id); if ($cnt) $attachcell = "<br /><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/attachment.gif' alt='"._UDDEIM_ATTACHMENT."' title='"._UDDEIM_ATTACHMENT."' border='0' />"; } if ($config->actionicons) { $deletecell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=postboxdeleteoutbox&recip=".$userid."&Itemid=".$item_id."&limit=".$limit."&limitstart=".$limitstart."&messageid=".$themessage->id)."'><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/trash.gif' alt='"._UDDEIM_DELETELINK."' title='"._UDDEIM_DELETELINK."' /></a>"; if ($config->allowforwards) { if ($themessage->cryptmode==2 || $themessage->cryptmode==4) { // Message is encrypted, so go to enter password page $fwdcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forwardoutboxpass&Itemid=".$item_id."&messageid=".$themessage->id)."'><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/forward.gif' alt='"._UDDEIM_FORWARDLINK."' title='"._UDDEIM_FORWARDLINK."' /></a><br />"; } else { // normal message $fwdcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forwardoutbox&Itemid=".$item_id."&messageid=".$themessage->id)."'><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/forward.gif' alt='"._UDDEIM_FORWARDLINK."' title='"._UDDEIM_FORWARDLINK."' /></a><br />"; } } } else { $deletecell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=postboxdeleteoutbox&recip=".$userid."&Itemid=".$item_id."&limit=".$limit."&limitstart=".$limitstart."&messageid=".$themessage->id)."'>"._UDDEIM_DELETELINK."</a>"; if ($config->allowforwards) { if ($themessage->cryptmode==2 || $themessage->cryptmode==4) { // Message is encrypted, so go to enter password page $fwdcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forwardoutboxpass&Itemid=".$item_id."&messageid=".$themessage->id)."'>"._UDDEIM_FORWARDLINK."</a><br />"; } else { // normal message $fwdcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forwardoutbox&Itemid=".$item_id."&messageid=".$themessage->id)."'>"._UDDEIM_FORWARDLINK."</a><br />"; } } } if(!$themessage->toread) { // if not read then a recall is possible if($config->actionicons) { if ($themessage->cryptmode==2 || $themessage->cryptmode==4) { // Message is encrypted, so go to enter password page $recallcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=recallpass&Itemid=".$item_id."&messageid=".$themessage->id)."'><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/restore.gif' alt='"._UDDEIM_RECALL."' title='"._UDDEIM_RECALL."' /></a><br />"; } else { // normal message $recallcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=recall&Itemid=".$item_id."&messageid=".$themessage->id)."'><img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/restore.gif' alt='"._UDDEIM_RECALL."' title='"._UDDEIM_RECALL."' /></a><br />"; } } else { if ($themessage->cryptmode==2 || $themessage->cryptmode==4) { // Message is encrypted, so go to enter password page $recallcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=recallpass&Itemid=".$item_id."&messageid=".$themessage->id)."'>"._UDDEIM_RECALL."</a><br />"; } else { // normal message $recallcell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=recall&Itemid=".$item_id."&messageid=".$themessage->id)."'>"._UDDEIM_RECALL."</a><br />"; } } } } if ($isinbox) { if ($config->actionicons) { $newemail = "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=reply&recip=".$userid."&Itemid=".$item_id."&messageid=".$themessage->id)."'>"; $newemail .= "<img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/menu_new.gif' alt='"._UDDEIM_COMPOSE."' />"; $newemail .= "</a>"; } else { $newemail = "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=reply&recip=".$userid."&Itemid=".$item_id."&messageid=".$themessage->id)."'>"._UDDEIM_COMPOSE."</a>"; } } if ($isoutbox) { if ($config->actionicons) { $newemail = "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=new&recip=".$userid."&Itemid=".$item_id)."'>"; $newemail .= "<img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/menu_new.gif' alt='"._UDDEIM_COMPOSE."' />"; $newemail .= "</a>"; } else { $newemail = "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=new&recip=".$userid."&Itemid=".$item_id)."'>"._UDDEIM_COMPOSE."</a>"; } } // CRYPT $cm = uddeIMgetMessage($themessage->message, $cryptpass, $themessage->cryptmode, $themessage->crypthash, $config->cryptkey); $teasermessage=$cm; // if it is a system message or bb codes allowed, parse BB codes if ($themessage->systemflag || $config->allowbb) $teasermessage=uddeIMbbcode_strip($teasermessage); $teasermessage=uddeIMteaser(stripslashes($teasermessage), $config->firstwordsinbox, $config->quotedivider, $config->languagecharset); $teasermessage=htmlspecialchars($teasermessage, ENT_QUOTES, $config->charset); $teasermessage=str_replace("&#", "&#", $teasermessage); $safemessage=htmlspecialchars(stripslashes($cm), ENT_QUOTES, $config->charset); $showemail = ""; if ($isinbox) { if ($themessage->cryptmode==2 || $themessage->cryptmode==4) { // Message is encrypted, so go to enter password page $messagecell= "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=showpass&Itemid=".$item_id."&messageid=".$themessage->id)."'>".$teasermessage."</a>"; $showemail = "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=showpass&Itemid=".$item_id."&messageid=".$themessage->id)."'>"; $showemail .= "<img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/page_white_magnify.gif' alt='"._UDDEIM_DISPLAY."' />";; $showemail .= "</a>"; } else { // normal message // $messagecell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=show&Itemid=".$item_id."&messageid=".$themessage->id)."'>".$teasermessage."</a>"; $messagecell="<a href='javascript:uddeIMtoggleLayer2(\"".$i."\");'>".$teasermessage."</a>"; $showemail = "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=show&Itemid=".$item_id."&messageid=".$themessage->id)."'>"; $showemail .= "<img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/page_white_magnify.gif' alt='"._UDDEIM_DISPLAY."' />";; $showemail .= "</a>"; } } if ($isoutbox) { if ($themessage->cryptmode==2 || $themessage->cryptmode==4) { // Message is encrypted, so go to enter password page $messagecell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=showoutpass&Itemid=".$item_id."&messageid=".$themessage->id)."'>".$teasermessage."</a>"; $showemail = "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=showoutpass&Itemid=".$item_id."&messageid=".$themessage->id)."'>"; $showemail .= "<img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/page_white_magnify.gif' alt='"._UDDEIM_DISPLAY."' />";; $showemail .= "</a>"; } else { // normal message // $messagecell="<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=showout&Itemid=".$item_id."&messageid=".$themessage->id)."'>".$teasermessage."</a>"; $messagecell="<a href='javascript:uddeIMtoggleLayer2(\"".$i."\");'>".$teasermessage."</a>"; $showemail = "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=showout&Itemid=".$item_id."&messageid=".$themessage->id)."'>"; $showemail .= "<img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/page_white_magnify.gif' alt='"._UDDEIM_DISPLAY."' />";; $showemail .= "</a>"; } } $datumcell=uddeDate($themessage->datum, $config, uddeIMgetUserTZ()); // checkcell $delcell="<input type='checkbox' name='arcmes[]' value='".$themessage->id."' />"; //echo "<tr class='sectiontableentry1'>"; echo "<tr class='uddeim-messagebody2header'>"; echo "<td style='padding:4px; border-bottom:none; border-right:none; width:32px; text-align:center; vertical-align:top'>".$delcell."</td>"; // checkcell echo "<td style='padding:4px; border-bottom:none; border-right:none; width:32px; text-align:center; vertical-align:top'>". $readcell.$attachcell.$flagcell. "</td>"; $st=uddeIMgetStyleForThumb($config); //echo "<td ".$st.">"; echo "<td style='padding:4px; border-bottom:none; border-right:none; vertical-align:top'>"; if ($isinbox) echo uddeIMdoInboxHeader($myself, $themessage, $config); if ($isoutbox) echo uddeIMdoOutboxHeader($myself, $themessage, $config); echo "</td>"; echo "<td style='padding:4px; border-bottom:none; border-right:none; vertical-align:top'>"; echo $datumcell; echo $spamcell.$spamcellflag; echo "</td>"; if ($config->actionicons) { echo "<td style='padding:4px; border-bottom:none; width:32px; text-align:center; vertical-align:top'>". // $fwdcell.$recallcell.$archivecell.$deletecell."<br /><br />".$newemail. $fwdcell.$recallcell.$archivecell.$deletecell. "</td>"; } else { echo "<td style='padding:4px; border-bottom:none; vertical-align:top' class='pathway'>". $fwdcell.$recallcell.$archivecell.$deletecell."<br /><br />".$newemail. "</td>"; } echo "</tr>\n"; // if ($themessage->cryptmode!=2 && $themessage->cryptmode!=4) { // Message is encrypted, so display no message // ############################################################# MESSSAGE $cm = uddeIMgetMessage($themessage->message, $cryptpass, $themessage->cryptmode, $themessage->crypthash, $config->cryptkey); // echo str_replace("&#", "&#", nl2br(htmlspecialchars(stripslashes($cm), ENT_QUOTES, $config->charset))); $dmessage = nl2br(htmlspecialchars(stripslashes($cm), ENT_QUOTES, $config->charset)); $dmessage = str_replace("&#", "&#", $dmessage); // unicode workaround // if system message or bbcodes allowed, call parser if ($themessage->systemflag || $config->allowbb) $dmessage = uddeIMbbcode_replace($dmessage, $config); if ($config->allowsmile) $dmessage = uddeIMsmile_replace($dmessage, $config); $bodystring = $dmessage; // converted message for email body if (0) { echo "<tr class='uddeim-messagebody2body'>"; echo "<td colspan='3' style='border-style:none; padding:0 8px 0 8px; text-align:left; vertical-align:bottom'>"; echo str_replace("<br />", "", $fwdcell." ".$recallcell." ".$archivecell." ".$deletecell." ".$newemail); echo "</td>"; echo "<td colspan='2' style='border-style:none; padding:0 8px 0 8px; text-align:right; vertical-align:middle'>"; echo str_replace("<br />", "", $readcell.$attachcell.$flagcell); echo "</td>"; echo "</tr>"; } echo "<tr class='uddeim-messagebody2body'>"; echo "<td colspan='4' style='padding:8px; border-top:none; border-right:none;'>"; // echo "<div style='text-align:right;'><a href='javascript:uddeIMtoggleLayer2(\"".$i."\");'>"._UDDEADM_SPAMCONTROL_SHOWHIDE."</a></div>"; if ($config->postboxfull==0) { $st_preview = "display:inline;"; $st_normal = "display:none;"; } if ($config->postboxfull==1) { if ($i==1) { $st_preview = "display:none;"; $st_normal = "display:inline;"; } else { $st_preview = "display:inline;"; $st_normal = "display:none;"; } } if ($config->postboxfull==2) { $st_preview = "display:none;"; $st_normal = "display:inline;"; } echo "<div id='uddeimdivlayerpreview_".$i."' style='".$st_preview."'>"; echo "<div class='uddeim-messagebody2'>".$messagecell."</div>"; echo "</div>\n"; echo "<div id='uddeimdivlayer_".$i."' style='".$st_normal."'>"; $messagecell="<a href='javascript:uddeIMtoggleLayer2(\"".$i."\");'>".uddeIMreplyquoteMarkup($bodystring,$config->quotedivider)."</a>"; echo "<div class='uddeim-messagebody2'>".$messagecell."</div>"; // UDDEIMFILE if( $config->enableattachment ) { // Always show attachments when attachments are enabled if ($isinbox) uddeIMshowAttachments("inbox", $item_id, $themessage->id, $config); if ($isoutbox) uddeIMshowAttachments("outbox", $item_id, $themessage->id, $config); } echo "</div>\n"; echo "</td>\n"; echo "<td style='padding:4px; border-top:none; border-left:none; width:32px; text-align:center; vertical-align:top'>"; echo $newemail."<br />".$showemail; echo "</td>\n"; echo "</tr>\n"; // } $i++; $k++; if ($k > 2) $k = 1; } $muldel = uddeIMsefRelToAbs("index.php?option=com_uddeim&task=mulpostboxdelete&Itemid=".$item_id."&recip=".$userid."&limitstart=0&limit=".$limit); if($config->bottomlineicons) { echo "<tr><th style='border:none; text-align:center;' class='sectiontablefooter'>"; echo '<a href="#" onclick="inboxDelete(\''.$muldel.'\'); return false;"><img src="'.$pathtosite.'/components/com_uddeim/templates/'.$config->templatedir.'/images/trash.gif" alt="'._UDDEIM_TRASHCHECKED.'" title="'._UDDEIM_TRASHCHECKED.'"/></a>'; echo "</th><th style='border:none;' class='sectiontablefooter'> </th><th style='border:none;' class='sectiontablefooter'> </th><th style='border:none;' class='sectiontablefooter'> </th><th style='border:none;' class='sectiontablefooter'> </th></tr>\n"; } // now close inbox table and container echo "</table></div>\n"; // checkcell echo "</form>\n"; // write the inbox navigation links $pageNav = new uddeIMmosPageNav($totalpostbox, $limitstart, $limit); $referlink = "index.php?option=com_uddeim&task=postboxuser&Itemid=".$item_id."&recip=".$userid; if ($totalpostbox>$limit) { $shownav = $pageNav->writePagesLinks($referlink); $shownav = uddeIMarrowReplace($shownav, $config->templatedir); echo "<div id='uddeim-pagenav'>".$shownav."<br />"; echo "[<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=postboxuser&Itemid=".$item_id."&recip=".$userid."&limitstart=0&limit=".$totalpostbox)."'>"._UDDEIM_SHOWALL."</a>]"; echo "</div>\n"; } $showinboxlimit_borderbottom = ""; if ($limitwarning) { $showinboxlimit_borderbottom = "<span class='uddeim-warning'>"; $showinboxlimit_borderbottom.= $limitreached." "; $showinboxlimit_borderbottom.= $limitwarning; $showinboxlimit_borderbottom.= "</span>"; } $keephours1=($config->ReadMessagesLifespan) * 1; // this are days $keephours2=($config->UnreadMessagesLifespan) * 1; // this are days echo "<div id='uddeim-bottomlines'>"; if(!$config->bottomlineicons) echo '<p><a href="#" onclick="inboxDelete(\''.$muldel.'\'); return false;">'._UDDEIM_TRASHCHECKED.'</a></p>'; if ($config->ReadMessagesLifespanNote) echo "<p>"._UDDEIM_READ_INFO_1.$keephours1._UDDEIM_READ_INFO_2."</p>"; if ($config->UnreadMessagesLifespanNote) echo "<p>"._UDDEIM_UNREAD_INFO_1.$keephours2._UDDEIM_UNREAD_INFO_2."</p>"; if ($showinboxlimit_borderbottom) echo "<p>".$showinboxlimit_borderbottom."</p>"; echo "</div>\n"; //if ($config->enablefilter==2 || $config->enablefilter==3) // uddeIMprintFilter($myself, 'postboxuser', $totalpostbox, $item_id, $config, $filter_user, $filter_unread, $filter_flagged); echo "</div>\n<div id='uddeim-bottomborder'>".uddeIMcontentBottomborder($myself, $item_id, 'standard', $limitreached, $config)."</div>\n"; // echo "</div>\n<div id='uddeim-bottomborder'>".uddeIMcontentBottomborder($myself, $item_id, 'standard', $showinboxlimit_borderbottom, $config)."</div>\n"; }
function uddeIMrssFeedPlugin($versionstring, $userid, $config) { $database = uddeIMgetDatabase(); $sitename = uddeIMgetSitename(); $live_site = uddeIMgetPath('live_site'); $Itemid = uddeIMmosGetParam( $_REQUEST, 'Itemid'); if (!$Itemid || !isset($Itemid) || empty( $Itemid )) { $Itemid = uddeIMgetItemid($config); } else if ($config->overwriteitemid) { $Itemid = (int)$config->useitemid; } $item_id = (int)$Itemid; $username = stripslashes( strval( uddeIMmosGetParam ($_REQUEST, 'user', '') )); $passwd = stripslashes( strval( uddeIMmosGetParam ($_REQUEST, 'pass', '') )); $showall = (int) uddeIMmosGetParam ($_REQUEST, 'showall', 0); $type = (int) uddeIMmosGetParam ($_REQUEST, 'type', 0); $row = uddeIMselectUserrecordFromUsername($username, $config); if ($row) { if ($row->block) { uddeIMrssOutputHeader($versionstring); uddeIMrssOutputItem($type, "Code=5", _UDDEIM_RSS_USERBLOCKED, ""); uddeIMrssOutputFooter(); return; } $gid = uddeIMgetGID($row->id); // $userid if (!$config->enablerss || ($config->enablerss==2 && !uddeIMisAdmin($gid) && !uddeIMisAdmin2($gid, $config))) { uddeIMrssOutputHeader($versionstring); uddeIMrssOutputItem($type, "Code=2", _UDDEIM_RSS_NOTALLOWED, ""); uddeIMrssOutputFooter(); return; } if ((strpos($row->password, ':') === false) && $row->password == md5($passwd)) { // Old password hash storage but authentic ... lets convert it $salt = uddeIMmosMakePassword(16); $crypt = md5($passwd.$salt); $row->password = $crypt.':'.$salt; } list($hash, $salt) = explode(':', $row->password); $hash_db = sha1($hash); // the hash value from the user database $hash_post = $passwd; if ($hash_db != $hash_post) { uddeIMrssOutputHeader($versionstring); uddeIMrssOutputItem($type, "Code=3", _UDDEIM_RSS_WRONGPASSWORD, ""); uddeIMrssOutputFooter(); return; } uddeIMrssOutputHeader($versionstring); $filter = ""; if (!$showall) { $filter = "AND a.toread=0 "; } $limit = ""; if ($config->rsslimit) $limit = " LIMIT ".(int)$config->rsslimit; $userid = uddeIMgetIDfromUsername($username, $config, true); $sql = "SELECT a.*, b.".($config->realnames ? "name" : "username")." AS fromname FROM #__uddeim AS a LEFT JOIN #__users AS b ON a.fromid=b.id WHERE a.toid=".(int)$userid." AND a.totrash=0 AND a.archived=0 AND `a`.`delayed`=0 ".$filter."ORDER BY a.datum DESC".$limit; $database->setQuery($sql); $rows = $database->loadObjectList(); if (!$rows) { $pms_show = uddeIMsefRelToAbs("index.php?option=com_uddeim&Itemid=".$item_id); uddeIMrssOutputItem($type,($showall ? "Code=0" : "Code=1"), ($showall ? _UDDEIM_RSS_NOMESSAGES : _UDDEIM_RSS_NONEWMESSAGES), "", $pms_show); } else { foreach ($rows as $row) { $fromname = uddeIMevaluateUsername($row->fromname, $row->fromid, $row->publicname); if($row->systemmessage) $fromname = $row->systemmessage; if ($row->cryptmode==2) $pms_show = uddeIMsefRelToAbs("index.php?option=com_uddeim&Itemid=".$item_id."&task=showpass&messageid=".$row->id); else $pms_show = uddeIMsefRelToAbs("index.php?option=com_uddeim&Itemid=".$item_id."&task=show&messageid=".$row->id); $cm = uddeIMgetMessage($row->message, "", $row->cryptmode, "", $config->cryptkey); $cm = stripslashes($cm); if($row->systemflag || $config->allowbb) { $cm = uddeIMbbcode_strip($cm); } $cm = htmlspecialchars($cm, ENT_QUOTES, $config->charset); $cm = str_replace("&#", "&#", $cm); $title = $fromname.": ".substr($cm,0,30); $pubdate = date("r",$row->datum); $desc = substr($cm,0,500); uddeIMrssOutputItem(0, "", $title, $desc, $pms_show, $pubdate); } } uddeIMrssOutputFooter(); } else { uddeIMrssOutputHeader($versionstring); uddeIMrssOutputItem($type, "Code=4", _UDDEIM_RSS_NOOBJECT, ""); uddeIMrssOutputFooter(); } }
/** * returns userlist for autocomplete functionality * @since J!1.5 - uddeim 0.9b+ 2007-11-21 * @author zenny */ function uddeIMcompleteUserName($myself, $config){ // look for json encoding abilities, first native php, then global pear package, then local pear copy (switched by joomla version again) if (!function_exists('json_encode') && !class_exists('Services_JSON')) { if ( !@include_once('JSON.php') ) { require_once( uddeIMgetPath('absolute_path').'/components/com_uddeim/json.php' ); } } $db = uddeIMgetDatabase(); // get and filter input (switch for jjoom and joom again) $input = trim( class_exists('JRequest') ? JRequest::getVar('value') : uddeIMmosGetParam($_REQUEST, 'value', '') ); // $input = rawurldecode($input); // $input = utf8_decode($input); // if (!class_exists('JFilterInput')) if (function_exists('iconv')) $input=iconv('UTF-8',$config->charset,$input); if (class_exists('JFilterInput')) $input = JFilterInput::clean($input, 'username'); else $input = (string) preg_replace( '/[\x00-\x1F\x7F<>"\'%&]/', '', $input ); // do not fetch stuff from db if request is faulty in any way or empty, but return an blank result set if ( strlen($input) == 0){ $results = Array(); } else { $fieldToUse = $config->realnames ? 'name' : 'username'; // NOTE: modify the input quote to extend wildcard matching if (uddeIMcheckJversion()>=5) { // J3.0 if ($myself) { $my_gid = $config->usergid; $hide = ""; if ($config->hideusers && !uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) $hide = "AND u.id NOT IN (".uddeIMquoteSmart($config->hideusers).") "; $hide2 = ""; if ($config->blockgroups && uddeIMisReggedOnly($my_gid)) $hide2 = "AND g.id NOT IN (".uddeIMquoteSmart($config->blockgroups).") "; $query = sprintf( 'SELECT DISTINCT u.id,u.%1$s 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 AND u.%1$s LIKE %2$s '.$hide.$hide2.'ORDER BY u.%1$s LIMIT 50' , $fieldToUse // , JDatabase::quoteName( $fieldToUse ) , $db->Quote( ($config->searchinstring ? '%' : '').$input.'%' ) ); } } elseif (uddeIMcheckJversion()>=2) { // J1.6 if ($myself) { $my_gid = $config->usergid; $hide = ""; if ($config->hideusers && !uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) $hide = "AND u.id NOT IN (".uddeIMquoteSmart($config->hideusers).") "; $hide2 = ""; if ($config->blockgroups && uddeIMisReggedOnly($my_gid)) $hide2 = "AND g.id NOT IN (".uddeIMquoteSmart($config->blockgroups).") "; $query = sprintf( 'SELECT DISTINCT u.id,u.%1$s 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 AND u.%1$s LIKE %2$s '.$hide.$hide2.'ORDER BY u.%1$s LIMIT 50' , $db->nameQuote( $fieldToUse ) // ok , $db->Quote( ($config->searchinstring ? '%' : '').$input.'%' ) ); } else { $hide = ""; if ($config->hideusers && !uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) $hide = "AND a.id NOT IN (".uddeIMquoteSmart($config->hideusers).") "; $hide2 = ""; if ($config->pubblockgroups) $hide2 = "AND g.id NOT IN (".uddeIMquoteSmart($config->pubblockgroups).") "; $query = sprintf( 'SELECT DISTINCT u.id,u.%1$s 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) INNER JOIN #__uddeim_emn AS b ON u.id=b.userid WHERE b.public=1 AND u.block=0 AND u.%1$s LIKE %2$s '.$hide.$hide2.'ORDER BY u.%1$s LIMIT 50' , $db->nameQuote( $fieldToUse ) // ok , $db->Quote( ($config->searchinstring ? '%' : '').$input.'%' ) ); } } else { if ($myself) { $my_gid = $config->usergid; $hide = ""; if ($config->hideusers && !uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) $hide = "AND id NOT IN (".uddeIMquoteSmart($config->hideusers).") "; $hide2 = ""; if ($config->blockgroups && uddeIMisReggedOnly($my_gid)) $hide2 = "AND gid NOT IN (".uddeIMquoteSmart($config->blockgroups).") "; $query = sprintf( 'SELECT %1$s AS displayname FROM `#__users` WHERE `block` = 0 AND %1$s LIKE %2$s '.$hide.$hide2.'ORDER BY %1$s LIMIT 50' , $db->nameQuote( $fieldToUse ) // ok , $db->Quote( ($config->searchinstring ? '%' : '').$input.'%' ) ); } else { $hide = ""; if ($config->hideusers && !uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) $hide = "AND a.id NOT IN (".uddeIMquoteSmart($config->hideusers).") "; $hide2 = ""; if ($config->pubblockgroups) $hide2 = "AND a.gid NOT IN (".uddeIMquoteSmart($config->pubblockgroups).") "; $query = sprintf( 'SELECT a.%1$s AS displayname FROM `#__users` AS a, `#__uddeim_emn` AS b WHERE a.id=b.userid AND b.public=1 AND a.block=0 AND a.%1$s LIKE %2$s '.$hide.$hide2.'ORDER BY a.%1$s LIMIT 50' , $db->nameQuote( $fieldToUse ) // ok , $db->Quote( ($config->pubsearchinstring ? '%' : '').$input.'%' ) ); } } $db->setQuery( $query ); $results = $db->loadObjectList(); } $items = Array(); $use_jason = 1; $use_xml = 0; if ($use_jason) { // - old style uddeIM 1.1 // assign results foreach ( $results as $item ) { // on some systems "rawurlencode" makes troubles, so special characters are displayed wrong, if this happens, remove this function // $temp = iconv($config->charset,'UTF-8',$temp); // $temp = ($item->displayname); // works in J1.5 $temp = $item->displayname; if (function_exists('iconv')) $temp = iconv($config->charset,'UTF-8',$temp); // fix for 1.2 $items[] = rawurlencode($temp); // works in J1.0 - uddeIM 1.1 style } // encode to json and print, using available methods if (function_exists('json_encode')) echo json_encode($items); else{ $json = new Services_JSON(); echo $json->encode($items); } } if ($use_xml) { $i = 0; foreach ( $results as $item ) { $temp = $item->displayname; if (function_exists('iconv')) $temp = iconv($config->charset,'UTF-8',$temp); $items[] = array( "id"=>($i+1) ,"value"=>rawurlencode($temp), "info"=>rawurlencode("") ); $i++; } header ("Expires: Mon, 26 Jul 1997 01:00:00 GMT"); // Date in the past header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 header ("Content-Type: application/json"); echo "["; $arr = array(); for ($i=0;$i<count($items);$i++) $arr[] = "\"".$items[$i]['value']."\""; // $arr[] = "{\"id\": \"".$items[$i]['id']."\", \"value\": \"".$items[$i]['value']."\", \"info\": \"\"}"; echo implode(", ", $arr); echo "]"; } }
function uddeIMselectAllUserlists($myself, $my_gid, $config, $withglobal=0) { $database = uddeIMgetDatabase(); if ($withglobal) // when it is a global list check globally $sql = "SELECT * FROM #__uddeim_userlists WHERE (global<>0 OR userid=".(int)$myself.") ORDER BY name"; else $sql = "SELECT * FROM #__uddeim_userlists WHERE userid=".(int)$myself." ORDER BY name"; $database->setQuery( $sql ); $value = $database->loadObjectList(); if (!$value) $value = Array(); // remove lists if required (1: global list => do not remove; 2: restricted list => remove if not on list or creator or admin) if (!uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) { while (list($key, $row) = each($value)) { if ($row->global==2) { // test if $myself in list $ar_ids = explode(",",$row->userids); $ar_ids[] = $row->userid; // the creator of the list is always allowed to access the list if (!in_array($myself,$ar_ids)) unset($value[$key]); } } } return $value; }
function uddeIMshowOutmessage($myself, $item_id, $messageid, $isforward, $cryptpass, $config) { global $uddeicons_onlinepic, $uddeicons_offlinepic, $uddeicons_readpic, $uddeicons_unreadpic; $my_gid = $config->usergid; $displaymessages = uddeIMselectOutboxMessage($myself, $messageid, $config, 0); if(count($displaymessages)<1) { echo _UDDEIM_MESSAGENOACCESS; return; } // write the uddeim menu uddeIMprintMenu($myself, 'showOutmessage', $item_id, $config); echo "<div id='uddeim-m'>\n"; foreach($displaymessages as $displaymessage) { $msgread=$displaymessage->toread; $toname = uddeIMevaluateUsername($displaymessage->toname, $displaymessage->toid, $displaymessage->publicname); // CRYPT $cm = uddeIMgetMessage($displaymessage->message, $cryptpass, $displaymessage->cryptmode, $displaymessage->crypthash, $config->cryptkey); // echo str_replace("&#", "&#", nl2br(htmlspecialchars(stripslashes($cm), ENT_QUOTES, $config->charset))); $dmessage = nl2br(htmlspecialchars(stripslashes($cm), ENT_QUOTES, $config->charset)); $dmessage = str_replace("&#", "&#", $dmessage); // unicode workaround $dmessage = str_replace("&</br>", "</br>", $dmessage); // if system message or bbcodes allowed, call parser if ($displaymessage->systemflag || $config->allowbb) $dmessage=uddeIMbbcode_replace($dmessage, $config); if ($config->allowsmile) $dmessage=uddeIMsmile_replace($dmessage, $config); $bodystring=$dmessage; $replytomessage = uddeIMreplySuggestion($cm, $displaymessage, "", $toname, $isforward, "outbox", $config); // We used an placeholder above to insert the "reply suggestion" for the "mailto:" link $urlbody = rawurlencode($replytomessage); // display the message $headerstring="<table class='innermost'><tr>"; // does CB have a thumbnail image of the receiver? if ($config->showcbpic && $displaymessage->toname || $config->gravatar) { $topic = uddeIMgetPicOnly($displaymessage->toid, $config); if ($topic) $headerstring.="<td valign='top' rowspan='2'>".$topic."</td>\n"; } $headerstring.="<td valign='top' width='99%'><div class='uddeim-messagefrom'>"; $headerstring.=_UDDEIM_MESSAGETO; // show links ??? $temp = $toname; if ($config->showcblink && $displaymessage->toname) { $temp = uddeIMgetLinkOnly($displaymessage->toid, $toname, $config); } // display email address if ($displaymessage->toname==NULL && !$displaymessage->toid && $displaymessage->publicemail!=NULL) $temp .= " <<a href='mailto:".$displaymessage->publicemail."?body=".$urlbody."'>".$displaymessage->publicemail."</a>>"; $headerstring.=$temp; // is this user currently online? if ($config->showonline && $displaymessage->toname) { $isonline = uddeIMisOnline($displaymessage->toid); if($isonline) $headerstring.=" ".$uddeicons_onlinepic; else $headerstring.=" ".$uddeicons_offlinepic; } $headerstring.="<br />"; $headerstring.=uddeLdate($displaymessage->datum, $config, uddeIMgetUserTZ()); $headerstring.="</div></td><td valign='top' rowspan='2'><span class='uddeim-clear'> </span><ul>"; // show delete links if ($config->allowforwards) { if ($displaymessage->cryptmode==2 || $displaymessage->cryptmode==4) { // Message is encrypted, so go to enter password page $headerstring.="<li class='uddeim-messageactionlink-forward'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forwardoutboxpass&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_FORWARDLINK."</a></li>\n"; } else { // normal message $headerstring.="<li class='uddeim-messageactionlink-forward'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=forwardoutbox&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_FORWARDLINK."</a></li>\n"; } } if (!$displaymessage->totrashoutbox) { // but only if not already moved to trash $headerstring.="<li class='uddeim-messageactionlink-delete'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=deletefromoutbox&Itemid=".$item_id."&ret=top&messageid=".$displaymessage->id)."'>"._UDDEIM_DELETELINK."</a></li>\n"; } if (!$displaymessage->toread) { // if not read then a recall is possible if ($displaymessage->cryptmode==2 || $displaymessage->cryptmode==4) { // Message is encrypted, so go to enter password page $headerstring.="<li class='uddeim-messageactionlink-recall'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=recallpass&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_RECALL."</a></li>\n"; } else { // normal message $headerstring.="<li class='uddeim-messageactionlink-recall'><a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=recall&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_RECALL."</a></li>\n"; } } $headerstring.="</ul></td>"; $headerstring.="</tr>"; $msgnavigation = " "; if ($config->enablereply) { $msgnavigation = ""; $pathtosite = uddeIMgetPath('live_site'); $pic = "<img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/envelope.gif' alt='"._UDDEIM_PMNAV_EXISTS."' title='"._UDDEIM_PMNAV_EXISTS."' />"; $picdel = "<img src='".$pathtosite."/components/com_uddeim/templates/".$config->templatedir."/images/envelope_deleted.gif' alt='"._UDDEIM_PMNAV_DELETED."' title='"._UDDEIM_PMNAV_DELETED."' />"; $replyid = $displaymessage->replyid; if ($replyid) { $msgnavigation .= _UDDEIM_PMNAV_THISISARESPONSE; $orig = uddeIMselectInboxMessage($myself, $replyid, $config, 0); $temp = Array(); foreach($orig as $or) $temp = $or; $orig = $temp; if (count($orig)>0) { // the message should be stored in the outbox if ($orig->cryptmode==2 || $orig->cryptmode==4) { // Message is encrypted, so go to enter password page $msgnavigation .= " <a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=showpass&Itemid=".$item_id."&messageid=".$replyid)."'>".$pic."</a>"; } else { // normal message $msgnavigation .= " <a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=show&Itemid=".$item_id."&messageid=".$replyid)."'>".$pic."</a>"; } } else { $msgnavigation .= " ".$picdel; } } $repls = uddeIMselectMessageReplies($displaymessage->id, 'inbox', $myself); if (count($repls)>0) { $msgnavigation .= "<br />"; $msgnavigation .= _UDDEIM_PMNAV_THEREARERESPONSES; foreach($repls as $repl) { if ($repl->cryptmode==2 || $repl->cryptmode==4) { // Message is encrypted, so go to enter password page $msgnavigation .= " <a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=showpass&Itemid=".$item_id."&messageid=".$repl->id)."'>".$pic."</a>"; } else { // normal message $msgnavigation .= " <a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=show&Itemid=".$item_id."&messageid=".$repl->id)."'>".$pic."</a>"; } $msgnavigation .= " "; } } } $headerstring.="<tr><td valign='bottom'><div class='uddeim-messagefrom'>".trim($msgnavigation)."</div></td></tr>"; $headerstring.="</table>"; if (!$isforward) { echo "<div class='uddeim-messageheader'>".$headerstring."</div>"; echo "<div class='uddeim-messagebody'>".uddeIMreplyquoteMarkup($bodystring,$config->quotedivider)."</div>"; // UDDEIMFILE if( $config->enableattachment ) // Always show attachments when attachments are enabled uddeIMshowAttachments("outbox", $item_id, $displaymessage->id, $config); } $trashmessage = $displaymessage->totrashoutbox; } if ($config->inboxlimit) { // there is a limit for inbox + archive if ($config->allowarchive) { // have an archive and an "archive and inbox" limit, so get number of messages in inbox and archive $universeflag = _UDDEIM_ARC_UNIVERSE_BOTH; // inbox and archive $total = uddeIMgetInboxArchiveCount($myself); } else { // user has switched off archive but there is an limit for "inbox", so count inbox messages only $universeflag = _UDDEIM_ARC_UNIVERSE_INBOX; // inbox $total = uddeIMgetInboxCount($myself); } // "You have XX messages in your inbox/inbox+archive." $limitreached = _UDDEIM_INBOX_LIMIT_1." ".$total; $limitreached.= " ".($total==1 ? _UDDEIM_INBOX_LIMIT_2_SINGULAR : _UDDEIM_INBOX_LIMIT_2)." "; $limitreached.= $universeflag; if (!uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config) && ($isforward && $config->allowforwards)) { // so the warning is only displayed when a forward is possible // "The allowed maximum is XX." // $limitreached.= _UDDEIM_INBOX_LIMIT_3." ".$config->maxarchive.". "; $limitreached.= " "._UDDEIM_SHOWINBOXLIMIT_2." ".$config->maxarchive.")."; // (of max. ) if ($total > $config->maxarchive) { // "You have XX messages in your inbox/inbox+archive." $limitreached = _UDDEIM_INBOX_LIMIT_1." ".$total; $limitreached.= " ".($total==1 ? _UDDEIM_INBOX_LIMIT_2_SINGULAR : _UDDEIM_INBOX_LIMIT_2)." "; $limitreached.= $universeflag; // You can still receive and read messages but you will not be able to reply or to compose new ones until you delete messages. $limitwarning = _UDDEIM_INBOX_LIMIT_4; $showinboxlimit_borderbottom = "<span class='uddeim-warning'>"; $showinboxlimit_borderbottom.= $limitreached." "; $showinboxlimit_borderbottom.= $limitwarning; $showinboxlimit_borderbottom.= "</span>"; echo "<div id='uddeim-bottomlines'>".$showinboxlimit_borderbottom."</div>"; // close main container echo "</div>\n<div id='uddeim-bottomborder'>".uddeIMcontentBottomborder($myself, $item_id, 'standard', $limitreached, $config)."</div>\n"; return; } } } if ($isforward && $config->allowforwards) { // it is a forward // show reply form if(!$trashmessage) { // but only if not already moved to trash $tbackto = uddeIMmosGetParam($_SERVER, 'HTTP_REFERER', null); if(stristr($tbackto, "com_uddeim")) { $tbackto=""; } uddeIMdrawWriteform($myself, $my_gid, $item_id, $tbackto, "", $replytomessage, 0, 0, 0, 0, $config); } else { // offer recycle link echo "<div id='uddeim-bottomlines'>"._UDDEIM_YOUMOVEDTOTRASH; echo "<br />"; echo "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=restore&Itemid=".$item_id."&messageid=".$replytoid)."'>"._UDDEIM_RESTORE."</a></div>\n"; } } // recall link if unread if (!$msgread) { echo "<div id='uddeim-bottomlines'>"; if ($displaymessage->cryptmode==2 || $displaymessage->cryptmode==4) { // Message is encrypted, so go to enter password page echo "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=recallpass&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_RECALLTHISMESSAGE."</a>"; } else { // normal message echo "<a href='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=recall&Itemid=".$item_id."&messageid=".$displaymessage->id)."'>"._UDDEIM_RECALLTHISMESSAGE."</a>"; } echo "</div>\n"; } echo "</div>\n<div id='uddeim-bottomborder'>".uddeIMcontentBottomborder($myself, $item_id, 'standard', 'none', $config)."</div>\n"; }
$option = uddeIMmosGetParam( $_REQUEST, 'option', 'com_uddeim'); if ($config->version!=$configversion) { $task='convertconfig'; // its the wrong configuration file, so we have to convert it first } if (uddeIMcheckJversion()>=4) { // Joomla >=2.5 // Action: "Access Administration Interface " // Access check: is this user allowed to access the backend of this component? if (!JFactory::getUser()->authorise('core.manage', 'com_uddeim')) { return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR')); } } else { $userid = uddeIMgetUserID(); $my_gid = uddeIMgetGID($userid); if (!uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) { $mosmsg = _UDDEIM_VIOLATION; $redirecturl = uddeIMredirectIndex(); uddeIMmosRedirect($redirecturl, $mosmsg); } } $act = uddeIMmosGetParam($_REQUEST, 'act', ''); $id = uddeIMmosGetParam($_REQUEST, 'id', 0); $uddeid = uddeIMmosGetParam($_REQUEST, 'uddeid', array()); if (!is_array($uddeid)) { $uddeid = array(); } echo "\n<!-- ".$versionstring." output below -->\n";