"pcp","titolo"=>"Appalti pre-commerciali","script"=>"/pcp/pubblicita/init.php"]; $return["omc"] = ["modulo_riferimento"=> "omc","titolo"=>"Consultazioni","script"=>"/omc/pubblicita/init.php"]; $return["gare"] = ["modulo_riferimento"=> "gare","titolo"=>"Gare ed affidamenti","script"=>"/gare/pubblicita/init.php"]; $return["concorsi"] = ["modulo_riferimento"=> "concorsi","titolo"=>"Concorsi di progettazione","script"=>"/concorsi/pubblicita/init.php"]; $return["albo_fornitori"] = ["modulo_riferimento"=> "albo_fornitori","titolo"=>"Elenchi fornitori","script"=>"/albo_fornitori/partecipanti/pubblicita/init.php"]; return $return; } public function __construct($modulo=null,$elemento=null,$sub = 0) { if (!empty($modulo) && !empty($elemento)) { if (!empty(self::moduliAbilitati()[$modulo])) { global $pdo; $this->modulo = $modulo; $this->elemento = $elemento; $this->gestore = $_SESSION["ente"]->codice; $this->sub = $sub; $this->db = $pdo; $this->elemento_comunicazione = null; $this->modulo_riferimento = $this->getModuloRiferimento(); return $this; } } return false; } public function getPubblicazioni($filters=[],$order=[],$start=0,$limit=-1) { $sql = "SELECT * FROM b_pubblicita_legale WHERE modulo = :modulo "; $bind = [":codice_ente"=>$this->gestore]; if (!empty($this->modulo)) { $bind[":modulo"] = $this->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 (!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 (count($addWhere) > 0) { $sql .= " AND (" . implode(" OR ",$addWhere) . ") "; } if (isset($filters["codice"])) { if (is_numeric($filters["codice"])) { $bind[":codice"] = (int)$filters["codice"]; $sql .= " AND codice = :codice "; } else if (is_array($filters["codice"]) && !empty($filters["codice"])) { $cont = 0; $codici = []; foreach($filters["codice"] AS $codice) { if (is_numeric($codice)) { $cont++; $bind[":codice_{$cont}"] = (int)$codice; $codici[] = "codice = :codice_{$cont}"; } } if (!empty($codici)) { $sql .= " AND (" . implode(" OR ",$codici) . ") "; } else { return false; } } else { return false; } } } if (!empty($order)) { $keys = ["timestamp","data","codice","titolo"]; $sortArray = []; foreach($keys AS $key) { if (isset($order[$key])) { if (strcmp($order[$key],"ASC") === 0) { $sortArray[] = "{$key} ASC"; } else { $sortArray[] = "{$key} DESC"; } } } if (count($sortArray) > 0) { $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); return $return; } } public function getInfoProcedura() { global $beRoot; $checkAdmin = false; $path = $beRoot . self::moduliAbilitati()[$this->modulo]["script"]; if (file_exists($path)) { include($path); } } public function getModuloRiferimento() { return self::moduliAbilitati()[$this->modulo]["modulo_riferimento"]; } public function checkAdminPermission($operazione = "CHECK") { global $beRoot; $checkAdmin = true; if (!empty(self::moduliAbilitati()[$this->modulo])) { $path = $beRoot . self::moduliAbilitati()[$this->modulo]["script"]; if (file_exists($path)) { include($path); return $return; } } return false; } public function printEditor() { if ($this->checkAdminPermission()) { $this->admin = true; include (__DIR__."/backend-table.php"); } return false; } } ?>