Exemplo n.º 1
0
 function auteur()
 {
     // Definition des variables globales :
     global $prefixe;
     global $langue;
     global $utilisateur_connecte;
     // Definition de(s) table(s) :
     $this->table = $prefixe . "_auteur";
     $table_utilisateur = $prefixe . "_utilisateur";
     $table_theme = $prefixe . "_theme";
     // Initialisation de(s) argument(s) :
     $arguments = func_get_args();
     $numargs = func_num_args();
     if ($numargs > 0) {
         $idauteur = $arguments[0];
     }
     if ($numargs > 1) {
         $this->tableau_arguments = $arguments[1];
     }
     // Heritage :
     parent::objet();
     // Initialisation :
     // Champs obligatoires :
     $this->champs_obligatoires = array("idutilisateur_rel", "idtheme_rel");
     // Champs du formulaire de creation :
     $this->champs_formulaire = array("idutilisateur_rel", "idtheme_rel");
     // Champs caches du formulaire:
     $this->champs_caches = array();
     // Recherche de la question si l'on donne son identifiant :
     if (isset($idauteur)) {
         $auteur_choisi = requete_sql("select * FROM {$this->table} WHERE idauteur={$idauteur}");
         $auteur_choisi = tableau_sql($auteur_choisi);
         $this->idauteur = $idauteur;
         $this->identifiant = $idauteur;
         $this->visible = $auteur_choisi["visible"];
         $this->idutilisateur_rel = $auteur_choisi["idutilisateur_rel"];
         $this->idtheme_rel = $auteur_choisi["idtheme_rel"];
         $this->datecreation = $auteur_choisi["datecreation"];
         $this->validation = $auteur_choisi["validation"];
         $this->idutilisateur_validateur_rel = $auteur_choisi["idutilisateur_validateur_rel"];
         $this->datevalidation = $auteur_choisi["datevalidation"];
         $this->correcteur = $auteur_choisi["correcteur"];
         $this->dateaccordcorrecteur = $auteur_choisi["dateaccordcorrecteur"];
     } else {
         if (!isset($this->datecreation) || $this->datecreation == "") {
             $this->datecreation = time();
         }
         if (!isset($this->idutilisateur_auteur_rel) || $this->idutilisateur_auteur_rel == "" || !is_numeric($this->idutilisateur_auteur_rel) || intval($this->idutilisateur_auteur_rel) != $this->idutilisateur_auteur_rel) {
             $this->idutilisateur_auteur_rel = $utilisateur_connecte->identifiant;
         }
         if (!isset($this->validation) || $this->validation == "" || !is_numeric($this->validation) || intval($this->validation) != $this->validation) {
             $this->validation = 0;
         }
     }
 }
Exemplo n.º 2
0
 function theme()
 {
     // Definition des variables globales :
     global $prefixe;
     // Definition de(s) table(s) :
     $this->table = $prefixe . "_theme";
     // Initialisation de(s) argument(s) :
     $arguments = func_get_args();
     $numargs = func_num_args();
     if ($numargs > 0) {
         $idtheme_selectionne = $arguments[0];
     }
     if ($numargs > 1) {
         $this->tableau_arguments = $arguments[1];
     }
     // Heritage :
     parent::objet();
     // Initialisation :
     // Champs obligatoires :
     $this->champs_obligatoires = array("titre");
     // Champs du formulaire de creation :
     $this->champs_formulaire = array("titre", "intitule", "idtheme_rel");
     // Recherche du choix si l'on donne son identifiant :
     if (isset($idtheme_selectionne)) {
         $theme_choisie = requete_sql("select * FROM {$this->table} WHERE idtheme={$idtheme_selectionne}");
         $theme_choisie = tableau_sql($theme_choisie);
         $this->idtheme = $idtheme_selectionne;
         $this->identifiant = $idtheme_selectionne;
         $this->visible = $theme_choisie["visible"];
         $this->idtheme_rel = $theme_choisie["idtheme_rel"];
         $this->titre = $theme_choisie["titre"];
         $this->intitule = $theme_choisie["intitule"];
         $this->niveau = $theme_choisie["niveau"];
         $this->taille = $theme_choisie["taille"];
         $this->bornegauche = $theme_choisie["bornegauche"];
         $this->langue = $theme_choisie["langue"];
         $liste_fils_sql = requete_sql("select * FROM {$this->table} WHERE idtheme_rel={$idtheme_selectionne} AND visible='1' ORDER BY bornegauche ASC");
         while ($theme = tableau_sql($liste_fils_sql)) {
             array_push($this->liste_fils, $theme);
         }
         $liste_fils_arbo_sql = requete_sql("select * FROM {$this->table} WHERE bornegauche>{$this->bornegauche} AND bornegauche+taille<{$this->bornegauche}+{$this->taille} AND visible='1' ORDER BY bornegauche ASC");
         while ($theme = tableau_sql($liste_fils_arbo_sql)) {
             array_push($this->liste_fils_arbo, $theme);
         }
     }
     // Initialisation du theme si l'on ne donne pas d'indentifiant :
     // l'heritage suffit
 }
