","%"," ","*",'$','-'); $nom=str_replace($tab,"_",$nom); $nom=strtolower($nom); /* //echo "text0 : ".clean_str_soft(utf8_encode($text))." - "; //echo "text : $text - "; $nom=strtolower($text); $pattern = Array("/À/","/Á/","/Â/","/Ã/","/Ä/","/Å/","/Ç/","/È/","/É/","/Ê/","/Ë/","/Ì/","/Í/","/Î/","/Ï/","/Ò/","/Ó/","/Ô/","/Õ/","/Ö/","/Ù/","/Ú/", "/Û/","/Ü/","/Ý/","/à/","/á/","/â/","/ã/","/ä/","/å/","/ç/","/è/","/é/","/ê/","/ë/","/ì/","/í/","/î/","/ï/","/ð/","/ò/","/ó/","/ô/","/õ/","/ö/","/ù/", "/ú/","/û/","/ü/","/ý/","/ÿ/"); for($i=0;$i","%"," ","*",'$'); $nom=str_replace($tab,"_",$nom); $nom=strtolower($nom);*/ return $nom; } function clean_str_soft($str){ $accents = array('à' => 'a', 'ä' => 'a', 'â' => 'a', 'é' => 'e', 'è' => 'e', 'ê' => 'e', 'ë' => 'e', 'ï' => 'i', 'î' => 'i', 'ö' => 'o', 'ô' => 'o', 'ü' => 'u', 'ç' => 'c'); $str = rtrim($str); $str = str_replace(array_keys($accents), array_values($accents), $str); $str = preg_replace('#[^a-zA-Z0-9\.]#si', '_', $str); return ($str); } function verif_rep($dir_name){ $size = strlen($dir_name); if ($dir_name{$size-1}=="/") { $dir_name = substr($dir_name,0,$size-1); } if (!is_dir($dir_name)) mkdir($dir_name,0775); } function hash_rep($rep,$nom_fichier) { $dir=''; for($i=0 ; $i<3 ; $i++) { $dir.= $nom_fichier{$i}."/"; verif_rep($rep.$dir); } return $dir; } function create_config_id_client() { global $core; if(isset($_SESSION['key_session'])) { //Initialisation de la fonction de cryptage $init_crypt=initialize_crypt(); //Récupération des données en session $key_sess=decode_crypt($_SESSION['key_session'],$init_crypt); if($key_sess!=false) { $core->config['id_client']=$key_sess[0]; $core->config['user_email']=$key_sess[1]; $core->config['user_password']=$key_sess[2]; $connected="yes"; } else { $connected=""; //$err=-4; } } else { $connected=""; // $err=-4; } return $connected; } ?>host=$core->config['host']; $this->user=$core->config['user']; $this->pass=$core->config['password']; $this->base=$core->config['dbname']; } // PRIVATE : connection ࡬a DB function connect($host='', $user='', $pass='', $base) { global $core; $host=$core->config['host']; $user=$core->config['user']; $pass=$core->config['password']; $base=$core->config['dbname']; $this->connect_id = mysql_pconnect($host, $user, $pass); if ($this->connect_id) { if(mysql_select_db($base, $this->connect_id)){ mysql_query("SET NAMES UTF8"); return $this->connect_id; } else return FALSE; } else return FALSE; } // PRIVATE : connection ࡬a DB function query($query) { if ( !$this->connect_id ) $this->connect($this->host,$this->user,$this->pass,$this->base); if ( $this->result_id = mysql_query($query, $this->connect_id) ) { $this->query = trim($query); return $this->result_id; } else { $this->error= mysql_error(); return FALSE; } } // PUBLIC : Dernier id inserer function last_insert_id() { return @mysql_insert_id(); } // PUBLIC : renvoi le nombre d'enregistrement affect function num_rows(){ if ( isset($this->result_id) ) { if ( preg_match('`^select`i',$this->query) ) { $i = mysql_num_rows($this->result_id); return $i; } if ( preg_match('`^(insert|update|delete)`i',$this->query) ) return mysql_affected_rows($this->result_id); } else { return count($this->records); } } function get_object($id="") { if ($id=="") $id=$this->result_id; return @mysql_fetch_object($id); } function get_array($query, $mode='ASSOC') { switch($mode) { case 'NUMERIC' : return @mysql_fetch_array($query, MYSQL_NUM); break; case 'BOTH' : return @mysql_fetch_array($query, MYSQL_BOTH); break; case 'ASSOC' : default : return @mysql_fetch_assoc($query); break; } } /* Retourne la valeur du champs demand顤e la table demandꥠ*/ function valeur_table_recup($nom_champs_value,$nom_champs_table,$nom_table,$nom_champs_a_recuperer,$valeur_champs="") { // Pour v곩fier si la valeur du champs est la m뮥 que celle demandꥍ if ($valeur_champs!="") { $requete_add="AND $nom_champs_a_recuperer='$valeur_champs'"; } $db = new db("hflibrescom"); $requete_table_valeur="SELECT $nom_champs_a_recuperer FROM $nom_table WHERE $nom_champs_table='$nom_champs_value' $requete_add LIMIT 1"; $result_table_valeur = $db->query($requete_table_valeur); while ($row = $db->get_object($result_table_valeur)) { $valeur_table_valeur=$row->$nom_champs_a_recuperer; } $db->close(); return $valeur_table_valeur; // Retourne la valeur du champs demand顤ans la table demandꥠ } /* Retourne la valeur du champs demand顤e la table demandꥠavec une relation comme la langue ou le sexe */ function valeur_table_recup_relation($nom_champs_value,$nom_champs_table,$nom_table,$nom_champs_value2,$nom_champs_table2,$nom_champs_a_recuperer,$valeur_champs="") { // Pour v곩fier si la valeur du champs est la m뮥 que celle demandꥍ if ($valeur_champs!="") { $requete_add="AND $nom_champs_a_recuperer='$valeur_champs'"; } // Pour v곩fier si la valeur du champs est la m뮥 que celle demandꥍ if ($nom_champs_value2!="") { $requete_add2="AND $nom_champs_table='$nom_champs_value2'"; } $db = new db("hflibrescom"); $requete_table_valeur="SELECT $nom_champs_a_recuperer FROM $nom_table WHERE $nom_champs_table='$nom_champs_value' $requete_add $requete_add2 LIMIT 1"; $result_table_valeur = $db->query($requete_table_valeur); while ($row = $db->get_object($result_table_valeur)) { $valeur_table_valeur=$row->$nom_champs_a_recuperer; } $db->close(); return $valeur_table_valeur; // Retourne la valeur du champs demand顤ans la table demandꥠ } // PUBLIC : renvoi le msg d'erreur mysql function return_error() { return @mysql_error(); } // PUBLIC : ferme la connection; function close() { return @mysql_close($this->connect_id); } // PUBLIC : vide les resultat des requete function free_result() { return @mysql_free_result($this->connect_id); } } /* ***** Script pour se connecter : $maBD = new bd("base"); base est le nom de la base de donnꥍ // executer une requete : $result = $maBD->query(SELECT * FROM ....); $row = $maBD->get_object($result); */ ?> config['domain']); $init_crypt['iv'] = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND); return $init_crypt; } function decode_crypt($key,$init_crypt) { $data=base64url_decode($key); $result = mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$init_crypt['secret'],$data,MCRYPT_MODE_ECB,$init_crypt['iv']); if(strpos($result, '##')) { $tab = explode('##',$result); } else { $tab=false; } return $tab; } function encode_crypt($data,$init_crypt) { $key = base64url_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$init_crypt['secret'],$data,MCRYPT_MODE_ECB,$init_crypt['iv'])); return $key; } ?>clear($div, "innerHTML"); $objResponse->assign($div,"innerHTML",$text); return $objResponse; } /* AFFICHAGE DES MESSAGES D'ERREUR */ function affiche_msg_err($type,$err){ global $core; $db = new db($config->db_name); $result=$db->query("SELECT text FROM textes_info WHERE num='$err' AND type='$type' AND lang='".$core->config['lang']."'"); if($db->num_rows($result)!=0) { $r = $db->get_object($result); $erreur = $r->text; } $db->close(); return $erreur; } function msg_err($err){ global $core; //Affichage des erreurs if(($err!='')&&($err!=0)) { $core->systeme['erreur']=affiche_msg_err('err',$err); if($err>0) {$core->page['err'].=evalTemplate("tpl_erreur.php");} elseif($err<0) {$core->page['err'].=evalTemplate("tpl_message.php");} } } // Pour appeler une page dans templates/ function evalTemplate($template) { global $core; $return = file_get_contents("templates/".$template); $return = str_replace('"','\"',$return); /* $return = str_replace('{$','".$',$return); $return = str_replace('}','."',$return);*/ // $return = preg_replace("/{".'$'."(.*)}/", '/".\$$1."/', $return); $return = preg_replace('/\{'.'\$'.'(.*)\}/smiU','".'.'\$'.'$1."',$return); eval( "\$return = \"$return\";" ); // on va chercher toutes les images et on va vérifier qu'elles existent bien avec la langue actuelle, sinon, on affiche les images correspondantes à la langue par défaut // modif_image($return); return $return; } // Pour appeler une page html dans html/ function evalPageHtml($pageHtml) { global $core; $return = @file_get_contents("html/".$pageHtml); // si le fichier html n'existe pas dans la langue actuelle if(!$return) { // on ouvre le fichier html correspondant à la langue par défaut $tab_namefile = explode('_',$pageHtml); // reconstitution du nom du fichier avec l'extension correspondant au language par défaut for($i=0;$i<(sizeof($tab_namefile)-1);$i++) {$fichierHtml.=$tab_namefile[$i]."_";} $fichierHtml.=$core->config['lang_default'].".html"; $return = file_get_contents("html/".$fichierHtml); } $return = str_replace('"','\"',$return); $return = preg_replace('/\{'.'\$'.'(.*)\}/smiU','".'.'\$'.'$1."',$return); eval( "\$return = \"$return\";" ); modif_image($return); return $return; } // Pour traduire les JS/ function evalTemplateJS($template) { global $core; $return = file_get_contents("js/".$template); $return = str_replace('"','\"',$return); $return = str_replace('$','#dollar#',$return); $return = preg_replace('/\{'.'#dollar#'.'(.*)\}/smiU','".'.'\$'.'$1."',$return); eval( "\$return = \"$return\";" ); $return = str_replace('#dollar#','$',$return); return $return; } function set_text_site(){ global $core; $mydb = new db($core->config['dbname']); $req1="SELECT nom,text FROM textes_site WHERE lang='".$core->config['lang_default']."' ORDER BY nom"; $result1 = $mydb->query($req1); $nb1 = $mydb->num_rows($result1); if($nb1>0) { while($row1=$mydb->get_object($result1)) { $req="SELECT nom,text FROM textes_site WHERE lang='".$core->config['lang']."' AND nom LIKE '".$row1->nom."' LIMIT 1"; $result = $mydb->query($req); $nb = $mydb->num_rows($result); if($nb>0) { $row=$mydb->get_object($result); $core->text[$row->nom]=htmlspecialchars($row->text, ENT_QUOTES); } // si aucun texte de la langue en cours , on remplace par le texte de la langue par defaut else { $core->text[$row1->nom]=htmlspecialchars($row1->text, ENT_QUOTES); } } } } function set_text_page($page){ global $core; $mydb = new db($core->config['dbname']); $req1="SELECT nom,text FROM textes_page WHERE lang LIKE'".$core->config['lang_default']."' AND page LIKE '$page' ORDER BY nom"; $result1 = $mydb->query($req1); $nb1 = $mydb->num_rows($result1); if($nb1>0) { while($row1=$mydb->get_object($result1)) { $req="SELECT nom,page,text FROM textes_page WHERE lang LIKE'".$core->config['lang']."' AND page LIKE '$page' AND nom LIKE '".$row1->nom."' LIMIT 1"; $result = $mydb->query($req); $nb = $mydb->num_rows($result); if($nb>0) { $row=$mydb->get_object($result); $core->page[$row->page][$row->nom]=htmlspecialchars($row->text, ENT_QUOTES); } // si aucun texte de la langue en cours , on remplace par le texte de la langue par defaut else { $core->page[$row->page][$row1->nom]=htmlspecialchars($row1->text, ENT_QUOTES); } } } } function set_text_menu($zone){ global $core; $mydb = new db($core->config['dbname']); $req="SELECT nom,text,url FROM textes_menu WHERE lang LIKE '".$core->config['lang']."' AND zone LIKE '$zone' ORDER BY ordre"; $result = $mydb->query($req); $nb = $mydb->num_rows($result); if($nb>0) { $i=0; $core->page['menu']=''; } // si aucun texte de la langue en cours , on remplace par le texte de la langue par defaut else { $req="SELECT nom,text,url FROM textes_menu WHERE lang LIKE '".$core->config['lang_default']."' AND zone LIKE '$zone' ORDER BY ordre"; $result = $mydb->query($req); $core->page['menu']=''; } } function set_text_sous_menu($zone,$rubrique){ global $core; $mydb = new db($core->config['dbname']); $req="SELECT nom,text,url FROM textes_sous_menu WHERE lang LIKE '".$core->config['lang']."' AND zone LIKE '$zone' AND rubrique LIKE '$rubrique' ORDER BY ordre"; $result = $mydb->query($req); $nb = $mydb->num_rows($result); if($nb>0) { $i=0; $core->page['sous_menu']=''; } // si aucun texte de la langue en cours , on remplace par le texte de la langue par defaut else { $req="SELECT nom,text,url FROM textes_sous_menu WHERE lang LIKE '".$core->config['lang_default']."' AND zone LIKE '$zone' AND rubrique LIKE '$rubrique' ORDER BY ordre"; $result = $mydb->query($req); $core->page['sous_menu']=''; } } function create_selectbox($obj,$nom,$select,$class='',$js='',$title='') { global $core; $text='"; return $text; } function add_reload_div($fonction_php,$type,$div,$interval,$params='0'){ global $core; switch ($type) { case 'change': $js=" onchange=\"xajax_reload_div('$fonction_php','$div','$params');\" "; break; case 'click': $js=" onclick=\"".$add_js."xajax_reload_div('$fonction_php','$div',$params);\" "; case 'div': $js=""; break; } return $js; } /* CONTRUCTION DE TABLEAUX */ function create_tableau($page,$id,$contenu_tableau,$css="",$js=""){ global $core; $constuction_tableau.=""; $mydb = new db($core->config['dbname']); $req="SELECT nom,text,page,tri,largeur FROM textes_tableau WHERE lang='".$core->config['lang']."' AND page='$page' ORDER BY ordre"; $result = $mydb->query($req); $nb = $mydb->num_rows($result); if($nb>0) { $i=0; $constuction_tableau.=""; while($row=$mydb->get_object($result)) { $text=$row->text; // Ce qui va s'afficher $nom=$row->nom; // Pour la recherche sur les flèches $page=$row->page; // Pour la recherche sur les flèches $tri=$row->tri; // Pour la recherche sur les flèches $largeur=$row->largeur; // Ajout des flèches hautes et basses if ($tri=='1') { $url_tri=$core->config['page_en_cours']."?tri=$tri&col=$nom"; $constuction_tableau.=""; } else { $constuction_tableau.=""; } $i++; } $constuction_tableau.=""; } // si aucun texte de la langue en cours , on remplace par le texte de la langue par defaut else { $constuction_tableau.=""; $req="SELECT nom,text,page,tri,largeur FROM textes_tableau WHERE lang='".$core->config['lang_default']."' AND page='$page' ORDER BY ordre"; $result = $mydb->query($req); while($row=$mydb->get_object($result)) { $text=$row->text; // Ce qui va s'afficher $nom=$row->nom; // Pour la recherche sur les flèches $page=$row->page; // Pour la recherche sur les flèches $tri=$row->tri; // Pour la recherche sur les flèches $largeur=$row->largeur; // Ajout des flèches hautes et basses if ($tri=='1') { $url_tri=$core->config['page_en_cours']."?tri=$tri&col=$nom"; $constuction_tableau.=""; } else { $constuction_tableau.=""; } $i++; } $constuction_tableau.=""; } $constuction_tableau.="$contenu_tableau"; $constuction_tableau.="
$text$text
$text$text
"; return $constuction_tableau; } function create_pagination($nb_pages,$page=1,$params='',$url="") { global $core; if($params!='') { for($i=0;$i0) { if($nb_pages<=10) { $fin_aff=$nb_pages+1; $i=1; } else { if(($page>($nb_pages-9))&&($page>10)) { $i=$nb_pages-9; $fin_aff=$nb_pages+1; } else { if($page>5) { $i=$page-5; $fin_aff=$page+5; } else { $i=1; $fin_aff=10; } } } $page_suivante=$page+1; $page_precendente=$page-1; if ($page_precendente<=1) {$page_precendente=1;} if ($page_suivante>=$nb_pages) {$page_suivante=$nb_pages;} if($fin_aff>$nb_pages) {$fin_aff=$nb_pages;} if ($page!=1) { $construct_pagination.= "config['page_en_cours']."?page=1&key=$key".$url."\" title=\"".$core->text['page_premiere']."\"><< "; $construct_pagination.= "  config['page_en_cours']."?page=$page_precendente&key=$key".$url."\" title=\"".$core->text['page_precendente']."\"><  "; } while($i <= $fin_aff) { $construct_pagination.= " config['page_en_cours']."?page=$i&key=$key".$url."\">"; if($i==$page) {$construct_pagination.=" ".$i." ";} else {$construct_pagination.=" $i ";} $i++; } if ($page!=$nb_pages) { $construct_pagination.= "  config['page_en_cours']."?page=$page_suivante&key=$key".$url."\" title=\"".$core->text['page_suivante']."\">> "; $construct_pagination.= " config['page_en_cours']."?page=$nb_pages&key=$key".$url."\" title=\"".$core->text['page_derniere']."\">>>"; } } return $construct_pagination; } function recup_text_long($nom,$page) { global $core; $mydb = new db($core->config['dbname']); $result = $mydb->query("SELECT text FROM textes_long WHERE lang LIKE '".$core->config['lang']."' AND nom = '$nom' AND page='$page'"); $nb = $mydb->num_rows($result); if($nb>0) { while ($row=$mydb->get_object($result)) { $text=$row->text; } } else { $result = $mydb->query("SELECT text FROM textes_long WHERE lang LIKE '".$core->config['lang_default']."' AND nom = '$nom' AND page='$page'"); while ($row=$mydb->get_object($result)) { $text=$row->text; } } return $text; } // fonction permettant d'afficher les images dans la langue par défaut si aucune image dans la langue actuelle function modif_image(&$return) { global $core; // premiere partie de remplacement de l'attribut src preg_match_all('/src=["\']\/*([-._\/:a-zA-Z0-9]*)["\']/', $return, $matches, PREG_SET_ORDER); foreach ($matches as $val) { if(!file_exists("$val[1]")) { $tab_nameImg = explode('_',$val[1]); // reconstitution du nom du fichier avec l'extension correspondant au language par dꧡut //images multilangues if(sizeof($tab_nameImg) > 1) { for($i=0;$i<(sizeof($tab_nameImg)-1);$i++) {$img=$tab_nameImg[$i]."_";} // récupération de l'extension de l'image $tabExt = explode('.' , $val[1]); $format = $tabExt[1]; $img.=$core->config['lang_default'].".$format"; // permet le remplacement de l'url pour les attributs onMouseOver et onMouseOut $img_hover = str_replace("OFF", "ON",$val[1] ); $img_blur = str_replace("ON", "OFF", $val[1] ); $img_modif_hover = str_replace("OFF", "ON",$img ); $img_modif_blur = str_replace("ON", "OFF", $img ); // remplacement de l'image $return = str_replace($val[1],$img,$return); $return = str_replace($img_hover,$img_modif_hover,$return); $return = str_replace($img_blur,$img_modif_blur,$return); } } } } function affichage_err($err) { global $core; //Affichage des erreurs if(sizeof($err)!=0) { $i=0; while($isysteme['erreur']=affiche_msg_err('err',$err[$i]); if($err[$i]<0) {$core->page['err'].=evalTemplate("tpl_erreur.php");} elseif($err[$i]>0) {$core->page['err'].=evalTemplate("tpl_message.php");} $i++; } } } function reload_sess() { session_start(); } // Traduction complète des pages function affichage_texte_page($page_site,$language_site) { global $core; $mydb = new db($core->config['dbname']); $result = $mydb->query("SELECT texte_page FROM traduction_pages WHERE page_site='$page_site' AND lang='$language_site' LIMIT 1"); while ($row=$mydb->get_object($result)) { $texte_page=stripslashes($row->texte_page); $affichage_texte_page="
$texte_page
"; } return $affichage_texte_page; } ?>config['dbname']); if($id_admin_users!=''){$addreq=" AND id_admin_users!='$id_admin_users'";} else{$addreq='';} $result = $mydb->query("SELECT 1 FROM clients WHERE login LIKE '$login' $addreq"); $nb = $mydb->num_rows($result); if($nb>0) { return true; } else { return false; } $mydb->close(); } ?>