*/ /** * Globale Suche */ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/content.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/globals.inc.php'); require_once('../../../include/dms.class.php'); require_once('../../../include/service.class.php'); require_once('../../../include/ort.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); $uid = get_uid(); $db = new basis_db(); $sprache = getSprache(); $p = new phrasen($sprache); echo ' Globale Suche
'; echo '

',$p->t('tools/suche'),'

'; $search = (isset($_REQUEST['search'])?$_REQUEST['search']:''); echo '

'; if($search=='') exit; //Easter Egg if(($search=='the answer to life the universe and everything') || ($search=='answer to life the universe and everything')) { echo '



42

'; exit; } $searchItems = explode(' ',TRIM($search)); $searchPerson = searchPerson($searchItems); $searchOrt = searchOrt($search); $searchDms = searchDms($searchItems); $searchContent = searchContent($searchItems); if (!$searchPerson && !$searchOrt && !$searchDms && !$searchContent) 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) { echo '

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

'; } echo ' '; foreach($bn->result as $row) { echo ''; //echo ''; echo ''; echo ''; //echo ''; echo ''; echo ''; echo ''; echo ''; if($row->alias!='' && !in_array($row->studiengang_kz, $noalias)) $mail = $row->alias.'@'.DOMAIN; else $mail = $row->uid.'@'.DOMAIN; echo ''; echo ''; echo ''; echo "\n"; } echo '
',$p->t('global/vorname'),' ',$p->t('global/nachname'),' ',$p->t('global/studiengang'),' ',$p->t('freebusy/typ'),' ',$p->t('global/telefonnummer'),' ',$p->t('lvplan/raum'),' ',$p->t('global/mail'),' ',$p->t('lvplan/lvPlan'),'
',$row->titelpre,'',$row->vorname,'',$row->nachname,'',$row->titelpost,'',($row->studiengang!=''?$row->studiengang:'-'),'',($row->mitarbeiter_uid==NULL?'StudentIn':'MitarbeiterIn'),'',($row->telefonklappe!=''?$row->telefonklappe:'-'),'',($row->raum!=''?$row->raum:'-'),'',$mail,''.$p->t('lvplan/lvPlan').'

'; return true; } else return false; } function searchOrt($search) { global $db, $p, $noalias; $ort = new ort(); $ort->filter($search, true, true); $uid = get_uid(); $berechtigung=new benutzerberechtigung(); $berechtigung->getBerechtigungen($uid); if ($berechtigung->isBerechtigt('lehre/reservierung:begrenzt', null, 'sui')) $raumres=true; else $raumres=false; if(count($ort->result)>0) { echo '

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

'; echo ' '; if ($raumres) echo ''; else echo ''; echo ''; foreach($ort->result as $row) { echo ''; echo ''; echo ''; echo ''; echo ''; if ($raumres) echo ''; else echo ''; //else // echo ''; echo ''; echo "\n"; } echo '
',$p->t('global/ort'),' ',$p->t('global/bezeichnung'),' ',$p->t('tools/maxPersonen'),' ',$p->t('tools/telefonklappe'),'',$p->t('tools/reservieren'),'',$p->t('lvplan/lvPlan'),'
',$row->planbezeichnung,' (',$row->ort_kurzbz,')',$row->bezeichnung,'',$row->max_person,'',$row->telefonklappe,''.$p->t('tools/reservieren').''.$p->t('lvplan/lvPlan').'

'; return true; } else return false; } function searchDms($searchItems) { $mimetypes = array( 'application/pdf'=>'pdf_icon.png', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'=>'word2007.jpg', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'=>'x-office-presentation.png', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'=>'excel.gif', 'application/vnd.oasis.opendocument.text'=>'openoffice0.jpg', 'application/msword'=>'doc_icon.png', 'application/vnd.ms-excel'=>'xls_icon.png', 'application/x-zip'=>'zip_icon.png', 'application/zip'=>'zip_icon.png', 'application/mspowerpoint'=>'ppt_icon.png', 'image/jpeg'=>'img_icon.png', 'image/gif'=>'img_icon.png', 'image/png'=>'img_icon.png', ); $searchstring = $searchItems; global $db, $p; $dms = new dms(); $dms->searchLastVersion($searchstring, 41); if(count($dms->result)>0) { echo '

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

'; echo ' '; if(count($dms->result)>40) { echo '

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

'; } echo ' '; foreach($dms->result as $row) { echo ''; if(array_key_exists($row->mimetype,$mimetypes)) echo ''; else echo ''; echo ''; echo ''; echo "\n"; } echo '
',$p->t('global/titel'),' ',$p->t('tools/aktuelleVersion'),'
',$row->beschreibung,'',$row->beschreibung,'',$row->version,'

'; return true; } else return false; } function searchContent($searchItems) { global $db,$p; $cms = new content(); $cms->search($searchItems, 21); if(count($cms->result)>0) { echo '

',$p->t('tools/content'),'

'; if(count($cms->result)>20) { echo '

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

'; } echo ''; return true; } else return false; } function findAndMark($content, $items) { foreach($items as $row) { if($row!='') { $item = $row; break; } } //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=='') { $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; $len=0; } $start = (($beginn-100)>0?($beginn-100):0); //echo "start: $start
beginn: $beginn
beginn-start: ".($beginn-$start); //echo "
item:".$item.'
'; $preview=''; if($start!=0) $preview='...'; $preview .= mb_substr($content, $start, ($beginn-$start)); $preview.=''; $preview.= mb_substr($content, $beginn, $len); $preview.=''; $preview.= mb_substr($content, $beginn+$len, 300); $laenge = $beginn+$len+300; if($laenge'; ?>