en | fr  | Contact  | Print  | Share

FrameBeurk File

Fmbk/Module/Zenpa/fonctionsZenpa.css.php

<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.
//fonctions de génération de css du module Zenpa

// renvoie une image encodée en base64 pour incorporation au fichier css
function Zenpa_encodeImage($typeMime$nomFicher) {
    return 
'url("data:image/' $typeMime ';base64,' base64_encode(file_get_contents(INSTALL_PATH $nomFicher)) . '")';
}

// renvoie la propriété css envoyée en paramètre, préfixée par les navigateurs courant
function Zenpa_prefixePropriete($propriete$valeur) {
    if (
$propriete == 'box-sizing' or $propriete == 'appearance')
        
$special '-moz-' $propriete ':' $valeur ";\n"
            
'-webkit-' $propriete ':' $valeur ";\n";
    elseif (
$propriete == 'box-shadow')
        
$special '-webkit-' $propriete ':' $valeur ";\n";
    elseif (
$propriete == 'border-radius')
        
$special '-webkit-' $propriete ':' $valeur ";\n";
    else
        
$special =  '-o-' $propriete ':' $valeur ";\n"
            
'-moz-' $propriete ':' $valeur ";\n"
            
'-webkit-' $propriete ':' $valeur ";\n"
            
'-ms-' $propriete ':' $valeur ";\n"
            
'-khtml-' $propriete ':' $valeur ";\n";

    return 
$special
        
$propriete ':' $valeur ";\n";
}

// renvoie la propriété css envoyée en paramètre en préfixant la valeur pour les navigateurs courant
function Zenpa_prefixeValeurPropriete($propriete$valeur$parametres) {

    if (
$valeur == 'linear-gradient')
        
$special $propriete ': -webkit-' $valeur $parametres ";\n";
        
//filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf');
    
else
        
$special $propriete ': -o-' $valeur $parametres ";\n"
        
$propriete ': -moz-' $valeur $parametres ";\n"
        
$propriete ': -webkit-' $valeur $parametres ";\n"
        
$propriete ': -ms-' $valeur $parametres ";\n"
        
$propriete ': -khtml-' $valeur $parametres ";\n";
        
    return 
$special
        
$propriete ': ' $valeur $parametres ";\n";
}

// formate la classe envoyée comme un bouton. ex : ('a.maj', '8080FF', 'DDDDDD')
// la couleur de fond doit être en hexa sur 6 caractères
function Zenpa_bouton($classe$couleurTexte$couleurFond$pasDActive false) {

    
$couleurFondClair Zenpa_eclaircie($couleurFond);
    
$couleurFondFonce Zenpa_fonce($couleurFond);
    
    
// etat normal
    
echo $classe '{ /* Généré par Zenpa_bouton */
margin-top:4px;
padding:3px 8px;
color:#' 
$couleurTexte ';
border:0px; /* solid #' 
$couleurFond ';*/
background-color:#' 
$couleurFond ';
Zenpa_prefixeValeurPropriete('background-image''linear-gradient''(to top, #' $couleurFond ', #' $couleurFondClair ')') . '
Zenpa_prefixePropriete('border-radius''3px') . '
Zenpa_prefixePropriete('box-shadow''inset 0px 2px 1px 0px #FFFFFF') . '
text-decoration:none;
text-align:center;
text-shadow:0px -1px 0px #' 
$couleurFondClair ';
cursor:pointer;
line-height:'
, (substr($classe02) == 'a.' '180' '100'),'%;
white-space:nowrap
}
'
;
    
    
// curseur sur le bouton
    
echo $classe ':hover {' "\n"
        
Zenpa_prefixeValeurPropriete('background-image''linear-gradient''(to top, #' $couleurFondClair ', #' $couleurFond ')') . "\n"
        
"}\n";
    
    
// bouton enfoncé
    
if (! $pasDActive)
        echo 
$classe ':active {' "\n"
            
'position:relative;' "\n"
            
'top:1px;' "\n"
            
"}\n";
}

// éclairci la couleur hXXXXXX de x %
function Zenpa_eclaircie($couleur$taux 0.5) {
    return 
Zenpa_eclaircieXX(substr($couleur02)) . Zenpa_eclaircieXX(substr($couleur22)) . Zenpa_eclaircieXX(substr($couleur4));
}

// fonce la couleur hXXXXXX de x %
function Zenpa_fonce($couleur$taux 0.5) {
    return 
Zenpa_fonceXX(substr($couleur02)) . Zenpa_fonceXX(substr($couleur22)) . Zenpa_fonceXX(substr($couleur4));
}

// éclairci la couleur hXX de x %
function Zenpa_eclaircieXX($couleurXX$taux 0.5) {
    return 
dechex(hexdec($couleurXX) + ((255 hexdec($couleurXX)) * $taux));
}

// fonce la couleur hXX de x %
function Zenpa_fonceXX($couleurXX$taux 0.5) {
    return 
dechex(hexdec($couleurXX) * ($taux));
}

// renvoie une image encodée en base64 après l'avoir colorisée (en conservant l'alpha)
function Zenpa_encodeImageColorisee($typeMime$nomFicher$couleur) {

    
$image imagecreatefrompng(INSTALL_PATH $nomFicher);
    
imagesavealpha($imagetrue);
    
imagefilter($imageIMG_FILTER_COLORIZEhexdec(substr($couleur02)), hexdec(substr($couleur22)), hexdec(substr($couleur4))); 

    
ob_start();
    
imagepng($image);
    
$imageColorisee ob_get_clean();

    return 
'url("data:' $typeMime ';base64,' base64_encode($imageColorisee) . '")';
}

