| 
<?php
 function data_odierna()
 {
 
 return giorno_italiano(date("D")).", ".date("j")." ".mese_italiano(date("F"))." ".date("Y");
 
 }
 
 
 function data_europea($data)
 {
 $exp=explode("-",$data);
 return $exp[2]."/".$exp[1]."/".$exp[0];
 
 }
 
 function data_ora_europea($data)
 {
 $exp=explode(" ",$data);
 $exp2=explode("-",$exp[0]);
 return $exp2[2]."/".$exp2[1]."/".$exp2[0]." ".$exp[1];
 
 }
 
 
 function mese_italiano($month)
 {
 switch ($month)
 {
 case "January": return "Gennaio";
 case "February": return "Febbraio";
 case "March": return "Marzo";
 case "April": return "Aprile";
 case "May": return "Maggio";
 case "June": return "Giugno";
 case "July": return "Luglio";
 case "August": return "Agosto";
 case "September": return "Settembre";
 case "October": return "Ottobre";
 case "November": return "Novembre";
 case "December": return "Dicembre";
 }
 }
 
 function giorno_italiano($day)
 {
 switch ($day)
 {
 case "Mon": return "Lunedì";
 case "Tue": return "Martedì";
 case "Wed": return "Mercoledì";
 case "Thu": return "Giovedì";
 case "Fri": return "Venerdì";
 case "Sat": return "Sabato";
 case "Sun": return "Domenica";
 }
 }
 
 /** Elimina tutti i tag ( XHTML oppure XML ) $tag dalla stringa $stringa in modo ricorsivo.
 *    Ritorna una stringa che e' la stringa originale modificata senza tag $tag.
 * @param string $tag nome del tag da rimuovere in tutte le istanze di $stringa
 * @param string $stringa nome della stringa da cui eliminare tutti i tag $tag
 *    @return string
 */
 function elimina_tag($tag,$stringa)
 {
 
 $pos=strpos($stringa,"<$tag"); //posizione carattere di apertura del tag (<)
 if ($pos===false) return $stringa;
 $temp=substr($stringa,$pos); //stringa dal carattere di apertura del tag in poi
 $pos2=strpos($temp,">"); //posizione carattere di fine tag (>) ,sulla stringa dal < in poi
 $pos2=$pos2+$pos+1; //posizione carattere di fine tag, su tutta la stringa
 //echo "....posizione apertura=$pos, posizione chiusura={$pos2}";
 $stringa_prima=substr($stringa,0,$pos);
 $stringa_dopo=substr($stringa,$pos2);
 
 $stringa2=str_replace("</$tag>","",$stringa_prima.$stringa_dopo);    //ELIMINA TUTTE LE CHIUSURE DEI TAG
 
 return elimina_tag($tag,$stringa2);
 }
 
 
 /** Elimina tutti i tag ( XHTML oppure XML ) $tag dalla stringa $stringa in modo ricorsivo.
 *    Ritorna una stringa che e' la stringa originale modificata senza tag $tag.
 * @param string $tag nome del tag da rimuovere in tutte le istanze di $stringa
 * @param string $stringa nome della stringa da cui eliminare tutti i tag $tag
 *    @return string
 */
 function elimina_ogni_tag($stringa)
 {
 
 while (true)
 {
 $pos=strpos($stringa,"<"); //posizione carattere di apertura del tag (<)
 if ($pos===false) break;
 
 $temp=substr($stringa,$pos); //stringa dal carattere di apertura del tag in poi
 $pos2=strpos($temp,">"); //posizione carattere di fine tag (>) ,sulla stringa dal < in poi
 if ($pos2===false) break;
 
 $pos2=$pos2+$pos+1; //posizione carattere di fine tag, su tutta la stringa
 
 
 $stringa_prima=substr($stringa,0,$pos);
 $stringa_dopo=substr($stringa,$pos2);
 
 //echo "....posizione apertura=$pos, posizione chiusura={$pos2}<br />";
 $stringa=$stringa_prima.$stringa_dopo;
 }
 
 return $stringa;
 }
 
 function autochiudi_tag($tag,$stringa,$offset=0)
 {
 if ($offset<strlen($stringa))
 {
 $pos=strpos($stringa,"<$tag",$offset); //posizione carattere di apertura del tag (<)
 if ($pos===false) return $stringa;
 $temp=substr($stringa,$pos); //stringa dal carattere di apertura del tag in poi
 $pos2=strpos($temp,">"); //posizione carattere di fine tag (>) ,sulla stringa dal < in poi
 
 if ($temp{($pos2-1)}!="/")
 {
 
 $stringa_prima=substr($stringa,0,$pos);
 $stringa_centrale=substr($temp,0,$pos2)." />"; //si sovrascrive ">" con l'auto-chiusura "/ >"
 $stringa_dopo=substr($stringa,$pos+$pos2+1);
 return autochiudi_tag($tag,$stringa_prima.$stringa_centrale.$stringa_dopo,++$pos);
 
 }
 else    return autochiudi_tag($tag,$stringa,++$pos);
 }else    return $stringa;
 
 }
 
 
 
 /** Costruisce una query string con tutti i valori di $_GET.
 * accetta un numero ARBITRARIO di paramentri stringa, che sono interpretati
 * come i GET (valori delle chiavi dell'array $_GET) da ESCLUDERE nella costruzione
 * della query string
 * @param string $arg_1
 * @param string $arg_2
 * @param string $arg_3
 *    @return string
 */
 function buildQueryString()
 {
 $except=func_get_args();
 $query_string="";
 foreach($_GET as $name=>$value)
 {
 $continue=false;
 foreach ($except as $val) if ($val==$name){$continue=true;break;}
 if ($continue) continue;
 
 if (is_array($value))
 {
 foreach($value as $key=>$val)
 $query_string.="&".$name."[".urlencode(stripslashes($key))."]=".urlencode(stripslashes($val));
 }
 else
 $query_string.="&".$name."=".urlencode(stripslashes($value));
 }
 return $query_string;
 }
 
 function getImageXY($imagePath)
 {
 $exp=explode("/",$imagePath);
 
 $ext=strtolower(substr($exp[count($exp)-1],(strlen($exp[count($exp)-1])-4),4)); //prende le ultime 4 lettere
 
 switch ($ext)
 {
 case '.jpg':$pic = imagecreatefromjpeg($imagePath); break;
 case '.gif':$pic = imagecreatefromgif($imagePath); break;
 case '.png':$pic = imagecreatefrompng($imagePath); break;
 }
 
 return array('x'=>imagesx($pic),'y'=>imagesy($pic));
 }
 
 function getXScaled($imagePath,$y)
 {
 $size=getImageXY($imagePath);
 return $size['x']*$y/$size['y']; //$size['x']:$size['y']=X:$y
 }
 
 function getYScaled($imagePath,$x)
 {
 $size=getImageXY($imagePath);
 return $size['y']*$x/$size['x']; //$size['x']:$size['y']=$x:X
 }
 
 
 function getImageResizedValues($imagePath,$new_sizex,$new_sizey,$returnArray=false)
 {
 $size=getImageXY($imagePath);
 
 if (($size['x'] > $new_sizex) || ($size['y'] > $new_sizey) )
 {
 
 if($size['x']>$size['y'])
 {
 $s0x = $new_sizex ;
 $s0y = (($new_sizex * $size['y'])/$size['x']); //$size['x']:$new_sizex=$size['y']:X
 settype ($s0y, "integer")  ;
 }
 else
 if ($size['x']<$size['y'])
 {
 $s0y = $new_sizey ;
 $s0x = (($new_sizey * $size['x'])/$size['y']) ;//$size['y']:$new_sizey=$size['x']:X
 settype ($s0x, "integer")  ;
 } else
 {
 $s0x = $new_sizex ;
 $s0y = $new_sizey ;
 }
 
 if ($returnArray==true)
 return array('width'=>$s0x,'height'=>$s0y);
 else
 return "width:{$s0x}px;height:{$s0y}px";
 }
 else
 return false;
 
 
 }
 
 function curtain_menu($type,$menu_array,$class1,$class2,$width=100,$height=25,$start=0,$depth=1)
 {
 $type=strtoupper($type);
 
 $elem=1;
 foreach($menu_array as $id=>$content)
 {
 if ($content['father']!=$start) continue; //analizza solo i figli diretti di $start
 
 
 foreach($menu_array as $content2) //rilevazione di sottomenu
 {
 if ($content2['father']==$id) //se  un figlio (diretto)
 {
 if ($depth==1 && $type=='H') $simbols="ν"; else $simbols="»»";
 
 $sub_menu_alerter="<div style=\"float:right;font-weight:bolder;width:auto;padding-right:3px;\">{$simbols}</div>";
 break;
 }
 $sub_menu_alerter="";
 }
 
 if ($depth==1) //al primo livello mett div relativi
 {
 if ($type=="H")
 $style="style=\"z-index:10;height:{$height}px;width:{$width}px;float:left;position:relative;margin-right :5px\"";
 else
 $style="style=\"z-index:10;height:{$height}px;width:{$width}px;           position:relative;margin-bottom:5px\"";
 
 $class="class=\"{$class1}\"";
 }
 else
 if ($depth==2) //al secondo livello mette div assoluti.....
 {
 if ($type=="H") //......spostati sempre + bassi
 $style="style=\"z-index:11;height:{$height}px;width:{$width}px;position:absolute;left:0px;top: ".((($elem))*$height)."px;\"";
 else           //........spostati a destra e poi sempre + bassi
 $style="style=\"z-index:11;height:{$height}px;width:{$width}px;position:absolute;left :".($width+2)."px;top:".((($elem-1))*$height)."px;\"";
 
 
 $class="class=\"{$class2}\"";
 }
 else //ai livelli superiori mette div assoluti spostati in basso e a destra
 {
 $style="style=\"z-index:12;height:{$height}px;width:{$width}px;position:absolute;left:".($width+2)."px;top:".((($elem-1)*$height))."px;\"";
 $class="class=\"{$class2}\"";
 }
 
 $padding_top=$height/2-7;
 
 $chars=strlen($content['text']);
 
 define("ASSUMED_FONT_WIDTH_SIZE",9);
 
 $show=$chars>(($width/ASSUMED_FONT_WIDTH_SIZE))?"<span title=\"{$content['text']}\">".substr($content['text'],0,floor($width/ASSUMED_FONT_WIDTH_SIZE))."...</span>":$content['text']; //taglia i caratteri
 
 if (isset($content['url']))
 {
 $cursor="cursor:pointer;";
 $onclick="onclick=\"location.href='{$content['url']}'\"";
 $a_tag="<a style=\"display:block;\" href=\"#\" onclick=\"return false;\">";
 $a_tag_end="</a>";
 
 }else
 {
 $cursor="cursor:default;";
 $onclick="";
 $a_tag="";
 $a_tag_end="";
 
 }
 
 $value.="
 <div onmouseover=\"document.getElementById('curtain_menu_{$id}').style.display='block'\"
 onmouseout=\"document.getElementById('curtain_menu_{$id}').style.display='none'\"
 $style >
 
 <div {$class} style=\"float:left;padding-top:{$padding_top}px;width:100%;height:".($height-$padding_top)."px;{$cursor}\" $onclick  >
 <div style=\"float:left;width:80%;padding-left:3px\">{$a_tag}$show{$a_tag_end}</div> {$sub_menu_alerter}
 </div>
 
 <div style=\"display:none;\" id=\"curtain_menu_{$id}\">";
 $value.="
 ".curtain_menu($type,$menu_array,$class1,$class2,$width,$height,$id,($depth+1))."
 </div>
 
 </div>";
 
 
 $elem++;
 }
 
 return $value;
 }
 
 ?>
 |