/**
  * 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;
 }
Exemplo n.º 2
0
	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;
	}
Exemplo n.º 3
0
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("&amp;#", "&#", $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();
	}
}
Exemplo n.º 4
0
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";
	}
}
Exemplo n.º 5
0
// 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;