mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-02 11:29:27 +00:00
Globale Suche für CIS nach Content und Benutzern
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1234,5 +1234,46 @@ class content extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Durchsucht den Content
|
||||
*
|
||||
* @param array $searchItems
|
||||
*/
|
||||
public function search($searchItems)
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct on(content_id) *
|
||||
FROM
|
||||
campus.tbl_contentsprache
|
||||
JOIN campus.tbl_content USING(content_id)
|
||||
WHERE
|
||||
sichtbar=true
|
||||
AND aktiv=true
|
||||
AND template_kurzbz IN('contentmittitel','contentohnetitel','redirect')";
|
||||
foreach($searchItems as $value)
|
||||
$qry.=" AND (lower(content::text) like lower('%".addslashes($value)."%')
|
||||
OR lower(content::text) like lower('%".addslashes(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))";
|
||||
$qry.=" ORDER BY content_id DESC";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new content();
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->content = $row->content;
|
||||
$obj->titel = $row->titel;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user