alpha_full/_include/_fonctions/fonctionItemAvecImage.php
2026-04-06 22:58:51 +02:00

354 lines
14 KiB
PHP
Executable File

<?php
function dynamiqItemImage ($itemDebug, $ifDiv, $theClass, $baliseType, $action, $var, $itemNum, $icoClass, $textClass, $custoStyle) {
// ----------------------------------------
// Principe
// ----------------------------------------
// Si affichage = vrai
// --> si on demande une DIV on fait une div et, si on ne demande pas une autre balise on mets attributs dans la div,
// --> sinon on mets les attributs dans la balise demandée
// ----------------------------------------
// On suppose que les tableaux $_SESSION sont toujours chargés, sinon il faudra forcer un refresh avant l'appel mais pas ici
// ----------------------------------------
// Si affichage pas renseigné on le force à 1
// ----------------------------------------
if (isset( $_SESSION[$var. "Afficher"][$itemNum])) {$Afficher = $_SESSION[$var. "Afficher"][$itemNum];}
else $Afficher=1;
$varTitle='';
$varImgPt='';
$varMsg='';
$varAlt='';
$varLien='';
$varStyle='';
global $mouseOverMenuContext;
global $affMContext;
global $niveau;
// ---------------------------------------------------
// On veut afficher
// ---------------------------------------------------
if ($Afficher==1) {
$dyItem='';
if (isset($_SESSION[$var. "Title"][$itemNum])) $varTitle = $_SESSION[$var. "Title"][$itemNum]; else $varTitle='';
if (isset($_SESSION[$var. "ImgPt"][$itemNum])) $varImgPt = $_SESSION[$var. "ImgPt"][$itemNum]; else $varImgPt='';
if (isset($_SESSION[$var. "Msg"][$itemNum])) $varMsg = $_SESSION[$var. "Msg"][$itemNum]; else $varMsg='';
if (isset($_SESSION[$var. "Alt"][$itemNum])) $varAlt = $_SESSION[$var. "Alt"][$itemNum]; else $varAlt='';
if (isset($_SESSION[$var. "Lien"][$itemNum])) $varLien = $_SESSION[$var. "Lien"][$itemNum]; else $varLien='';
// varStyle de langueNav que sur txt pas image
if (isset($_SESSION[$var. "Style"][$itemNum])) $varStyle = $_SESSION[$var. "Style"][$itemNum]; else $varStyle='';
// ---------------------------------------------------
// Il y a une div conteneur : value=1
// ---------------------------------------------------
if ($ifDiv==1) {
$dyItem .= '<div ';
}
// ---------------------------------------------------
// Il y a une balise contenu
// ---------------------------------------------------
if ($baliseType != '' && $baliseType != '-balise-' && $baliseType != '-') {
// on referme la div si on l'avait ouverte
if ($ifDiv=='1') { $dyItem .= '> '; }
// on ouvre la balise contenu {span / input / button}
$dyItem .= '<' .$baliseType. ' ';
// on appele la fonction atributs
$dyItem=$dyItem.= itemImagAttr($baliseType, $action, $custoStyle, $theClass, $varAlt, $varLien, $var, $itemNum, $varStyle);
// on ferme atribut
$dyItem .= ' >';
// on appele la fonction contenu
$dyItem=$dyItem.itemImagCont($itemDebug, $action, $baliseType, $varMsg, $varAlt, $varLien, trim($varImgPt), $icoClass, $textClass, $custoStyle, $var, $itemNum, $niveau, $varTitle, $theClass);
// fermeture de balise
$dyItem .= '</' .$baliseType. '>';
// Fin de Il y a une div avec attributs
if ($ifDiv=='1') $dyItem .= '</div>';
}
// ---------------------------------------------------
// Il n'y a pas de balise contenu => c'est la div qui a les attributs
// ---------------------------------------------------
else {
// attributs sur div
$dyItem=$dyItem.= itemImagAttr($baliseType, $action, $custoStyle, $theClass, $varAlt, $varLien, $var, $itemNum, $varStyle);
// on referme la div
$dyItem .= ' > ';
// on appele la fonction contenu
$dyItem=$dyItem.itemImagCont($itemDebug, $action, $baliseType, $varMsg, $varAlt, $varLien, trim($varImgPt), $icoClass, $textClass, $custoStyle, $var, $itemNum, $niveau, $varTitle, $theClass);
// Fin de Il y a une div avec attributs
$dyItem .= '</div>';
}
// ---------------------------------------------------
// Affichage final
// ---------------------------------------------------
echo $dyItem;
// ---------------------------------------------------
// Debug a l'ecran
// ---------------------------------------------------+
if ($itemDebug==1) {
echo '<br><span style="font-size:14px; display:inline-block; margin:0; max-width:300px; width:300px; word-wrap:break-word; white-space:break-spaces; grid-column:1 / span 2; color:white; background:darkblue;"><br><b>dyItem Image ==></b> ';
echo 'Afficher = ' .$Afficher. ' | ifDiv = ' .$ifDiv. ' | theClass = ' .$theClass. ' | baliseType = ' .$baliseType. ' | var = ' .$var. ' | itemNum = ' .$itemNum. ' | textClasss = ' .$textClass. ' | varImgPt = ' .$varImgPt. ' | icoClass = ' .$icoClass. ' | niveau = ' .$niveau. '| varMsg = ' .$varMsg. ' | custoStyle = ' .$custoStyle;
echo '<br> ' .htmlentities($dyItem). '</span>';
// var_dump ($_SESSION[$var. "Msg"]);
// echo '<br>Msg session= ' .$_SESSION[$var. "Msg"][$itemNum];
}
}
}// fin function
// ---------------------------------------------------
// les attributs
// ---------------------------------------------------
function itemImagAttr ($baliseType, $action, $custoStyle, $theClass, $varAlt, $varLien, $var, $itemNum, $varStyle) {
global $mouseOverMenuContext;
global $affMContext;
$menuContextStyleNom='';
$dynAttr='';
// ---------------------------------------------------
// Action
// ---------------------------------------------------
if ($action != '' && $action != '-action-' && $action != '-') {$dynAttr .= " " .$action;}
// ---------------------------------------------------
// Class
// ---------------------------------------------------
if (!empty($theClass) && $theClass != '' && $theClass != '-' && $theClass != '-theClass-') {
if ($affMContext === true ) {
$test=strpos($theClass,' ');
if ($test >0) {
$menuContextStyleNom = substr($theClass, 0, $test);
}
else $menuContextStyleNom = trim($theClass);
}
if (substr ($theClass, 0, 1 )=="#") {
$theClass=substr($theClass, 1, strlen($theClass) );
$dynAttr .= ' id="' .$theClass. '"';
}
else {
$dynAttr .= ' class="' .trim($theClass). '"';
}
}
// ---------------------------------------------------
// Style
// ---------------------------------------------------
// Si menuContextuel enrichir le style
if ($affMContext === true ) $cursorStyle = "cursor:context-menu; ";
else $cursorStyle = "";
$styles = $cursorStyle . $custoStyle .';'. $varStyle;
$styles = trim($styles);
if ( $styles !== '' && $styles !== '-' && $styles !== 'varStyle' && $styles !== '-varStyle-' ) { $dynAttr .= ' style="' . $styles . '"'; }
// ---------------------------------------------------
// Lien si lien
// ---------------------------------------------------
$test=strpos($action,'location');
if($test === false) {
if ($varLien != '' && $varLien != '-' && $varLien != '_' && strpos($varLien, "mailto")===false ) {$dynAttr .= ' onClick="window.location=\'' .$varLien. '\'"';}
}
if ($affMContext === true && $menuContextStyleNom != '' ) $dynAttr .= $mouseOverMenuContext.' onContextMenu="return mContextuel(this, \'' .$menuContextStyleNom. '\',\'' .$var. '\', ' .$itemNum. ', event);" ';
return $dynAttr;
}
// ---------------------------------------------------
// les contenus
// ---------------------------------------------------
function itemImagCont ( $itemDebug, $action, $baliseType, $varMsg, $varAlt, $varLien, $varImgPt, $icoClass, $textClass, $custoStyle, $var, $itemNum, $niveau, $varTitle, $theClass) {
global $mouseOverMenuContext;
global $affMContext;
if ($itemDebug==1) {
echo '<br><span style="font-size:14px; display:inline-block; margin:0; max-width:300px; width:300px; word-wrap:break-word; white-space:break-spaces; grid-column:1 / span 2; color:white; background:darkblue;"><br><b>dyItem Image ==></b> ';
echo 'affMContext = ' .$affMContext. '</span>';
}
$target='';
$dynContenu ='';
$menuContextStyleNom='';
$test='';
// ---------------------------------------------------
// Lien si pas action,
// ---------------------------------------------------
$target="_self";
if (($varLien != '' && $varLien != '-') && ($action=='' || $action=='-action-'|| $action=='-')) {
$dynContenu .= '<a href="' .$varLien. '" target="' .$target. '" style="text-decoration:none" ';
if (!empty($textClass) && $textClass != "-" && $textClass != '-textClass-') {
if (substr ($textClass, 0, 1 )=="#") {
$textClass=substr($textClass, 1, strlen($textClass) );
$dynContenu .= ' id="' .$textClass. '"';
}
else {
$dynContenu .= ' class="' .$textClass. '"';
}
}
$dynContenu .= '>';
}
// ---------------------------------------------------
// Image ou class awesome
// ---------------------------------------------------
if (isset($_SESSION['isAgencement']) && $_SESSION['isAgencement'] === true ) $isAgencement=true; else $isAgencement=false;
if ($varImgPt != '' && $varImgPt != '-') {
if (!empty($icoClass) && $icoClass != "-icoClass-" && $icoClass != '' && $icoClass != '-' ) $menuContextStyleNom=$icoClass;
$test=strpos($menuContextStyleNom,' ');
if ($test >0) {
$menuContextStyleNom= substr($menuContextStyleNom, 0, $test);
}
$chemin="";
if (isset($_SESSION['niveau']) && !isset($niveau)) $niveau=$_SESSION['niveau'];
if (isset($niveau) ) {
if ($niveau==0 || empty($niveau) ) {$chemin="";}
// if ($niveau==0 && $isAgencement===true) {$chemin=$_SESSION['server'].".";}
if ($niveau==1 ) {$chemin=".";}
if ($niveau==2 ) {$chemin="../.";}
if ($niveau==3 ) {$chemin="../../.";}
// pour agencement / preview
if ($niveau==3 ) {$chemin=$_SESSION['server']; $varImgPt=str_replace("./", "/", $varImgPt); }
}
$test=strtolower(substr($varImgPt,-3));
switch ($test) {
case 'jpg':
case 'peg':
case 'gif':
case 'ico':
case 'png':
case 'bmp':
case 'ebp':
case 'svg':
$test=strtolower(substr($varImgPt, 0, 4));
if ($test != 'http' ) { $src=$chemin.$varImgPt; }
// Pas de chemin si image en absolue
else { $src=$varImgPt; }
$debugLocal=0;
if($debugLocal==1) echo "Niveau = " .$niveau. " isAgencement = " .$isAgencement. " <br>test = " .$test. " <br>chemin = " .$chemin. " <br>src = " .$src. " <br>varImgPt = " .$varImgPt;
$dynContenu .= '<img src="' .$src. '"';
if($varAlt != "") $dynContenu .= ' alt="' .$varAlt. '"';
if (!empty($icoClass) && $icoClass != "-" && $icoClass != '-icoClass-' ) {
if (substr ($icoClass, 0, 1 )=="#") {
$icoClass=substr($icoClass, 1, strlen($icoClass) );
$dynContenu .= ' id="' .$icoClass. '"';
}
else {
$dynContenu .= ' class="' .$icoClass. '"';
}
}
if ($affMContext === true && !empty($menuContextStyleNom) ) $dynContenu .= $mouseOverMenuContext.' onContextMenu="return mContextuel(this, \'' .$menuContextStyleNom. '\',\'' .$var. '\', ' .$itemNum. ', event);" ';
$dynContenu .= ' />';
break;
// image html, c'est une div et du style
case 'tml':
// $dynContenu .= $varImgPt;
include ($chemin .$varImgPt);
break;
default :
// Class awesome
$dynContenu .= '<span';
if($varAlt != "") $dynContenu .= ' alt="' .$varAlt. '"';
if (!empty($icoClass) && $icoClass != "-" && $icoClass != '-icoClass-' ) {
if (substr ($icoClass, 0, 1 )=="#") {
$icoClass=substr($icoClass, 1, strlen($icoClass) );
$dynContenu .= ' id="' .$icoClass. '" class="' .$varImgPt. '"';
}
else { $dynContenu .= ' class="' .$icoClass. ' ' .$varImgPt. '"'; }
}
else { $dynContenu .= ' class="' . $varImgPt . '"'; }
if ($affMContext === true ) $dynContenu .= $mouseOverMenuContext.' onContextMenu="return mContextuel(this, \'' .$menuContextStyleNom. '\',\'' .$var. '\', ' .$itemNum. ', event);" ';
$dynContenu .= ' ></span>';
}
}
// ---------------------------------------------------
// Message de session
// ---------------------------------------------------
if ($varMsg != '' && $varMsg != '-') {
// textClass = éviter de coller le texte avec l'icone
$dynContenu .= '&#160;<span ';
// Trouver le style pour le menu contextue, si pas textClass on essaie theClass
// Par exmple sur boutons, pas de textCalss, mais on veut aller sur theClass(la div ou le span)
if ($affMContext === true ) {
if (!empty($textClass) && $textClass != "-" && $textClass != '-textClass-') {
$menuContextStyleNom=$textClass;
}
else if (!empty($theClass) && $theClass != "-" && $theClass != '-theClass-') {
$menuContextStyleNom=$theClass;
}
// en cas de multi class ?
if (!empty($menuContextStyleNom) ) {
$test=strpos($menuContextStyleNom,' ');
// echo ' test cont = ' .$test;
if ($test >0) {
$menuContextStyleNom= substr($menuContextStyleNom, 0, $test);
}
}
}
// Appliquer la textClass si existe
if (!empty($textClass) && $textClass != "-" && $textClass != '-textClass-') {
if (substr ($textClass, 0, 1 )=="#") {
$textClass=substr($textClass, 1, strlen($textClass) );
$dynContenu .= ' id="' .$textClass. '"';
}
else {
$dynContenu .= ' class="' .$textClass;
$dynContenu .= '"';
}
}
// Si menuContextuel enrichir le style
if ($affMContext === true ) $cursorStyle = "cursor:context-menu; ";
else $cursorStyle = "";
$styles = $cursorStyle . $custoStyle;
$styles = trim($styles);
if ( $styles !== '' && $styles !== '-' && $styles !== 'varStyle' && $styles !== '-varStyle-' ) { $dynContenu .= ' style="' . $styles . '"'; }
if ($affMContext === true) $dynContenu .= $mouseOverMenuContext.' onContextMenu="return mContextuel(this, \'' .$menuContextStyleNom. '\',\'' .$var. '\', ' .$itemNum. ', event);" ';
if($varTitle != "" && $varTitle != "-") {
$dynContenu .= ' data-tooltip="' .$varTitle. '"';
//if ( empty($textClass) || $textClass == "-" || $textClass == '-textClass-') $dynContenu .= ' class ="tooltip-bottom" ';
}
$dynContenu .= ' >';
$dynContenu .= $varMsg. '';
$dynContenu .= '</span>';
}
// else {echo 'pas de msg';}
// ---------------------------------------------------
// Fin lien
// ---------------------------------------------------
if (($varLien != '' && $varLien != '-') && ($action=='' || $action=='-action-'|| $action=='-') ) {$dynContenu .= '</a>';}
return $dynContenu;
}
?>