diff --git a/cis/private/tools/suche.php b/cis/private/tools/suche.php index dbc8aea6a..89d3030fb 100644 --- a/cis/private/tools/suche.php +++ b/cis/private/tools/suche.php @@ -56,7 +56,7 @@ echo 'Globale Suche '; @@ -109,27 +109,27 @@ $searchContent = searchContent($searchItems); if (!$searchPerson && !$searchOrt && !$searchDms && !$searchContent && !$searchOE) echo $p->t('tools/esWurdenKeineErgebnisseGefunden'); - + function searchPerson($searchItems) { global $db, $p, $noalias; $bn = new benutzer(); $bn->search($searchItems, 21); - + if(count($bn->result)>0) { echo '

',$p->t('global/personen'),'

'; echo ' - '; if(count($bn->result)>20) @@ -158,7 +158,7 @@ function searchPerson($searchItems) { $bisverwendung = new bisverwendung(); $bisverwendung->getLastAktVerwendung($row->uid); - + echo ''; //echo '',$row->titelpre,''; echo '',$row->vorname,''; @@ -185,14 +185,14 @@ function searchPerson($searchItems) } echo '
'; return true; - } - else - return false; + } + else + return false; } function searchOE($searchItems) { global $db, $p, $noalias; - + //Suche nach Studiengaengen mit dem Suchbegriff und merge mit $searchItems $stg_oe_array = array(); $stg = new studiengang(); @@ -203,17 +203,17 @@ function searchOE($searchItems) $stg_oe_array[].= $row->oe_kurzbz; } $searchItems = array_merge_recursive($stg_oe_array,$searchItems); - + $oe = new organisationseinheit(); $oe->search($searchItems); - + if(count($oe->result)>0) { echo '

',$p->t('global/organisationseinheiten'),'

'; echo ' - '; - + foreach($oe->result as $row) { if($row->aktiv==true) @@ -271,7 +271,7 @@ function searchOE($searchItems) if($bisverwendung->beschausmasscode=='5') echo ' (karenziert)'; echo ''; - + echo '',($mitarbeiter->telefonklappe!=''?$kontakt->kontakt.'-'.$mitarbeiter->telefonklappe:'-'),''; echo '',($mitarbeiter->ort_kurzbz!=''?$mitarbeiter->ort_kurzbz:'-'),''; //if($row->alias!='' && !in_array($row->studiengang_kz, $noalias)) ??? Was macht $noalias? @@ -292,16 +292,16 @@ function searchOE($searchItems) } } return true; - } - else - return false; + } + else + return false; } function searchOrt($search) { global $db, $p, $noalias; $ort = new ort(); $ort->filter($search, true, true, true); - + $uid = get_uid(); $berechtigung=new benutzerberechtigung(); $berechtigung->getBerechtigungen($uid); @@ -309,21 +309,21 @@ function searchOrt($search) $raumres=true; else $raumres=false; - + if(count($ort->result)>0) { echo '

',$p->t('lvplan/ort'),'

'; echo ' - @@ -335,7 +335,7 @@ function searchOrt($search) '; if ($raumres) echo ''; - else + else echo ''; echo ' @@ -349,9 +349,9 @@ function searchOrt($search) echo ''; if ($raumres) echo ''; - else + else echo ''; - //else + //else // echo ''; echo ''; echo "\n"; @@ -359,7 +359,7 @@ function searchOrt($search) echo '
',$p->t('tools/telefonklappe'),'',$p->t('tools/reservieren'),'',$p->t('lvplan/lvPlan'),'
',$row->telefonklappe,''.$p->t('tools/reservieren').''.$p->t('lvplan/lvPlan').'

'; return true; } - else + else return false; } function searchDms($searchItems) @@ -383,21 +383,21 @@ function searchDms($searchItems) global $db, $p, $uid; $dms = new dms(); $dms->searchLastVersion($searchstring, 41); - + if(count($dms->result)>0) { echo '

'.$p->t("tools/dokumente").'

'; echo ' - '; if(count($dms->result)>40) @@ -409,7 +409,7 @@ function searchDms($searchItems) ',$p->t('global/titel'),' - ',$p->t('tools/aktuelleVersion'),' + ',$p->t('tools/aktuelleVersion'),' @@ -431,7 +431,7 @@ function searchDms($searchItems) echo "\n"; } } - else + else { echo ''; if(array_key_exists($row->mimetype,$mimetypes)) @@ -446,7 +446,7 @@ function searchDms($searchItems) echo '
'; return true; } - else + else return false; } function searchContent($searchItems) @@ -482,13 +482,13 @@ function searchContent($searchItems) echo '
  • '; echo '',$db->convert_html_chars($row->titel),'
    '; $preview = findAndMark($row->content, $searchItems); - + echo $preview; echo '

  • '; } } } - echo ''; + echo ''; $anzeigesprache=''; foreach($cms->result as $row) { @@ -508,7 +508,7 @@ function searchContent($searchItems) echo '
  • '; echo '',$db->convert_html_chars($row->titel),'
    '; $preview = findAndMark($row->content, $searchItems); - + echo $preview; echo '

  • '; } @@ -522,6 +522,7 @@ function searchContent($searchItems) } function findAndMark($content, $items) { + $item = ''; foreach($items as $row) { if($row!='') @@ -529,16 +530,19 @@ function findAndMark($content, $items) $item = $row; break; } - } + } + if($item == '') + return '...'; + //CDATA und HTML Tags entfernen $content = mb_str_replace('<[CDATA[', '', $content); $content = mb_str_replace(']]>', '', $content); $content = strip_tags($content); $item = mb_strtolower($item); - + $beginn = mb_strpos(mb_strtolower($content), $item); $len = mb_strlen($item); - + //Im Content sind die Umlaute teilweise codiert gespeichert //Wenn der Eintrag nicht gefunden wird, wird mit Codierten Zeichen nochmals gesucht if($beginn=='') @@ -546,7 +550,7 @@ function findAndMark($content, $items) $beginn = mb_strpos(mb_strtolower($content), htmlentities($item,ENT_NOQUOTES,'UTF-8')); $len = mb_strlen(htmlentities($item,ENT_NOQUOTES,'UTF-8')); } - + if($beginn=='') { $beginn=0; @@ -558,7 +562,7 @@ function findAndMark($content, $items) $preview=''; if($start!=0) $preview='...'; - + $preview .= mb_substr($content, $start, ($beginn-$start)); $preview.=''; $preview.= mb_substr($content, $beginn, $len);