Login   Register  
PHP Classes
elePHPant
Icontem

File: functions.inc.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Michele Castellucci  >  YourCalendar  >  functions.inc.php  >  Download  
File: functions.inc.php
Role: Auxiliary script
Content type: text/plain
Description: Auxiliary script
Class: YourCalendar
Show month calendar with events from a database
Author: By
Last change: Added urlencode() in buildQueryString before return values
Date: 7 years ago
Size: 9,974 bytes
 

Contents

Class file image Download
<?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&igrave;";
        case 
"Tue": return "Marted&igrave;";
        case 
"Wed": return "Mercoled&igrave;";
        case 
"Thu": return "Gioved&igrave;";
        case 
"Fri": return "Venerd&igrave;";
        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.="&amp;".$name."[".urlencode(stripslashes($key))."]=".urlencode(stripslashes($val));            
            }
            else
            
$query_string.="&amp;".$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==&& $type=='H'$simbols="&nu;"; else $simbols="&raquo;&raquo;";
                
                
$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;
}    

?>