db = $pdo; $this->codice_ente = $codice_ente; $this->modulo = $modulo; $this->elemento = $elemento; $this->sub = $sub; } public function printEditor() { include(__DIR__."/backend-table.php"); } public function getAvvisiHP() { return $this->getAvvisi("S",["homepage"=>true]); } public function getAvvisi($attivi="S",$filters=[],$order=[],$start=0,$limit=-1) { $sql = "SELECT * FROM b_avvisi WHERE codice_ente = :codice_ente AND soft_delete = 'N' "; $bind = [":codice_ente"=>$this->codice_ente]; if (!empty($this->modulo)) { $bind[":modulo"] = $this->modulo; $sql .= " AND modulo = :modulo " ; } if (!empty($this->elemento)) { $bind[":elemento"] = $this->elemento; $sql .= " AND codice_elemento = :elemento " ; } if (!empty($this->sub)) { $bind[":sub"] = $this->sub; $sql .= " AND sub = :sub " ; } if ($attivi === "S" || $attivi === "I") { $sql .= " AND (attivo = 'S' OR attivo = 'I') "; if ($attivi === "S") { $sql .= " AND data <= now() "; } } if (!empty($filters)) { $keys = ["titolo","testo"]; $addWhere = []; foreach($keys AS $key) { if (isset($filters[$key]) || isset($filters["*"])) { $value = $filters[$key] ?? $filters["*"]; $sudd = suddivisione_pdo($value,$key); if (!empty($sudd)) { $bind = $bind + $sudd["bind"]; $addWhere[] = $sudd["sql"]; } } } if (!empty($addWhere)) { $sql .= " AND (" . implode(" OR ",$addWhere) . ") "; } if (isset($filters["codice"])) { $bind[":codice"] = (int)$filters["codice"]; $sql .= " AND codice = :codice "; } if (isset($filters["homepage"])) { $sql .= " AND data_homepage > now()"; } } if (!empty($order)) { $keys = ["timestamp","data","codice"]; $sortArray = []; foreach($keys AS $key) { if (isset($order[$key])) { if (strcmp($order[$key],"ASC") === 0) { $sortArray[] = "{$key} ASC"; } else { $sortArray[] = "{$key} DESC"; } } } if (!empty($sortArray)) { $sql .= " ORDER BY " . implode(",",$sortArray); } } else { $sql .= " ORDER BY data DESC"; } if (is_numeric($limit) && is_numeric($start) && $limit != -1) { $start = (int)$start; $limit = (int)$limit; $sql .= " LIMIT {$start}, {$limit}"; } return $this->db->go($sql,$bind)->fetchAll(PDO::FETCH_ASSOC); } public function printPublic() { $avvisi = $this->getAvvisi(); $printModulo = false; if (!empty($avvisi)) { foreach($avvisi AS $avviso) { include(__DIR__."/public-view.php"); } } } public function saveAvviso($avviso) { $avviso["codice_ente"] = $_SESSION["ente"]->codice; $salva = new salva(); $salva->debug = false; $salva->nome_tabella = "b_avvisi"; $salva->operazione = (is_numeric($avviso["codice"])) ? "UPDATE" : "INSERT"; $salva->oggetto = $avviso; $codice = $salva->save(); if (!empty($codice) && isset($avviso["allegato-avviso"])) { foreach($avviso["allegato-avviso"] as $allegato) { filesManager::saveFile($allegato["filename"],$codice,"avvisi",$allegato["nome"] ?? "","A",$allegato["classificazione"] ?? ""); } } return $codice; } public function sendAvviso($codice) { global $beRoot; if (file_exists($beRoot.$this->modulo."/avvisi/send.php")) { include($beRoot.$this->modulo."/avvisi/send.php"); } } public static function verifyPublic($avviso) { $return = false; global $beRoot; if (file_exists($beRoot.$avviso["modulo"]."/avvisi/verifyPublic.php")) { include($beRoot.$avviso["modulo"]."/avvisi/verifyPublic.php"); } return $return; } public function printHP() { $tmp = $this->getAvvisiHP(); $printModulo = true; if (!empty($tmp)) { $avvisi = []; $verified = []; foreach($tmp AS $avviso) { if (!isset($verified[$avviso["modulo"]][$avviso["codice_elemento"]][$avviso["sub"]])) { $continua = static::verifyPublic($avviso); $verified[$avviso["modulo"]][$avviso["codice_elemento"]][$avviso["sub"]] = $continua; } else { $continua = $verified[$avviso["modulo"]][$avviso["codice_elemento"]][$avviso["sub"]]; } if ($continua) { $avvisi[] = $avviso; } } } if (!empty($avvisi)) { foreach($avvisi AS $avviso) { include(__DIR__."/public-view.php"); } } } } ?>