Exemplo n.º 3
0
 function choix()
 {
     // Definition des variables globales :
     global $prefixe;
     global $page_question;
     // Definition de(s) table(s) :
     $this->table = $prefixe . "_choix";
     // Initialisation de(s) argument(s) :
     $arguments = func_get_args();
     $numargs = func_num_args();
     if ($numargs > 0) {
         $idchoix_selectionne = $arguments[0];
     }
     if ($numargs > 1) {
         $this->tableau_arguments = $arguments[1];
     }
     // Heritage :
     parent::objet();
     // Initialisation :
     // Champs obligatoires :
     $this->champs_obligatoires = array("idquestion_rel");
     // Champs du formulaire de creation :
     $this->champs_formulaire = array("titre", "intitule", "vraifaux", "valeur");
     // Champs caches du formulaire:
     $this->champs_caches = array("idquestion_rel");
     // Recherche du choix si l'on donne son identifiant :
     if (isset($idchoix_selectionne)) {
         $reponse_choisie = requete_sql("select * FROM {$this->table} WHERE idchoix={$idchoix_selectionne}");
         $reponse_choisie = tableau_sql($reponse_choisie);
         $this->idchoix = $idchoix_selectionne;
         $this->identifiant = $idchoix_selectionne;
         $this->visible = $reponse_choisie["visible"];
         $this->idquestion_rel = $reponse_choisie["idquestion_rel"];
         $this->titre = $reponse_choisie["titre"];
         $this->intitule = $reponse_choisie["intitule"];
         $this->vraifaux = $reponse_choisie["vraifaux"];
         $this->valeur = $reponse_choisie["valeur"];
     }
     // Initialisation du choix si l'on ne donne pas d'indentifiant :
     // l'heritage suffit
 }
Exemplo n.º 4
0
 function regle()
 {
     // Definition des variables globales :
     global $prefixe;
     // Definition de(s) table(s) :
     $this->table = $prefixe . "_z_regle";
     // Initialisation de(s) argument(s) :
     $arguments = func_get_args();
     $numargs = func_num_args();
     if ($numargs > 0) {
         $idregle = $arguments[0];
     }
     if ($numargs > 1) {
         $nomregle = $arguments[1];
     }
     // Heritage :
     parent::objet();
     // Initialisation :
     // Champs obligatoires :
     $this->champs_obligatoires = array("titre", "idutilisateurauteur_rel");
     // Recherche de la regle en fonction de son identifiant :
     if (isset($idregle) && $idregle != 0) {
         $regle_choisie = requete_sql("select * FROM {$this->table} WHERE {$this->champ_identifiant}='{$idregle}'");
         $regle_choisie = tableau_sql($regle_choisie);
         $this->idregle = $regle_choisie["idregle"];
         $this->identifiant = $regle_choisie["idregle"];
         $this->nom = $regle_choisie["nom"];
         $this->description = $regle_choisie["description"];
         $this->valeur = $regle_choisie["valeur"];
         $this->listechoix = $regle_choisie["listechoix"];
     } elseif (isset($nomregle)) {
         $regle_choisie = requete_sql("select * FROM {$this->table} WHERE nom='{$nomregle}'");
         $regle_choisie = tableau_sql($regle_choisie);
         $this->idregle = $regle_choisie["idregle"];
         $this->nom = $regle_choisie["nom"];
         $this->description = $regle_choisie["description"];
         $this->valeur = $regle_choisie["valeur"];
         $this->listechoix = $regle_choisie["listechoix"];
     }
 }
Exemplo n.º 5
0
 function reponse($num_choix = 0, $mot = "", $texte = "", $num_question = 0)
 {
     // Definition des variables globales :
     global $prefixe;
     global $idutilisateur;
     // Definition de(s) table(s) :
     $this->table = $prefixe . "_reponse";
     // Heritage :
     parent::objet();
     // Initialisation :
     // Champs obligatoires :
     $this->champs_obligatoires = array("datereponse", "idutilisateur_rel");
     $this->visible = 1;
     if (is_numeric($idutilisateur) && intval($idutilisateur) == $idutilisateur) {
         $this->idutilisateur_rel = $idutilisateur;
     } else {
         $this->idutilisateur_rel = "0";
     }
     $this->idchoix_rel = $num_choix;
     $this->datereponse = time();
     $this->mot = $mot;
     $this->texte = $texte;
     $this->idquestion_rel = $num_question;
 }
