$leng ? $leng : $firs + strlen($v) + $tleng ); $ttxt = substr($text,$begi,($ende - $begi)); $rte .= ' ... '.preg_replace("/".$v."/si",''.$v.'',$ttxt); } return ($rte); } function search_finduser() { $design = new design ( 'Finduser' , '', 0 ); $design->header(); $tpl = new tpl ( 'search_finduser' ); $tpl->out(0); if ( isset ( $_POST['sub'] ) AND !empty($_POST['name']) ) { $name = str_replace('*',"%",$_POST['name']); $name = escape($name, 'string'); $q = "SELECT name,name FROM prefix_user WHERE name like '".$name."'"; $tpl->set ('username',dbliste('',$tpl,'username',$q)); $tpl->out(1); } $tpl->out(2); $design->footer(); } function search_finduser1() { $design = new design ( 'Finduser1' , '', 0 ); $design->header(); $tpl = new tpl ( 'search_finduser1' ); $tpl->out(0); if ( isset ( $_POST['sub'] ) AND !empty($_POST['name']) ) { $name = str_replace('*',"%",$_POST['name']); $name = escape($name, 'string'); $q = "SELECT name,name FROM prefix_user WHERE name like '".$name."'"; $tpl->set ('username',dbliste('',$tpl,'username',$q)); $tpl->out(1); } $tpl->out(2); $design->footer(); } if ($menu->get(1) == 'finduser') { search_finduser(); exit(); } if ($menu->get(1) == 'finduser1') { search_finduser1(); exit(); } $such = ''; if ($menu->get(1) != '') { $such = $menu->get(1); } elseif (isset($_REQUEST['search'])) { $such = $_REQUEST['search']; } $such = stripslashes(escape($such, 'string')); $snac = 'Suche'; if ($such == 'augt' OR $such == 'aeit' OR $such == 'aubt') { $ar_s = array('aubt'=>'unbeantworteten Themen','aeit'=>'eigenen Beiträgen','augt'=>'neue Themen seit dem letzten Besuch'); $snac = $ar_s[$such]; } elseif ( isset($_REQUEST['search']) ) { $snac = 'nach: '.$such; } $title = $allgAr['title'].' :: Suchen :: '.htmlentities($snac); $hmenu = 'Suchen » '.htmlentities($snac); $design = new design ( $title , $hmenu ); $design->header(); $tpl = new tpl ('search'); $tpl->set ('size', 30); if ($such != 'augt' AND $such != 'aeit' AND $such != 'aubt') { $tpl->set_out('search',escape_for_fields($such),0); } if (!empty($such)) { $page = 1; if (isset($_GET['page'])) { $page = str_replace('-p','',$_GET['page']); } $limit = 25; // Limit $anfang = ($page - 1) * $limit; if ($such == 'aubt' OR $such == 'augt' OR $such == 'aeit') { $s = "DISTINCT b.id as fid, a.name as titel, 'foru' as typ, a.id as id"; $q = "select {SELECT} FROM prefix_topics a LEFT JOIN prefix_forums b ON b.id = a.fid LEFT JOIN prefix_posts c ON c.tid = a.id WHERE (b.view >= ".$_SESSION['authright']." OR b.reply >= ".$_SESSION['authright']." OR b.start >= ".$_SESSION['authright'].") AND {WHERE} ORDER BY c.time DESC"; } $x = time() - (3600 * 24 * 360); if ($such == 'aubt') { $where = "c.time >= ". $x ." AND a.rep = 0"; $c = str_replace('{WHERE}',$where,str_replace('{SELECT}','COUNT(DISTINCT a.id)',$q)); $gAnz = db_result(db_query($c),0); $q = str_replace('{WHERE}',$where,str_replace('{SELECT}',$s,$q)); } elseif ($such == 'augt') { $where = "c.time >= ". $x ." AND c.time >= ".$_SESSION['lastlogin']; $gAnz = db_result(db_query(str_replace('{WHERE}',$where,str_replace('{SELECT}','COUNT(DISTINCT a.id)',$q))),0); $q = str_replace('{WHERE}',$where,str_replace('{SELECT}',$s,$q)); } elseif ($such == 'aeit') { $where = "c.time >= ". $x ." AND c.erstid = ".$_SESSION['authid']; $gAnz = db_result(db_query(str_replace('{WHERE}',$where,str_replace('{SELECT}',' COUNT(DISTINCT a.id)',$q))),0); $q = str_replace('{WHERE}',$where,str_replace('{SELECT}',$s,$q)); } else { $such = str_replace('-','',$such); $such = str_replace('=','',$such); $such = str_replace('&','',$such); $serar = explode(' ', $such); $str_forum = ''; $str_news = ''; $str_downs = ''; foreach($serar as $v) { $str = str_replace('\'','',$v); $str = str_replace('"','',$str); $str = addslashes($str); $str = str_replace('\'','',$v); if ( !empty($str) ) { $str_forum .= "txt LIKE '%".$str."%' AND "; $str_news .= "news_text LIKE '%".$str."%' AND "; $str_downs .= "`descl` LIKE '%".$str."%' AND "; $str_faq .= "answer LIKE '%".$str."%' AND "; } } $modes = array( 'news' => 'SELECT DISTINCT 0 as fid, news_title as titel, 'news' as typ, news_id as id, news_time as time FROM prefix_news WHERE ('".$str_news."' 1 = 1) AND (news_time >= '". $x ."')', 'forum' => 'SELECT DISTINCT prefix_topics.fid as fid, prefix_topics.name as titel, 'foru' as typ, prefix_topics.id as id, time as time FROM prefix_posts LEFT JOIN prefix_topics ON prefix_topics.id = prefix_posts.tid LEFT JOIN prefix_forums ON prefix_forums.id = prefix_topics.fid WHERE (prefix_forums.view >= '".$_SESSION['authright']."' OR prefix_forums.reply >= '".$_SESSION['authright']."' OR prefix_forums.start >= '".$_SESSION['authright']."') AND ('".$str_forum."' 1 = 1) AND (time >= '". $x ."') GROUP BY prefix_topics.id', 'downs' => 'SELECT DISTINCT 0 as fid, CONCAT( name, ' ', version ) AS titel, 'down' as typ, id, UNIX_TIMESTAMP(time) as time FROM prefix_downloads WHERE ('".$str_downs."' 1 = 1) AND (time >= '". $x ."')', 'faq' => 'SELECT DISTINCT faqcatID as fid, question as titel, 'faq' as typ, faqID as id, sort as time FROM prefix_faq WHERE ('".$str_faq."' 1 = 1)' ); foreach($modes as $k => $v){ if ($_POST['check_'.$k] == 'on') { if (empty($q)) { $q = $v; } elseif (substr($q,0,1) != '(' ) { $q = "( $q ) UNION ( $v )"; } else { $q .= " UNION ( $v )"; } } } if (!empty($q)) { $q .= ' ORDER BY time DESC'; } $gAnz = db_num_rows(db_query($q)); } echo '

'.$q.'

'; $q .= " LIMIT ".$anfang.",".$limit; if ($gAnz == '0') { $foanz = 'Es wurde kein Ergebnis zu ihrem Suchbegriff '.$such.' gefunden.'; } else { $foanz = ''; } $MPL = db_make_sites ($page , "" , $limit , "index.php?search=".urlencode($such)."&page=", "", $gAnz ); $tpl->set_ar_out(array('MPL'=>$MPL,'gAnz'=>$gAnz,'foanz'=>$foanz,'SUCH'=>$such),1); $q = db_query($q); $class = ''; echo mysql_error(); while($r = db_fetch_assoc($q) ) { $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite' ); $r['class'] = $class; if ($r['typ'] == 'foru') { $r['ctime'] = db_result(db_query("SELECT MAX(time) FROM prefix_posts WHERE tid = ".$r['id']),0,0); $r['ord'] = forum_get_ordner($r['ctime'],$r['id'],$r['fid']); $r['link'] = 'forum-showposts-'.$r['id']; $r['art'] = 'Forum'; } elseif ($r['typ'] == 'news') { $r['ord'] = 'ord'; $r['link'] = 'news-'.$r['id']; $r['art'] = 'News'; } elseif ($r['typ'] == 'down') { $r['ord'] = 'ord'; $r['link'] = 'downloads-show-'.$r['id']; $r['art'] = 'Download'; } elseif ($r['typ'] == 'faq') { $r['ord'] = 'ord'; $r['link'] = 'faq-faq-f'.$r['id']; $r['art'] = 'FAQ'; } $tpl->set_ar_out($r,2); } $tpl->out(3); } $design->footer(); ?>