// formate les styles des cases d'un tableau responsive, par tranches de taille de media
function Zenpa_casesTableau($radicalStyle$tabColonnes) {

    global 
$TRANSAC$CONFIG;

    if (
$TRANSAC['Responsive']) {
    
        
// pour chaque tranche du tableau
        
foreach ($tabColonnes as $tabTranche) {
            list(
$minWith$maxWidth) = $tabTranche['limitesTranche'];
            echo 
'
@media '
, (($minWith) ? ('(min-width:' $minWith 'px)') : ''),
            ((
$minWith && $maxWidth) ? ' and ' ''),
            ((
$maxWidth) ? ('(max-width:' $maxWidth 'px)') : ''),
' {
'
;
            
$noCol 0;
            foreach (
$tabTranche['tailleColonnes'] as $width) {
                
$noCol += 1;
                echo 
'.'$radicalStyle'_c'$noCol' { width:'$width'%; }
'
;
            }
            
            
// fin de la tranche
            
echo '}
'
;
        }
    
    
// browser non responsive : seulement la 1ère tranche
    
} else {
        
$tabTranche $tabColonnes[0];
        
$noCol 0;
        foreach (
$tabTranche['tailleColonnes'] as $width) {
            
$noCol += 1;
            echo 
'.'$radicalStyle'_c'$noCol' { width:'$width'%; }
'
;
        }
    }
    
    
// caractéristiques communes
    
$nbCol $noCol;
    for (
$noCol 1$noCol <= $nbCol$noCol++)
        echo 
'.'$radicalStyle'_c'$noCol, (($noCol $nbCol) ? ', ' '');

    echo 
' {
padding:3px;
word-wrap:break-word;     /* ancienne */
overflow-wrap:break-word; /* nouvelle */
overflow:hidden;
float:left;
}
'
;
}

// formate le style d'une entité classique
function Zenpa_cssCarteEntite($entite) {
    global 
$TRANSAC;
    
    
// style des cases des cartes entités
    
Zenpa_cssCaseEntite($entite'float:left;');

    if (
$TRANSAC['Responsive'])
        echo 
'
@media (min-width:520px) {
    .'
$entite'_c1 { width:50%; }
    .'
$entite'_c2 { width:30%; clear:none; }
    .'
$entite'_c3 { width:20%; }
}
@media (max-width:519px) {
    .'
$entite'_c1 { width:100%; }
    .'
$entite'_c2 { width:60%; clear:left; }
    .'
$entite'_c3 { width:40%; }
}
'
;
    else
        echo 
'
.'
$entite'_c1 { width:50%; }
.'
$entite'_c2 { width:30%; clear:none; }
.'
$entite'_c3 { width:20%; }
'
;
    
    echo 
'
.'
$entite'_c6 { width:100%; }
.'
$entite'_c1 { font-size:140%; font-weight:bold; }
.'
$entite'_c2, .'$entite'_c3 { font-size:80%; line-height:100%; }
'
;
    
    
// style des lignes des cartes entités (0= lignes paires, 1= lignes impaires)
    
echo '
.'
$entite'_l0, .'$entite'_l1 {
    overflow: hidden;
    margin:3px;
}
.'
$entite'_l0 td, .'$entite'_l1 td {
    overflow: hidden;
    padding:0px 3px;
}
'
;    
    
// css dépendant du style
    
Zenpa_cssCarteEntite_style($entite);
    
Zenpa_cssTitreEntite_style($entite);
}

// formate le style d'une case d'une entité
function Zenpa_cssCaseEntite($entite$special) {
    global 
$TRANSAC;
    
    
// style des cases des cartes entités
    
echo '
.'
$entite'_c1, .'$entite'_c2, .'$entite'_c3, .'$entite'_c6 { 
    padding:5px 1.5%;
    word-wrap:break-word;     /* ancienne */
    overflow-wrap:break-word; /* nouvelle */
    overflow:hidden;
    '
$special'
}
'
;
}

// formate une entrée au menu pour une entité
function Zenpa_cssMenuEntite($entite$topAfficheCache false$special '') {
    global 
$TRANSAC;
    
    if (
$TRANSAC['Responsive'])
        echo 
'
@media (min-width:720px) {
    .'
$entite'_m0, .'$entite'_m1 { padding-top:1px; padding-bottom:1px; overflow:hidden; }
}
@media (max-width:719px) {
    .'
$entite'_m0, .'$entite'_m1 { padding-top:3px; padding-bottom:3px; overflow:hidden; }
}
'
;
    else
        echo 
'
.'
$entite'_m0, .'$entite'_m1 { padding-top:1px; padding-bottom:1px; overflow:hidden; }
'
;

    
// css dépendant du style
    
Zenpa_cssMenuEntite_style($entite$topAfficheCache);

    
// spécial
    
if ($special != '')
        echo 
'
.'
$entite'_m0, .'$entite'_m1 { '$special' }
'
;    
}


© 2010-2015 by ToolOscope SASU. © 2016-2018 by Arnaud De Rette. All rights reserved