Exemplo n.º 6
0
 function question()
 {
     // Definition des variables globales :
     global $prefixe;
     global $langue;
     global $utilisateur_connecte;
     global $page_questionnaire;
     global $page_choix;
     // Definition de(s) table(s) :
     $this->table = $prefixe . "_question";
     $table_choix = $prefixe . "_choix";
     // Initialisation de(s) argument(s) :
     $arguments = func_get_args();
     $numargs = func_num_args();
     if ($numargs > 0) {
         $idquestion = $arguments[0];
     }
     if ($numargs > 1) {
         $this->tableau_arguments = $arguments[1];
     }
     // Heritage :
     parent::objet();
     // Initialisation :
     // Champs obligatoires :
     $this->champs_obligatoires = array("titre", "idutilisateur_auteur_rel");
     // Champs du formulaire de creation :
     $this->champs_formulaire = array("titre", "intitule", "type", "ordre", "solution");
     // Champs caches du formulaire:
     $this->champs_caches = array("idquestionnaire_rel");
     // Recherche de la question si l'on donne son identifiant :
     if (isset($idquestion)) {
         $question_choisie = requete_sql("select * FROM {$this->table} WHERE idquestion={$idquestion}");
         $question_choisie = tableau_sql($question_choisie);
         $this->idquestion = $idquestion;
         $this->identifiant = $idquestion;
         $this->visible = $question_choisie["visible"];
         $this->idquestionnaire_rel = $question_choisie["idquestionnaire_rel"];
         $this->ordre = $question_choisie["ordre"];
         $this->titre = $question_choisie["titre"];
         $this->intitule = $question_choisie["intitule"];
         $this->solution = $question_choisie["solution"];
         $this->type = $question_choisie["type"];
         $this->niveau = $question_choisie["niveau"];
         $this->idutilisateur_auteur_rel = $question_choisie["idutilisateur_auteur_rel"];
         $this->validation = $question_choisie["validation"];
         $this->idutilisateur_validateur_rel = $question_choisie["idutilisateur_validateur_rel"];
         $this->datecreation = $question_choisie["datecreation"];
         $this->datevalidation = $question_choisie["datevalidation"];
         $this->textevalidation = $question_choisie["textevalidation"];
         $type_avec_choix = array("choix_unique", "choix_unique_liste", "choix_multiple", "choix_multiple_liste");
         if (in_array($this->type, $type_avec_choix)) {
             $liste_choix_sql = requete_sql("select * FROM {$table_choix} WHERE idquestion_rel='{$idquestion}' AND visible='1'");
             while ($choix = tableau_sql($liste_choix_sql)) {
                 array_push($this->liste_choix, $choix);
             }
         }
     } else {
         if (!isset($this->datecreation) || $this->datecreation == "") {
             $this->datecreation = time();
         }
         if (!isset($this->idutilisateur_auteur_rel) || $this->idutilisateur_auteur_rel == "" || !is_numeric($this->idutilisateur_auteur_rel) || intval($this->idutilisateur_auteur_rel) != $this->idutilisateur_auteur_rel) {
             $this->idutilisateur_auteur_rel = $utilisateur_connecte->identifiant;
         }
         if (!isset($this->validation) || $this->validation == "" || !is_numeric($this->validation) || intval($this->validation) != $this->validation) {
             $this->validation = 0;
         }
     }
 }
Exemplo n.º 7
0
 function questionnaire()
 {
     // Definition des variables globales :
     global $prefixe;
     global $utilisateur_connecte;
     global $page_questionnaire;
     // Definition de(s) table(s) :
     $this->table = $prefixe . "_questionnaire";
     $this->table_question = $prefixe . "_question";
     // Initialisation de(s) argument(s) :
     $arguments = func_get_args();
     $numargs = func_num_args();
     if ($numargs > 0) {
         $idquestionnaire = $arguments[0];
     }
     if ($numargs > 1) {
         $this->tableau_arguments = $arguments[1];
     }
     // Heritage :
     parent::objet();
     // Initialisation :
     // Champs obligatoires :
     $this->champs_obligatoires = array("titre", "idutilisateur_auteur_rel");
     // Champs du formulaire de creation :
     $this->champs_formulaire = array("titre", "intitule", "niveau", "tempsminimum", "tempsmaximum", "idtheme_rel");
     // Lien de suppression :
     $this->lien_suppression = $page_questionnaire;
     // Recherche de la question si l'on donne son identifiant :
     if (isset($idquestionnaire)) {
         $questionnaire_choisie = requete_sql("select * FROM {$this->table} WHERE idquestionnaire={$idquestionnaire}");
         $questionnaire_choisie = tableau_sql($questionnaire_choisie);
         $this->idquestionnaire = $idquestionnaire;
         $this->identifiant = $idquestionnaire;
         $this->visible = $questionnaire_choisie["visible"];
         $this->titre = $questionnaire_choisie["titre"];
         $this->intitule = $questionnaire_choisie["intitule"];
         $this->tempsminimum = $questionnaire_choisie["tempsminimum"];
         $this->tempsmaximum = $questionnaire_choisie["tempsmaximum"];
         $this->idtheme_rel = $questionnaire_choisie["idtheme_rel"];
         $this->niveau = $questionnaire_choisie["niveau"];
         $this->idutilisateur_auteur_rel = $questionnaire_choisie["idutilisateur_auteur_rel"];
         $this->validation = $questionnaire_choisie["validation"];
         $this->idutilisateur_validateur_rel = $questionnaire_choisie["idutilisateur_validateur_rel"];
         $this->datecreation = $questionnaire_choisie["datecreation"];
         $this->datevalidation = $questionnaire_choisie["datevalidation"];
         $this->textevalidation = $questionnaire_choisie["textevalidation"];
         $liste_question_sql = requete_sql("select * FROM {$this->table_question} WHERE idquestionnaire_rel='{$idquestionnaire}' AND visible='1' ORDER BY ordre");
         while ($question = tableau_sql($liste_question_sql)) {
             array_push($this->liste_questions, $question);
         }
     } else {
         if (!isset($this->datecreation) || $this->datecreation == "") {
             $this->datecreation = time();
         }
         if (!isset($this->idutilisateur_auteur_rel) || $this->idutilisateur_auteur_rel == "" || !is_numeric($this->idutilisateur_auteur_rel) || intval($this->idutilisateur_auteur_rel) != $this->idutilisateur_auteur_rel) {
             $this->idutilisateur_auteur_rel = $utilisateur_connecte->identifiant;
         }
         if (!isset($this->validation) || $this->validation == "" || !is_numeric($this->validation) || intval($this->validation) != $this->validation) {
             $this->validation = 0;
         }
     }
 }
