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; } } }
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 }
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 }
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"]; } }
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; }
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; } } }
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; } } }
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; } } } }
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 . " "; $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 . " "; $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] . " "; } $this->champ_saisie .= "</option>"; } $this->champ_saisie .= "\n</select>"; } //Mise a vide des proprietes inappropriees : $this->champs = array(); $this->champ_identifiant = ""; } }