/** * returns all the parameters needed for a hyperlink or a menu entry to do a pms action * * @param int $toUserId UserId of receiver * @param int $fromUserId UserId of sender * @param string $subject Subject of PMS message * @param string $message Body of PMS message * @param int $kind kind of link: 1: link to compose new PMS message for $toid user. 2: link to inbox of $fromid user; 3: outbox, 4: trashbox, 5: link to edit pms options, 6: archive * @return array|boolean Array of string {"caption" => menu-text ,"url" => NON-cbSef relative url-link, "tooltip" => description} or false and errorMSG */ public function getPMSlink($toUserId, $fromUserId, $subject, $message, $kind) { if (!$this->isInstalled()) { return false; } static $itemId = null; if ($itemId === null) { $itemId = uddeIMgetItemid($this->uddeIMConfigRAW); } $urlBase = 'index.php?option=com_uddeim'; $urlItemId = $itemId ? '&Itemid=' . (int) $itemId : null; switch ($kind) { case 1: // Send PM return array('caption' => CBTxt::T('PM_USER', 'Send Private Message'), 'url' => $urlBase . '&task=new&recip=' . (int) $toUserId . $urlItemId, 'tooltip' => CBTxt::T('PM_USER_DESC', 'Send a Private Message to this user')); break; case 2: // Inbox return array('caption' => CBTxt::T('PM_INBOX', 'Show Private Inbox'), 'url' => $urlBase . '&task=inbox' . $urlItemId, 'tooltip' => CBTxt::T('PM_INBOX_DESC', 'Show Received Private Messages')); break; case 3: // Outbox return array('caption' => CBTxt::T('PM_OUTBOX', 'Show Private Outbox'), 'url' => $urlBase . '&task=outbox' . $urlItemId, 'tooltip' => CBTxt::T('PM_OUTBOX_DESC', 'Show Sent/Pending Private Messages')); break; case 4: // Trashcan return array('caption' => CBTxt::T('PM_TRASHBOX', 'Show Private Trashbox'), 'url' => $urlBase . '&task=trashcan' . $urlItemId, 'tooltip' => CBTxt::T('PM_TRASHBOX_DESC', 'Show Trashed Private Messages')); break; case 5: // Options return array('caption' => CBTxt::T('PM_OPTIONS', 'Edit PMS Options'), 'url' => $urlBase . '&task=settings' . $urlItemId, 'tooltip' => CBTxt::T('PM_OPTIONS_DESC', 'Edit Private Messaging System Options')); break; case 6: // Archive return array('caption' => CBTxt::T('PM_ARCHIVE', 'Show Private Archive'), 'url' => $urlBase . '&task=archive' . $urlItemId, 'tooltip' => CBTxt::T('PM_ARCHIVE_DESC', 'Show Archived Private Messages')); break; } return false; }
function getItemid() { $found = uddeIMgetItemid($this->config); // $database = uddeIMgetDatabase(); // $gid = uddeIMgetGroupID2($this->config); // if ($this->config->overwriteitemid) // return (int)$this->config->useitemid; // $sql="SELECT id FROM #__menu WHERE link LIKE '%com_uddeim%' AND published=1 AND access".($gid==0 ? "=" : "<=").$gid; // if (uddeIMcheckJversion()>=2) { // J1.6 // $lang = JFactory::getLanguage(); // $sql.=" AND language IN (" . $database->Quote($lang->get('tag')) . ",'*')"; // } // $sql.=" LIMIT 1"; // $database->setQuery($sql); // $found = (int)$database->loadResult(); // if (!$found) { // $sql="SELECT id FROM #__menu WHERE link LIKE '%com_uddeim%' AND published=0 AND access".($gid==0 ? "=" : "<=").$gid; // if (uddeIMcheckJversion()>=2) { // J1.6 // $lang = JFactory::getLanguage(); // $sql.=" AND language IN (" . $database->Quote($lang->get('tag')) . ",'*')"; // } // $sql.=" LIMIT 1"; // $database->setQuery($sql); // $found = (int)$database->loadResult(); // } return $found; }
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(); } }
function uddeIMpublicFrontendPlugin($versionstring, $pathtouser, $pathtosite, $config) { // not required since I do this in uddeim.php now // session_start(); $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; $task = uddeIMmosGetParam( $_REQUEST, 'task', 'inbox'); // task is publicnew or publicsave $recip = (int) uddeIMmosGetParam ( $_REQUEST, 'recip'); // für blocking nach ID and new message $runame = uddeIMmosGetParam ( $_REQUEST, 'runame'); // für blocking nach NAME and new message $to_id = (int) uddeIMmosGetParam ($_POST, 'to_id'); $to_name = uddeIMmosGetParam ($_POST, 'to_name'); $fromname = uddeIMmosGetParam ($_POST, 'from_name'); $fromemail = uddeIMmosGetParam ($_POST, 'from_email'); $pmessage = strip_tags(uddeIMmosGetParam($_POST, 'pmessage', '', _MOS_ALLOWHTML)); $spamtrap = uddeIMmosGetParam ($_POST, 'city'); if ($spamtrap) $task = "spamtrap"; $sendeform_showallusers = uddeIMmosGetParam ($_POST, 'sendeform_showallusers', ''); $backto = uddeIMmosGetParam ($_POST, 'backto'); // load template css file if(!$config->templatedir) { $config->templatedir="default"; } // browser switch $used_browser = uddeIMmosGetParam($_SERVER, 'HTTP_USER_AGENT', null); $css_appendix=""; $css_alternative=""; if (stristr($used_browser, "Opera")) { $css_appendix="-opera"; } elseif (stristr($used_browser, "MSIE 4")) { $css_appendix="-ie4"; $css_alternative="-ie"; } elseif (stristr($used_browser, "MSIE 6") || stristr($used_browser, "MSIE/6")) { $css_appendix="-ie6"; $css_alternative="-ie"; } elseif (stristr($used_browser, "MSIE 7") || stristr($used_browser, "MSIE/7")) { $css_appendix="-ie7"; $css_alternative="-ie"; } elseif (((stristr($used_browser, "MSIE 5") || stristr($used_browser, "MSIE/5"))) && stristr($used_browser, "Win")) { $css_appendix="-ie5win"; $css_alternative="-ie"; } elseif (stristr($used_browser, "MSIE 5") && stristr($used_browser, "Mac")) { $css_appendix="-ie5mac"; $css_alternative="-ie"; } elseif (stristr($used_browser, "Safari")) { $css_appendix="-safari"; } elseif (stristr($used_browser, "Safari/100")) { $css_appendix="-safari100"; $css_alternative="-safari"; } elseif (stristr($used_browser, "Safari/85")) { $css_appendix="-safari85"; $css_alternative="-safari"; } elseif (stristr($used_browser, "Konqueror")) { $css_appendix="-konq"; } elseif (stristr($used_browser, "Konqueror/2")) { $css_appendix="-konq2"; $css_alternative="-konq"; } elseif (stristr($used_browser, "Konqueror/3")) { $css_appendix="-konq3"; $css_alternative="-konq"; } $omitDefaultOutput = false; if (class_exists('JRequest')) { if (JRequest::getVar('no_html', false)) $omitDefaultOutput = true; } else { if (uddeIMmosGetParam( $_REQUEST, 'no_html', false )) $omitDefaultOutput = true; } // now start the output if (!$omitDefaultOutput){ echo "\n<!-- ".$versionstring." output below -->\n"; // load the css file $css = ""; if(file_exists($pathtouser.'/templates/'.$config->templatedir.'/css/uddeim'.$css_appendix.'.css')) { $css = $pathtosite."/components/com_uddeim/templates/".$config->templatedir."/css/uddeim".$css_appendix.".css"; } elseif(file_exists($pathtouser.'/templates/'.$config->templatedir.'/css/uddeim'.$css_alternative.'.css')) { $css = $pathtosite."/components/com_uddeim/templates/".$config->templatedir."/css/uddeim".$css_alternative.".css"; } elseif(file_exists($pathtouser.'/templates/'.$config->templatedir.'/css/uddeim.css')) { $css = $pathtosite."/components/com_uddeim/templates/".$config->templatedir."/css/uddeim.css"; } else { // template css doesn't exist, now we try to load the default css file if(file_exists($pathtouser.'/templates/default/css/uddeim.css')) $css = $pathtosite."/components/com_uddeim/templates/default/css/uddeim.css"; } uddeIMaddCSS($css); if ($config->pubuseautocomplete) { $css = ""; if(file_exists($pathtouser.'/templates/'.$config->templatedir.'/css/autocompleter'.$css_appendix.'.css')) { $css = $pathtosite."/components/com_uddeim/templates/".$config->templatedir."/css/autocompleter".$css_appendix.".css"; } elseif(file_exists($pathtouser.'/templates/'.$config->templatedir.'/css/autocompleter'.$css_alternative.'.css')) { $css = $pathtosite."/components/com_uddeim/templates/".$config->templatedir."/css/autocompleter".$css_alternative.".css"; } elseif(file_exists($pathtouser.'/templates/'.$config->templatedir.'/css/autocompleter.css')) { $css = $pathtosite."/components/com_uddeim/templates/".$config->templatedir."/css/autocompleter.css"; } else { // template css doesn't exist, now we try to load the default css file if(file_exists($pathtouser.'/templates/default/css/autocompleter.css')) $css = $pathtosite."/components/com_uddeim/templates/default/css/autocompleter.css"; } uddeIMaddCSS($css); } echo "<div id='uddeim'><div id='uddeim-topborder'></div>\n"; } // fork according to task switch ($task) { case 'completeUserName': uddeIMcompleteUserName(0, $config); break; case "spamtrap": uddeIMprintPublicMenu($item_id, $config); echo "<div id='uddeim-m'>\n<div id='uddeim-bottomlines'>\n"; echo "<p><b>"._UDDEIM_PUBLICSENT."</b></p>"; echo "</div>\n</div>\n<div id='uddeim-bottomborder'></div>\n"; break; case "publicsent": uddeIMprintPublicMenu($item_id, $config); echo "<div id='uddeim-m'>\n<div id='uddeim-bottomlines'>\n"; echo "<p><b>"._UDDEIM_PUBLICSENT."</b></p>"; echo "</div>\n</div>\n<div id='uddeim-bottomborder'></div>\n"; break; case "publicsave": uddeIMpublicSaveMessage($fromname, $fromemail, $to_name, $to_id, $pmessage, $item_id, $sendeform_showallusers, $backto, $config); break; case "publicnew": default: uddeIMpublicNewMessage($item_id, $to_id, $recip, $runame, $pmessage, $config); break; } if (!$omitDefaultOutput){ echo "</div>\n"; // </div id='uddeim'> echo "<!-- ".$versionstring." output above -->\n"; } }
// Check if default record for message notification and popups for the current user must be created. If a record already exists, then nothing to do... if (!uddeIMexistsEMN((int)$userid)) uddeIMinsertEMNdefaults((int)$userid, $config); if (uddeIMgetEMNlocked($userid)) { $mosmsg = _UDDEIM_ACCOUNTLOCKED; echo($mosmsg); return; } // if no Itemid is passed on, try to find one somewhere // $option = uddeIMmosGetParam( $_REQUEST, 'option', 'com_uddeim' ); $Itemid = uddeIMmosGetParam( $_REQUEST, 'Itemid'); if (!$Itemid || !isset($Itemid) || empty( $Itemid )) { $Itemid = uddeIMgetItemid($config); } elseif ($config->overwriteitemid) { $Itemid = (int)$config->useitemid; } $item_id = (int) $Itemid; $task = uddeIMmosGetParam( $_REQUEST, 'task', ''); $view = uddeIMmosGetParam( $_REQUEST, 'view', ''); $id = uddeIMmosGetParam( $_REQUEST, 'id', 0); if (!$task && $view=="select") { switch($id) { case 1: $task="inbox"; break; case 2: $task="outbox"; break; case 3: $task="trashcan"; break; case 4: $task="archive"; break;