[ "label" => "Critico", "color" => "#C00", "icon" => "fa fa-exclamation-triangle" ], "warning" => [ "label" => "Avviso", "color" => "#FC0", "icon" => "fa fa-exclamation-circle" ], "info" => [ "label" => "Informazione", "color" => "#0CF", "icon" => "fa fa-info-circle" ] ]; } /** * Restituisce l'elenco degli avvisi disponibili * * @param Int|null $id Specifica l'id di un avviso specifico * @param boolean $active Specifica se restituire solo gli avvisi attivi per stato o per validità temporale * @return void */ public static function get(Int $id = null, Bool $active = false) : Array { global $pdo; $sql = "SELECT * FROM b_alert_anac WHERE codice > 0 "; $bind = []; if (isset($_SESSION["ente"])) { $sql .= " AND (codice_ente = :ente OR codice_ente = 0 OR codice_ente IS NULL) "; $bind[":ente"] = $_SESSION["ente"]->codice; } if ($active) { $sql .= " AND attivo = 'S' AND (inizio IS NULL OR inizio < now()) AND (fine IS NULL OR fine > now())"; } if ($id) { $sql .= " AND codice = :id "; $bind[":id"] = $id; } $return = $pdo->go($sql,$bind)->fetchAll(PDO::FETCH_ASSOC); if (!empty($id)) { $return = reset($return); } return $return; } public static function save(Array $data) { $data["codice_ente"] = $_SESSION["ente"]->codice ?? 0; $salva = new salva(); $salva->debug = false; $salva->nome_tabella = "b_alert_anac"; $salva->operazione = empty($data["codice"]) ? "INSERT" : "UPDATE"; $salva->oggetto = $data; return $salva->save(); } /** * Attiva o disattiva l'avviso - Restituisce lo stato così come modificato S: Attivo N: Disattivo * * @param Int $id * @return String */ public static function toggle(Int $id) : ?String { $alert = self::get($id); if (!empty($alert)) { if ($alert["attivo"] == "N") { $alert["attivo"] = "S"; } else { $alert["attivo"] = "N"; } if (self::save(["codice"=>$alert["codice"],"attivo"=>$alert["attivo"]])) { return $alert["attivo"]; } } return null; } }