1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633 |
- <?php
- require_once(dirname(__FILE__)."/classes/lesclasses.php");
- include_once(dirname(__FILE__)."/db/db.php");
- include_once(dirname(__FILE__)."/tools/tools.php");
- include_once(dirname(__FILE__)."/tools/sessions.php");
-
- $__PARAMETERTURBOLEAD_ASSOCIATIF_CACHE__=false; // variable globale contenant les parametres sous format de tableau associatif
- $__PARAMETERTURBOLEAD_INDEX_CACHE__=false; // variable globale contenant les parametres sous format de tableau indexe
- $__PARAMETERTURBOLEAD_CACHE_LOCK=false; // blocage de la memoire cache false: force la recharge des parametres
- /*
- Nom fonction : getParameterTurbolead
- Description : recupere le tableau des parametres de turbolead
- Entrees : $associatif: false par defaut. si true recupere le tableau associatif ($name,$value) des parametres
- Sorties : $retour tableau de parametre
- Globales :
- Auteur : Frederic Royet
- V: 1.0
- */
- function getParameterTurbolead($associatif=false,$uncache=false) {
- global $db,$__PARAMETERTURBOLEAD_ASSOCIATIF_CACHE__,$__PARAMETERTURBOLEAD_INDEX_CACHE__,$__PARAMETERTURBOLEAD_CACHE_LOCK;
- if ($uncache==true) $__PARAMETERTURBOLEAD_CACHE_LOCK=false;
- if (($__PARAMETERTURBOLEAD_ASSOCIATIF_CACHE__==false)||($__PARAMETERTURBOLEAD_CACHE_LOCK==false)) {
- $__PARAMETERTURBOLEAD_ASSOCIATIF_CACHE__=array();
- $__PARAMETERTURBOLEAD_INDEX_CACHE__=array();
- $requete="select * from turbo_config order by name";
- $resultat=$db->sql_query($requete,TRUE);
- while($unParam=$db->sql_fetchrow($resultat)) {
- $__PARAMETERTURBOLEAD_ASSOCIATIF_CACHE__[$unParam['name']]=$unParam['value'];
- $__PARAMETERTURBOLEAD_INDEX_CACHE__[]=$unParam;
- }
- $__PARAMETERTURBOLEAD_CACHE_LOCK=true;
- }
- if ($associatif) return $__PARAMETERTURBOLEAD_ASSOCIATIF_CACHE__;
- else return $__PARAMETERTURBOLEAD_INDEX_CACHE__;
- }
-
- /*
- * Nom fonction : HasDroit
- * Description : defini les droits de l'utilisateur identifié
- * Entrees : $aUser l'utilisateur et $idDroit l'identifiant du droit. Cette
- * Sorties : boolean true si l'utilisateur a le droit, false sinon'
- * Globales :
- * Auteur : F. Royet V: 1.0 le 16/3/2005
- * */
- function hasDroit(&$aUser,$idDroit) {
- global $db;
- if (isset($aUser['cache_droit'])) {
- if (isset($aUser['cache_droit'][$idDroit])) return true;
- return false;
- } else {
- $cache_droit=array();
- $requete="select ref_droit from mod_map_droit_utilisateur where ref_utilisateur=".$aUser['id_utilisateur'];
- $resultat=$db->sql_query($requete,TRUE);
- while ($tuple=$db->sql_fetchrow($resultat)) {
- $cache_droit[$tuple['ref_droit']]=true;
- }
- $requete="select ref_groupe from mod_map_groupe_utilisateur where ref_utilisateur=".$aUser['id_utilisateur'];
- $resultat=$db->sql_query($requete,TRUE);
- $lesgroupes=array();
- while ($tuple=$db->sql_fetchrow($resultat)) {
- $lesgroupes[]=$tuple['ref_groupe'];
- }
- for($i=0;$i<sizeof($lesgroupes);$i=$i+1) {
- $requete="select ref_droit from mod_map_droit_groupe where ref_groupe=".$lesgroupes[$i];
- $resultat=$db->sql_query($requete,TRUE);
- while ($tuple=$db->sql_fetchrow($resultat)) {
- $cache_droit[$tuple['ref_droit']]=true;
- }
- }
- $aUser['cache_droit']=$cache_droit;
- if (isset($aUser['cache_droit'][$idDroit])) return true;
- return false;
- }
- }
-
- //----------------------------------------------------------------------------------------------------
- /** OBSOLETE: cette fonction est a supprimée des que mod_diderot/lib.php n'y fera plus appel
- *
- */
-
- function verifierLogin($nom,$motPasse)
- {
- global $db;
- $table="mod_utilisateur"; //on récupère le nom de la table
- //on prépare la requète
- $requete="select * from ".$table." where mp='".addslashesifnot($motPasse)."' AND nom='".addslashesifnot($nom)."';";
- //on exécute la requète
- $resultat=$db->sql_query($requete,TRUE);
- //on récupère le nombre de tuple:
- $nbreTuple=$db->sql_numrows($resultat);
- $tuple=$db->sql_fetchrow($resultat);
- // si 0 tuple retourne false sinon retourne l'id de l'utilisateur
- return ($nbreTuple)?$tuple['id_utilisateur']:false;
-
- }
-
-
- function addUser(&$aUser) {
- global $db;
-
- $User=getAllUserByNom($aUser['nom']);
-
- if (($User!==false )&&(($User["id_utilisateur"]!="") || ($aUser['nom']=="") || ($aUser['mp']=="") ) ) {
- return 0;
- } else {
- $requete=buildInsertRequete("mod_utilisateur",$aUser);
-
- /*$requete="INSERT INTO `mod_utilisateur` ( `id_utilisateur` , `nom` , `mp` , `ref_langue` ) "
- . " VALUES ( '', '".addslashesifnot($aUser['nom'])."', '".addslashesifnot($aUser['mp'])."', '".addslashesifnot($aUser['ref_langue'])."' );";
- */
- $resultat=$db->sql_query($requete,TRUE);
-
- $id = $db->sql_insert_id();
- $aUser['id_utilisateur']=$id;
- return $id;
- }
- }
-
- function getUser($id_utilisateur) {
- global $db;
- $requete="SELECT * FROM mod_utilisateur WHERE id_utilisateur='".addslashesifnot($id_utilisateur)."';";
- $resultat=$db->sql_query($requete,TRUE);
- $resultat=$db->sql_fetchrow($resultat);
- return $resultat;
- }
-
- function updateUser(&$aUser) {
- global $db;
-
- $User=getAllUserByNom($aUser['nom']);
- if (($User["id_utilisateur"]!="")&&($User["id_utilisateur"]!=$aUser["id_utilisateur"]) || ($aUser['nom']=="") || ($aUser['mp']=="") )
- return 0;
- else {
- $requete=buildUpdateRequete("mod_utilisateur",$aUser);
- //$requete="UPDATE mod_utilisateur SET nom='".addslashesifnot($aUser['nom'])."', mp='".addslashesifnot($aUser['mp'])."' WHERE id_utilisateur='".addslashesifnot($aUser['id_utilisateur'])."'";
- $resultat=$db->sql_query($requete,TRUE);
- return true;
- }
- }
-
- //********************** Gestion de la table module*************************//
-
- /*
- Nom fonction : getModuleByCode
- Description : recuperer un module logiciel par rapport a son code logiciel
- Entrees : $code le code du logiciel (ce sont des constantes prédéfinit dans const.php)
- Sorties : $aModule le module qui correpond (false si pas trouvé)
- Globales : [$db]
- Auteur : F. Royet - 21/12/2006
- */
- function getModuleByCode($code) {
- switch($code) {
- case _code_did: return getModuleByNom('mod_diderot');
- case _code_idc: return getModuleByNom('mod_idcommerce');
- case _code_imo: return getModuleByNom('mod_immobilier');
- case _code_dde: return getModuleByNom('mod_dde');
- case _code_arc: return getModuleByNom('mod_architecte');
- case _code_grh: return getModuleByNom('mod_grh');
- case _code_ann: return getModuleByNom('mod_annuaire');
- }
- return false;
- }
-
- /*
- Nom fonction : updateModule
- Description : modification d'un module (remarque: A FAIRE: ici la vue n'est pas modifiée...)
- Entrees : &$aModule
- Sorties :
- Globales : [$db]
- Auteur : F. Royet 19/12/2006 (V2)
- */
- function updateModule(&$aModule) {
- global $db;
-
- if ($aModule['lib_nom']==0) $aModule['_force_lib_nom']=true;
-
- if ($aModule['lib_nom']!="") buildLanguage($aModule); // preparation de l'objet au multilangue
-
- if ($requete=buildUpdateRequete("module",$aModule)) $resultat=$db->sql_query($requete,TRUE);
-
- return $id;
- }
-
-
- function addMapUtilisateurModule($id_user,$id_module,$statut){
- global $db;
-
- $requete="insert into map_utilisateur_module (ref_utilisateur,ref_module,statut) values (".$id_user.",".$id_module.",'".$statut."')";
-
- $resultat=$db->sql_query($requete,TRUE);
-
- }
-
- function getMapUtilisateurModule($id_module,$id_utilisateur){
- global $db;
-
- $requete="select * from map_utilisateur_module where ref_module=".$id_module." and ref_utilisateur=".$id_utilisateur."";
-
- $res_requete=$db->sql_query($requete,TRUE);
- $resultat=$db->sql_fetchrow($res_requete);
-
- return $resultat;
-
-
- }
-
- function getMapUtilisateurModuleByUtilisateur($id_utilisateur){
- global $db;
-
- $requete="select * from map_utilisateur_module,module where map_utilisateur_module.ref_module=id_module and ref_utilisateur=".$id_utilisateur."";
-
- $res_requete=$db->sql_query($requete,TRUE);
- $resultat=$db->sql_fetchrow($res_requete);
-
- return $resultat;
-
-
- }
- /*
- function getNomModuleByUtilisateur($id_utilisateur){
- global $db;
-
- $requete="select nom_module from map_utilisateur_module,module where ref_module=id_module and ref_utilisateur=".$id_utilisateur."";
-
- $res_requete=$db->sql_query($requete,TRUE);
- while ($aValue=$db->sql_fetchrow($res_requete)){
- $resultat[]=$aValue['nom_module'];
- }
-
- return $resultat;
- }
- */
- function getModuleByNom($nom){
- global $db;
-
- $aModule=false;
- $requete="select id_module from module where nom_module='".$nom."'";
-
- $res_requete=$db->sql_query($requete,TRUE);
- if ($aLigne=$db->sql_fetchrow($res_requete)) {
- $aModule=getModule($aLigne['id_module']);
- }
-
- return $aModule;
-
-
- }
-
- function UpdateMapUtilisateurModule($id_user,$id_module,$statut){
- global $db;
-
- $requete="update map_utilisateur_module set statut='".$statut."' where ref_module=".$id_module." and ref_utilisateur=".$id_user."";
-
- $res_requete=$db->sql_query($requete,TRUE);
- }
-
- function getHTMLSelectUser($id_utilisateur=0){
- $resultat=getAllUser();
- $select="";
- $select='<select name="id_utilisateur">';
- for ($i=0;$i<sizeof($resultat);$i++){
- if ($resultat[$i]['id_utilisateur']==$id_utilisateur) $default="selected";
- else $default="";
- $select.='<option value="'.$resultat[$i]['id_utilisateur'].'"'.$default.' >'.$resultat[$i]['nom_utilisateur'].' '.$resultat[$i]['prenom'].' : '.$resultat[$i]['nom'].'</option>';
- }
- $select.='</select>';
- return $select;
-
- }
-
- function getNbMapModuleByStatut($id_module,$statut){
- global $db;
-
- $requete="select count(*) as nbre from map_utilisateur_module where ref_module=".$id_module." and statut='".$statut."'";
-
- $res_requete=$db->sql_query($requete,TRUE);
- $resultat=$db->sql_fetchrow($res_requete);
- return $resultat;
- }
-
- /*
- Nom fonction : isTableExists
- Description : verifie si une table existe dans la base
- Entrees : $table_name : le nom de la table
- Sorties : true si la table existe, false sinon
- Globales : [$db]
- Auteur :F. Royet V: 1.0 - 18/06/2005
- */
- function isTableExists($table_name) {
- global $db;
-
- $requete="SHOW TABLE STATUS";
- $res_requete=$db->sql_query($requete,TRUE);
- while ($aValue=$db->sql_fetchrow($res_requete)){
- if ($aValue['Name']==$table_name) return true;
- }
- return false;
- }
-
- /*
- Nom fonction : isColonneExists
- Description : verifie si une colonne dans une table donnee existe
- Entrees : $table_name : le nom de la table
- Sorties : true si la table existe, false sinon
- Globales : [$db]
- Auteur :F. Royet V: 1.0 - 18/06/2005
- */
- function isColonneExists($table_name,$col_name) {
- global $db;
-
- $requete="SHOW COLUMNS FROM ".$table_name;
- $res_requete=$db->sql_query($requete,TRUE);
- while ($aValue=$db->sql_fetchrow($res_requete)){
- if ($aValue['Field']==$col_name) return true;
- }
- return false;
- }
-
- /*
- Nom fonction : isIndexExists
- Description : verifie si un index dans une table donnee existe
- Entrees : $table_name : le nom de la table, $index_name: le nom de l'index
- Sorties : true si la table existe, false sinon
- Globales : [$db]
- Auteur :F. Royet V: 1.0 - 18/06/2005
- */
- function isIndexExists($table_name,$index_name) {
- global $db;
-
- $requete="SHOW INDEX FROM ".$table_name;
- $res_requete=$db->sql_query($requete,TRUE);
-
- while ($aValue=$db->sql_fetchrow($res_requete)){
- if ($aValue['Key_name']==$index_name) return true;
- }
- return false;
- }
-
- /////////////////////////////////////////
- /// GESTION DES SESSIONS
-
-
- /*
- Nom fonction : getSessionArchiveAll
- Description : recupere toutes les sessions archives
- Entrees :
- Sorties : $resultat: tableau de session
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function getSessionArchiveAll($whereclause=false) {
- global $db;
-
- $tsess=array();
-
- $requete="SELECT * FROM session_archive";
- if ($whereclause!=false) $requete.=" ".$whereclause;
- $resrequete=$db->sql_query($requete,TRUE);
- while($aSession=$db->sql_fetchrow($resrequete)) {
- $tsess[]=$aSession;
- }
-
- return $tsess;
- }
-
- /*
- Nom fonction : getSessionArchiveByDate
- Description : recupere toutes les sessions archives
- Entrees :
- Sorties : $resultat: tableau de session
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function getSessionArchiveByDate($debut,$fin,$limit='') {
- global $db;
-
- $tsess=array();
-
- $requete="SELECT * FROM session_archive WHERE date_creation>='$debut' and date_creation<='$fin' order by date_creation $limit";
- if ($whereclause!=false) $requete.=" ".$whereclause;
- $resrequete=$db->sql_query($requete,TRUE);
- while($aSession=$db->sql_fetchrow($resrequete)) {
- $tsess[]=$aSession;
- }
-
- return $tsess;
- }
-
- /*
- Nom fonction : getDateOfFirstSessionArchive
- Description : renvoie la date de la plus ancienne archive
- Entrees :
- Sorties : une chaine de date: YYYY-MM-JJ HH:MM:SS ou false si pas de session
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function getDateOfFirstSessionArchive() {
- global $db;
- $requete="SELECT min( date_creation ) AS date_creation FROM session_archive";
- $resultat=$db->sql_query($requete,TRUE);
- $resultat=$db->sql_fetchrow($resultat);
- if ($resultat===false) return false;
- return $resultat['date_creation'];
- }
-
- /*
- Nom fonction : getSessionArchive
- Description : recupere une session par son identifiant
- Entrees : $id_session_archive identifiant de la session
- Sorties : $resultat: la session ou false
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function getSessionArchive($id_session_archive) {
- global $db;
-
- $requete="SELECT * FROM session_archive WHERE id_session_archive='".$id_session_archive."'";
- $resultat=$db->sql_query($requete,TRUE);
- $resultat=$db->sql_fetchrow($resultat);
-
- return $resultat;
- }
-
- /*
- Nom fonction : getSessionArchiveByKey
- Description : recupere une session par son identifiant dynamique
- Entrees : $key identifiant dynamique de la session (si $key n'est pas renseigné, prend la clef de la session courante)
- Sorties : $resultat: la session ou false
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function getSessionArchiveByKey($key=false)
- {
- include_once(dirname(__FILE__).'/classes/session/Session.php');
-
- $session = Session::getInstance();
- $aSession=$session->getSessionArchive($session->getCurrentSessionArchiveId());
-
- return $aSession;
- }
-
- /*
- Nom fonction : getSessionArchiveNotClosed
- Description : recupere les session qui n'ont pas ete ferme
- Entrees :
- Sorties : $resultat: la session ou false
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function getSessionArchiveNotClosed() {
- global $db;
-
- $tsess=array(); // variable de retour contenant les sessions non fermees
-
- $tPHPSession=getPHPSessionAll();
- $keys="'',";
- for($i=0;$i<sizeof($tPHPSession);$i++) {
- $keys.="'".$tPHPSession[$i]['session_id']."',";
- }
- $keys=substr($keys,0,-1);
- $requete="SELECT id_session_archive FROM session_archive WHERE session_id not in (".$keys.")";
- $resultat=$db->sql_query($requete,TRUE);
-
- while($aSession=$db->sql_fetchrow($resultat)) {
- $tsess[$aSession['id_session_archive']]=getSessionArchive($aSession['id_session_archive']);
- }
-
- return $tsess;
- }
-
- /*
- Nom fonction : getSessionArchiveFromRobot
- Description : recupere les session qui proviennent d'un robot
- Entrees :
- Sorties : $resultat: la session ou false
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function getSessionArchiveFromRobot() {
- global $db;
-
- $tsess=array(); // variable de retour contenant les sessions non fermees
- $Where="HTTP_USER_AGENT like '%bot%' and HTTP_USER_AGENT not like '%AdsBot-Google%'";
- $keys=substr($keys,0,-1);
- $requete="SELECT id_session_archive FROM session_archive WHERE $Where";
- $resultat=$db->sql_query($requete,TRUE);
-
- while($aSession=$db->sql_fetchrow($resultat)) {
- $tsess[$aSession['id_session_archive']]=getSessionArchive($aSession['id_session_archive']);
- }
-
- return $tsess;
- }
-
-
- /*
- Nom fonction : deleteSessionArchive
- Description : suppression d'une session
- Entrees : $id_session_archive
- Sorties : true
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function deleteSessionArchive($id_session_archive){
- global $db;
- deleteSessionPageBySessionArchive($id_session_archive); // destuction des pages associées
- $requete="DELETE FROM session_archive WHERE id_session_archive=".$id_session_archive.";";
- $resultat=$db->sql_query($requete,TRUE);
- return true;
- }
-
-
- function dateStr2Tab(&$strDate) {
- list($dd,$hh)=split(' ',$strDate);
- $tDate=array();
- list($tDate['y'],$tDate['m'],$tDate['d'])=split('-',$dd);
- list($tDate['h'],$tDate['i'],$tDate['s'])=split(':',$hh);
-
- $tDate['y']=intval($tDate['y']);
- $tDate['m']=intval($tDate['m']);
- $tDate['d']=intval($tDate['d']);
- $tDate['h']=intval($tDate['h']);
- $tDate['i']=intval($tDate['i']);
- $tDate['s']=intval($tDate['s']);
-
- return $tDate;
- }
-
- function dateStr2Time($strDate) {
- $tDate=dateStr2Tab($strDate);
- return mktime($tDate['h'],$tDate['i'],$tDate['s'],$tDate['m'],$tDate['d'],$tDate['y']);
- }
-
- function _initStatsJour(&$tSessions) {
- $aDay=array();
-
- $moteurs=getAllMoteurs();
-
- $duree_moyenne=0;
- $nb_page_total=0; // nombre de page vue pour la totalite des sessions
- $nb_page_moy=0; // nombre moyen de pages vues par sessions
- for($i=0;$i<sizeof($tSessions);$i++) {
- $aSession=$tSessions[$i];
- $duree=dateStr2Time($aSession['date_last_modified'])-dateStr2Time($aSession['date_creation']);
- $duree_moyenne+=$duree;
-
- $nb_page=countSessionPageBySessionArchive($aSession['id_session_archive']);
- $nb_page_total+=$nb_page;
- // recupration des mots cles
- $referer=$aSession['HTTP_REFERER'];
- for($j=0;$j<sizeof($moteurs);$j++) {
- $aMoteur=$moteurs[$j];
- $matches=array();
- preg_match($aMoteur['signature'], $referer , $matches); //http://www.google.fr/search?as_q=&num=10&hl=fr&btnG=Recherche+Google&as_epq=&as_oq=je+vous+join&as_eq=&lr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=&safe=images
- if (sizeof($matches)>$aMoteur['matcheindice']) {
- $keyword=str_replace("-"," ",$matches[$aMoteur['matcheindice']]);
- $aDay['k'][]=$aMoteur['nom'].'-'.$keyword;
- }
- }
- }
- $aDay['n']=sizeof($tSessions); // nombre total de sessions
- $aDay['nps']=$nb_page_total; // nombre total de page vues
- if ($aDay['n']>0) {
- $aDay['dms']=round($duree_moyenne/$aDay['n']); // duree moyenne des sessions de la journée
- $aDay['pms']=round($nb_page_total/$aDay['n']); // nombre moyen de pages vues par session
- }
-
- return $aDay;
- }
-
-
- /*
- Nom fonction : calculerKeywords
- Description : construit la structure des mots clefs avec un jour. La structure des mots clefs devient tres dynamique puisqu'elle correspond
- a un periode de temps.
- Entrees : $aDay : les infos du jours (mots clefs saisis), $keywords meta structure
- Sorties : $keywords la meta structure mot clef modifiées
-
- Globales :
- Auteur : F. Royet V: 1.0 - 29/08/2006
- */
- function calculerKeywords($aDay,&$keywords) {
- if (isset($aDay['k'])) {
- $taille=sizeof($aDay['k']);
- for($i=0;$i<$taille;$i++) {
- list($nom_moteur,$keyword)=split('-',$aDay['k'][$i]);
-
- // il faut "arranger" les mots clefs
-
- $search=array('/\s\s+/', // suppression des espaces en trop
- '/%([\S,\d]{2})/e',
- '/"/',
- '/\+/'
- );
- $replace=array(' ',
- "chr(hexdec('\\1'))",
- '',
- ' '
- );
- $keyword=preg_replace($search,$replace,$keyword);
-
- if (!isset($keywords[$keyword])) {
- $keywords[$keyword]=array();
- $keywords[$keyword]['occurence']=0;
- $keywords[$keyword]['moteurs']=array();
- }
- $keywords[$keyword]['occurence']+=1;
- if (!isset($keywords[$keyword]['moteurs'][$nom_moteur])) {
- $keywords[$keyword]['moteurs'][$nom_moteur]=0;
- }
- $keywords[$keyword]['moteurs'][$nom_moteur]+=1;
- }
- }
- }
-
-
- function _initStatistiques(&$CACHE_STATS) {
- //ON RENOMME LE FICHIER DE STATS
- $url_turbolead=getURLTurbolead();
- $url_turbolead.="upload/cache/stats-sessions-days.cac";
-
- if (file_exists($url_turbolead)) {
- rename("upload/cache/stats-sessions-days.cac", "upload/cache/stats-sessions-days.stat");
- echo "Fichier renommé<br/>";
- }
-
- //if (read_cache($cache,'stats-sessions-days.cac')) {
- if (read_cache($cache,'stats-sessions-days.stat')) {
- $CACHE_STATS=$cache; // mettre les stats dans la memoire cache (en RAM)
- } else {
- $CACHE_STATS=array();
- $CACHE_STATS['last_date']=false; // tous les elements avant cette date sont en caches
- $CACHE_STATS['internet']=array(); // tableau indexe des annees: chaque annees
- $CACHE_STATS['keywords']=array(); // mots clef
- }
- // calcul les stats du dernier jours ne se trouvant pas dans le cache
- // lorsque le jour correspond a la date du jour, le cache du dernier jour est systematiquement reconstitué
- // les données de la date du jour ne sont pas prises en compte dans les moyennes
-
- if ($CACHE_STATS['last_date']==false) { // le cache est il vide ?
- //$tSessions=getSessionArchiveByDate('0000-00-00 00:00:00','3000-00-00 00:00:00','limit 1');
- $CACHE_STATS['last_date']=getDateOfFirstSessionArchive();
- /*if ($tSessions) $CACHE_STATS['last_date']=$tSessions[0]['date_creation'];
- else $CACHE_STATS['last_date']=date('Y-m-d').' 00:00:00'; // normalement c'est la date de jour a 0 heure
- */
- // Remarque: s'il y a une date d'archive plus ancienne, il faut la prendre en compte
- $info=lireArchive('session','info'); // recuperation des infos sur la toutes premiere archive (la plus ancienne)
- if ($info!==false) {
- $t_info=dateStr2Time($info['first'].' 00:00:00');
- $t_ld=dateStr2Time($CACHE_STATS['last_date']);
- if ($t_info<$t_ld) {
- $CACHE_STATS['last_date']=$info['first'].' 00:00:00';
- }
- }
- }
-
- $debut=$CACHE_STATS['last_date'];
- $tDebut=dateStr2Tab($debut);
-
- $d_jour=date('d');
- $m_jour=date('m');
- $y_jour=date('Y');
- $time_jour=mktime(0,0,0,$m_jour,$d_jour+1,$y_jour);
-
- $time_debut=dateStr2Time($debut);
-
- $time_fin=mktime(0,0,0,$tDebut['m'],$tDebut['d']+1,$tDebut['y']);
- $time_dernier_jour_mois=mktime(0,0,0,$m_jour+1,1,$y_jour);
-
- $_i=0; // compteur d'iteration..
-
- while($time_fin<=$time_dernier_jour_mois) {
- $fin=date('Y-m-d H:i:s',$time_fin);
- //echo "($fin<=".date('Y-m-d H:i:s',$time_jour).")";
- if ($time_fin<=$time_jour) {
- $tSessionsDay=getSessionArchiveByDate($debut,$fin,'');
- if (sizeof($tSessionsDay)>0) { // si on trouve des sessions corespondant au jour dans la base alors on les transforme en $aDay
- $aDay=_initStatsJour($tSessionsDay); //,$CACHE_STATS['keywords']);
- } else { // si pas de session dans la base on essaie de recuperer une archive
- $aDay=lireArchive('session',$tDebut['y'].'-'.$tDebut['m'].'-'.$tDebut['d']);
- if ($aDay==false) { // si pas d'archive dans la base, en desespoir de cause, construction de $aDay avec un tableau vide de session
- $aDay=_initStatsJour($tSessionsDay); //
- }
- }
- } else $aDay=array(); // on complete les dernieres valeurs du mois
- $CACHE_STATS['internet'][$tDebut['y']][$tDebut['m']][$tDebut['d']]=$aDay;
-
- $_i++; // sauve le cache de temps en temps : utile pour les sites tres long
- if (($_i%10)==0) {
- $CACHE_STATS['last_date']=$fin;
- //write_cache($CACHE_STATS,'stats-sessions-days.cac');
- write_cache($CACHE_STATS,'stats-sessions-days.stat');
- }
-
- $time_debut=$time_fin;
- $debut=date('Y-m-d H:i:s',$time_debut);
- $tDebut=dateStr2Tab($debut);
- //$time_fin+=86400;
- $time_fin=mktime(0,0,0,$tDebut['m'],$tDebut['d']+1,$tDebut['y']);
-
- }
-
- $current_hour=mktime(date('H'),0,0,$m_jour,$d_jour,$y_jour);
- if (!isset($CACHE_STATS['derniere_168heures'])) { // cache d'heure en heure: il y a un decalage toutes les nouvelles heures (current) pour l'heure en cours
- $CACHE_STATS['derniere_168heures']['current']=$current_hour;
- $CACHE_STATS['derniere_168heures']['h']=array();
- $time_fin=$current_hour-167*3600;
- for($i=0;$i<168;$i++) {
- $time_debut=$time_fin;
- $time_fin+=3600;
- $debut=date('Y-m-d H:i:s',$time_debut);
- $fin=date('Y-m-d H:i:s',$time_fin);
- $tSessionsDay=getSessionArchiveByDate($debut,$fin,'');
- $CACHE_STATS['derniere_168heures']['h'][$i]=sizeof($tSessionsDay);
- }
- }
-
- if ($current_hour>$CACHE_STATS['derniere_168heures']['current']) { // il faut faire le decalage
- $CACHE_STATS['derniere_168heures']['current']=$current_hour;
- for($i=0;$i<167;$i++) $CACHE_STATS['derniere_168heures']['h'][$i]=$CACHE_STATS['derniere_168heures']['h'][$i+1];
- $time_debut=$current_hour;
- $time_fin=$time_debut+3600;
- $debut=date('Y-m-d H:i:s',$time_debut);
- $fin=date('Y-m-d H:i:s',$time_fin);
- $tSessionsDay=getSessionArchiveByDate($debut,$fin,'');
- $CACHE_STATS['derniere_168heures']['h'][167]=sizeof($tSessionsDay);
- }
-
- $CACHE_STATS['last_date']=date('Y-m-d 00:00:00');
- //write_cache($CACHE_STATS,'stats-sessions-days.cac');
- write_cache($CACHE_STATS,'stats-sessions-days.stat');
- }
-
- /*
- Nom fonction : statisticsSessionArchive
- Description : prepare une image representant les statistiques ainsi qu'une meta structure de mots clefs
- Entrees : $type (type de statistiques : periodicite annuelle, mensuelle...), $keywords meta strcuture des mots clefs
- Sorties : $keywords la meta structure mot clef modifiées
-
- Globales :
- Auteur : F. Royet V: 1.0 - 29/08/2006
- */
- function statisticsSessionArchive($type,&$keywords) {
- include_once(dirname(__FILE__).'/classes/graph/Graphe.php');
- $CACHE_STATS=array();
- _initStatistiques($CACHE_STATS);
-
- $nom_mois=array('1'=>'Janvier','2'=>'Fevrier','3'=>'Mars','4'=>'Avril','5'=>'Mai','6'=>'Juin','7'=>'Juillet','8'=>'Aout','9'=>'Septembre','10'=>'Octobre','11'=>'Novembre','12'=>'Decembre');
-
- $couleur=6;
-
- $data=array();
- $data_lib=array();
-
- if ($type==__statistiques_mensuelles) {
- /*$chart = new VerticalChart(600,400);
- $chart->setLabelMarginLeft(40);
- $chart->setLabelMarginRight(20);
- $chart->setLabelMarginTop(10);
- $chart->setLabelMarginBottom(40);*/
- $chart = new Graphe(600,400,'vertical');
- $chart->addSerie("","0,255,0");
- $nb_item=0;
- $item_max=5;
- $filename="statmois.png";
- $ANNEE=intval(date('Y'));
- $MOIS=intval(date('m'));
- $titre="Sessions du mois en cours:".$nom_mois[$MOIS];
- $label_ordonnees="Nombre de sessions";
- $label_abscisses="Jours";
- $jour=0;
- $mois=$CACHE_STATS['internet'][$ANNEE][$MOIS];
- foreach($mois as $jour => $aDay) {
- if (isset($aDay['n'])) {
- $valeur=$aDay['n'];
- calculerKeywords($aDay,$keywords);
- }
- else $valeur=0;
- $chart->addPoint($jour, $valeur);
- $jour++;
- }
- $chart->setTitre($titre); //$aStat['titre']);
- $affichage='<img src="'.$chart->render($filename).'" alt="" />';
- }
-
- if ($type==__statistiques_annee) {
- /*$chart = new VerticalChart(600,400);
- $chart->setLabelMarginLeft(40);
- $chart->setLabelMarginRight(20);
- $chart->setLabelMarginTop(10);
- $chart->setLabelMarginBottom(50);*/
- $chart = new Graphe(600,400,'vertical');
- $chart->addSerie("","0,255,0");
- $nb_item=0;
- $item_max=5;
- $filename="statannee.png";
- $titre="Sessions de l'annee en cours:".date('Y');
- $label_ordonnees="Nombre de sessions";
- $label_abscisses="Mois";
- $ANNEE=intval(date('Y'));
- $jour=0;
- $dernier_mois=date('m');
- for($i=1;$i<=$dernier_mois;$i++) {
- $mois=$CACHE_STATS['internet'][$ANNEE][$i];
- $nb_session=0;
- if (is_array($mois)) {
- foreach($mois as $jour => $aDay) {
- calculerKeywords($aDay,$keywords);
- if (isset($aDay['n'])) $nb_session+=$aDay['n'];
- }
- }
- $chart->addPoint($nom_mois[$i], $nb_session);
- }
- for($i=$dernier_mois+1;$i<=12;$i++) $chart->addPoint($nom_mois[$i], 0);
- $chart->setTitre($titre); //$aStat['titre']);
- $affichage='<img src="'.$chart->render($filename).'" alt="" />';
- $affichage2="";
- $ANNEE_LAST=$ANNEE;
- foreach($CACHE_STATS['internet'] as $ANNEE => $tAnnee) {
- if ($ANNEE==$ANNEE_LAST) break;
- unset($chart);
- /*$chart = new VerticalChart(300,200);
- $chart->setLabelMarginLeft(50);
- $chart->setLabelMarginRight(20);
- $chart->setLabelMarginTop(10);
- $chart->setLabelMarginBottom(50);*/
- $chart = new Graphe(300,200,'vertical');
- $chart->addSerie("","50,255,50");
- for($i=1;$i<=12;$i++) {
- if (!isset($tAnnee[$i])) { // le mois peut ne pas exister
- $nb_session=0;
- } else { // dans le cas ou le mois existe
- $mois=$tAnnee[$i];
- $nb_session=0;
- foreach($mois as $jour => $aDay) {
- if (isset($aDay['n'])) $nb_session+=$aDay['n'];
- calculerKeywords($aDay,$keywords);
- }
- }
- $chart->addPoint($nom_mois[$i], $nb_session);
- }
- $chart->setTitre(''.$ANNEE);
- $filename="statannee".$ANNEE.".png";
- $affichage2='<img src="'.$chart->render($filename).'" alt="" />';
- }
- $affichage.="<br /><br />".$affichage2;
- }
-
- if ($type==__statistiques_30jours) {
- /*$chart = new VerticalChart(600,400);
- $chart->setLabelMarginLeft(40);
- $chart->setLabelMarginRight(20);
- $chart->setLabelMarginTop(10);
- $chart->setLabelMarginBottom(40);*/
- $chart = new Graphe(600,400,'vertical');
- $chart->addSerie("","0,255,0");
- $nb_item=0;
- $item_max=5;
- $filename="stat30j.png";
- $ANNEE=intval(date('Y'));
- $MOIS=intval(date('m'));
- $JOUR=intval(date('d'));
- $titre="statistiques des 30 derniers jours";
- $label_ordonnees="Nombre de sessions";
- $label_abscisses="Jours";
- $jour=0;
- $nb_j=30; // nombre de jour a afficher
- $valeurs=array();
- $aDay=$CACHE_STATS['internet'][$ANNEE][$MOIS][$JOUR];
- for($i=0;$i<$nb_j;$i++) {
- calculerKeywords($aDay,$keywords);
- if (isset($aDay['n'])) $valeurs[$i]['n']=$aDay['n'];
- else $valeurs[$i]['n']=0;
- if ($JOUR<=0) {
- $MOIS--;
- if ($MOIS<=0) {
- $MOIS=12;
- $ANNEE--;
- }
- $JOUR=sizeof($CACHE_STATS['internet'][$ANNEE][$MOIS]);
- }
- $valeurs[$i]['date']="$JOUR/$MOIS";
- $JOUR--;
- $aDay=$CACHE_STATS['internet'][$ANNEE][$MOIS][$JOUR];
-
- }
-
- for($i=$nb_j-1;$i>=0;$i--) $chart->addPoint($valeurs[$i]['date'], $valeurs[$i]['n']);
- $chart->setTitre($titre); //$aStat['titre']);
- $affichage='<img src="'.$chart->render($filename).'" alt="" />';
- }
-
- if ($type==__statistiques_24h) {
- /*$chart = new VerticalChart(600,400);
- $chart->setLabelMarginLeft(40);
- $chart->setLabelMarginRight(20);
- $chart->setLabelMarginTop(10);
- $chart->setLabelMarginBottom(40);*/
- $chart = new Graphe(600,400,'vertical');
- $chart->addSerie("","0,255,0");
- $nb_item=0;
- $item_max=5;
- $filename="stat24h.png";
-
- $nb_h=24;
- for($i=0;$i<$nb_h-1;$i++) {
- $lib_heure=date('H\h/d',mktime(date('H')-$nb_h+1+$i,0,0));
- $chart->addPoint($lib_heure, $CACHE_STATS['derniere_168heures']['h'][$i+168-$nb_h]);
- }
- $chart->setTitre('Statistiques des 24 dernieres heures');
- $affichage='<img src="'.$chart->render($filename).'" alt="" />';
-
- $ANNEE=intval(date('Y'));
- $MOIS=intval(date('m'));
- $JOUR=intval(date('d'));
- $aDay=$CACHE_STATS['internet'][$ANNEE][$MOIS][$JOUR];
- calculerKeywords($aDay,$keywords);
- }
-
- return $affichage;
- }
-
-
- /*
- Nom fonction : getSessionPage
- Description : recupere une page de session
- Entrees : $id_session_page identifiant de la page
- Sorties : $resultat: la page ou false
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function getSessionPage($id_session_page) {
- global $db;
-
- $requete="SELECT * FROM session_page WHERE id_session_page='".$id_session_page."'";
- $resultat=$db->sql_query($requete,TRUE);
- $resultat=$db->sql_fetchrow($resultat);
-
- return $resultat;
- }
-
- /*
- Nom fonction : getSessionPageAll
- Description : recupere toutes les sessions pages
- Entrees :
- Sorties : $resultat: tableau de session
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function getSessionPageAll() {
- global $db;
-
- $tsess=array();
-
- $requete="SELECT * FROM session_page";
- $resrequete=$db->sql_query($requete,TRUE);
- while($aSession=$db->sql_fetchrow($resrequete)) {
- $tsess[]=$aSession;
- }
-
- return $tsess;
- }
-
- /*
- Nom fonction : getSessionPageBySessionArchive
- Description : recupere toutes les pages d'une session
- Entrees : $id_session_archive identifiant de la session
- Sorties : $resultat: un tableau de pages
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function getSessionPageBySessionArchive($id_session_archive) {
- global $db;
- $tsess=array();
-
- $requete="SELECT * FROM session_page WHERE ref_session_archive=".$id_session_archive." order by date_creation desc";
- $resrequete=$db->sql_query($requete,TRUE);
- while($aSession=$db->sql_fetchrow($resrequete)) {
- $tsess[]=$aSession;
- }
-
- return $tsess;
- }
-
- /*
- Nom fonction : countSessionPageBySessionArchive
- Description : compte le nombre de page d'une session
- Entrees : $id_session_archive identifiant de la session
- Sorties : le nombre de page (ou false si probleme)
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 28/08/2006
- */
- function countSessionPageBySessionArchive($id_session_archive) {
- global $db;
-
- $requete="SELECT count(id_session_page) as valeur FROM session_page WHERE ref_session_archive=".$id_session_archive;
- $resrequete=$db->sql_query($requete,TRUE);
- $count=$db->sql_fetchrow($resrequete);
-
- if ($count!=false) return $count['valeur'];
-
- return false;
- }
-
- /*
- Nom fonction : deleteSessionPage
- Description : suppression d'une page
- Entrees : $id_session_page
- Sorties : true
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function deleteSessionPage($id_session_page){
- global $db;
- $requete="DELETE FROM session_page WHERE id_session_page=".$id_session_page.";";
- $resultat=$db->sql_query($requete,TRUE);
- return true;
- }
-
- /*
- Nom fonction : deleteSessionPageBySessionArchive
- Description : suppression de toutes les pages
- Entrees : $id_session_archive
- Sorties : true
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/09/2005
- */
- function deleteSessionPageBySessionArchive($id_session_archive){
- global $db;
- $requete="DELETE FROM session_page WHERE ref_session_archive=".$id_session_archive.";";
- $resultat=$db->sql_query($requete,TRUE);
- return true;
- }
-
- /*
- Nom fonction : addSessionPage
- Description : ajout d'une page session. La page est construite, seule l'id de session archive est necessaire
- Entrees : $id_session_archive
- Sorties : $id
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 3/08/2005
- */
- function addSessionPage($id_session_archive) {
- global $db;
-
- $aPage=array();
- $aPage['ref_session_archive']=$id_session_archive;
- $aPage['date_creation']=date("Y-m-d H:i:s");
- $aPage['SERVER_NAME']=$_SERVER['SERVER_NAME'];
- $aPage['SERVER_PORT']=$_SERVER['SERVER_PORT'];
- $aPage['REQUEST_METHOD']=$_SERVER['REQUEST_METHOD'];
- $aPage['QUERY_STRING']=$_SERVER['QUERY_STRING'];
- $aPage['REQUEST_URI']=$_SERVER['REQUEST_URI'];
- $aPage['SCRIPT_NAME']=$_SERVER['SCRIPT_NAME'];
- $aPage['REDIRECT_STATUS']=$_SERVER['REDIRECT_STATUS'];
- $aPage['REDIRECT_URL']=$_SERVER['REDIRECT_URL'];
-
- $requete=buildInsertRequete("session_page",$aPage);
- $resultat=$db->sql_query($requete,TRUE);
-
- $id = $db->sql_insert_id();
- $aPage['id_session_archive']=$id;
- return $id;
- }
-
- /*
- Nom fonction : getStatisticKeywords
- Description : renvoi les statistiques de recherche par mot clef en fonction des moteurs de recherches
- Entrees :
- Sorties : $keywords: tableau associatif de mots clef (la clef du tableau est le mot clef)
- $keywords[keyword] le mots clef chaine
- $keywords[keyword]['occurence'] le nombre de fois ou ce mots clef est apparu
- $keywords[keyword]['moteurs'] array de moteurs
- $keywords[keyword]['moteurs']['google.fr'] nombre d'occurence pour le moteur google.fr
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 3/08/2005
- */
-
-
- // recuperation de tous les moteurs de recherche
- function getAllMoteurs() {
- $moteurs=array();
- $aMoteur['nom']="google.fr";
- $aMoteur['url']="www.google.fr";
- $aMoteur['signature']="/google\.fr.*search.*(&as_oq=|&q=|\?q=|\?as_oq=)+([+%a-zA-Z0-9-]*).*/"; //http://www.google.fr/search?sourceid=navclient&hl=fr&ie=UTF-8&rls=DVXA,DVXA:2005-12,DVXA:fr&q=circa+lopez
- $aMoteur['matcheindice']=2; // est identique au nombre de parentheses (**) de la signature
- $moteurs[]=$aMoteur;
- $aMoteur['nom']="google.be";
- $aMoteur['url']="www.google.be";
- $aMoteur['signature']="/google\.be.*search.*(&as_oq=|&q=|\?q=|\?as_oq=)+([+%a-zA-Z0-9-]*).*/";
- $aMoteur['matcheindice']=2;
- $moteurs[]=$aMoteur;
- $aMoteur['nom']="google.ch";
- $aMoteur['url']="www.google.ch";
- $aMoteur['signature']="/google\.ch.*search.*(&as_oq=|&q=|\?q=|\?as_oq=)+([+%a-zA-Z0-9-]*).*/";
- $aMoteur['matcheindice']=2;
- $moteurs[]=$aMoteur;
- $aMoteur['nom']="msn.fr";
- $aMoteur['url']="www.msn.fr";
- $aMoteur['signature']="/msn\.fr.*results.*(&q=|\?q=)+([+%a-zA-Z0-9-]*).*/"; // ex http://search.msn.fr/results.aspx?q=+montres+nixon&FORM=QBRE&lf=1&X=1
- $aMoteur['matcheindice']=2;
- $moteurs[]=$aMoteur;
- $aMoteur['nom']="msn.ca";
- $aMoteur['url']="www.msn.ca";
- $aMoteur['signature']="/msn\.ca.*results.*(&q=|\?q=)+([+%a-zA-Z0-9-]*).*/"; // ex: http://search.sympatico.msn.ca/results.aspx?q=dvs+stratos+white+leather&cp=1252&first=11&FORM=PORE
- $aMoteur['matcheindice']=2;
- $moteurs[]=$aMoteur;
- $aMoteur['nom']="altavista.com";
- $aMoteur['url']="www.altavista.com";
- $aMoteur['signature']="/altavista\.com.*results.*(&q=|\?q=)+([+%a-zA-Z0-9-]*).*/"; //http://www.altavista.com/image/results?q=OSIRIS+TRAP&mik=photo&mik=graphic&mip=all&mis=all&miwxh=all
- $aMoteur['matcheindice']=2;
- $moteurs[]=$aMoteur;
- $aMoteur['nom']="yahoo.com";
- $aMoteur['url']="www.yahoo.com";
- $aMoteur['signature']="/search\.yahoo\.com.*search.*(&p=|\?p=)+([+%a-zA-Z0-9-]*).*/"; //http://fr.search.yahoo.com/search?p=eastpack&prssweb=Rechercher&ei=UTF-8&fr=fp-tab-web-t-1&fl=0&vc=countryFR&x=wrt&meta=vl%3D
- $aMoteur['matcheindice']=2;
- $moteurs[]=$aMoteur;
- $aMoteur['nom']="vizsla24.hu";
- $aMoteur['url']="www.vizsla24.hu";
- $aMoteur['signature']="/search\.vizsla24\.hu.*(&q=|\?q=)+([+%a-zA-Z0-9-]*).*/"; //http://fr.search.yahoo.com/search?p=eastpack&prssweb=Rechercher&ei=UTF-8&fr=fp-tab-web-t-1&fl=0&vc=countryFR&x=wrt&meta=vl%3D
- $aMoteur['matcheindice']=2;
- $moteurs[]=$aMoteur;
- return $moteurs;
- }
-
-
- function getStatisticKeywords() {
- _initStatistiques($CACHE_STATS);
- return $CACHE_STATS['keywords'];
- }
-
- /*
- Nom fonction : getIDModule
- Description : recuperation des identifiants des modules
- Entrees : $module: le nom du module (chaine)
- Sorties : valeur numérique du module
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 21/12/2005
- */
- function getIDModule($module) {
- if ($module=='diderot') return _code_did;
- if ($module=='idcommerce') return _code_idc;
- if ($module=='immobilier') return _code_imo;
- if ($module=='dde') return _code_dde;
- if ($module=='architecte') return _code_arc;
- if ($module=='annuaire') return _code_ann;
- if ($module=='grh') return _code_grh;
- }
-
- function getAllNomModuleByCode() {
- $lesModules=array();
- $lesModules[_code_did]='mod_diderot';
- $lesModules[_code_idc]='mod_idcommerce';
- $lesModules[_code_imo]='mod_immobilier';
- $lesModules[_code_dde]='mod_dde';
- $lesModules[_code_arc]='mod_architecte';
- $lesModules[_code_ann]='mod_annuaire';
- $lesModules[_code_grh]='mod_grh';
-
- return $lesModules;
- }
-
- function AddAssocObjet(&$aObjet){
- global $db;
-
- $requete=buildInsertRequete("assoc_objet",$aObjet);
- $resultat=$db->sql_query($requete,TRUE);
-
- }
-
- function delAssocObjet(&$aObjet){
- global $db;
-
- $requete="delete from assoc_objet where ref_objet1=".$aObjet['ref_objet1']." and ref_objet2=".$aObjet['ref_objet2']." and type_lien=".$aObjet['type_lien']."";
- $resultat=$db->sql_query($requete,TRUE);
- }
-
- function delAllAssocObjet($objet1,$type_lien){
- global $db;
-
- $requete="delete from assoc_objet where ref_objet1=".$objet1." and type_lien=".$type_lien;
- $resultat=$db->sql_query($requete,TRUE);
- }
-
- function getObjet2ByObjet1($id_objet1,$type_lien){
- global $db;
-
- if(existeIdcommerce_v3()){
- include_once(dirname(__FILE__).'/mod/idcommerce/model/FamilleHome.php');
- $homeFamille=&FamilleHome::getInstance('FamilleHome');
- $lesObjets=$homeFamille->getMapProduitFamilleByProduit($id_objet1);
- }else{
- $lesObjets=array();
- $requete="select * from assoc_objet where ref_objet1=".$id_objet1." and type_lien=".$type_lien;
- //echo "<br>1 ".$requete."<br>";
- $resultat=$db->sql_query($requete,TRUE);
- while ($ligne=$db->sql_fetchrow($resultat)) {
- $lesObjets[$ligne['ref_objet2']]=$ligne;
- }
- }
-
-
- return $lesObjets;
- }
-
- function getObjet1ByObjet2($id_objet2,$type_lien){
- global $db;
-
-
- if(existeIdcommerce_v3()){
- include_once(dirname(__FILE__).'/mod/idcommerce/model/ProduitHome.php');
-
- $homeProduit=&ProduitHome::getInstance('ProduitHome');
- $lesObjets=array();
- $lesObjets=$homeProduit->getMapProduitFamilleByFamille($id_objet2);
- }else{
- $lesObjets=array();
- $requete="select * from assoc_objet where ref_objet2=".$id_objet2." and type_lien=".$type_lien;
- //echo "<br>2 ".$requete."<br>";
- $resultat=$db->sql_query($requete,TRUE);
- while ($ligne=$db->sql_fetchrow($resultat)) {
- $lesObjets[$ligne['ref_objet1']]=$ligne;
- }
- }
-
- return $lesObjets;
- }
-
- function getObjet1ByIDSObjet2($str_ids_objet2,$type_lien) {
- global $db;
-
-
- if(existeIdcommerce_v3()){
- include_once(dirname(__FILE__).'/mod/idcommerce/model/ProduitHome.php');
- $homeProduit=&ProduitHome::getInstance('ProduitHome');
- $lesObjets=array();
- $lesObjets=$homeProduit->getMapProduitFamilleByIdFamille($str_ids_objet2);
- }else{
- $lesObjets=array();
- $requete="select * from assoc_objet where ref_objet2 in (".$str_ids_objet2.") and type_lien=".$type_lien;
- //echo "<br>3 ".$requete."<br>";
- $resultat=$db->sql_query($requete,TRUE);
- while ($ligne=$db->sql_fetchrow($resultat)) {
- $lesObjets[$ligne['ref_objet1']]=$ligne;
- }
- }
-
- return $lesObjets;
- }
-
- function createWebsiteGroupeArray() {
- $lesGroupes=array();
-
- $groupe=array();
- $groupe['id_groupe']=__id_groupe_turbo_webmaster;
- $groupe['ref_parent']=__id_groupe_mod_turbolead;
- $groupe['nom']=array();
- $groupe['lib_nom']="__id_groupe_turbo_webmaster";
- $groupe['nom'][1]="Gestion des pages du site (Webmaster)";
- $lesGroupes[$groupe['id_groupe']]=$groupe;
-
- $groupe=array();
- $groupe['id_groupe']=__id_groupe_turbo_ecrivain;
- $groupe['ref_parent']=__id_groupe_turbo_webmaster;
- $groupe['nom']=array();
- $groupe['lib_nom']="__id_groupe_turbo_ecrivain";
- $groupe['nom'][1]="Ecrivain : peut modifier le contenu des pages";
- $lesGroupes[$groupe['id_groupe']]=$groupe;
-
- $groupe=array();
- $groupe['id_groupe']=__id_groupe_turbo_redacteur;
- $groupe['ref_parent']=__id_groupe_turbo_webmaster;
- $groupe['nom']=array();
- $groupe['lib_nom']="__id_groupe_turbo_redacteur";
- $groupe['nom'][1]="Redacteur : creer des pages dans un site, choix d'un modele";
- $lesGroupes[$groupe['id_groupe']]=$groupe;
-
- $groupe=array();
- $groupe['id_groupe']=__id_groupe_turbo_editeur;
- $groupe['ref_parent']=__id_groupe_turbo_webmaster;
- $groupe['nom']=array();
- $groupe['lib_nom']="__id_groupe_turbo_editeur";
- $groupe['nom'][1]="Editeur: creer des sites, envoi FTP";
- $lesGroupes[$groupe['id_groupe']]=$groupe;
-
- $groupe=array();
- $groupe['id_groupe']=__id_groupe_turbo_graphiste;
- $groupe['ref_parent']=__id_groupe_turbo_webmaster;
- $groupe['nom']=array();
- $groupe['lib_nom']="__id_groupe_turbo_graphiste";
- $groupe['nom'][1]="Graphiste: creer des modeles, creer des themes";
- $lesGroupes[$groupe['id_groupe']]=$groupe;
-
- $groupe=array();
- $groupe['id_groupe']=__id_groupe_turbo_configurateur;
- $groupe['ref_parent']=__id_groupe_turbo_webmaster;
- $groupe['nom']=array();
- $groupe['lib_nom']="__id_groupe_turbo_configurateur";
- $groupe['nom'][1]="Configurateur: configure FTP, theme de base";
- $lesGroupes[$groupe['id_groupe']]=$groupe;
-
- return $lesGroupes;
- }
-
- function createWebsiteDroitArray() {
- $lesDroits=array();
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_acces_module;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_acces_module";
- $droit['lib_description']="";
- $droit['description'][1]="Acces aux fonctionnalites Website";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_gestion_page;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_gestion_page";
- $droit['lib_description']="";
- $droit['description'][1]="Gestion des pages";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_contenu_page;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_contenu_page";
- $droit['lib_description']="";
- $droit['description'][1]="modifier le contenu d'une page";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_creer_page;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_creer_page";
- $droit['lib_description']="";
- $droit['description'][1]="creer, supprimer une page";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_choixmodele_page;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_choixmodele_page";
- $droit['lib_description']="";
- $droit['description'][1]="choisir un modele pour une page";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_creer_website;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_creer_website";
- $droit['lib_description']="";
- $droit['description'][1]="creer website";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_envoi_ftp;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_envoi_ftp";
- $droit['lib_description']="";
- $droit['description'][1]="envoyer par FTP du website";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_gerer_modele;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_gerer_modele";
- $droit['lib_description']="";
- $droit['description'][1]="gerer les modeles";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_gerer_theme;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_gerer_theme";
- $droit['lib_description']="";
- $droit['description'][1]="gerer les themes (sauf themes de base)";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_configurer_ftp;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_configurer_ftp";
- $droit['lib_description']="";
- $droit['description'][1]="configurer FTP";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_gerer_themebase;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_gerer_themebase";
- $droit['lib_description']="";
- $droit['description'][1]="gerer les themes de base";
- $lesDroits[$droit['id_droit']]=$droit;
-
- $droit=array();
- $droit['id_droit']=__id_droit_turbo_voir_apparence;
- $droit['nom']=array();
- $droit['lib_nom']="";
- $droit['nom'][1]="__id_droit_turbo_voir_apparence";
- $droit['lib_description']="";
- $droit['description'][1]="voir les apparences";
- $lesDroits[$droit['id_droit']]=$droit;
-
- return $lesDroits;
- }
-
- function createWebsiteDroitGroupeArray() {
- $lesDroitGroupe=array();
-
- $ObGroupe=array();
- $ObGroupe['ref_groupe']=__id_groupe_turbo_webmaster;
- $ObGroupe['ref_droit']=__id_droit_turbo_gestion_page;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_webmaster;
- $ObGroupe['ref_droit']=__id_droit_turbo_acces_module;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_ecrivain;
- $ObGroupe['ref_droit']=__id_droit_turbo_acces_module;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_ecrivain;
- $ObGroupe['ref_droit']=__id_droit_turbo_contenu_page;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_redacteur;
- $ObGroupe['ref_droit']=__id_droit_turbo_acces_module;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_redacteur;
- $ObGroupe['ref_droit']=__id_droit_turbo_creer_page;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_redacteur;
- $ObGroupe['ref_droit']=__id_droit_turbo_choixmodele_page;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_editeur;
- $ObGroupe['ref_droit']=__id_droit_turbo_acces_module;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_editeur;
- $ObGroupe['ref_droit']=__id_droit_turbo_creer_website;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_editeur;
- $ObGroupe['ref_droit']=__id_droit_turbo_envoi_ftp;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_graphiste;
- $ObGroupe['ref_droit']=__id_droit_turbo_acces_module;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_graphiste;
- $ObGroupe['ref_droit']=__id_droit_turbo_gerer_modele;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_graphiste;
- $ObGroupe['ref_droit']=__id_droit_turbo_gerer_theme;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_configurateur;
- $ObGroupe['ref_droit']=__id_droit_turbo_acces_module;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_configurateur;
- $ObGroupe['ref_droit']=__id_droit_turbo_configurer_ftp;
- $lesDroitGroupe[]=$ObGroupe;
-
- $ObGroupe['ref_groupe']=__id_groupe_turbo_configurateur;
- $ObGroupe['ref_droit']=__id_droit_turbo_gerer_themebase;
- $lesDroitGroupe[]=$ObGroupe;
-
- /*$ObGroupe['ref_groupe']=__id_groupe_turbo_editeur;
- $ObGroupe['ref_droit']=__id_droit_turbo_voir_apparence;
- $lesDroitGroupe[]=$ObGroupe;*/
-
- return $lesDroitGroupe;
- }
-
- /*
- Nom fonction : addMessage
- Description : ajout d'un nouveau message
- Entrees : &$aMessage
- Sorties : $id_message
- Globales : [$db]
- Auteur : F. Royet 15/06/2006
- */
- function addMessage(&$aMessage) {
- global $db;
-
- buildLanguage($aMessage); // preparation de l'objet au multilangue
-
- $requete="INSERT INTO `message` ( `id_message` , `nom` , `lib_sujet` , `lib_message` ) VALUES ('".addslashesifnot($aMessage['id_message'])."', '".addslashesifnot($aMessage['nom'])."','".addslashesifnot($aMessage['lib_sujet'])."', '".addslashesifnot($aMessage['lib_message'])."');";
-
- $resultat=$db->sql_query($requete,TRUE);
-
- //$id = $db->sql_insert_id();
- //$aMessage['id_message']=$id;
-
- //return $id;
- }
-
- /*
- Nom fonction : updateMessage
- Description : modification d'un message
- Entrees : &$aMessage
- Sorties :
- Globales : [$db]
- Auteur : F. Royet 15/06/2006
- */
- function updateMessage(&$aMessage) {
- global $db;
-
- buildLanguage($aMessage); // preparation de l'objet au multilangue
-
- $requete=buildUpdateRequete("message",$aMessage);
- $resultat=$db->sql_query($requete,TRUE);
-
- return $id;
- }
-
- /*
- Nom fonction : getMessage
- Description : recuperation d'un message
- Entrees : $id_message
- Sorties :
- Globales : [$db]
- Auteur : F. Royet 15/06/2006
- */
- function getMessage($id_message) {
- global $db;
- $requete="select * from message where id_message=$id_message";
-
- $resultat=$db->sql_query($requete,TRUE);
- $aMessage=$db->sql_fetchrow($resultat);
- if ($aMessage!=false) {
- fillLib($aMessage);
- return $aMessage;
- }
- return false;
- }
-
- /*
- Nom fonction : sendMessage
- Description : envoi d'un message
- Entrees : $expediteur, $destinataire, $data
- Sorties :
- Globales : [$db]
- Auteur : F. Royet 15/06/2006
- */
- function sendMessage(&$aMessage,&$expediteur, &$destinataire, &$data, $id_langue=1) {
- define("_GLOBALS","");
- include_once(dirname(__FILE__).'/classes/mail/htmlMimeMail.php');
- include_once(dirname(__FILE__).'/classes/util/Tools.php');
-
- $contenumailHTML=$aMessage['message'][$id_langue];
- $contenumail=$aMessage['message'][$id_langue];
- $sujet=Tools::cleanTxtHtml($aMessage['sujet'][$id_langue]);
- $contenumailTXT = Tools::cleanTxtHtml($contenumail);
-
- $mail = new htmlMimeMail();
- $mail->setFrom($expediteur['mail']);
- $mail->setSubject($sujet);
-
- $mail->setHTML($contenumailHTML,$contenumailTXT);
-
- $mail->send(array($destinataire['mail']));
- }
-
- /*
- Nom fonction : buildUpdateRequete
- Description : construit une requete de mise a jour dans une table à partir d'un objet
- Cette fonction parcourt toutes les colonnes de la table, chaque fois qu'il y a un champ d'objet correspondant
- a la colonne cela construit un morceau de la requete update: `nom_colonne`='valeur_champ_objet'
- Exceptions:
- 1) les colonnes commencant par id_ sont considérées comme des clefs primaires autoincrement (ou les N premieres colonnes commencan par ref_) et géré par le SGBD,
- il n'y a pas possibilité de mise a jour.
- 2) les champs qui commence par lib_ sont théoriquements des entiers references de la table libelle. Ces valeurs
- ne doivent pas etre modifiée. Cependant, si avec le champ lib_xxx se trouve un champ _force_lib_xxx le champ est
- quand meme modifié. Cela est utile lorsque le champ lib_xxx etait a 0 (donc pas initialisé) d'être initialisé.
- Avant l'appele à la fonction, il faut ecrire une ligne du style:
- if ($theObject['lib_xxx']==0) $theObject['_force_lib_xxx']=true;
- buildUpdateRequete('nomdunetable',$theObject);
- Entrees : $tableName
- Sorties : aucune
- Globales : [$db]
- Auteur : F. Royet V: 1.0 - 13/12/2005
- */
- function buildUpdateRequete($tableName,&$aObject) {
- global $db;
-
- $requete="SHOW COLUMNS FROM ".$tableName;
- $resultat=$db->sql_query($requete,TRUE);
- $chaine1="";
- $idField="";
- $where='';
- while($aCol=$db->sql_fetchrow($resultat)) {
- $colField=$aCol['Field'];
- if (isset($aObject[$colField])) {
- $aValue="";
- $aValue="`".$colField."`='".addslashesifnot($aObject[$colField])."'";
- if ($aCol['Key']=='PRI') {
- $where.=$aValue." and ";
- }
- if (substr($colField,0,4)== "lib_") {
- if (isset($aObject['_force_'.$colField])==false) $aValue="";
- }
- if (($chaine1!="")&&($aValue!="")) $aValue=",".$aValue;
-
- $chaine1.=$aValue;
- }
- }
- $where=substr($where,0,-5);
- if (($chaine1=='')||($where=='')) return false;
- $requete_resultat="UPDATE `$tableName` SET ".$chaine1." WHERE $where LIMIT 1;";
- return $requete_resultat;
- }
-
- ?>
|