0"); while($select_lang && $result_lang = mysql_fetch_array($select_lang)) { $Site['keyFlag'] = $result_lang['langues_key']; $Site['nameFlag'] = $result_lang['nom']; $Site['Flag'] = searchFile("/modules/common/assets/langues/img_".$result_lang['langues_key']); $Site['Lang'] = $Site['lang']= $result_lang['nom']; $Site['Direction'] = $GLOBALS["direction"][$result_lang['nom']]; } } ?>", $withinGroup=true) { $newArgument=charsTOHTML($argument); if($withinGroup) $formattedText=""; echo $formattedText; } //Récupération d'une fiche formatée (tableau ou liste énumérée) à partir //de plusieurs lignes séparées à l'intérieur function formatTechData($texte, $itemsSeparator, $inItemSeparator) { $items=explode($itemsSeparator, $texte); for($i=0;$i ".charsTOHTML($temp[1]); } return $formattedTechData; } ?>image s'il existe avec //1- Icone respective à l'extension //2- Lien pour ouverture (ouverture si plugin ou téléchargement) function insertFileLink($path, $target="_blank") { if(($fileToLink=searchFile($path))==FALSE) return ""; //Récupération de l'extension à partir du nom de fichier pour réccupérer l'icone if(($extension=strrchr($fileToLink,"."))!=FALSE) { $extension=substr($extension,1); } if ($extension!=FALSE) { $iconToInsert=searchFile($GLOBALS["data_img_dir"]."/icons/".$extension); } else { $iconToInsert=FALSE; } if($iconToInsert==FALSE) { if(isset($GLOBALS["default_upload_doc"])) { $iconToInsert=searchFile($GLOBALS["data_img_dir"]."/icons/".$GLOBALS["default_upload_doc"]); if($iconToInsert==FALSE) { $imgTag='Cliquer pour télécharger le document complet.'; } else { $imageSize=getimagesize($Site['homeDir'].$iconToInsert); $imgTag='Cliquer pour télécharger le document complet.'; } } else { $imgTag='Cliquer pour télécharger le document complet.'; } } else { $imageSize=getimagesize($Site['homeDir'].$iconToInsert); $imgTag='Cliquer pour télécharger le document complet.'; } return ''.$imgTag.''; } function clean_path($path) { if ( strlen($path) ) { $path = (substr($path,0,1) != "/")?"/".$path:$path; //vérifier si le home_dir est oui ou non associé avec le path if ( substr($path,0,strlen($GLOBALS['home_dir'])) == $GLOBALS['home_dir'] ) { //on l'enlève $path = substr($path,strlen($GLOBALS['home_dir']),strlen($path)-strlen($GLOBALS['home_dir'])); } return $path; } else return NULL; } //Effacer un fichier s'il existe function deleteFile($path) { global $Site; //Le fichier exsiste tel que fourni if(($foundFile=searchFile($path))!=FALSE) unlink($Site['homeDir'].$foundFile); } //Fonction obsolète, appelle deleteFile function deleteImage($path) { deleteFile($path); } //fonction obsolète : appele uploadFile function uploadImage($fileName, $fileTMP, $pathTo) { uploadFile($fileName, $fileTMP, $pathTo, "img"); } //Téléchargement des fichiers : //recherche de l'extension sur //1- $path fourni en argument //2- nom de fichier sur le client //3- Extension par défaut dans globals/def.inc.php // Ou pas d'extension function uploadFile($fileName, $fileTMP, $pathTo, $type="doc") { global $Site; deleteFile($pathTo); //recherche de l'extension dans la destination si l'extension est définie par défaut if(($extension=strrchr($pathTo,"."))==FALSE) { //recherche de l'extension dans le nom de fichier sur la machine du client if(($extension=strrchr($fileName,"."))==FALSE) { //Lecture de l'extension par défaut if(isset(${"default_upload_".$type})) { $extension=".".${"default_upload_".$type}; } } } else $pathTo=substr($pathTo, 0, strrpos($pathTo, ".")-1); move_uploaded_file($fileTMP, $Site['homeDir'].$pathTo.$extension); } //Rechercher le fichier sur $path : //1- Fichier existant tel quel //2- Extension non spécifiée : recherche de $path.(La première extension trouvée) //3- Fichier non trouvé function searchFile($path) { global $Site; $foundFile=FALSE; //inclure un slash pour indiquer à partir de la racine if(substr($path,0,1)!="/") $path="/".$path; //Obtention du nom de fichier et du nom de dossier $dirName=$Site["homeDir"].dirname($path); $fileName=basename($path); //Le fichier exsiste tel que fourni if(file_exists($dirName."/".$fileName)) { $foundFile=($path); } //Un seul cas d'echec pris en compte : fichier fourni sans extension : else { //echo "Fichier : ".$dirName."/".$fileName."non trouvé"; //Vérifier que le fichier est sans extension if(($extension=strrchr($path,".")==FALSE)) { $found=0; //Le dossier n'existe pas : if(is_dir($dirName)) { //Ouvrir un handle sur le dossier $handle=opendir($dirName); while (($file = readdir($handle)) && ($found==0)) { //Recherche du premier fichier dont le nom-l'extension=fichier à effacer if((strrpos($file,".")!=FALSE)&& ($fileName==substr($file,0,strrpos($file,".")))) { $foundFile=($path.strrchr($file,".")); $found=1; } } closedir($handle); } } } return $foundFile; } ?>"; } //echo $local_log ; if($image_file_name) { $image_file_name = clean_path($image_file_name); call_user_func ('imagejpeg', $image_to_send, $Site['homeDir'].$image_file_name, $qualite); return $image_file_name; } else { header("MIME-Version: 1.0"); header("Content-Type: image/jpeg"); header("Content-Transfer-Encoding: 8bit"); call_user_func ('imagejpeg', $image_to_send, NULL, $global_quality); } } function insertImage($path, $size, $operation, $optionnal_arguments="", $atributes="") { $imageInfos = array(); $imageInfos = howToInsertImage($path, $size, $operation, $optionnal_arguments, $atributes); return ''; } function howToInsertImage($path, $size, $operation, $optionnal_arguments="", $atributes="") { global $Site; $argumentsToSend = array(); //Vérification de l'existence du fichier image if(($foundFile=searchFile($path))!=FALSE) $imageToInsert=$foundFile; else $imageToInsert=$GLOBALS["default_image"]; //Determination de la taille de la fenêtre $imageSize=getimagesize($Site['homeDir'].$imageToInsert); if(!$size) { $size = $imageSize[0]."x".$imageSize[1]; } $windowWidth=substr($size, 0, strpos($size,"x")); if(!$windowWidth) $windowWidth = $imageSize[0]; $windowHeight=substr($size, strpos($size,"x")+1); if(!$windowHeight) $windowHeight = $imageSize[1]; //Récupération des valeurs optionnelles en leur créant des variables locales //Décomposition de la chaine complète $argumentsArray = explode(" ", $optionnal_arguments); foreach($argumentsArray as $option) { //effacement des balncs de chaque couple $option = trim($option); //Décomposition du couple $option_elements = explode("=",$option); //création de la variable ${$option_elements[0]} = $option_elements[1]; } //Traitements à faire selon l'oprétation demandées if(!$operation) $operation = $GLOBALS["default_process"]; switch($operation) { //Zoom case "zoom" : //Vérification du zoom if (!$zoom) $zoom = 100; $zoom = abs($zoom); //Multiplication par le facteur zoom $imageSize[0] = floor($imageSize[0]*$zoom/100); $imageSize[1] = floor($imageSize[1]*$zoom/100); $ImageHeight = $windowHeight; $ImageWidth = $windowWidth; $argumentsToSend[] = "zoom=".$zoom; break; //Adaptation comme l'étirement mais avec sauvegarde des proportions case "adapt" : //Ajustement si la taille de l'image est plus grande que la fenêtre if($imageSize[0]!=$windowWidth) { $imageSize[1] = floor($imageSize[1]*$windowWidth/$imageSize[0]); $imageSize[0] = $windowWidth; } if($imageSize[1]>$windowHeight) { $imageSize[0] = floor($imageSize[0]*$windowHeight/$imageSize[1]); $imageSize[1] = $windowHeight; } $argumentsToSend[] = "strech=1"; $ImageWidth = $imageSize[0]; $ImageHeight = $imageSize[1]; break; //Etirement case "strech": //Nous fixons la taille de l'image à la taille de la fenêtre //Nous fixons la variable strech à 1 $argumentsToSend[] = "strech=1"; $ImageWidth = $windowWidth; $ImageHeight = $windowHeight; break; //Rien ! ! ! default : case "none" : //Rien n'est fait. $argumentsToSend[] = "zoom=100"; $ImageWidth = $windowWidth; $ImageHeight = $windowHeight; break; } //Nous fixons tout débordement à l'intérieur de la fenêtre //Si l'image est plus petite alors c'est ok //Sinon tronquer voir l'alignement si possible //Si les dimensions sont différentes de celles de la fenêtre alors on appele le script: if($background_color) $argumentsToSend[] = "background_color=".$background_color; if($halign) $argumentsToSend[] = "halign=".$halign; if($valign) $argumentsToSend[] = "valign=".$valign; if($imageToInsert!=$default && ($windowWidth!=$imageSize[0] || $windowHeight!=$imageSize[1])) { $imageToInsert = "/js/images.php?source=".$imageToInsert."&width=".$ImageWidth."&height=".$ImageHeight; if(count($argumentsToSend)) { $argumentsString = join("&", $argumentsToSend); $imageToInsert .= "&".$argumentsString; } //echo $optionnal_arguments; } return array($imageToInsert, $ImageWidth, $ImageHeight, $atributes); } function processImage($width, $height, $image_source, $optionnal_arguments) { global $Site, $global_quality; define("UNKNOWN", "0"); //Récupération des valeurs optionnelles en leur créant des variables locales //Décomposition de la chaine complète $argumentsArray = explode(" ", $optionnal_arguments); foreach($argumentsArray as $option) { //effacement des balncs de chaque couple $option = trim($option); //Décomposition du couple $option_elements = explode("=",$option); //création de la variable ${$option_elements[0]} = $option_elements[1]; } //Positionnement de certaines variable if(!isset($quality)) $quality = $global_quality; if(isset($zoom)) { if($zoom==0) unset($zoom); $zoom = abs($zoom); } //Variable de positionnement de l'image dans la fenêtre : if(!isset($valign)) $valign = $GLOBALS["valign"]; if(!isset($halign)) $halign = $GLOBALS["halign"]; //Couleur de fond ? if(!isset($background_color)) $background_color = $GLOBALS["default_bg"]; //Création de l'image à envoyer $image_to_send = creerImage($width, $height); //Récupération des composantes de la couleur de fond $background_color_integer = hexdec($background_color); //remplissage avec la couleur imagefill ($image_to_send, 0, 0, $background_color_integer); //Récupération de l'image source $image_path = searchFile($image_source); //Obtention des infos $image_info = getimagesize($Site['homeDir'].$image_path); switch($image_info[2]) { case "1" : $image_type = $function_suffix = "GIF"; break; case "2" : $image_type = "JPG"; $function_suffix = "JPEG"; break; case "3" : $image_type = $function_suffix = "PNG"; break; case "4" : $image_type = $function_suffix = "UNKNOWN"; break; case "5" : $image_type = $function_suffix = "PSD"; break; case "6" : $image_type = $function_suffix = "BMP"; break; case "7" : case "8" : $image_type = $function_suffix = "TIFF"; break; case "9" : $image_type = $function_suffix = "JPC"; break; case "10" : $image_type = $function_suffix = "JP2"; break; case "11" : $image_type = $function_suffix = "JPX"; break; case "12" : $image_type = $function_suffix = "JB2"; break; case "13" : $image_type = $function_suffix = "SWC"; break; case "14" : $image_type = $function_suffix = "IFF"; break; default : $image_type = "UNKNOWN"; } if(function_exists('imagecreatefrom'.strtolower($function_suffix))) { $image = call_user_func ('imagecreatefrom'.strtolower($function_suffix), $Site['homeDir'].$image_path); } else { $image = creerImage ($image_info[0], $image_info[1]); imagestring($image, 1, 0, 0, "No imagecreatefrom".strtolower); } if ($image) { $xFromPos = 0; $yFromPos = 0; //Si adaptation if($strech) { //désactiver le zoom $zoom = 100; //Récupération de l'image ouverte dans une variable temporaire $tmp_image = creerImage ($image_info[0], $image_info[1]); imagecopy ($tmp_image, $image, 0, 0, 0, 0, $image_info[0], $image_info[1]); //Destruction et recréation de l'image dans la bonne taille unset($image); $image = creerImage ($width, $height); //Copie et réechantillonage de l'image depuis le contenu original vers le contenu adapté imagecopyresampled($image, $tmp_image, 0, 0, 0, 0, $width, $height, $image_info[0], $image_info[1]); //destruction de l'image temporaire et ajustement des tailles de l'image unset($tmp_image); $image_info[0]=$width; $image_info[1]=$height; } if(isset($zoom)) { //Calcul de la nouvelle taille $zoomedWidth = max(floor($image_info[0]*$zoom/100),1); $zoomedHeight = max(floor($image_info[1]*$zoom/100),1); //Récupération de l'image ouverte dans une variable temporaire $tmp_image = creerImage ($image_info[0], $image_info[1]); imagecopy ($tmp_image, $image, 0, 0, 0, 0, $image_info[0], $image_info[1]); //Destruction et recréation de l'image dans la bonne taille unset($image); $image = creerImage ($zoomedWidth, $zoomedHeight); //Copie et réechantillonage de l'image depuis le contenu original vers le contenu adapté imagecopyresampled($image, $tmp_image, 0, 0, 0, 0, $zoomedWidth, $zoomedHeight, $image_info[0], $image_info[1]); //destruction de l'image temporaire et ajustement des tailles de l'image unset($tmp_image); $image_info[0]=$zoomedWidth; $image_info[1]=$zoomedHeight; switch($valign) { default : case "top" : break; case "middle": $yDecal = floor(($zoomedHeight-$height)/2); break; case "bottom": $yDecal = ($zoomedHeight-1)-$height; break; } switch($halign) { default : case "left" : break; case "center": $xDecal = floor(($zoomedWidth-$width)/2); break; case "right": $xDecal = ($zoomedWidth-1)-$width; break; } //Qui est plus petit ? if($zoomedWidth>$width) $xFromPos = $xDecal; else $xToPos = abs($xDecal); if($zoomedHeight>$height) $yFromPos = $yDecal; else $yToPos = abs($yDecal); } //Copie de l'image traitée vers l'image finale imagecopy($image_to_send, $image, $xToPos, $yToPos, $xFromPos, $yFromPos, $image_info[0], $image_info[1]); } //echo $local_log ; if($image_file_name) { $image_file_name = clean_path($image_file_name); call_user_func ('imagejpeg', $image_to_send, $Site['homeDir'].$image_file_name, $quality); return $image_file_name; } else { header("MIME-Version: 1.0"); header("Content-Type: ".image_type_to_mime_type(IMAGETYPE_JPEG)); header("Content-Transfer-Encoding: 8bit"); call_user_func ('imagejpeg', $image_to_send, NULL, $quality); } } ?>