Exemplo n.º 8
0
 function utilisateur()
 {
     // Definition des variables globales :
     global $prefixe;
     global $adresserepertoiresite;
     // Definition de(s) table(s) :
     $this->table = $prefixe . "_utilisateur";
     $this->table_question = $prefixe . "_question";
     $this->table_questionnaire = $prefixe . "_questionnaire";
     $this->table_auteur = $prefixe . "_auteur";
     // Initialisation de(s) argument(s) :
     $arguments = func_get_args();
     $numargs = func_num_args();
     if ($numargs > 0) {
         $compte_arg = $arguments[0];
     }
     if ($numargs > 1) {
         $motdepasse_arg = $arguments[1];
     }
     if ($numargs > 2) {
         $this->tableau_arguments = $arguments[2];
     }
     if ($numargs > 3) {
         $id = $arguments[3];
         $this->identifiant = $arguments[3];
     }
     if ($numargs > 4) {
         $motdepasse_crypte_arg = $arguments[4];
     }
     if ($compte_arg == "0") {
         unset($compte_arg);
     }
     if ($motdepasse_arg == "0") {
         unset($motdepasse_arg);
     }
     if (!is_array($this->tableau_arguments)) {
         unset($this->tableau_arguments);
     }
     if ($id == "0" || $id == "") {
         unset($id);
         unset($this->identifiant);
     }
     // Heritage :
     parent::objet();
     // Initialisation :
     // Champs obligatoires :
     $this->champs_obligatoires = array("compte", "motpasse", "datecreation", "email");
     //Champs uniques :
     $this->champs_uniques = array("compte");
     // Test d'authentification si un compte et un mot de passe sont donnes :
     if (isset($compte_arg) && isset($motdepasse_arg)) {
         // Mot de passe crypte :
         $motdepasse_crypte = substr(MD5($motdepasse_arg), 0, 20);
         // Recherche du compte :
         $sql = "SELECT * FROM {$this->table} WHERE compte='{$compte_arg}' AND visible='1'";
         $utilisateur_res = requete_sql($sql);
         $qte = compte_sql($utilisateur_res);
         if ($qte == 0) {
             // Compte inexistant
             $this->compte = $compte_arg;
             $this->motpasse = $motdepasse_crypte;
             $this->validation = "0";
             $this->admin = "0";
             $this->_testauthentification = -1;
         } else {
             //Le compte existe
             //Initialisation de l'utilisateur
             $utilisateur_trouve = tableau_sql($utilisateur_res);
             foreach ($utilisateur_trouve as $key => $value) {
                 if (!is_numeric($key)) {
                     $this->{$key} = $value;
                 }
             }
             //Test du mot de passe
             if ($this->motpasse == $motdepasse_crypte && $this->activation == 1) {
                 //L'utilisateur est reconnu et correcte
                 //Mise a jour de sa derniere date de connexion
                 $this->datederniereconnection = time();
                 $sql1 = "UPDATE {$this->table} SET datederniereconnection={$this->datederniereconnection} WHERE {$this->champ_identifiant}=" . $this->identifiant() . ";";
                 $res1 = requete_sql($sql1);
                 $this->_testauthentification = 2;
                 //Recherche des themes dont l'utilisateur est auteur :
                 $sqlauteur = "SELECT idtheme_rel FROM {$this->table_auteur} WHERE idutilisateur_rel=" . $this->identifiant() . " AND visible=1 AND validation='1';";
                 $resauteur = requete_sql($sqlauteur);
                 while ($auteur = tableau_sql($resauteur)) {
                     //Creation d'une variable temporaire de classe theme :
                     require_once $adresserepertoiresite . '/scripts/php/class.theme.php';
                     $vtemptheme = new theme($auteur['idtheme_rel']);
                     $this->idtheme_auteur[] = $auteur['idtheme_rel'];
                     foreach ($vtemptheme->liste_fils_arbo as $idthemefils) {
                         $this->idtheme_auteur[] = $idthemefils['idtheme'];
                     }
                 }
                 //Recherche des themes dont l'utilisateur est correcteur :
                 $sqlcorrecteur = "SELECT idtheme_rel FROM {$this->table_auteur} WHERE idutilisateur_rel=" . $this->identifiant() . " AND visible=1 AND validation='1' AND correcteur='1';";
                 $rescorrecteur = requete_sql($sqlcorrecteur);
                 while ($correcteur = tableau_sql($rescorrecteur)) {
                     $this->idtheme_correcteur[] = $correcteur['idtheme_rel'];
                 }
                 //Recherche des questions dont l'utilisateur est auteur :
                 $sqlquestauteur = "SELECT idquestion FROM {$this->table_question} WHERE idutilisateur_auteur_rel=" . $this->identifiant() . " AND visible=1 ORDER BY idquestionnaire_rel ASC, ordre ASC;";
                 $resquestauteur = requete_sql($sqlquestauteur);
                 while ($questauteur = tableau_sql($resquestauteur)) {
                     $this->idquestion_auteur[] = $questauteur['idquestion'];
                 }
                 //Recherche des questionnaires dont l'utilisateur est auteur :
                 $sqlquestionnaireauteur = "SELECT idquestionnaire FROM {$this->table_questionnaire} WHERE idutilisateur_auteur_rel=" . $this->identifiant() . " AND visible=1;";
                 $resquestionnaireauteur = requete_sql($sqlquestionnaireauteur);
                 while ($questionnaireauteur = tableau_sql($resquestionnaireauteur)) {
                     $this->idquestionnaire_auteur[] = $questionnaireauteur['idquestionnaire'];
                 }
                 //Recherche des themes favoris de l'utilisateur :
                 require_once $adresserepertoiresite . '/scripts/php/class.theme_favori.php';
                 $vtemptheme_fav = new theme_favori();
                 $sqlidtheme_favori_utilisateur = "SELECT idtheme_rel FROM {$vtemptheme_fav->table} WHERE idutilisateur_rel=" . $this->identifiant() . " AND visible='1';";
                 $residtheme_favori_utilisateur = requete_sql($sqlidtheme_favori_utilisateur);
                 while ($idtheme_favori_utilisateur = tableau_sql($residtheme_favori_utilisateur)) {
                     $this->idtheme_favori_utilisateur[] = $idtheme_favori_utilisateur['idtheme_rel'];
                 }
             } elseif ($this->motpasse != $motdepasse_crypte) {
                 //Mot de passe errone
                 $this->admin = "0";
                 $this->_testauthentification = 0;
             } elseif ($this->activation != 1) {
                 //Mot de passe juste mais compte non active
                 $this->admin = "0";
                 $this->_testauthentification = 1;
             }
         }
     }
     // Initialisation de l'utilisateur si l'on souhaite le creer (troisieme argument uniquement) :
     if (!isset($compte_arg) && !isset($motdepasse_arg) && isset($this->tableau_arguments)) {
         // Mot de passe crypte :
         $this->setmotpasse($this->motpasse);
         if (!isset($this->_testauthentification) || $this->_testauthentification == "") {
             $this->_testauthentification = 1;
         }
         if (!isset($this->datecreation) || $this->datecreation == "") {
             $this->datecreation = time();
         }
     }
     // Recherche de l'utilisateur par son identifiant (quatrieme argument uniquement) :
     if (!isset($compte_arg) && !isset($motdepasse_arg) && !isset($this->tableau_arguments) && isset($id)) {
         // Recherche du compte :
         $sql = "SELECT * FROM {$this->table} WHERE {$this->champ_identifiant}='{$id}'";
         $utilisateur_res = requete_sql($sql);
         $utilisateur_trouve = tableau_sql($utilisateur_res);
         if (is_array($utilisateur_trouve)) {
             foreach ($utilisateur_trouve as $key => $value) {
                 $this->{$key} = $value;
             }
             //Recherche des themes dont l'utilisateur est auteur :
             $sqlauteur = "SELECT idtheme_rel FROM {$this->table_auteur} WHERE idutilisateur_rel=" . $this->identifiant() . " AND visible=1 AND validation='1';";
             $resauteur = requete_sql($sqlauteur);
             while ($auteur = tableau_sql($resauteur)) {
                 $this->idtheme_auteur[] = $auteur['idtheme_rel'];
             }
             //Recherche des themes dont l'utilisateur est correcteur :
             $sqlcorrecteur = "SELECT idtheme_rel FROM {$this->table_auteur} WHERE idutilisateur_rel=" . $this->identifiant() . " AND visible=1 AND validation='1' AND correcteur='1';";
             $rescorrecteur = requete_sql($sqlcorrecteur);
             while ($correcteur = tableau_sql($rescorrecteur)) {
                 $this->idtheme_correcteur[] = $correcteur['idtheme_rel'];
             }
             //Recherche des questions dont l'utilisateur est auteur :
             $sqlquestauteur = "SELECT idquestion FROM {$this->table_question} WHERE idutilisateur_auteur_rel=" . $this->identifiant() . " AND visible=1 ORDER BY idquestionnaire_rel ASC, ordre ASC;";
             $resquestauteur = requete_sql($sqlquestauteur);
             while ($questauteur = tableau_sql($resquestauteur)) {
                 $this->idquestion_auteur[] = $questauteur['idquestion'];
             }
             //Recherche des questionnaires dont l'utilisateur est auteur :
             $sqlquestionnaireauteur = "SELECT idquestionnaire FROM {$this->table_questionnaire} WHERE idutilisateur_auteur_rel=" . $this->identifiant() . " AND visible=1;";
             $resquestionnaireauteur = requete_sql($sqlquestionnaireauteur);
             while ($questionnaireauteur = tableau_sql($resquestionnaireauteur)) {
                 $this->idquestionnaire_auteur[] = $questionnaireauteur['idquestionnaire'];
             }
             //Recherche des themes favoris de l'utilisateur :
             require_once $adresserepertoiresite . '/scripts/php/class.theme_favori.php';
             $vtemptheme_fav = new theme_favori();
             $sqlidtheme_favori_utilisateur = "SELECT idtheme_rel FROM {$vtemptheme_fav->table} WHERE idutilisateur_rel=" . $this->identifiant() . " AND visible='1';";
             $residtheme_favori_utilisateur = requete_sql($sqlidtheme_favori_utilisateur);
             while ($idtheme_favori_utilisateur = tableau_sql($residtheme_favori_utilisateur)) {
                 $this->idtheme_favori_utilisateur[] = $idtheme_favori_utilisateur['idtheme_rel'];
             }
         }
     }
     // Recherche de l'utilisateur par son identifiant (quatrieme argument uniquement) :
     if (isset($compte_arg) && !isset($motdepasse_arg) && !isset($this->tableau_arguments) && !isset($id) && isset($motdepasse_crypte_arg)) {
         // Mot de passe crypte :
         $motdepasse_crypte = $motdepasse_crypte_arg;
         // Recherche du compte :
         $sql = "SELECT * FROM {$this->table} WHERE compte='{$compte_arg}' AND visible='1'";
         $utilisateur_res = requete_sql($sql);
         $qte = compte_sql($utilisateur_res);
         if ($qte == 0) {
             // Compte inexistant
             $this->compte = $compte_arg;
             $this->motpasse = $motdepasse_crypte;
             $this->validation = "0";
             $this->admin = "0";
             $this->_testauthentification = -1;
         } else {
             //Le compte existe
             //Initialisation de l'utilisateur
             $utilisateur_trouve = tableau_sql($utilisateur_res);
             foreach ($utilisateur_trouve as $key => $value) {
                 if (!is_numeric($key)) {
                     $this->{$key} = $value;
                 }
             }
             //Test du mot de passe
             if ($this->motpasse == $motdepasse_crypte && $this->activation == 1) {
                 //L'utilisateur est reconnu et correcte
                 //Mise a jour de sa derniere date de connexion
                 $this->datederniereconnection = time();
                 $sql1 = "UPDATE {$this->table} SET datederniereconnection={$this->datederniereconnection} WHERE {$this->champ_identifiant}=" . $this->identifiant() . ";";
                 $res1 = requete_sql($sql1);
                 $this->_testauthentification = 2;
                 //Recherche des themes dont l'utilisateur est auteur :
                 $sqlauteur = "SELECT idtheme_rel FROM {$this->table_auteur} WHERE idutilisateur_rel=" . $this->identifiant() . " AND visible=1 AND validation='1';";
                 $resauteur = requete_sql($sqlauteur);
                 while ($auteur = tableau_sql($resauteur)) {
                     //Creation d'une variable temporaire de classe theme :
                     require_once $adresserepertoiresite . '/scripts/php/class.theme.php';
                     $vtemptheme = new theme($auteur['idtheme_rel']);
                     $this->idtheme_auteur[] = $auteur['idtheme_rel'];
                     foreach ($vtemptheme->liste_fils_arbo as $idthemefils) {
                         $this->idtheme_auteur[] = $idthemefils['idtheme'];
                     }
                 }
                 //Recherche des themes dont l'utilisateur est correcteur :
                 $sqlcorrecteur = "SELECT idtheme_rel FROM {$this->table_auteur} WHERE idutilisateur_rel=" . $this->identifiant() . " AND visible=1 AND validation='1' AND correcteur='1';";
                 $rescorrecteur = requete_sql($sqlcorrecteur);
                 while ($correcteur = tableau_sql($rescorrecteur)) {
                     $this->idtheme_correcteur[] = $correcteur['idtheme_rel'];
                 }
                 //Recherche des questions dont l'utilisateur est auteur :
                 $sqlquestauteur = "SELECT idquestion FROM {$this->table_question} WHERE idutilisateur_auteur_rel=" . $this->identifiant() . " AND visible=1 ORDER BY idquestionnaire_rel ASC, ordre ASC;";
                 $resquestauteur = requete_sql($sqlquestauteur);
                 while ($questauteur = tableau_sql($resquestauteur)) {
                     $this->idquestion_auteur[] = $questauteur['idquestion'];
                 }
                 //Recherche des questionnaires dont l'utilisateur est auteur :
                 $sqlquestionnaireauteur = "SELECT idquestionnaire FROM {$this->table_questionnaire} WHERE idutilisateur_auteur_rel=" . $this->identifiant() . " AND visible=1;";
                 $resquestionnaireauteur = requete_sql($sqlquestionnaireauteur);
                 while ($questionnaireauteur = tableau_sql($resquestionnaireauteur)) {
                     $this->idquestionnaire_auteur[] = $questionnaireauteur['idquestionnaire'];
                 }
                 //Recherche des themes favoris de l'utilisateur :
                 require_once $adresserepertoiresite . '/scripts/php/class.theme_favori.php';
                 $vtemptheme_fav = new theme_favori();
                 $sqlidtheme_favori_utilisateur = "SELECT idtheme_rel FROM {$vtemptheme_fav->table} WHERE idutilisateur_rel=" . $this->identifiant() . " AND visible='1';";
                 $residtheme_favori_utilisateur = requete_sql($sqlidtheme_favori_utilisateur);
                 while ($idtheme_favori_utilisateur = tableau_sql($residtheme_favori_utilisateur)) {
                     $this->idtheme_favori_utilisateur[] = $idtheme_favori_utilisateur['idtheme_rel'];
                 }
             } elseif ($this->motpasse != $motdepasse_crypte) {
                 //Mot de passe errone
                 $this->admin = "0";
                 $this->_testauthentification = 0;
             } elseif ($this->activation != 1) {
                 //Mot de passe juste mais compte non active
                 $this->admin = "0";
                 $this->_testauthentification = 1;
             }
         }
     }
 }
