Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
160 righe
5.4 KiB
160 righe
5.4 KiB
<? |
|
class pubblicitaLegale { |
|
|
|
public $modulo; |
|
public $modulo_riferimento; |
|
protected $gestore; |
|
public $elemento; |
|
public $elemento_comunicazione; |
|
public $sub; |
|
public $lock; |
|
public $oggetto; |
|
public $codice_pec; |
|
protected $admin; |
|
public $partecipanti; |
|
protected $db; |
|
|
|
|
|
public static function moduliAbilitati() { |
|
$return = []; |
|
$return["pcp"] = ["modulo_riferimento"=> "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; |
|
} |
|
|
|
} |
|
|
|
?>
|