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 uddeIMsaveSysgm($myself, $to_name, $to_id, $pmessage, $tobedeleted, $tobedeletedsent, $forceembedded, $item_id, $messageid, $sysgm_sys, $sysgm_nonotify, $sysgm_universe, $sysgm_validfor, $sysgm_really, $cryptpass, $config) { $database = uddeIMgetDatabase(); $to_name = stripslashes($to_name); $my_gid = $config->usergid; if ($config->allowsysgm==0 || ($config->allowsysgm==1 && !uddeIMisAdmin($my_gid) && !uddeIMisAdmin2($my_gid, $config)) || ($config->allowsysgm==2 && !uddeIMisManager($my_gid)) ) { $mosmsg=_UDDEIM_NOTALLOWED_SYSM_GM; uddeJSEFredirect("index.php?option=com_uddeim&task=inbox&Itemid=".$item_id, $mosmsg); } // what is username of sender? $sendername = uddeIMgetNameFromID($myself, $config); if ($sysgm_sys) $sendername=$config->sysm_username; if (!$sysgm_really) { // send not confirmed. ask for confirmation // CAPTCHA (first check for all other errors and then the CAPTCHA) if (!uddeIMcheckCAPTCHA($my_gid, $config)) { uddeIMprintMenu($myself, 'new', $item_id, $config); echo "<div id='uddeim-m'>\n"; $to_name=stripslashes($to_name); $pmessage=stripslashes($pmessage); uddeIMdrawWriteform($myself, $my_gid, $item_id, "", $to_name, $pmessage, 0, 0, 7, 1, $config); echo "</div>\n<div id='uddeim-bottomborder'></div>\n"; return; } if (!uddeIMcheckCSRF($config)) { uddeIMprintMenu($myself, 'new', $item_id, $config); echo "<div id='uddeim-m'>\n"; $to_name=stripslashes($to_name); $pmessage=stripslashes($pmessage); uddeIMdrawWriteform($myself, $my_gid, $item_id, "", $to_name, $pmessage, 0, 0, 15, 1, $config); echo "</div>\n<div id='uddeim-bottomborder'></div>\n"; return; } uddeIMprintMenu($myself, 'new', $item_id, $config); echo "<div id='uddeim-m'>\n"; echo "<div id='uddeim-toplines'><p>"._UDDEIM_SYSGM_PLEASECONFIRM."</p></div>\n"; echo "<div id='uddeim-message'><table cellpadding='7' cellspacing='1' width='100%'>\n"; $usql=""; // send to unblocked users only getAdditonalGroups($add_special, $add_admin, $config); if (uddeIMcheckJversion()>=2) { // J1.6 if ($sysgm_universe=="sysgm_toall") { $universe=_UDDEIM_SYSGM_WILLSENDTOALL; $usql="SELECT count(id) FROM #__users WHERE block=0"; } elseif ($sysgm_universe=="sysgm_toalllogged") { $universe=_UDDEIM_SYSGM_WILLSENDTOALLLOGGED; $usql="SELECT count(a.id) FROM #__users AS a, #__session AS b WHERE a.block=0 AND a.id=b.userid"; } elseif ($sysgm_universe=="sysgm_toallspecial") { $universe=_UDDEIM_SYSGM_WILLSENDTOALLSPECIAL; $usql="SELECT count(*) FROM (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.")) AS aTable"; } elseif ($sysgm_universe=="sysgm_toalladmins") { $universe=_UDDEIM_SYSGM_WILLSENDTOALLADMINS; $usql="SELECT count(*) FROM (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.")) AS aTable"; } elseif ($config->showgroups) { $aclsql = "SELECT title AS name FROM #__usergroups WHERE id=".(int)$sysgm_universe; $database->setQuery($aclsql); $universe=$database->loadResult(); $usql="SELECT count(*) FROM (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 g.id=".(int)$sysgm_universe.") AS aTable"; } } else { if ($sysgm_universe=="sysgm_toall") { $universe=_UDDEIM_SYSGM_WILLSENDTOALL; $usql="SELECT count(id) FROM #__users WHERE block=0"; } elseif ($sysgm_universe=="sysgm_toalllogged") { $universe=_UDDEIM_SYSGM_WILLSENDTOALLLOGGED; $usql="SELECT count(a.id) FROM #__users AS a, #__session AS b WHERE a.block=0 AND a.id=b.userid"; } elseif ($sysgm_universe=="sysgm_toallspecial") { $universe=_UDDEIM_SYSGM_WILLSENDTOALLSPECIAL; $usql="SELECT count(id) FROM #__users WHERE block=0 AND gid IN (19,20,21,23,24,25".$add_admin.")"; } elseif ($sysgm_universe=="sysgm_toalladmins") { $universe=_UDDEIM_SYSGM_WILLSENDTOALLADMINS; $usql="SELECT count(id) FROM #__users WHERE block=0 AND gid IN (24,25".$add_admin.")"; } else { if ($config->showgroups) { if (uddeIMcheckJversion()>=1) $aclsql = "SELECT name FROM #__core_acl_aro_groups WHERE id=".(int)$sysgm_universe; else $aclsql = "SELECT name FROM #__core_acl_aro_groups WHERE group_id=".(int)$sysgm_universe; $database->setQuery($aclsql); $universe=$database->loadResult(); $usql="SELECT count(id) FROM #__users WHERE block=0 AND gid=".(int)$sysgm_universe; } } } if (!$universe) { $mosmsg=_UDDEIM_UNEXPECTEDERROR_QUIT." No recipients selected"; uddeJSEFredirect("index.php?option=com_uddeim&task=inbox&Itemid=".$item_id, $mosmsg); } if ($usql) { $database->setQuery($usql); $rf = (int)$database->loadResult(); $rft = ($rf==1) ? _UDDEIM_RECIPIENTFOUND : _UDDEIM_RECIPIENTSFOUND; $universe.=" (".$rf." ".$rft.")"; } // UDDEIMFILE // We have checked that everything is ok, now do the file uploads $uploadfile_temppathname = array(); $uploadfile_original = array(); $uploadfile_id = array(); $uploadfile_size = array(); $uploadfile_error = array(); if( $config->enableattachment && uddeIMisAttachmentAllowed($my_gid, $config)) { $noerror = uddeIMhandleAttachments($uploadfile_temppathname, $uploadfile_original, $uploadfile_id, $uploadfile_size, $uploadfile_error, $config); if (!$noerror) { // something goes wrong // BUGBUG: that is not the best error handling possible but is will do the work // iterate through all errorcodes and show the first error found, rest of data will be lost // ==> delete all files that were uploaded ok while (list($key, $value) = each( $uploadfile_temppathname )) { if (file_exists($value)) unlink($value); } while (list($key, $value) = each( $uploadfile_error )) { if ($value==-1) { // upload failed uddeIMprintMenu($myself, 'new', $item_id, $config); echo "<div id='uddeim-m'>\n"; $to_name=stripslashes($to_name); $pmessage=stripslashes($pmessage); uddeIMdrawWriteform($myself, $my_gid, $item_id, "", $to_name, $pmessage, 0, 0, 18, 1, $config); return; } if ($value==-2) { // file size exceeded uddeIMprintMenu($myself, 'new', $item_id, $config); echo "<div id='uddeim-m'>\n"; $to_name=stripslashes($to_name); $pmessage=stripslashes($pmessage); uddeIMdrawWriteform($myself, $my_gid, $item_id, "", $to_name, $pmessage, 0, 0, 19, 1, $config); return; } if ($value==-3) { // file type not allowed uddeIMprintMenu($myself, 'new', $item_id, $config); echo "<div id='uddeim-m'>\n"; $to_name=stripslashes($to_name); $pmessage=stripslashes($pmessage); uddeIMdrawWriteform($myself, $my_gid, $item_id, "", $to_name, $pmessage, 0, 0, 20, 1, $config); return; } } $uploadfile_temppathname = array(); // should never been reached when an error occurs but neverthless destroy old arrays $uploadfile_original = array(); $uploadfile_id = array(); $uploadfile_size = array(); $uploadfile_error = array(); } else { $savedatum=uddetime($config->timezone); uddeIMpreSaveAttachments($uploadfile_temppathname, $uploadfile_original, $uploadfile_id, $uploadfile_size, $savedatum, $config); } } // The uploaded file is stored in "$uploadfile_tempname" (with path) ad the original name in "$uploadfile_original" (without path) and an Id for the file. // When we reach this line we can store these fileames in the DB. $udde_infoheader = $universe."<br />"; $udde_infoheader .= _UDDEIM_SYSGM_WILLSENDAS_1.$sendername._UDDEIM_SYSGM_WILLSENDAS_2."<br />"; if($sysgm_sys) { $udde_infoheader .= _UDDEIM_SYSGM_WILLDISABLEREPLY."<br />"; } if($forceembedded && !$sysgm_nonotify) { $udde_infoheader .= _UDDEIM_SYSGM_FORCEEMBEDDED."<br />"; } if($sysgm_nonotify) { $udde_infoheader .= _UDDEIM_SYSGM_NONOTIFY."<br />"; } if($sysgm_validfor>0) { $now=uddetime($config->timezone); $validuntil_timestamp=$now+($sysgm_validfor*3600); $validuntil=date("Y-m-d H:i", $validuntil_timestamp); $udde_infoheader .= _UDDEIM_SYSGM_WILLEXPIRE." ".$validuntil."<br />"; } echo "\t<tr class='sectiontableentry1'>\n\t\t<td>".$udde_infoheader."</td></tr>\n"; // strip any HTML from message but don't add slashes yet $dmessage=strip_tags($pmessage); $dmessage=stripslashes($pmessage); $hmessage=htmlspecialchars($dmessage, ENT_QUOTES, $config->charset); $jmessage=$dmessage; $containslink=stristr($dmessage, "[url"); // parse bb code if it is a sysgm $dmessage=uddeIMbbcode_replace($dmessage, $config); $dmessage=uddeIMsmile_replace($dmessage, $config); echo "\t<tr class='sectiontableentry2'>\n\t\t\n\t\t<td>".nl2br($dmessage)."</td></tr>\n"; // to do echo "</table></div>\n"; echo "<div id='uddeim-writeform'>\n"; echo "<form method='post' action='".uddeIMsefRelToAbs("index.php?option=com_uddeim&task=savesysgm&Itemid=".$item_id)."'><input type='hidden' name='sysgm_sys' value='".$sysgm_sys."' />\n"; echo "<span style='display: none'>\n"; if ($sysgm_universe=="sysgm_toall") { echo "<input type='hidden' name='sysgm_universe' value='sysgm_toall' />\n"; } elseif ($sysgm_universe=="sysgm_toallspecial") { echo "<input type='hidden' name='sysgm_universe' value='sysgm_toallspecial' />\n"; } elseif ($sysgm_universe=="sysgm_toalladmins") { echo "<input type='hidden' name='sysgm_universe' value='sysgm_toalladmins' />\n"; } elseif ($sysgm_universe=="sysgm_toalllogged") { echo "<input type='hidden' name='sysgm_universe' value='sysgm_toalllogged' />\n"; } elseif ($config->showgroups) { echo "<input type='hidden' name='sysgm_universe' value='".$sysgm_universe."' />\n"; } echo "<input type='hidden' name='sysgm_validfor' value='".(int)$sysgm_validfor."' />\n"; echo "<textarea style='visibility: hidden;' name='pmessage' class='inputbox' rows='1' cols='60'>".$jmessage."</textarea>\n"; echo "<input type='hidden' name='sysgm_really' value='1' />\n"; echo "<input type='hidden' name='forceembedded' value='".(int)$forceembedded."' />\n"; echo "<input type='hidden' name='sysgm_nonotify' value='".(int)$sysgm_nonotify."' />\n"; echo "<span id='divpass' style='visibility:hidden;'><input type='hidden' name='cryptpass' value='".$cryptpass."' /></span>\n"; if( $config->enableattachment && uddeIMisAttachmentAllowed($my_gid, $config)) { while (list($key, $value) = each( $uploadfile_temppathname )) { echo "<input type='hidden' name='uploadfile_temppathname[". $key ."]' value=". $database->Quote($uploadfile_temppathname[$key]) ." />\n"; echo "<input type='hidden' name='uploadfile_original[". $key ."]' value=". $database->Quote($uploadfile_original[$key]) ." />\n"; echo "<input type='hidden' name='uploadfile_id[". $key ."]' value=". $database->Quote($uploadfile_id[$key]) ." />\n"; echo "<input type='hidden' name='uploadfile_size[". $key ."]' value=". $database->Quote($uploadfile_size[$key]) ." />\n"; } } echo "</span>\n"; echo "<input type='submit' name='reply' class='button' value='"._UDDEIM_SUBMIT."' />\n"; echo "<input type='button' class='button' value='".htmlspecialchars(_UDDEIM_DONTSEND, ENT_QUOTES, $config->charset)."' onclick='history.go(-1); return false;' />"; echo "</form>"; echo "</div>"; if ($containslink) { echo "<div id='uddeim-bottomlines'><p>"._UDDEIM_SYSGM_CHECKLINK."</p>\n</div>\n"; } echo "</div>\n<div id='uddeim-bottomborder'>".uddeIMcontentBottomborder($myself, $item_id, 'standard', 'none', $config)."</div>\n"; } else { // sysgm_really is set to true, send is confirmed. Now send it. $uploadfile_temppathname = uddeIMmosGetParam ($_POST, 'uploadfile_temppathname', array()); $uploadfile_original = uddeIMmosGetParam ($_POST, 'uploadfile_original', array()); $uploadfile_id = uddeIMmosGetParam ($_POST, 'uploadfile_id', array()); $uploadfile_size = uddeIMmosGetParam ($_POST, 'uploadfile_size', array()); $savedatum=uddetime($config->timezone); if($sysgm_validfor>0) { $now=uddetime($config->timezone); $validuntil=$now+($sysgm_validfor*3600); } else { $validuntil=0; } $savefromid=$myself; $savedisablereply=0; $savesysflag=""; if($sysgm_sys) { $savesysflag=addslashes($config->sysm_username); // system message $savedisablereply=1; // and users can't reply to them } else { $savesysflag=addslashes($sendername); $savedisablereply=0; } 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 XSS code $savemessage = uddeIMRemoveXSS($savemessage); getAdditonalGroups($add_special, $add_admin, $config); if (uddeIMcheckJversion()>=2) { // J1.6 // who shall get the message? if($sysgm_universe=="sysgm_toall") { $sql="SELECT id FROM #__users WHERE block=0"; } elseif($sysgm_universe=="sysgm_toalllogged") { $sql="SELECT a.id, b.userid FROM #__users AS a, #__session AS b WHERE block=0 AND a.id=b.userid"; } elseif($sysgm_universe=="sysgm_toallspecial") { $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($sysgm_universe=="sysgm_toalladmins") { $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.")"; } elseif ($config->showgroups) { $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)$sysgm_universe; } } else { // who shall get the message? if($sysgm_universe=="sysgm_toall") { $sql="SELECT id FROM #__users WHERE block=0"; } elseif($sysgm_universe=="sysgm_toalllogged") { $sql="SELECT a.id, b.userid FROM #__users AS a, #__session AS b WHERE block=0 AND a.id=b.userid"; } elseif($sysgm_universe=="sysgm_toallspecial") { $sql="SELECT id FROM #__users WHERE block=0 AND gid IN (19,20,21,23,24,25".$add_admin.")"; } elseif($sysgm_universe=="sysgm_toalladmins") { $sql="SELECT id FROM #__users WHERE block=0 AND gid IN (24,25".$add_admin.")"; } elseif ($config->showgroups) { $sql="SELECT id FROM #__users WHERE block=0 AND gid=".(int)$sysgm_universe; } } // query the database $database->setQuery($sql); $receivers=$database->loadObjectList(); if (!count($receivers)) { // when there are temporary files, remove them and the markers uddeIMpreSaveAttachmentsRemove($config); $mosmsg = _UDDEIM_SYSGM_ERRORNORECIPS; uddeJSEFredirect("index.php?option=com_uddeim&task=sysgm&Itemid=".$item_id, $mosmsg); } // we have all we need, now save it // when we have reached that, we can remove the temporary attachment markers since the files will be referenced later if( $config->enableattachment && uddeIMisAttachmentAllowed($my_gid, $config)) uddeIMpreSaveAttachmentsFinish($config); foreach($receivers as $receiver) { $savetoid=$receiver->id; // it is a systemmsg to "toid", so assume that the message has already been trashed in the senders outbox (remember: system messages are not shown in the outbox) // so set totrashoutbox=1, totrashdateoutbox=uddetime($config->timezone) // CRYPT $themode = 0; if ($config->cryptmode==1) { $themode = 1; $cm = uddeIMencrypt($savemessage,$config->cryptkey,CRYPT_MODE_BASE64); $sql="INSERT INTO #__uddeim (fromid, toid, message, datum, expires, systemmessage, systemflag, disablereply, totrashoutbox, totrashdateoutbox, cryptmode, crypthash) VALUES (".(int)$savefromid.", ".(int)$savetoid.", '".$cm."', ".$savedatum.", ".$validuntil.", '".$savesysflag."', 1,".$savedisablereply.", 1, ".$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($savemessage,$thepass,CRYPT_MODE_BASE64); $sql="INSERT INTO #__uddeim (fromid, toid, message, datum, expires, systemmessage, systemflag, disablereply, totrashoutbox, totrashdateoutbox, cryptmode, crypthash) VALUES (".(int)$savefromid.", ".(int)$savetoid.", '".$cm."', ".$savedatum.", ".$validuntil.", '".$savesysflag."', 1,".$savedisablereply.", 1, ".$savedatum.", ".$themode.",'".md5($thepass)."')"; } elseif ($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)$savefromid.", ".(int)$savetoid.", '".$cm."', ".$savedatum.", ".$validuntil.", '".$savesysflag."', 1,".$savedisablereply.", 1, ".$savedatum.",3)"; } elseif ($config->cryptmode==4) { $themode = 4; $thepass=$cryptpass; $cipher = CRYPT_MODE_3DESBASE64; if (!$thepass) { // no password entered, then fallback to obfuscating $themode = 1; $thepass=$config->cryptkey; $cipher = CRYPT_MODE_BASE64; } $cm = uddeIMencrypt($savemessage,$thepass,$cipher); $sql="INSERT INTO #__uddeim (fromid, toid, message, datum, expires, systemmessage, systemflag, disablereply, totrashoutbox, totrashdateoutbox, cryptmode, crypthash) VALUES (".(int)$savefromid.", ".(int)$savetoid.", '".$cm."', ".$savedatum.", ".$validuntil.", '".$savesysflag."', 1,".$savedisablereply.", 1, ".$savedatum.", ".$themode.",'".md5($thepass)."')"; } else { $sql="INSERT INTO #__uddeim (fromid, toid, message, datum, expires, systemmessage, systemflag, disablereply, totrashoutbox, totrashdateoutbox) VALUES (".(int)$savefromid.", ".(int)$savetoid.", '".$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(); // UDDEIMFILE // Now save the uploads if( $config->enableattachment && uddeIMisAttachmentAllowed($my_gid, $config)) uddeIMsaveAttachments($insID, $uploadfile_temppathname, $uploadfile_original, $uploadfile_id, $uploadfile_size, $savedatum, $config); // Check if E-Mail notification or popups are enabled by default, if so create a record for the receiver. if ($config->modnewusers>0 || $config->notifydefault>0 || $config->popupdefault>0 || $config->pubfrontenddefault>0 || $config->autoresponder>0 || $config->autoforward>0) { if (!uddeIMexistsEMN($savetoid)) uddeIMinsertEMNdefaults($savetoid, $config); } // Check if notifications are not disabled temporary if (!$sysgm_nonotify) { // e-mail notification code // 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 } $type = 0; // 0=normal message, 1=forgetmenot, 2=admin forces text if ($forceembedded) $type = 2; // admin forces if($config->allowemailnotify==1) { $ison = uddeIMgetEMNstatus($savetoid); if($sysgm_sys) { $emn_fromid = 0; } else { $emn_fromid = $savefromid; } if (($ison==1) || ($ison==2 && !$currentlyonline) || ($ison==10) || ($ison==20 && !$currentlyonline)) { uddeIMdispatchEMN($insID, $item_id, $themode, $emn_fromid, $savetoid, $email, $type, $config); // 0 stands for normal (not forgetmenot) } } elseif($config->allowemailnotify==2) { $my_gid = uddeIMgetGID($savetoid); if (uddeIMisAdmin($my_gid) || uddeIMisAdmin2($my_gid, $config)) { $ison = uddeIMgetEMNstatus($savetoid); if($sysgm_sys) { $emn_fromid = 0; } else { $emn_fromid = $savefromid; } if (($ison==1) || ($ison==2 && !$currentlyonline) || ($ison==10) || ($ison==20 && !$currentlyonline)) { uddeIMdispatchEMN($insID, $item_id, $themode, $emn_fromid, $savetoid, $email, $type, $config); // 0 stands for normal (not forgetmenot) } } } } } $mosmsg=_UDDEIM_MESSAGE_SENT; uddeJSEFredirect("index.php?option=com_uddeim&task=inbox&Itemid=".$item_id, $mosmsg); } }
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 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"; }