Source for file func.comuni.php
Documentation is available at func.comuni.php
* Libreria di funzioni comuni.
* Si tratta di funzioni incluse in quasi tutti gli script e di uso comune in tutta l'applicazione VFront
* @subpackage Function-Libraries
* @author Mario Marcello Verona <marcelloverona@gmail.com>
* @copyright 2007 Mario Marcello Verona
* @license http://www.gnu.org/licenses/gpl.html GNU Public License
* Pulisce da spazi bianchi, aggiunge gli slash e rimuove eventuali tags i campi inseriti.
* Viene utilizzata per ragioni di sicurezza in contesti di invio di dati da parte del client.
while(list ($k,$val)= each($post_dom)){
while(list ($kk,$valval)= each($val)){
* Dato un numerico indicante l'ID del gruppo viene restituito il nome dello stesso
* @param int $gid ID del gruppo
* @return string Nome del gruppo
$q= vmsql_query("SELECT nome_gruppo FROM {$db1['frontend']}.gruppo WHERE gid=". intval($gid),$link);
* Estrae le parti di una data in formato internazionale e restituisce le parti della stessa in un array.
* Fornisce inoltre un valore di chiave "ita" già pronto con la data in formato italiano.
$dataITA['d']= substr($dataISO,8,2);
$dataITA['m']= substr($dataISO,5,2);
$dataITA['Y']= substr($dataISO,0,4);
$dataITA['h']= substr($dataISO,11,2);
$dataITA['i']= substr($dataISO,14,2);
$dataITA['s']= substr($dataISO,17,2);
$dataITA['ita_noh']= $dataITA['ita'];
$dataITA['ita'].= " alle ". $dataITA['h']. ":". $dataITA['i'];
* Funzione di trasformazione di data e ora da formato internazionale a formato italiano.
* Richiama a sua volta la funzione dataISO2ITA()
* @see function dataISO2ITA
return $ar['ita_noh']. " ". $ar['h']. ":". $ar['i']. ":". $ar['s'];
* Funzione di trasformazione di data da formato internazionale a formato italiano o con data e la T.
* Richiama a sua volta la funzione dataISO2ITA()
* @param unknown_type $dataISO
* @param unknown_type $ora
* @see function dataISO2ITA
* @see function dataoraITA
function dataITA($dataISO,$ora= false){
return $d['ita_noh']. "T". $dataITA['h']. $dataITA['i']. $dataITA['s'];
* Funzione interna per la determinazione dei campi coinvolti da una data query SQL
list ($campi,$monnezza) = preg_split("'[\W]FROM[\W]'i",$campi);
// $campi = trim(strtok($campi,'FROM'));
// $campi = trim(strtok($campi,'from'));
return array(trim($ar_campi[0]),trim($ar_campi[1]));
return array(trim($campi));
* Utilità che da un 1:0 restituisce "Si" o "No" con la classe CSS omonima
return ($int) ? '<span class="si">Si</span>' : '<span class="no">No</span>' ;
* Funzione per generare l'ordinamento delle tabelle secondo una colonna data
* @param string $etichetta
$getord= (isset ($_GET['ord'])) ? (int) $_GET['ord'] : $ord;
$sort = (isset ($_GET['sort'])) ? $_GET['sort'] : 0;
$title= "title=\"$desc\"";
if(isset ($_GET['ord']) && $ord== $_GET['ord']){
return "<a class=\"$class desc\" href=\"". $_SERVER['PHP_SELF']. "?gid=". $_GET['gid']. "&ord=$ord&sort=a\" $title>$etichetta</a>";
return "<a class=\"$class asc\" href=\"". $_SERVER['PHP_SELF']. "?gid=". $_GET['gid']. "&ord=$ord&sort=d\" $title>$etichetta</a>";;
return "<a href=\"". $_SERVER['PHP_SELF']. "?gid=". $_GET['gid']. "&ord=$ord&sort=a\" $title>$etichetta</a>";
* Funzione che recupera l'ordinamento impostato in una tabella data
// Prendi il campo di ordinamento dalla tabella:
$q_orderby = vmsql_query("SELECT orderby , orderby_sort FROM {$db1['frontend']}.registro_tab WHERE table_name='$tabella' AND gid=$gid ",$link);
return $orderby. " ". $orderby_sort;
* Scrive in un file di testo le query o il testo che viene passato con il parametro $sql
* E' utile soprattutto in operazioni di tipo AJAX.
* @param string $filename
function rpc_debug($sql,$filename= "./rpc.debug.txt"){
if($fp= @fopen($filename,"a")){
* Funzione di scrittura del log delle operazioni compiute mediante le maschere di VFront
* E' dipendente dal parametro $RPC_LOG, definito nel file di configurazione (default conf/conf.vfront.php)
* @param string $op 'select'|'insert'|'delete'|'update'|'ripristino'
* @param string $storico_pre
* @param string $storico_post
* @param string $info_browser
function rpc_log($op,$tabella,$uid,$gid,$info_pk= '',$storico= true,$storico_pre= '',$storico_post= '',$info_browser= ''){
global $RPC_LOG, $db1, $link;
if(!in_array($op,array('select','insert','delete','update','ripristino','duplicazione'))){
$sql= "INSERT INTO {$db1['frontend']}.log (op,tabella,uid,gid,id_record,info_browser)
VALUES ('$op','$tabella',$uid,$gid,'$id_record','$info_browser')";
$sql= "INSERT INTO {$db1['frontend']}.log (op,tabella,uid,gid,id_record,info_browser)
VALUES ('$op','$tabella',$uid,$gid,'$id_record','$info_browser')";
$sql= "INSERT INTO {$db1['frontend']}.log (op,tabella,uid,gid,id_record,info_browser,storico_post)
VALUES ('$op','$tabella',$uid,$gid,'$id_record','$info_browser','$storico_post')";
$sql= "INSERT INTO {$db1['frontend']}.log (op,tabella,uid,gid,storico_post,id_record,info_browser)
VALUES ('$op','$tabella',$uid,$gid,'$storico_post','$id_record','$info_browser')";
$sql= "INSERT INTO {$db1['frontend']}.log (op,tabella,uid,gid,id_record,info_browser)
VALUES ('$op','$tabella',$uid,$gid,'$id_record','$info_browser')";
foreach ($info_pk as $k=> $val){
$condizione.= " $k='$val' AND";
$condizione= substr($condizione,0,- 3);
$q_storico_pre= vmsql_query("SELECT * FROM $tabella WHERE $condizione",$link);
$sql= "INSERT INTO {$db1['frontend']}.log (op,tabella,uid,gid,id_record,storico_pre,info_browser)
VALUES ('$op','$tabella',$uid,$gid,'$id','$storico_pre','$info_browser')";
foreach ($info_pk as $k=> $val){
$condizione.= " $k='$val' AND";
$condizione= substr($condizione,0,- 3);
$sql= "INSERT INTO {$db1['frontend']}.log (op,tabella,uid,gid,id_record,info_browser)
VALUES ('$op','$tabella',$uid,$gid,'$id','$info_browser')";
foreach ($info_pk as $k=> $val){
$condizione.= " $k='$val' AND";
$condizione= substr($condizione,0,- 3);
$q_storico_pre= vmsql_query("SELECT * FROM $tabella WHERE $condizione",$link);
$sql= "INSERT INTO {$db1['frontend']}.log (op,tabella,uid,gid,id_record,storico_pre,storico_post,info_browser)
VALUES ('$op','$tabella',$uid,$gid,'$id','$storico_pre','$storico_post','$info_browser')";
foreach ($info_pk as $k=> $val){
$condizione.= " $k='$val' AND";
$condizione= substr($condizione,0,- 3);
$sql= "INSERT INTO {$db1['frontend']}.log (op,tabella,uid,gid,id_record,info_browser)
VALUES ('$op','$tabella',$uid,$gid,'$id','$info_browser')";
* Funzione di ordinamento dei valori di una matrice
* secondo una colonna scelta in ordine ascendente o discendente
* Funziona con una logica simile a l'SQL
* @param array $matrice La matrice data
* @param string $campo Il nome del campo
* @param string $tipo Metodo di ordinamento (ASC o DESC)
* @return array La nuova matrice ordinata
foreach($matrice as $k=> $ar){
$new[$k]= array($ar[$campo],$ar);
while(list ($k,$ar)= each($new)){
$ordinata[$k]= $new[$k][1];
|