m_RepertoireMetatag, $lang); // Objet gérant les variables globales include ("ads_lib_var.php"); $g_Ads_Var = new Ads_Var (); include ("ads_lib_connexion.php"); include ("ads_lib_utilisateur.php"); include ("ads_lib_annonce.php"); include ("ads_lib_categorie.php"); include ("ads_lib_liste.php"); include ("ads_lib_main.php"); // Authentification pour l'administration $s_uid = $g_Ads_Const->m_IdNonValide; $s_code = $g_Ads_Const->m_IdNonValide; $DebutNomFichier = substr ($fic, 0, 2); if ((strcasecmp ($DebutNomFichier, "M_") == 0) // Le nom du template commence par M_ ou A_ || (strcasecmp ($DebutNomFichier, "A_") == 0)) { // Authentification de l'utilisateur $OK = false; $Utilisateur = new Ads_Utilisateur (); $EmailAdmin = ""; $CodeAdmin = -1; if ($g_Ads_Param->m_Authentification != "") { $Index = strpos ($g_Ads_Param->m_Authentification, " "); if ($Index > 0) { $EmailAdmin = substr ($g_Ads_Param->m_Authentification, 0, $Index); $CodeAdmin = substr ($g_Ads_Param->m_Authentification, $Index + 1); } } else { $EmailAdmin = $PHP_AUTH_USER; $CodeAdmin = $PHP_AUTH_PW; } if ($Utilisateur->Rechercher ($EmailAdmin) == "") // L'utilisateur est connu { if ($Utilisateur->m_Code == $CodeAdmin) // Le code est correct { if (((strcasecmp ($DebutNomFichier, "M_") == 0) && ($Utilisateur->m_Type == $g_Ads_Const->m_Type_Moderateur)) // Le type d'utilisateur est correct || ($Utilisateur->m_Type == $g_Ads_Const->m_Type_Administrateur)) { // Accès autorisé, on poursuit $OK = true; $s_uid = $Utilisateur->m_Id; $s_code = $Utilisateur->m_Code; } } } if ($OK == false) // Accès refusé { // On s'arrête if ($g_Ads_Param->m_Authentification == "") { header ("WWW-authenticate: basic realm=\"Authentification\""); header ("HTTP/1.0 401 Unauthorized"); } $s_uid = $g_Ads_Const->m_IdNonValide; $s_code = 0; $uid = $g_Ads_Const->m_IdNonValide; $code = 0; $aid = $g_Ads_Const->m_IdNonValide; $cid = $g_Ads_Const->m_IdNonValide; if (strcasecmp ($DebutNomFichier, "A_") == 0) { $fic = "erreur_A"; } else { $fic = "erreur_M"; } } } // Authentification pour les tâches de fond if (strcasecmp ($DebutNomFichier, "C_") == 0) // Le nom du template commence par C_ { if ($Utilisateur->Rechercher ($email) == "") // L'utilisateur est connu { if ($Utilisateur->m_Code == $code ) // Le code est correct { if ($Utilisateur->m_Type == $g_Ads_Const->m_Type_Mainteneur) { // Accès autorisé, on poursuit $OK = true; $s_uid = $Utilisateur->m_Id; $s_code = $Utilisateur->m_Code; } } } if ($OK == false) // Accès refusé { // On s'arrête header ("WWW-authenticate: basic realm=\"Authentification\""); header ("HTTP/1.0 401 Unauthorized"); $s_uid = $g_Ads_Const->m_IdNonValide; $s_code = 0; $uid = $g_Ads_Const->m_IdNonValide; $code = 0; $aid = $g_Ads_Const->m_IdNonValide; $cid = $g_Ads_Const->m_IdNonValide; $fic = "erreur_C"; } } // Recherche de l'identifiant de l'utilisateur d'après son adresse mail if (strcasecmp ($DebutNomFichier, "U_") == 0) // Le nom du template commence par U_ { $uid = $g_Ads_Const->m_IdNonValide; $Utilisateur = new Ads_Utilisateur (); if ($Utilisateur->Rechercher ($email) == "") { if ($Utilisateur->m_Id > $g_Ads_Const->m_IdNonValide) // L'utilisateur est connu { // Lecture de son identifiant pour l'utiliser lors de l'interprétation $uid = $Utilisateur->m_Id; } } if ($uid == $g_Ads_Const->m_IdNonValide) { $email = ""; $code = 0; $aid = $g_Ads_Const->m_IdNonValide; $cid = $g_Ads_Const->m_IdNonValide; $fic = "erreur_U"; } } // Ouverture du fichier template $fic.html $Fichier = fopen ($g_Ads_Param->m_RepertoireTemplate . $fic . ".html", "r"); if ($Fichier != false) // Fichier template ouvert { // Interprétation du fichier template $Debut = false; while (feof ($Fichier) == false) // Non fin de fichier { // Lecture d'une ligne $Ligne = fgets ($Fichier, 4096); while (ereg ("<%[^%><]*%>", $Ligne, $Tags) != false) // Au moins un métatag non interprété dans la ligne { $Resultat = ""; // Extraction du nom du métatag $NomSection = substr ($Tags [0], 2, strlen ($Tags [0]) - 4); // Chargement de la section correspondant au métatag (si la section n'a pas déjà été chargée) // fichier : $NomSection.$lang if ($g_Ads_Config->ChargerSection ($NomSection) == true) // Section chargée { // Doit-on remplacer les sauts de lignes des tags %C_DESCRIPTION%, %A_TITRE%, %A_TEXTE% et %U_ADRESSE% par des
? $TraiterCRLF = $g_Ads_Config->ValeurEntreeSection ($NomSection, $g_Ads_Const->m_Entree_TraiterCRLF); // Doit-on modifier la casse des tags %A_TITRE%, %U_NOM%, %U_PRENOM%, %U_VILLE% et %U_PAYS% ? // (la première lettre en majuscule, les autres en minuscule) $TraiterCasse = $g_Ads_Config->ValeurEntreeSection ($NomSection, $g_Ads_Const->m_Entree_TraiterCasse); // On récupère le type du métatag $TypeMetatag = $g_Ads_Config->ValeurEntreeSection ($NomSection, $g_Ads_Const->m_Entree_TypeMetatag); // On appelle la fonction correspondant au type du métatag // Ces fonctions sont dans le fichier ads_lib_main.php if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_ListeCategories) { // Liste des sous-catégories d'une catégorie Ads_AfficherListeCategories ($NomSection, $cid, $TraiterCRLF, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_ListeAnnonces) { // Liste des annonces d'une catégorie ou d'un utilisateur Ads_AfficherListeAnnonces ($NomSection, $cid, $uid, $TraiterCRLF, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_ListeUtilisateurs) { // Liste des utilisateurs Ads_AfficherListeUtilisateurs ($NomSection, $TraiterCRLF, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_Affichage) { // Affichage (catégorie, annonce, utilisateur) Ads_Afficher ($NomSection, $cid, $aid, $uid, $TraiterCRLF, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_AjoutAnnonce) { // Ajout d'une annonce Ads_AjouterAnnonce ($NomSection, $email, $code, $nom, $prenom, $adr, $cp, $ville, $pays, $tel1, $tel2, $tel3, $cid, $titre, $texte, $legendeimage, $donnee1, $donnee2, $donnee3, $donnee4, $donnee5, $donnee6, $donnee7, $donnee8, $donnee9, $donnee10, $TraiterCRLF, $TraiterCasse, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_ModificationAnnonce) { // Modification d'une annonce Ads_ModifierAnnonce ($NomSection, $s_uid, $s_code, $uid, $code, $aid, $cid, $titre, $texte, $image, $legendeimage, $donnee1, $donnee2, $donnee3, $donnee4, $donnee5, $donnee6, $donnee7, $donnee8, $donnee9, $donnee10, $TraiterCRLF, $TraiterCasse, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_ValidationAnnonce) { // Validation d'une annonce Ads_ValiderAnnonce ($NomSection, $s_uid, $s_code, $uid, $code, $aid, $TraiterCRLF, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_SuppressionAnnonce) { // Suppression d'une annonce Ads_SupprimerAnnonce ($NomSection, $s_uid, $s_code, $uid, $code, $aid, $TraiterCRLF, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_ModificationStatutsAnnonces) { // Modification du statut de plusieurs annonces Ads_ModifierStatutsAnnonces ($NomSection, $s_uid, $s_code, $aids, $nouveauxstatuts, $anciensstatuts, $TraiterCRLF, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_ModificationUtilisateur) { // Modification d'un utilisateur Ads_ModifierUtilisateur ($NomSection, $s_uid, $s_code, $uid, $code, $type, $email, $ncode, $ncodebis, $nom, $prenom, $adr, $cp, $ville, $pays, $tel1, $tel2, $tel3, $TraiterCRLF, $TraiterCasse, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_SuppressionUtilisateur) { // Suppression d'un utilisateur Ads_SupprimerUtilisateur ($NomSection, $s_uid, $s_code, $uid, $code, $TraiterCRLF, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_GestionObsolescence) { // Gestion de l'obsolescence Ads_GererObsolescence ($NomSection, $Resultat); } if ($TypeMetatag == $g_Ads_Const->m_TypeMetatag_GestionSuppression) { // Gestion de la suppression Ads_GererSuppression ($NomSection, $Resultat); } } // Remplacement dans la ligne $Ligne = str_replace ($Tags [0], $Resultat, $Ligne); } // On affiche la ligne print ($Ligne); } fclose ($Fichier); } else { $Erreur = "Erreur lors de l'ouverture du fichier template " . $g_Ads_Param->m_RepertoireTemplate . $fic . ".html"; Ads_Log ("pa.php", $Erreur); } ?>