Verbesserungen in Personensuche

This commit is contained in:
kindlm
2016-07-12 10:49:02 +02:00
parent 1f60271803
commit 18729af639
2 changed files with 30 additions and 10 deletions
+5 -1
View File
@@ -346,6 +346,10 @@ if(!$error_person_save)
$kurzbeschreibung = $person->kurzbeschreibung;
}
$akte = new akte();
if($akte->getAkten($person_id, 'Lichtbil'))
$dms_id_lichtbild = $akte->result[0]->dms_id;
// PERSON
echo "<table><tr><td>
<fieldset>
@@ -464,7 +468,7 @@ echo "
<td valign='top'>Anmerkungen</td>
<td valign='top'><textarea name='anmerkungen'>".$anmerkungen."</textarea></td>
<td></td>
<td><img id='personimage' src='../../content/bild.php?src=person&person_id=$person_id' height='100'></td>
<td><a href='".APP_ROOT."cms/dms.php?id=".$dms_id_lichtbild."' target='_blank'><img id='personimage' src='../../content/bild.php?src=person&person_id=$person_id' height='100'></a></td>
<td colspan='2'>
<a href='#foo' onclick='window.open(\"../../content/bildupload.php?person_id=$person_id\",\"BildUpload\", \"height=50,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes\"); return false;'>Bild hochladen</a>
<br><br>
+25 -9
View File
@@ -47,6 +47,11 @@ if(isset($_GET['searchstr']))
else
$searchstr = '';
if(isset($_GET['filter']))
$filter = $_GET['filter'];
else
$filter = '';
$datum_obj = new datum();
echo '
@@ -70,20 +75,31 @@ echo '
<form accept-charset="UTF-8" name="search" method="GET">
Bitte Suchbegriff eingeben:
<input type="text" name="searchstr" size="30" value="'.$db->convert_html_chars($searchstr).'">
<input type="radio" name="filter" value="mitarbeiter" '.($filter=='mitarbeiter'?'checked="checked"':'').'> Nur MitarbeiterInnen
<input type="radio" name="filter" value="student" '.($filter=='student'?'checked="checked"':'').'> Nur Studierende
<input type="submit" value="Suchen">
</form>';
if($searchstr!='')
{
$qry = "SELECT person_id FROM public.tbl_person WHERE person_id in(
SELECT distinct person_id FROM public.tbl_person LEFT JOIN public.tbl_benutzer USING(person_id) WHERE
nachname ~* '".$db->db_escape($searchstr)."' OR
vorname ~* '".$db->db_escape($searchstr)."' OR
alias ~* '".$db->db_escape($searchstr)."' OR
COALESCE(nachname,'') || ' ' || COALESCE(vorname,'') = '".$db->db_escape($searchstr)."' OR
COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') = '".$db->db_escape($searchstr)."' OR
uid ~* '".$db->db_escape($searchstr)."'
) ORDER BY nachname, vorname;";
$qry = "SELECT
distinct on (nachname, vorname, person_id) *
FROM
public.tbl_person
LEFT JOIN public.tbl_benutzer USING(person_id)";
if ($filter=='mitarbeiter')
$qry .= " JOIN public.tbl_mitarbeiter ON (uid=mitarbeiter_uid) ";
elseif ($filter=='student')
$qry .= " JOIN public.tbl_prestudent USING (person_id) ";
$qry .= " WHERE true
AND nachname ~* '".$db->db_escape($searchstr)."' OR
vorname ~* '".$db->db_escape($searchstr)."' OR
(nachname || ' ' || vorname) ~* '".$db->db_escape($searchstr)."' OR
(vorname || ' ' || nachname) ~* '".$db->db_escape($searchstr)."' OR
uid=".$db->db_add_param($searchstr)."
ORDER BY nachname, vorname;";
if($result = $db->db_query($qry))
{