Esempio n. 1
0
	static function getQueryChannels($words){

		$user=$_SESSION['user'];
		$_anon=($user->isAnon())?'true':'false';

		$words=SearchEngine::prepareWords($words);

		$ORDERBY='S.haslogo desc, S.qt_followers desc';

		$query = "SELECT *,((CASE haslogo WHEN 'true' THEN 1 ELSE 0 END)*100+qt_followers*random()) as QUERY_rank FROM vw_channel as S WHERE (1=1";
		for ($i=0;$i<sizeof($words);$i++){
			switch ($words[$i]){
				case '[mychannels]':
					if (!$user->isAnon())
						$query.=" AND userid='{$user->getId()}'";
					break;
				case '[signedchannels]':
					$query.=" AND S.id in (SELECT channelid from follow_channel_user WHERE userid='{$user->getId()}' and anon='{$_anon}')";
					break;
				case '[suggestchannels]':
					$_anon= ($user->isAnon())?'true':'false';
					$addwhere='';if (!($user->isAnon())) $addwhere.=" and userid!='{$user->getId()}'";
					$query.=" AND S.id not in (select channelid from follow_channel_user where userid='{$user->getId()}' and anon='{$_anon}') {$addwhere} ";
					$ORDERBY='QUERY_rank desc';
					break;
				default:
					$query.=" AND (lower(S.pp_name) like lower('%".$words[$i]."%') OR lower(S.pp_description) like lower('%".$words[$i]."%') )";
					break;
			}
		}

		$query.=") ORDER BY {$ORDERBY}";
		return $query;
	}