CIS-Suche an neue DMS-Spalten angepasst

- CIS-Suche sucht nun nach Schlagworten
- Funktion search sucht nun auch direkt nach DMS-ID wenn erstes Zeichen im Suchstring "#" ist.
This commit is contained in:
Manfred Kindl
2018-03-29 11:15:10 +02:00
parent 5c429e9990
commit 0183cfd03e
6 changed files with 57 additions and 22 deletions
+3
View File
@@ -413,6 +413,7 @@ function searchDms($searchItems)
<th></th>
<th>',$p->t('global/titel'),'</th>
<th>',$p->t('tools/aktuelleVersion'),'</th>
<th>',$p->t('tools/suchbegriffe'),'</th>
</tr>
</thead>
<tbody>
@@ -430,6 +431,7 @@ function searchDms($searchItems)
else
echo '<td width="20px" height="20px" style="vertical-align:middle;"><img src="../../../skin/images/blank.gif" style="height: 18px; vertical-align:middle;"></td><td height="20px" style="vertical-align:middle;"><a href="../../../cms/dms.php?id='.$row->dms_id.'">',$row->beschreibung,'</a></td>';
echo '<td style="vertical-align:middle;">',$row->version,'</td>';
echo '<td style="vertical-align:middle;">',$row->schlagworte,'</td>';
echo '</tr>';
echo "\n";
}
@@ -442,6 +444,7 @@ function searchDms($searchItems)
else
echo '<td width="20px" height="20px" style="vertical-align:middle;"><img src="../../../skin/images/blank.gif" style="height: 18px; vertical-align:middle;"></td><td height="20px" style="vertical-align:middle;"><a href="../../../cms/dms.php?id='.$row->dms_id.'">',$row->beschreibung,'</a></td>';
echo '<td style="vertical-align:middle;">',$row->version,'</td>';
echo '<td style="vertical-align:middle;">',$row->schlagworte,'</td>';
echo '</tr>';
echo "\n";
}
+1 -1
View File
@@ -551,7 +551,7 @@ else
// Suche anzeigen
echo '<div align="left"><h1>Dokument Auswählen</h1></div><div align="right"></div>
<form action="'.$_SERVER['PHP_SELF'].'?searching=true&searchstring='.$searchstring.'" method="POST">
<input type="text" name="searchstring" value="'.$searchstring.'">
<input type="text" name="searchstring" value="'.$searchstring.'" placeholder="#123 oder Text">
<input type="submit" class="buttondesign" value="Suchen">
</form>';
+20 -10
View File
@@ -744,10 +744,20 @@ class dms extends basis_db
$qry = "SELECT tbl_dms.*, tbl_dms_version.*, tbl_dms_kategorie.berechtigung_kurzbz FROM campus.tbl_dms
JOIN campus.tbl_dms_version USING(dms_id)
JOIN campus.tbl_dms_kategorie USING (kategorie_kurzbz)
WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%')
OR lower(tbl_dms_version.beschreibung) like lower('%".$this->db_escape($suchstring)."%')
JOIN campus.tbl_dms_kategorie USING (kategorie_kurzbz)";
// Wenn erstes Zeichen # ist, dieses wegkürzen und checken ob der Rest numerisch ist. Dann nach eindeutiger ID suchen
if (substr($suchstring, 0, 1) == '#')
{
$suchstring = substr($suchstring, 1);
if (is_numeric($suchstring))
$qry .= " WHERE tbl_dms.dms_id = ".$this->db_add_param($suchstring, FHC_INTEGER);
}
else
{
$qry .= " WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%')
OR lower(tbl_dms_version.beschreibung) like lower('%".$this->db_escape($suchstring)."%')
";
}
if (is_numeric($suchstring))
$qry.= " OR dms_id = ".$this->db_escape($suchstring)."";
@@ -791,19 +801,19 @@ class dms extends basis_db
}
/**
* Sucht nach Dokumenten (nur Spalte Beschreibung) mit der aktuellsten Version.
* Sucht nach Dokumenten (Spalte schlagworte) mit der aktuellsten Version, bei denen cis_suche true ist
* Optional kann die Anzahl an Suchergebnissen übergeben werden.
*
* @param suchstring
* @param limit (optional)
* @param string $suchstring
* @param integer $limit (optional)
*/
public function searchLastVersion($suchstring, $limit=null)
{
$qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
WHERE 1=1 ";
$qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
WHERE cis_suche=true ";
foreach($suchstring as $value)
$qry.=" AND (lower(beschreibung::text) like lower('%".$this->db_escape($value)."%')
OR lower (beschreibung::text) like lower ('%".$this->db_escape(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))";
$qry.=" AND (lower(schlagworte::text) like lower('%".$this->db_escape($value)."%')
OR lower (schlagworte::text) like lower ('%".$this->db_escape(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))";
$qry.= "AND version=(SELECT MAX(version) FROM campus.tbl_dms_version where dms_id=tbl_dms.dms_id)";
if(!is_null($limit) && is_numeric($limit))
+1
View File
@@ -80,6 +80,7 @@ $this->phrasen['tools/telefonklappe']='Telefonklappe';
$this->phrasen['tools/reservieren']='Reservieren';
$this->phrasen['tools/maxPersonen']='Max. Personen';
$this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Es wurden keine Ergebnisse gefunden.';
$this->phrasen['tools/suchbegriffe']='Suchbegriffe';
//Partnerhochschulen
$this->phrasen['tools/partnerhochschulenUebersicht']='Übersicht der Partnerhochschulen';
+1
View File
@@ -82,6 +82,7 @@ $this->phrasen['tools/telefonklappe']='Extension';
$this->phrasen['tools/reservieren']='Reserve room';
$this->phrasen['tools/maxPersonen']='Max. # of people';
$this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Your search did not return any results.';
$this->phrasen['tools/suchbegriffe']='Keywords';
//Partnerhochschulen
$this->phrasen['tools/partnerhochschulenUebersicht']='Partner Universities';
@@ -60,14 +60,41 @@ $(document).ready(function()
$("#t1").tablesorter(
{
sortList: [[0,0],[1,0],[2,0]],
widgets: ["zebra"],
headers: {4:{sorter:false}}
widgets: ["zebra"],
headers: {4:{sorter:false}}
});
$("#t2").tablesorter(
{
sortList: [[0,0],[1,0],[2,0],[3,0]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: {4:{sorter:false}},
headers: {8:{sorter:false}},
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
6 : {
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
},
7 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
});
$("#t3").tablesorter(
{
sortList: [[1,0],[2,0],[3,0]],
widgets: ["zebra"],
headers: {8:{sorter:false}},
emptyTo: "emptyMax"
});
$("#t4").tablesorter(
{
sortList: [[0,0],[1,0],[2,0]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: {9:{sorter:false}},
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
@@ -83,13 +110,6 @@ $(document).ready(function()
}
}
});
$("#t3").tablesorter(
{
sortList: [[1,0],[2,0],[3,0]],
widgets: ["zebra"],
headers: {8:{sorter:false}},
emptyTo: "emptyMax"
});
});
</script>
@@ -443,7 +463,7 @@ if($berechtigung_kurzbz != '')
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
$htmlstr .= "<div style='font-size: 9pt'>".count($berechtigungen_array)." Einträge</div>";
$htmlstr .= "<div style='font-size: 9pt'>".count(array_unique($berechtigungen_array_uids))." UIDs</div>";
$htmlstr .= "<table id='t2' class='tablesorter'><thead><tr>\n";
$htmlstr .= "<table id='t4' class='tablesorter'><thead><tr>\n";
$htmlstr .= " <th>Nachname</th>
<th>Vorname</th>
<th>UID</th>