Neues Feature Exklusiv bei Infoscreen

Exklusive Einträge haben Vorrang von normalen Einträgen.
lehrform.class: Kleine Fehlerkorrektur
This commit is contained in:
kindlm
2015-05-28 18:49:21 +02:00
parent 2ddefb2e75
commit 5eacd9ef81
4 changed files with 147 additions and 23 deletions
+26 -6
View File
@@ -39,6 +39,7 @@ class infoscreen extends basis_db
public $insertvon;
public $updateamum;
public $updatevon;
public $exklusiv;
/**
* Konstruktor
@@ -121,6 +122,7 @@ class infoscreen extends basis_db
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->exklusiv = $this->db_parse_bool($row->exklusiv);
return true;
}
else
@@ -242,7 +244,7 @@ class infoscreen extends basis_db
if($new)
{
$qry = "BEGIN;INSERT INTO campus.tbl_infoscreen_content(infoscreen_id, content_id,
gueltigvon, gueltigbis, refreshzeit, insertamum, insertvon, updateamum, updatevon) VALUES(".
gueltigvon, gueltigbis, refreshzeit, insertamum, insertvon, updateamum, updatevon, exklusiv) VALUES(".
$this->db_add_param($this->infoscreen_id, FHC_INTEGER).','.
$this->db_add_param($this->content_id, FHC_INTEGER).','.
$this->db_add_param($this->gueltigvon).','.
@@ -251,7 +253,8 @@ class infoscreen extends basis_db
$this->db_add_param($this->insertamum).','.
$this->db_add_param($this->insertvon).','.
$this->db_add_param($this->updateamum).','.
$this->db_add_param($this->updatevon).');';
$this->db_add_param($this->updatevon).','.
$this->db_add_param($this->exklusiv, FHC_BOOLEAN).');';
}
else
{
@@ -262,7 +265,8 @@ class infoscreen extends basis_db
' gueltigbis='.$this->db_add_param($this->gueltigbis).','.
' refreshzeit='.$this->db_add_param($this->refreshzeit).','.
' updateamum='.$this->db_add_param($this->updateamum).','.
' updatevon='.$this->db_add_param($this->updatevon).' '.
' updatevon='.$this->db_add_param($this->updatevon).','.
' exklusiv='.$this->db_add_param($this->exklusiv, FHC_BOOLEAN).' '.
' WHERE infoscreen_content_id='.$this->db_add_param($this->infoscreen_content_id, FHC_INTEGER).';';
}
@@ -336,10 +340,11 @@ class infoscreen extends basis_db
/**
*
* Liefert den Content der am betreffenden Infoscreen angezeigt werden soll
* @param $infoscreen_id id des Infoscreens
* @param $aktuell wenn true werden nur die aktuell gueltigen Contents geliefert
* @param integer $infoscreen_id id des Infoscreens
* @param boolean $aktuell Deafult:true. Wenn true, werden nur die aktuell gueltigen Contents geliefert
* @param boolean $exklusiv Deafult:true. Wenn true, werden Contents, die das Attribut exklusiv=true haben, vorrangig vor normalen Terminen geliefert
*/
public function getScreenContent($infoscreen_id, $aktuell=true)
public function getScreenContent($infoscreen_id, $aktuell=true, $exklusiv=true)
{
if(!is_numeric($infoscreen_id))
{
@@ -356,6 +361,20 @@ class infoscreen extends basis_db
$qry.="
AND (gueltigvon<=now() OR gueltigvon is null)
AND (gueltigbis>=now() OR gueltigbis is null)";
if($aktuell)
$qry.="
AND CASE WHEN
(
SELECT count(exklusiv) FROM campus.tbl_infoscreen_content
WHERE (infoscreen_id=20 OR infoscreen_id is null)
AND (gueltigvon<=now() OR gueltigvon is null)
AND (gueltigbis>=now() OR gueltigbis is null)
AND exklusiv=true
)>0 THEN
exklusiv=true
ELSE
1=1
END";
$qry.=" ORDER BY infoscreen_content_id;";
if($result = $this->db_query($qry))
{
@@ -373,6 +392,7 @@ class infoscreen extends basis_db
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->exklusiv = $this->db_parse_bool($row->exklusiv);
$this->result[] = $obj;
}
+2 -2
View File
@@ -66,8 +66,8 @@ class lehrform extends basis_db
$this->lehrform_kurzbz = $row->lehrform_kurzbz;
$this->bezeichnung = $row->bezeichnung;
$this->verplanen = $this->db_parse_bool($row->verplanen);
$this->bezeichnung_kurz=$this->parseSprachResult('bezeichnung_kurz',$row);
$this->bezeichnung_lang=$this->parseSprachResult('bezeichnung_lang',$row);
$this->bezeichnung_kurz=$sprache->parseSprachResult('bezeichnung_kurz',$row);
$this->bezeichnung_lang=$sprache->parseSprachResult('bezeichnung_lang',$row);
}
else
{
+12 -1
View File
@@ -3101,7 +3101,7 @@ if(!$result = @$db->db_query("SELECT kosten FROM public.tbl_raumtyp"))
if(!$db->db_query($qry))
echo '<strong>public.tbl_raumtyp: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_raumtyp: neue Spalte koste n hinzugefuegt';
echo '<br>public.tbl_raumtyp: neue Spalte kosten hinzugefuegt';
}
// Spalte onlinebewerbung fuer tbl_studiensemester
@@ -3115,6 +3115,17 @@ if(!$result = @$db->db_query("SELECT onlinebewerbung FROM public.tbl_studienseme
echo '<br>public.tbl_studiensemester: neue Spalte onlinebewerbung hinzugefuegt';
}
// Spalte exklusiv fuer campus.tbl_infoscreen_content
if(!$result = @$db->db_query("SELECT exklusiv FROM campus.tbl_infoscreen_content"))
{
$qry = 'ALTER TABLE campus.tbl_infoscreen_content ADD COLUMN exklusiv boolean NOT NULL default false;';
if(!$db->db_query($qry))
echo '<strong>campus.tbl_infoscreen_content: '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.tbl_infoscreen_content: neue Spalte exklusiv hinzugefuegt';
}
echo '<br><br><br>';
$tabellen=array(
+107 -14
View File
@@ -35,7 +35,7 @@ $rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('basis/infoscreen'))
die('Sie haben keine Berechtigung fuer diese Seite');
die($rechte->errormsg);
$datum_obj = new datum();
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
@@ -46,15 +46,46 @@ $datum_obj = new datum();
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<script type="text/javascript" src="../../include/js/jquery.js"></script>
<link rel="stylesheet" href="../../skin/jquery-ui-1.9.2.custom.min.css" type="text/css">
<link rel="stylesheet" href="../../skin/jquery.ui.timepicker.css" type="text/css">
<script type="text/javascript" src="../../include/js/jquery.js"></script>
<script type="text/javascript" src="../../include/js/tablesort/table.js"></script>
<script type="text/javascript" src="../../include/js/jquery1.9.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.timepicker.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#myTable").tablesorter(
$("#myTable").tablesorter(
{
sortList: [[0,0],[5,0]],
widgets: ['zebra']
});
});
$( ".datepicker_datum" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd.mm.yy",
showButtonPanel: true,
currentText: "Today",
closeText: "Close",
});
$( ".timepicker" ).timepicker({
showPeriodLabels: false,
hourText: "Hour",
minuteText: "Minute",
rows: 4,
});
/*
$("#refreshzeit").timepicker(
{
showPeriodLabels: false,
showHours: false,
minuteText: "",
minutes: {starts: 20, ends: 300, interval: 20},
rows: 5,
});*/
}
);
function checkValue()
@@ -76,6 +107,33 @@ $datum_obj = new datum();
}
};
</script>
<style>
.ui-timepicker-table table td a
{
padding:0.2em 0.3em 0.2em 0.3em;
width: 2em;
}
.ui-widget
{
font-size: 0.9em;
}
.ui-widget button
{
font-size: 0.9em;
}
.ui-timepicker-table table
{
font-size: 0.9em;
}
.ui-widget-content .ui-priority-secondary
{
opacity: 1;
}
.ui-widget-content .ui-priority-primary
{
font-weight: normal;
}
</style>
</head>
<body>
@@ -100,13 +158,14 @@ $datum_obj = new datum();
if($action=='save')
{
if(!$rechte->isBerechtigt('basis/infoscreen', null, 'sui'))
die('Sie haben keine Berechtigung fuer diese Seite');
die($rechte->errormsg);
$my_infoscreen_id = $_POST['infoscreen_id'];
$infoscreen_content_id = $_POST['infoscreen_content_id'];
$content_id = $_POST['content_id'];
$gueltigvon = $_POST['gueltigvon'];
$gueltigbis = $_POST['gueltigbis'];
$gueltigvon = $_POST['gueltigvondatum'].' '.$_POST['gueltigvonzeit'];
$gueltigbis = $_POST['gueltigbisdatum'].' '.$_POST['gueltigbiszeit'];
$refreshzeit = $_POST['refreshzeit'];
$exklusiv = (isset ($_POST['exklusiv'])?true:false);
$infoscreen = new infoscreen();
if($infoscreen_content_id!='')
@@ -127,6 +186,7 @@ $datum_obj = new datum();
$infoscreen->refreshzeit = $refreshzeit;
$infoscreen->updateamum = date('Y-m-d H:i:s');
$infoscreen->updatevon = $user;
$infoscreen->exklusiv = $exklusiv;
$infoscreen_ids=explode(',',$my_infoscreen_id);
if (count($infoscreen_ids)>1)
@@ -198,16 +258,30 @@ $datum_obj = new datum();
</tr>
<tr>
<td>Gültig von</td>
<td><input type="text" id="gueltigvon" size="18" name="gueltigvon" value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigvon,'d.m.Y H:i:s')),'" /> <input type="button" value="Jetzt" onclick="document.getElementById(\'gueltigvon\').value=\''.date('d.m.Y H:i:s').'\';" /> ( Format: ',date('d.m.Y H:i:s'),' )</td>
<td>
<input class="datepicker_datum" type="text" id="gueltigvondatum" size="10" name="gueltigvondatum" placeholder= "dd.mm.yyyy"value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigvon,'d.m.Y')),'" />
<input class="timepicker" type="text" id="gueltigvonzeit" size="6" name="gueltigvonzeit" placeholder= "hh:mm" value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigvon,'H:i')),'" />
<input type="button" value="Jetzt" onclick="document.getElementById(\'gueltigvondatum\').value=\''.date('d.m.Y').'\';document.getElementById(\'gueltigvonzeit\').value=\''.date('H:i').'\';" />
<input type="button" value="Leeren" onclick="document.getElementById(\'gueltigvondatum\').value=\'\';document.getElementById(\'gueltigvonzeit\').value=\'\';" />
</td>
</tr>
<tr>
<td>Gültig bis</td>
<td><input type="text" id="gueltigbis" size="18" name="gueltigbis" value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigbis,'d.m.Y H:i:s')),'" /> <input type="button" value="Jetzt" onclick="document.getElementById(\'gueltigbis\').value=\''.date('d.m.Y H:i:s').'\';" /> ( Format: ',date('d.m.Y H:i:s'),' )</td>
<td>
<input class="datepicker_datum" type="text" id="gueltigbisdatum" size="10" name="gueltigbisdatum" placeholder= "dd.mm.yyyy"value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigbis,'d.m.Y')),'" />
<input class="timepicker" type="text" id="gueltigbiszeit" size="6" name="gueltigbiszeit" placeholder= "hh:mm" value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigbis,'H:i')),'" />
<input type="button" value="Jetzt" onclick="document.getElementById(\'gueltigbisdatum\').value=\''.date('d.m.Y').'\';document.getElementById(\'gueltigbiszeit\').value=\''.date('H:i').'\'" />
<input type="button" value="Leeren" onclick="document.getElementById(\'gueltigbisdatum\').value=\'\';document.getElementById(\'gueltigbiszeit\').value=\'\';" />
</td>
</tr>
<tr>
<td>Refreshzeit</td>
<td><input id="refreshzeit" type="text" size="18" name="refreshzeit" value="',$db->convert_html_chars($infoscreen->refreshzeit),'"/> Zeit, wie lange die Seite angezeigt wird (in Sekunden)</td>
</tr>
<tr>
<td>Exklusiv</td>
<td><input id="exklusiv" type="checkbox" name="exklusiv" '.($infoscreen->exklusiv===true?'checked':'').'/> Exklusiveinträge haben Vorrang vor normalen Einträgen</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Speichern" onclick="return checkValue();"/></td>
@@ -229,6 +303,7 @@ $datum_obj = new datum();
<th>Gültig von</th>
<th>Gültig bis</th>
<th>Refreshzeit</th>
<th>Exklusiv</th>
<th colspan="2">Aktion</th>
</tr>
</thead>
@@ -237,33 +312,51 @@ $datum_obj = new datum();
$jetzt = time();
$aktiv=false;
$zukunft=false;
$exklusiv = false;
//Wenn mindestens ein Content als Exklusiv markiert ist, wird dieser vorrangig behandelt
foreach($infoscreen->result as $row)
{
$gueltigvon=$datum_obj->mktime_fromtimestamp($row->gueltigvon);
$gueltigbis=$datum_obj->mktime_fromtimestamp($row->gueltigbis);
if($row->exklusiv==true && (($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')))
$exklusiv = true;
}
foreach($infoscreen->result as $row)
{
$passiv=false;
$content = new content();
$content->getContent($row->content_id, 'German');
$gueltigvon=$datum_obj->mktime_fromtimestamp($row->gueltigvon);
$gueltigbis=$datum_obj->mktime_fromtimestamp($row->gueltigbis);
if ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')))
if ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')) && ($exklusiv==false && $row->exklusiv==false))
$aktiv=true;
elseif ($exklusiv==true && $row->exklusiv==true)
$aktiv=true;
else
{
$aktiv=false;
}
if ($aktiv==false && ($gueltigvon>=$jetzt))
$zukunft=true;
elseif ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')) && ($exklusiv==true && $row->exklusiv==false))
$passiv=true;
else
$zukunft=false;
echo '<tr '.($aktiv==true?'':'style="color:grey"').'>';
echo '<td width="10px" align="center">'.($aktiv==false?($zukunft==true?'<img title="2 gelb" src="../../skin/images/ampel_gelb.png" alt="ampel_gelb">':'<img title="3 rot" src="../../skin/images/ampel_rot.png" alt="ampel_rot">'):'<img title="1 gruen" src="../../skin/images/ampel_gruen.png" alt="ampel_gruen">').'</td>';
echo '<tr '.($aktiv==true || $passiv==true?'':'style="color:grey"').'>';
echo '<td width="10px" align="center">'.($aktiv==false?($zukunft==true || $passiv==true?'<img title="2 gelb" src="../../skin/images/ampel_gelb.png" alt="ampel_gelb">':'<img title="3 rot" src="../../skin/images/ampel_rot.png" alt="ampel_rot">'):'<img title="1 gruen" src="../../skin/images/ampel_gruen.png" alt="ampel_gruen">').'</td>';
echo '<td>',$db->convert_html_chars($row->infoscreen_content_id),'</td>';
echo '<td>',$db->convert_html_chars($row->infoscreen_id),'</td>';
echo '<td>',$db->convert_html_chars($row->content_id),'</td>';
echo '<td>',$db->convert_html_chars($content->titel),'</td>';
echo '<td '.($zukunft==true?'style="color:black"':''). '>',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigvon,'d.m.Y H:i:s')),'</td>';
echo '<td>',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigbis,'d.m.Y H:i:s')),'</td>';
echo '<td name="'.$datum_obj->formatDatum($row->gueltigvon,'Y-m-d H:i').'" '.($zukunft==true?'style="color:black"':''). '>',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigvon,'d.m.Y H:i')),'</td>';
echo '<td name="'.$datum_obj->formatDatum($row->gueltigbis,'Y-m-d H:i').'">',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigbis,'d.m.Y H:i')),'</td>';
echo '<td>',$db->convert_html_chars($row->refreshzeit),'</td>';
echo '<td>'.($row->exklusiv===true?'<b>Exklusiv</b>':'').'</td>';
echo '<td><a href="infoscreen_details.php?action=update&infoscreen_id=',$db->convert_html_chars($infoscreen_id),'&infoscreen_content_id=',$db->convert_html_chars($row->infoscreen_content_id),'">bearbeiten</a>';
echo '<td><a href="infoscreen_details.php?action=delete&infoscreen_id=',$db->convert_html_chars($infoscreen_id),'&infoscreen_content_id=',$db->convert_html_chars($row->infoscreen_content_id),'">entfernen</a>';
echo '</tr>';