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; }