Task #62440 Ampelsystem Benutzercount

This commit is contained in:
kindlm
2025-06-11 13:39:50 +02:00
parent e8a233e503
commit 77ccfa46de
2 changed files with 56 additions and 2 deletions
+42
View File
@@ -575,5 +575,47 @@ class ampel extends basis_db
}
}
/**
* Zählt die Anzahl der UIDs, welche mit einer Ampel adressiert werden
* @param $ampel_id integer ID der Ampel, die geladen werden soll
*/
public function getAnzahlUserAmpel($ampel_id)
{
// Ampel laden
$qry_ampel = "SELECT benutzer_select FROM public.tbl_ampel WHERE ampel_id=".$this->db_add_param($ampel_id, FHC_INTEGER);
if($result_ampel = $this->db_query($qry_ampel))
{
// Anzahl User laden
if ($row_ampel = $this->db_fetch_object($result_ampel))
{
$qry_user = "SELECT count(*) AS anzahl FROM (SELECT uid FROM public.tbl_benutzer WHERE uid IN (".$row_ampel->benutzer_select."))subquery";
}
if ($result = $this->db_query($qry_user))
{
if ($row = $this->db_fetch_object($result))
{
return $row->anzahl;
}
else
{
$this->errormsg = 'Anzahl UIDs konnte nicht geladen werden';
return false;
}
}
else
{
$this->errormsg = 'Anzahl UIDs konnte nicht geladen werden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Ampel';
return false;
}
}
}
?>
+14 -2
View File
@@ -192,6 +192,15 @@ $datum_obj = new datum();
die('Invalid Action');
break;
}
if(isset($ampel_id) && $ampel->benutzer_select != '')
{
$anzahlUser = $ampel->getAnzahlUserAmpel($ampel_id);
}
else
{
$anzahlUser = 0;
}
echo '<form action="'.$_SERVER['PHP_SELF'].'?action=save" method="POST">
<input type="hidden" name="new" value="'.htmlspecialchars($new).'">
@@ -207,8 +216,11 @@ $datum_obj = new datum();
<td><input type="text" class="datepicker_datum" name="deadline" size="10" maxlength="10" value="'.htmlspecialchars($datum_obj->formatDatum($ampel->deadline,'Y-m-d')).'" required></td>
</tr>
<tr valign="top">
<td rowspan="3">Benutzer Select</td>
<td rowspan="3"><textarea name="benutzer_select" cols="60" rows="5" required>'.htmlspecialchars($ampel->benutzer_select).'</textarea></td>
<td rowspan="3">Benutzer*innen Select</td>
<td rowspan="3">
<textarea name="benutzer_select" cols="60" rows="5" required>'.htmlspecialchars($ampel->benutzer_select).'</textarea>
<br>Anzahl Benutzer*innen: '.$anzahlUser.'
</td>
<td></td>
<td valign="middle">Vorlaufzeit (in Tagen)&nbsp
<i class="fa fa-info-circle fa-lg" aria-hidden="true" data-toggle="tooltip" data-placement="left" title="Anzahl der Tage VOR der Deadline, an denen die Ampel gezeigt werden soll.&#013Wenn keine Angabe, dann wird die Ampel gleich nach ihrer Erstellung angezeigt."></i>