$site_domain = "sosemie.com";
$base_dir = './';
$home_dir= "/var/www/vhosts/".$site_domain."/httpdocs";
$admin_dir = $home_dir."/admin";
$protocol = "http://";
$base_url = $protocol.$site_domain;
$admin_url = $base_url."/admin";
$cmsConfig_template = 'default';
$site_name["fr"] = "SOSEMIE";
?>
//SGBD LOCAL
$GLOBALS["db_host"]="localhost";
$GLOBALS["db_name"]="sosemie_db";
$GLOBALS["db_user"]="sosemie_db_user";
$GLOBALS["db_pass"]="cGxyVQE0";
function db_connect(){
global $db_host,$db_user,$db_pass,$db_name;
$id_conn = mysql_connect($db_host,$db_user,$db_pass) or log_error("erreur connexion base de données");
mysql_select_db($db_name) or log_error("erreur db_connect() : Impossible de sélectionner la base de données $db_name");
//Pas de conversion des code de charactère avant envoi vers le client
mysql_query("SET NAMES 'utf8'");
//La commande SET NAMES 'x' est équivalente à ces trois commandes :
//1- Commande du client en x
// mysql> SET character_set_client = x;
//2- Résultats du serveur en x
// mysql> SET character_set_results = x;
//3- Connexion entre le client et le serveur en x
// mysql> SET character_set_connection = x;
return $id_conn;
}
?>
$GLOBALS["global_strech"] = 1;
$GLOBALS["global_quality"] = 100;
$GLOBALS["scale"] = 39;
$GLOBALS["thumbnail"] = "80x53";
$GLOBALS["default_image"] = "/images/spacer.gif";
$GLOBALS["default_process"] = "none";
$GLOBALS["default_bg"] = "ffffff";
$GLOBALS["valign"] = "middle";
$GLOBALS["halign"] = "center";
?>
function initLangue()
{
global $lang;
// set language
$select_lang = mysql_query("select nom from langues");
while($result_lang = mysql_fetch_array($select_lang))
{
$langues[] = $result_lang['nom'];
};
$lang= $_SERVER['QUERY_STRING'];
$selected_lang = explode("&", $lang);
$lang = $selected_lang[0];
if(empty($lang) || !in_array($lang, $langues)) $lang=$GLOBALS["default_lang"];
}
?>
function no_accent($str_accent) {
$pattern = Array("/é/", "/è/", "/ê/", "/ç/", "/à /", "/â/", "/î/", "/ï/", "/ù/", "/ô/");
// notez bien les / avant et après les caractères
$rep_pat = Array("e", "e", "e", "c", "a", "a", "i", "i", "u", "o");
$str_noacc = preg_replace($pattern, $rep_pat, $str_accent);
return $str_noacc;
}
function charsToHTML($argument)
{
$newValue = htmlentities($argument, ENT_QUOTES, "UTF-8");
$newValue = nl2br($newValue);
return $newValue;
}
//Remplacement des retour lignes en liste énumérée (puces).
//Idéale pour les fiches techniques en champ TEXT
function myBullets($argument, $separator="
", $withinGroup=true)
{
$newArgument=charsTOHTML($argument);
if($withinGroup) $formattedText="
";
$formattedText.="- ";
$formattedText.=str_replace($separator, "
- ", $newArgument);
$formattedText.="
";
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[0])." : ".charsTOHTML($temp[1]);
}
return $formattedTechData;
}
?>
function creerImage($width, $height)
{
return imagecreatetruecolor($width, $height);
}
function mergeImages($width, $height, $images_array, $strech=FALSE, $image_file_name ="")
{
global $home_dir, $global_quality;
define("UNKNOWN", "0");
$image_to_send = creerImage ($width, $height);
for($indice=0; $indice < count($images_array); $indice+=2)
{
$image_path = clean_path($images_array[$indice]);
$image_info = getimagesize($home_dir.$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;
default : $image_type = "UNKNOWN";
}
if (!imagetypes() & constant("IMG_".$image_type))
{
continue;
}
if (!function_exists('imagecreatefrom'.strtolower($function_suffix)))
{
continue;
}
$image = call_user_func ('imagecreatefrom'.strtolower($function_suffix), $home_dir.$image_path);
if (!$image)
{
continue;
}
$image_blend = min (100, abs($images_array[$indice+1]));
if($strech)
{
$tmp_image = creerImage ($image_info[0], $image_info[1]);
imagecopy ($tmp_image, $image, 0, 0, 0, 0, $image_info[0], $image_info[1]);
unset($image);
$image = creerImage ($width, $height);
imagecopyresized ($image, $tmp_image, 0, 0, 0, 0, $width, $height, $image_info[0]-1, $image_info[1]-1);
unset($tmp_image);
$image_info[0]=$width;
$image_info[1]=$height;
}
imagecopymerge ($image_to_send, $image, max(0, $width-$image_info[0]), max(0, $height-$image_info[1]), max(0, ($image_info[0]-$width)/2), max(0, ($image_info[1]-$height)/2), min($width, $image_info[0]), min($height, $image_info[1]), $image_blend);
$local_log .= "image $indice : point x ".max(0, $width-$image_info[0])." point Y ".max(0, $height-$image_info[1])." largeur ".min($width, $image_info[0])." hauteur ". min($height, $image_info[1])." alpha ".$image_blend."
";
}
//echo $local_log ;
if($image_file_name)
{
$image_file_name = clean_path($image_file_name);
call_user_func ('imagejpeg', $image_to_send, $home_dir.$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="")
{
$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($GLOBALS["home_dir"].$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 = "/application/templates/default/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 $home_dir, $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($home_dir.$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), $home_dir.$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, $home_dir.$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);
}
}
?>