Globale Suche für CIS nach Content und Benutzern

This commit is contained in:
Andreas Österreicher
2012-01-27 12:29:27 +00:00
parent 9b7e99bdcf
commit 7e30670c29
8 changed files with 345 additions and 14 deletions
+58
View File
@@ -28,6 +28,7 @@ class benutzer extends person
public $bnaktiv=true; // boolean
public $alias; // varchar(256)
public $bn_ext_id;
public $result = array();
/**
* Konstruktor - Uebergibt die Connection und laedt optional einen Benutzer
@@ -257,5 +258,62 @@ class benutzer extends person
return false;
}
}
public function search($searchItems)
{
$qry = "SELECT * FROM (SELECT
distinct on (uid) vorname, nachname, uid, titelpre, titelpost,alias,
(SELECT UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz)
FROM public.tbl_student JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE student_uid=tbl_benutzer.uid) as studiengang,
(SELECT tbl_kontakt.kontakt || ' - ' ||telefonklappe
FROM public.tbl_mitarbeiter
LEFT JOIN public.tbl_kontakt USING(standort_id)
WHERE
mitarbeiter_uid=tbl_benutzer.uid
AND (tbl_kontakt.kontakttyp='telefon' OR tbl_kontakt.kontakttyp is null)
) as klappe
FROM
public.tbl_person
JOIN public.tbl_benutzer USING(person_id)
WHERE
tbl_benutzer.aktiv
AND (";
$qry.=" lower(vorname || ' ' || nachname) like lower('%".addslashes(implode(' ',$searchItems))."%')";
$qry.=" OR lower(nachname || ' ' || vorname) like lower('%".addslashes(implode(' ',$searchItems))."%')";
$qry.=" OR lower(uid) like lower('%".addslashes(implode(' ',$searchItems))."%')";
foreach($searchItems as $value)
{
$qry.=" OR lower(uid) = lower('".addslashes($value)."')";
}
$qry.=")) a ORDER BY nachname, vorname";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new benutzer();
$obj->titelpre = $row->titelpre;
$obj->vorname = $row->vorname;
$obj->nachname = $row->nachname;
$obj->titelpost = $row->titelpost;
$obj->uid = $row->uid;
$obj->studiengang = $row->studiengang;
$obj->telefonklappe = $row->klappe;
$obj->alias = $row->alias;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>