Exemplo n.º 9
0
 function champ($nom_champ, $classe, $valeur_champ)
 {
     // Definition des variables globales :
     global $prefixe;
     global $utilisateur_connecte;
     global $langue;
     global $trad_SQL;
     global $adresserepertoiresite;
     global $adressehttpsite;
     // Definition de(s) table(s) :
     $this->table = $prefixe . "_" . $classe;
     // Heritage :
     parent::objet();
     // Initialisation :
     $this->nom_champ = $nom_champ;
     // Verification de l'existance de la table :
     $test_table = true;
     $liste_des_tables = array();
     $table_sql = requete_sql("SHOW tables;");
     while ($table_temp = tableau_sql($table_sql)) {
         array_push($liste_des_tables, $table_temp[0]);
     }
     if (!in_array($this->table, $liste_des_tables)) {
         $test_table = false;
     }
     $valeur_champ = stripslashes($valeur_champ);
     //Recherche des champ :
     if ($test_table) {
         $requete = requete_sql("SHOW COLUMNS FROM {$this->table} LIKE '{$this->nom_champ}'");
         while ($temp = tableau_sql($requete)) {
             $this->type = $temp["Type"];
             if ($temp["Key"] == "MUL") {
                 $this->est_relation = "1";
                 $chaine = explode("_", $this->nom_champ);
                 $chaine = substr($chaine[0], 2);
                 $this->table_relation = $prefixe . "_" . $chaine;
                 require_once $adresserepertoiresite . '/scripts/php/class.regle.php';
                 $champ_liste_choix = new regle("0", "liste_" . substr($this->table_relation, 4));
                 $this->relation_champ = explode("|", $champ_liste_choix->valeur);
             } else {
                 $this->est_relation = "0";
                 $this->table_relation = "";
                 $this->relation_champ = "";
             }
             $this->valeur_par_defaut = $temp["Default"];
             $this->extra = $temp["Extra"];
             $this->est_nul = "0";
             if ($temp["Null"] != "") {
                 $this->est_nul = "1";
             }
         }
         if (!in_array($this->table_relation, $liste_des_tables)) {
             $this->table_relation = "";
         }
         //Calcul du champ de saisie :
         $type = explode("(", $this->type);
         //liste de choix du language
         if ($nom_champ == "langue") {
             $this->champ_saisie = "<select name=\"{$this->nom_champ}\">";
             $langues_dispo = langue_possible();
             foreach ($langues_dispo as $valeur) {
                 $this->champ_saisie .= "<option value=" . $valeur;
                 if (isset($valeur_champ) && $valeur_champ == $valeur) {
                     $this->champ_saisie .= " selected=\"selected\"";
                 }
                 $this->champ_saisie .= ">" . $valeur . "</option>\n";
             }
             $this->champ_saisie .= "\n</select>";
         } elseif ($type[0] == "varchar") {
             $this->champ_saisie = "<input type=\"text\" name=\"{$this->nom_champ}\" maxlength=\"" . substr($type[1], 0, -1) . "\" value=\"" . $valeur_champ . "\" />";
         } elseif ($type[0] == "char") {
             $this->champ_saisie = "<input type=\"text\" name=\"{$this->nom_champ}\" size=\"" . substr($type[1], 0, -1) . "\" maxlength=\"" . substr($type[1], 0, -1) . "\" value=\"" . $valeur_champ . "\" />";
         } elseif ($type[0] == "tinyint") {
             require_once $adresserepertoiresite . '/scripts/php/class.regle.php';
             $valeur_max_tinyint = new regle("0", "Note_max");
             $this->champ_saisie = "<select name=\"{$this->nom_champ}\">";
             for ($compteur = -$valeur_max_tinyint->valeur; $compteur <= $valeur_max_tinyint->valeur; $compteur++) {
                 $this->champ_saisie .= "\n<option ";
                 if (isset($valeur_champ) && $valeur_champ == $compteur) {
                     $this->champ_saisie .= "selected=\"selected\" ";
                 }
                 $this->champ_saisie .= "value=\"" . $compteur . "\">" . $compteur . "&nbsp;";
                 $this->champ_saisie .= "</option>";
             }
             $this->champ_saisie .= "\n</select>";
         } elseif ($type[0] == "int" || $type[0] == "smallint" || $type[0] == "mediumint" || $type[0] == "bigint") {
             $this->champ_saisie = "<input type=\"text\" name=\"{$this->nom_champ}\" size=\"6\"  value=\"" . $valeur_champ . "\" />";
         } elseif ($type[0] == "text" || $type[0] == "tinytext" || $type[0] == "mediumtext" || $type[0] == "longtext") {
             $this->champ_saisie = "" . "\n<textarea rows =\"5\" cols=\"100\" id=\"" . $this->nom_champ . "_texte\" name=\"" . $this->nom_champ . "\">" . $valeur_champ . "</textarea>";
         } elseif ($type[0] == "enum" && count(explode("','", substr($type[1], 0, -1))) > 3) {
             $i = 0;
             $temp = explode("','", substr($type[1], 0, -1));
             $this->champ_saisie = "<select name=\"{$this->nom_champ}\">";
             foreach ($temp as $valeur) {
                 //Calcul du champ de saisie
                 $i++;
                 $this->champ_saisie .= "\n<option ";
                 if (!isset($valeur_champ) && $i == 1 || isset($valeur_champ) && $valeur_champ == str_replace("'", "", $valeur)) {
                     $this->champ_saisie .= "selected=\"selected\" ";
                 }
                 if (array_key_exists(str_replace("'", "", $valeur), $trad_SQL)) {
                     $valeur_label = $trad_SQL[str_replace("'", "", $valeur)];
                 } else {
                     $valeur_label = str_replace("'", "", $valeur);
                 }
                 $this->champ_saisie .= "value=\"" . str_replace("'", "", $valeur) . "\">" . $valeur_label . "&nbsp;";
                 $this->champ_saisie .= "</option>";
             }
             $this->champ_saisie .= "\n</select>";
         } elseif ($type[0] == "enum") {
             $i = 0;
             $temp = explode("','", substr($type[1], 0, -1));
             $this->champ_saisie .= "<ul>";
             foreach ($temp as $valeur) {
                 //Calcul du champ de saisie
                 $i++;
                 $this->champ_saisie .= "\n<li><input type=\"radio\" name=\"{$this->nom_champ}\" value=\"" . str_replace("'", "", $valeur) . "\" id=\"" . $this->nom_champ . $i . "\" ";
                 if (!isset($valeur_champ) && $i == 1 || isset($valeur_champ) && $valeur_champ == str_replace("'", "", $valeur)) {
                     $this->champ_saisie .= "checked=\"checked\"";
                 }
                 if (array_key_exists(str_replace("'", "", $valeur), $trad_SQL)) {
                     $valeur_label = $trad_SQL[str_replace("'", "", $valeur)];
                 } else {
                     $valeur_label = str_replace("'", "", $valeur);
                 }
                 $this->champ_saisie .= " /> <label for=\"" . $this->nom_champ . $i . "\">" . $valeur_label . "</label></li>";
             }
             $this->champ_saisie .= "</ul>";
         }
         //Si le champ est une relation :
         if ($this->table_relation != "") {
             //Calcul du champ identifiant dans la table en relation :
             $id_champ = "id" . substr($this->table_relation, 4);
             //Debut du champ de saisie :
             $this->champ_saisie = "<select name=\"{$this->nom_champ}\">";
             //Calcul de la requete a effectuer sur la table en relation :
             $requete = "select * FROM {$this->table_relation} WHERE visible='1'";
             //Gestion des droits pour certains champs connus :
             require_once $adresserepertoiresite . '/scripts/php/class.regle.php';
             $ordre_tri = new regle("0", "tri_theme");
             $caractere_separateur = new regle("0", "premier_caractere_arbo_theme");
             $caractere_indentation = new regle("0", "indentation_arbo_theme");
             if ($this->table_relation == $prefixe . "_theme" && $utilisateur_connecte->admin != 1) {
                 $requete = "select idtheme, CONCAT('{$caractere_separateur->valeur}', REPEAT('{$caractere_indentation->valeur}', niveau-1), titre) AS titre_arbo, CONCAT(LEFT('{$caractere_separateur->valeur}',niveau-1), REPEAT('{$caractere_indentation->valeur}', niveau-1), intitule) AS intitule_arbo, titre, intitule FROM qcm_theme WHERE visible='1' AND langue='{$langue}'";
                 $requete .= " AND ";
                 $requete .= $id_champ . " IN (";
                 foreach ($utilisateur_connecte->idtheme_auteur as $vtheme) {
                     $requete .= "'" . $vtheme . "',";
                 }
                 $requete = substr($requete, 0, -1) . ") ORDER BY bornegauche ASC";
             } elseif ($this->table_relation == $prefixe . "_questionnaire" && $utilisateur_connecte->admin != 1) {
                 $requete .= " AND ";
                 $requete .= $id_champ . " IN ('0',";
                 foreach ($utilisateur_connecte->idquestionnaire_auteur as $vquestionnaire) {
                     $requete .= "'" . $vquestionnaire . "',";
                 }
                 $requete = substr($requete, 0, -1) . ")";
             } else {
                 if ($this->table_relation == $prefixe . "_theme") {
                     $requete = "select idtheme, CONCAT(LEFT('{$caractere_separateur->valeur}',niveau-1), REPEAT('{$caractere_indentation->valeur}', niveau-1), titre) AS titre_arbo, CONCAT(LEFT('{$caractere_separateur->valeur}',niveau-1), REPEAT('{$caractere_indentation->valeur}', niveau-1), intitule) AS intitule_arbo, titre, intitule FROM qcm_theme WHERE visible='1' AND langue='{$langue}'";
                     // Ordre de la liste :
                     $requete .= " ORDER BY bornegauche ASC, {$ordre_tri->valeur} ASC;";
                 } else {
                     // Ordre de la liste
                     $requete .= " ORDER BY ";
                     foreach ($this->relation_champ as $liste) {
                         $requete .= $liste . " ASC, ";
                     }
                     $requete = substr($requete, 0, -2);
                 }
             }
             $liste_sql = requete_sql($requete);
             //Complement du champ de saisie :
             $this->champ_saisie .= "\n<option value=\"0\">" . _NO_RELATION . "</option>";
             while ($valeur = tableau_sql($liste_sql)) {
                 $this->champ_saisie .= "\n<option ";
                 if (isset($valeur_champ) && $valeur_champ == $valeur[$id_champ]) {
                     $this->champ_saisie .= "selected=\"selected\" ";
                 }
                 $this->champ_saisie .= "value=\"" . $valeur[$id_champ] . "\" >";
                 foreach ($this->relation_champ as $liste) {
                     $this->champ_saisie .= $valeur[$liste] . "&nbsp;";
                 }
                 $this->champ_saisie .= "</option>";
             }
             $this->champ_saisie .= "\n</select>";
         }
         //Mise a vide des proprietes inappropriees :
         $this->champs = array();
         $this->champ_identifiant = "";
     }
 }