function theme_favori()
 {
     // Definition des variables globales :
     global $prefixe;
     global $utilisateur_connecte;
     // Definition de(s) table(s) :
     $this->table = $prefixe . "_theme_favori";
     // Initialisation de(s) argument(s) :
     $arguments = func_get_args();
     $numargs = func_num_args();
     if ($numargs > 0) {
         $idtheme_favori = $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("idtheme_rel");
     // Champs caches du formulaire:
     $this->champs_caches = array();
     // Recherche du theme favori si l'on donne son identifiant :
     if (isset($idtheme_favori)) {
         $theme_favori_choisi = requete_sql("select * FROM {$this->table} WHERE idtheme_favori={$idtheme_favori}");
         $theme_favori_choisi = tableau_sql($theme_favori_choisi);
         $this->idtheme_favori = $idtheme_favori;
         $this->identifiant = $idtheme_favori;
         $this->visible = $theme_favori_choisi["visible"];
         $this->idutilisateur_rel = $theme_favori_choisi["idutilisateur_rel"];
         $this->idtheme_rel = $theme_favori_choisi["idtheme_rel"];
         $this->datecreation = $theme_favori_choisi["datecreation"];
     } else {
         if (!isset($this->datecreation) || $this->datecreation == "") {
             $this->datecreation = time();
         }
         if (!isset($this->idutilisateur_rel) || $this->idutilisateur_rel == "" || !is_numeric($this->idutilisateur_rel) || intval($this->idutilisateur_rel) != $this->idutilisateur_rel) {
             $this->idutilisateur_rel = $utilisateur_connecte->identifiant;
         }
     }
 }
Beispiel #2
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
 }
Beispiel #3
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"];
     }
 }
    require_once $adresserepertoiresite . '/scripts/php/class.regle.php';
    $vthemefavori = new theme_favori();
    //ajout du theme selectionne dans la liste des favoris :
    if (isset($_GET["tt"]) && isset($_GET["ajout"]) && $_GET["ajout"] == "1") {
        $vthemefavori->set("idtheme_rel", $_GET["tt"]);
        $vthemefavori->enregistrer();
    }
    //suppression du theme selectionne de la liste des favoris :
    if (isset($_GET["tt"]) && isset($_GET["ajout"]) && $_GET["ajout"] == "2" && isset($idutilisateur)) {
        $sqlrequeteretirerthemfav = "UPDATE {$vthemefavori->table} SET visible='0' WHERE idtheme_rel='" . $_GET["tt"] . "' and idutilisateur_rel='" . $idutilisateur . "';";
        $sqlrequeteretirerthemfav_result = requete_sql($sqlrequeteretirerthemfav);
    }
    if (isset($_GET["t"])) {
        //recherche du theme dans la liste des favoris :
        $sqlrecherchethemfav = "SELECT * FROM {$vthemefavori->table} WHERE visible='1' AND idtheme_rel='" . $_GET["t"] . "' and idutilisateur_rel='" . $idutilisateur . "';";
        $sqlrecherchethemfav_result = requete_sql($sqlrecherchethemfav);
        $presencetheme = 0;
        if (compte_sql($sqlrecherchethemfav_result) > 0) {
            $presencetheme = 1;
        }
        ?>
		<div id="ajouter_theme_favori">
			<?php 
        if ($presencetheme == 0) {
            echo "<span class=\"ajouter\"  title=\"" . _AJOUTER_THEME_AUX_FAVORIS . "\" onclick=\"ajout_theme_favori(" . $_GET["t"] . ")\">[+]</span>\n";
        } else {
            echo "<span class=\"retirer\"  title=\"" . _RETIRER_THEME_DES_FAVORIS . "\" onclick=\"retirer_theme_favori(" . $_GET["t"] . ")\">[-]</span>\n";
        }
        ?>
		</div>
		<?php 
Beispiel #5
0
 function validation($val, $texte)
 {
     // Declaration des variables:
     global $utilisateur_connecte;
     if (in_array($val, array("1", "0"))) {
         // Calcule de la requete :
         $sql_requete_validation = "UPDATE {$this->table} SET validation='" . $val . "', textevalidation='" . htmlspecialchars($texte, ENT_QUOTES) . "', datevalidation='" . time() . "',  idutilisateur_validateur_rel='" . $utilisateur_connecte->identifiant . "' WHERE " . $this->champ_identifiant . "='" . $this->identifiant . "';";
         // Lancement de la mise a jour de l objet correspondant :
         $sql_resultat = requete_sql($sql_requete_validation);
         return $this->identifiant;
     } else {
         return false;
     }
 }
 function score_qcm()
 {
     // Declaration des variables:
     global $idutilisateur;
     global $adresserepertoiresite;
     //Creation de variables temporaires:
     require_once $adresserepertoiresite . '/scripts/php/class.question.php';
     require_once $adresserepertoiresite . '/scripts/php/class.reponse.php';
     require_once $adresserepertoiresite . '/scripts/php/class.choix.php';
     $vquestion = new question();
     $vreponse = new reponse();
     $vchoix = new choix();
     // Recherche du nombre total de question auquelles l'utilisateur a repondu
     $select_sql_texte1 = "select COUNT(*)\r\n\t\tFROM {$vquestion->table} AS T1, {$vreponse->table} AS T2 \r\n\t\tWHERE T1.idquestion=T2.idquestion_rel AND T2.idutilisateur_rel='{$idutilisateur}'\r\n\t\tAND T1.idquestionnaire_rel='{$this->identifiant}' AND T2.visible='1';";
     $select_sql1 = requete_sql($select_sql_texte1);
     $nb_question_rep = tableau_sql($select_sql1);
     $nb_question_rep = $nb_question_rep[0];
     $score[0] = $nb_question_rep;
     $score[1] = $select_sql_texte1;
     //Recherche du nombre de question vrai et fausse et somme des scores
     $select_sql_texte2 = "select SUM(IF(T3.vraifaux='1',1,0)), SUM(IF(T3.vraifaux='0',1,0)), SUM(T3.valeur)\r\n\t\tFROM {$vquestion->table} AS T1, {$vreponse->table} AS T2, {$vchoix->table} AS T3 \r\n\t\tWHERE T1.idquestion=T2.idquestion_rel AND T2.idutilisateur_rel='{$idutilisateur}'\r\n\t\tAND T1.idquestionnaire_rel='{$this->identifiant}' AND T3.idchoix=T2.idchoix_rel AND T2.visible='1' GROUP BY T1.idquestionnaire_rel;";
     $select_sql2 = requete_sql($select_sql_texte2);
     $nb_question_rep_vrai_fausse_score = tableau_sql($select_sql2);
     $nb_question_rep_vrai = $nb_question_rep_vrai_fausse_score[0];
     $nb_question_rep_fausse = $nb_question_rep_vrai_fausse_score[1];
     $nb_score = $nb_question_rep_vrai_fausse_score[2];
     $score[2] = $nb_question_rep_vrai;
     $score[3] = $nb_question_rep_fausse;
     $score[4] = $nb_score;
     $score[5] = $select_sql_texte2;
     //Recherche du score min et score max du questionnaire
     $select_sql_texte3 = "select MIN(T3.valeur), MAX(T3.valeur)\r\n\t\tFROM {$vquestion->table} AS T1, {$vchoix->table} AS T3 \r\n\t\tWHERE T1.idquestionnaire_rel='{$this->identifiant}' AND T1.idquestion=T3.idquestion_rel AND T3.visible='1' AND T1.visible='1' GROUP BY T1.idquestion;";
     $select_sql3 = requete_sql($select_sql_texte3);
     $score_min = 0;
     $score_max = 0;
     while ($valeur_score_min_max = tableau_sql($select_sql3)) {
         $score_min += $valeur_score_min_max[0];
         $score_max += $valeur_score_min_max[1];
     }
     $score[6] = $score_min;
     $score[7] = $score_max;
     $score[8] = $select_sql_texte3;
     return $score;
 }
 function auteur_questionnaire()
 {
     // Definition des variables globales :
     global $prefixe;
     global $page_questionnaire;
     global $trad_SQL;
     global $adresserepertoiresite;
     // Definition des tables :
     $table_questionnaire = $prefixe . "_questionnaire";
     //requete standard :
     $sqlauteur = "SELECT * FROM {$table_questionnaire} WHERE idutilisateur_auteur_rel=" . $this->identifiant() . " AND visible=1 ORDER BY idtheme_rel ASC, titre ASC;";
     //requete admin :
     if ($this->admin == "1") {
         $sqlauteur = "SELECT * FROM {$table_questionnaire} WHERE visible=1 ORDER BY idtheme_rel ASC, titre ASC;";
     }
     $resauteur = requete_sql($sqlauteur);
     echo "<h3 class=\"listing_questionnaire_utilisateur\"><span>" . _LISTING_QUESTIONNAIRE_UTILISATEUR . "</span></h3>";
     if (compte_sql($resauteur) > 0) {
         echo "\n<script type=\"text/javascript\" src=\"./scripts/javascript/prototype.js\"  charset=\"utf-8\"></script>";
         echo "\n<script type=\"text/javascript\" src=\"./scripts/javascript/tablekit.js\" charset=\"utf-8\"></script>";
         echo "\n<div class=\"tableau\"><table id=\"liste_questionnaire\" class=\"sortable resizable\">";
         echo "<tr><th>" . _MODIFICATION . "</th><th>" . _SUPPRESSION . "</th><th>" . _VALIDATION . "</th><th>" . _VALIDATION_DATE . "</th><th>" . _TITRE . "</th><th>" . _INTITULE . "</th><th>" . _NIVEAU . "</th></tr>\n";
         while ($auteur = tableau_sql($resauteur)) {
             if (is_array($auteur)) {
                 echo "<tr><td><a href=\"" . $page_questionnaire . "?i=" . $auteur['idquestionnaire'] . "\">" . _MODIFIER . "</a></td><td><a href=\"" . $page_questionnaire . "?i=" . $auteur['idquestionnaire'] . "&amp;suppression=1 \">" . _SUPPRIMER . "</a></td>";
                 //Gestion de l'affichage de la validation :
                 //chargement des regles pour le format des dates :
                 require_once $adresserepertoiresite . '/scripts/php/class.regle.php';
                 $format_date = new regle("0", "format_date");
                 if ($auteur['datevalidation'] == "0") {
                     echo "<td>" . _NON_TRAITEE . $auteur['validation'] . "</td><td>&nbsp;</td>";
                 } else {
                     echo "<td><a href=\"#\" title=\"" . stripslashes($auteur['textevalidation']) . "\">" . _RESULTAT . $auteur['validation'] . "</a></td><td>" . _TRAITEE_LE . date($format_date->valeur, $auteur['datevalidation']) . "</td>";
                 }
                 //Affichage titre et intitule :
                 echo "<td>";
                 if (strlen($auteur['titre']) > 0) {
                     echo $auteur['titre'];
                 } else {
                     echo "&nbsp;";
                 }
                 echo "</td>";
                 echo "<td>";
                 if (strlen($auteur['intitule']) > 0) {
                     echo $auteur['intitule'];
                 } else {
                     echo "&nbsp;";
                 }
                 //Affichage niveau :
                 echo "<td>";
                 if (strlen($auteur['niveau']) > 0) {
                     if (array_key_exists($auteur['niveau'], $trad_SQL)) {
                         $valeur_label = $trad_SQL[$auteur['niveau']];
                     } else {
                         $valeur_label = $auteur['niveau'];
                     }
                     echo $valeur_label;
                 } else {
                     echo "&nbsp;";
                 }
                 echo "</td></tr>\n";
             }
         }
         echo "</table></div>\n";
     } else {
         echo "<p>" . _AUCUN_QUESTIONNAIRE_POUR_L_UTILISATEUR . "</p>";
     }
 }
        require_once $adresserepertoiresite . '/environnement/_librairie_environnement.php';
    }
    ?>
	<div class="dragableBox" id="ltheme_favori_selection">
		<div id="theme_favori_selection">
			<div id="theme_favori_cadre">
				<h3 class="theme_favori_selection"><span><?php 
    echo _THEME_FAVORI_TITRE;
    ?>
</span></h3>
				<ul>
					<?php 
    $vtemptheme = $prefixe . "_theme";
    $vtemp = $prefixe . "_theme_favori";
    $vtheme_favori_sql = "SELECT T2.* FROM {$vtemp} AS T1, {$vtemptheme} AS T2 WHERE T1.visible='1' AND T2.visible='1' AND T1.idtheme_rel= T2.idtheme AND T1.idutilisateur_rel='{$idutilisateur}';";
    $vtheme_favori_sql = requete_sql($vtheme_favori_sql);
    if (compte_sql($vtheme_favori_sql) > 0) {
        while ($vtheme_favori_temp = tableau_sql($vtheme_favori_sql)) {
            ?>
							<li>
								<?php 
            echo "<a href=\"#\" onclick=\"maj_module(" . $vtheme_favori_temp["idtheme"] . ")\">" . htmlentities($vtheme_favori_temp["titre"], ENT_QUOTES, "UTF-8") . "</a>&nbsp;";
            ?>
								<?php 
            echo "<span class=\"retirer\"  title=\"" . _RETIRER_THEME_DES_FAVORIS . "\" onclick=\"retirer_theme_favori(" . $vtheme_favori_temp["idtheme"] . ")\">[-]</span>\n";
            ?>
							</li>
							<?php 
        }
    } else {
        echo "<li>" . _AUCUN_THEME_FAVORI . "</li>";
Beispiel #9
0
header("Content-type: image/png");
$im = @imagecreatetruecolor($largueur_img, $hauteur_img) or die("Impossible d'initialiser la bibliothèque GD");
$couleur_fond = imagecolorallocate($im, 255, 255, 255);
$couleur_texte = imagecolorallocate($im, 0, 0, 0);
$couleur_contour = imagecolorallocate($im, 0, 0, 0);
$couleur_rectangle = imagecolorallocate($im, 240, 240, 240);
//gestion de la police de caratere :
$vpolice_titre = 5;
//uniquement nombre entre 1 et 5
$vpolice = 4;
//uniquement nombre entre 1 et 5
//application de la couleur de fond:
imagefill($im, 0, 0, $couleur_fond);
//tracage du schema de l'arborecence :
$select_themes = "select T1.*, IF(T1.taille<>1,COUNT(*),0) AS nbfils_arbo, SUM(T1.idtheme=T2.idtheme_rel) AS nbfils_direct\r\nFROM " . $vtemp->table . " AS T1 \r\nLEFT JOIN " . $vtemp->table . " AS T2 ON (T2.bornegauche>T1.bornegauche AND T2.bornegauche + T2.taille<T1.bornegauche + T1.taille AND T2.langue='{$langue}') \r\nWHERE T1.visible=1 AND (T2.visible=1 OR T2.visible IS NULL) AND T1.langue='{$langue}' \r\nGROUP BY T1.idtheme \r\nORDER BY `T1`.`bornegauche` ASC";
$select_themes = requete_sql($select_themes);
while ($vtheme = tableau_sql($select_themes)) {
    if (!$inverse_hauteur_largueur) {
        $x1 = ($vtheme['bornegauche'] - 1) * $facteur_taille;
        $y1 = ($vtheme['niveau'] - 1) * $hauteur;
        $x2 = ($vtheme['bornegauche'] + $vtheme['taille'] - 1) * $facteur_taille;
        $y2 = $vtheme['niveau'] * $hauteur;
        imagefilledrectangle($im, $x1, $y1, $x2, $y2, $couleur_rectangle);
        imagerectangle($im, $x1, $y1, $x2, $y2, $couleur_contour);
        if ($x2 - $x1 < $y2 - $y1) {
            imagestringup($im, $vpolice, ($x2 + 2 * $x1) / 3, $y1 + $hauteur / 2 + strlen($vtheme['titre']) * $vpolice, $vtheme['titre'], $couleur_texte);
        } else {
            imagestring($im, $vpolice, ($x2 + $x1) / 2 - strlen($vtheme['titre']) * $vpolice, $y1 + $hauteur / 2, $vtheme['titre'], $couleur_texte);
        }
    } else {
        $y1 = ($vtheme['bornegauche'] - 1) * $facteur_taille;
Beispiel #10
0
 function supprimer($verbeux = true)
 {
     // Calcul de la requete :
     $sql_requete_suppression = "UPDATE {$this->table} SET visible='0' WHERE " . $this->champ_identifiant . "='" . $this->identifiant . "';";
     // Lancement de la mise a jour de l objet correspondant :
     $sql_resultat = requete_sql($sql_requete_suppression);
     if ($verbeux == true) {
         echo "<h3><span>" . _OBJET_SUPPRIMER . "</span></h3><p><span><a href=\"" . $_SERVER['HTTP_REFERER'] . "\" >" . _RETOUR . "</a>&nbsp;</span></p>";
     }
 }
Beispiel #11
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 = "";
     }
 }
Beispiel #12
0
 function liste_questionnaires($vfiltre = "1", $vordre = "titre")
 {
     //declaration des variables :
     global $page_affichage_questionnaire;
     global $adresserepertoiresite;
     require_once $adresserepertoiresite . '/scripts/php/class.questionnaire.php';
     $vtempquestionnaire = new questionnaire();
     $requete_sql = "SELECT *\r\n\t\tFROM {$vtempquestionnaire->table} AS T1 \r\n\t\tWHERE T1.idtheme_rel={$this->identifiant} AND T1.validation='1' AND T1.visible='1' AND " . $vfiltre . " \r\n\t\tORDER BY " . $vordre;
     $liste_questionnaires = requete_sql($requete_sql);
     $qte = compte_sql($liste_questionnaires);
     if ($qte != 0) {
         echo "\n<div class=\"tableau\"><table>";
         echo "<tr><th>" . _TITRE . "</th><th>" . _INTITULE . "</th></tr>\n";
         while ($questionnaire = tableau_sql($liste_questionnaires)) {
             if (is_array($questionnaire) && count($questionnaire) > 0) {
                 echo "<tr>";
                 //Affichage titre et intitule :
                 echo "<td><a href=\"" . $page_affichage_questionnaire . "?v=" . $questionnaire['idquestionnaire'] . "\">";
                 if (strlen($questionnaire['titre']) > 0) {
                     echo $questionnaire['titre'];
                 } else {
                     echo "&nbsp;";
                 }
                 echo "</a></td>";
                 echo "<td>";
                 if (strlen($questionnaire['intitule']) > 0) {
                     echo $questionnaire['intitule'];
                 } else {
                     echo "&nbsp;";
                 }
                 echo "</td></tr>\n";
             }
         }
         echo "</table></div>\n";
     }
 }
    $vliste = "";
    $vlien_theme_pere = lien_theme_pere($vtheme);
    foreach ($vtheme->liste_fils as $vthemefils) {
        $vthemefils_objet = new theme($vthemefils["idtheme"]);
        $nb = $vthemefils_objet->nb_questionnaire();
        $vliste .= "<li><a class=\"lien_ajax\" onclick=\"maj_module(" . $vthemefils["idtheme"] . ")\">" . htmlentities($vthemefils["titre"], ENT_QUOTES, "UTF-8") . "</a>&nbsp;(<span class=\"nb_direct\" title=\"" . _NB_QUESTIONNAIRES_DIRECT . "\">" . $nb[1] . "</span>" . _THEME_SEPARATEUR_NB_QUESTIONNAIRE_DIRECT_ARBO . "<span class=\"nb_arbo\"  title=\"" . _NB_QUESTIONNAIRES_ARBO . "\">" . $nb[0] . "</span>)&nbsp;</li>\n";
    }
} else {
    $vtheme = new theme();
    $i = 0;
    $vliste = "";
    $vtheme_temp = "";
    $vlongueur_separateur = strlen(_THEME_FILS_SEPARATEUR_LISTE);
    $vlongueur_separateur = -1 * $vlongueur_separateur;
    $vtheme_niv_1_sql = "SELECT idtheme FROM {$vtheme->table} WHERE niveau=1 AND visible='1' AND langue='{$langue}';";
    $vtheme_niv_1_sql = requete_sql($vtheme_niv_1_sql);
    while ($vthemeid_temp = tableau_sql($vtheme_niv_1_sql)) {
        $vtheme_temp[$i] = new theme($vthemeid_temp[0]);
        $vliste[$i] = "";
        foreach ($vtheme_temp[$i]->liste_fils as $vthemefils_temp) {
            $vthemefils_objet = new theme($vthemefils_temp["idtheme"]);
            $nb = $vthemefils_objet->nb_questionnaire();
            $vliste[$i] .= "<li><a class=\"lien_ajax\" onclick=\"maj_module(" . $vthemefils_temp["idtheme"] . ")\">" . htmlentities($vthemefils_temp["titre"], ENT_QUOTES, "UTF-8") . "</a>&nbsp;(<span class=\"nb_direct\" title=\"" . _NB_QUESTIONNAIRES_DIRECT . "\">" . $nb[1] . "</span>" . _THEME_SEPARATEUR_NB_QUESTIONNAIRE_DIRECT_ARBO . "<span class=\"nb_arbo\"  title=\"" . _NB_QUESTIONNAIRES_ARBO . "\">" . $nb[0] . "</span>)&nbsp;</li>\n";
        }
        $i++;
    }
}
$activation_AJAX = new regle("0", "Activation_AJAX");
if ($activation_AJAX->valeur == "1") {
    ?>
	<script type="text/javascript" src="./scripts/javascript/prototype.js" charset="utf-8"></script>
 function mise_a_jour_theme()
 {
     //initialisation des variables globales :
     global $langue;
     global $adresserepertoiresite;
     //initialisation des variables :
     $pere_prec = 0;
     $taille_prec = 0;
     //Creation d'une variable temporaire de classe theme :
     require_once $adresserepertoiresite . '/scripts/php/class.theme.php';
     $vtemp = new theme();
     //RAZ des taille et borne gauche des themes:
     $update_raz = "UPDATE " . $vtemp->table . " SET taille=1, bornegauche=1 WHERE langue='{$langue}'";
     $update_raz = requete_sql($update_raz);
     //mise a jour du niveau des themes :
     $update_niveaumin = "UPDATE " . $vtemp->table . " SET niveau=1 WHERE idtheme_rel=0 AND langue='{$langue}'";
     $update_niveaumin = requete_sql($update_niveaumin);
     $dernierniveau = 1;
     $select_niveau = "select T1.* FROM " . $vtemp->table . " AS T1, " . $vtemp->table . " AS T2 WHERE T2.niveau={$dernierniveau} AND T1.idtheme_rel=T2.idtheme AND T1.langue='{$langue}' AND T2.langue='{$langue}';";
     $select_niveau = requete_sql($select_niveau);
     while (compte_sql($select_niveau) > 0) {
         $vniveau = $dernierniveau + 1;
         $update_niveau = "UPDATE " . $vtemp->table . " SET niveau={$vniveau} WHERE idtheme";
         $update_niveau .= " IN (";
         while ($vtheme = tableau_sql($select_niveau)) {
             $update_niveau .= "'" . $vtheme['idtheme'] . "',";
         }
         $update_niveau = substr($update_niveau, 0, -1) . ")";
         $update_niveau = requete_sql($update_niveau);
         $dernierniveau = $dernierniveau + 1;
         $select_niveau = "select T1.* FROM " . $vtemp->table . " AS T1, " . $vtemp->table . " AS T2 WHERE T2.niveau={$dernierniveau} AND T1.idtheme_rel=T2.idtheme AND T1.langue='{$langue}' AND T2.langue='{$langue}';";
         $select_niveau = requete_sql($select_niveau);
     }
     //2 boucles sur les niveaux pour mettre a jour la taille et la borne gauche:
     $select_niveaumax = "select MAX(niveau) FROM " . $vtemp->table . " WHERE visible='1' AND langue='{$langue}';";
     $select_niveaumax = requete_sql($select_niveaumax);
     $niveaumax = tableau_sql($select_niveaumax);
     $niveaumax = $niveaumax[0];
     //mise a jour de la taille des themes
     for ($i = $niveaumax; $i > 0; $i--) {
         $select_suivante = "select T2." . $vtemp->champ_identifiant . ", SUM(T1.taille+1)+1 AS vtaille \r\n\t\t\tFROM " . $vtemp->table . " AS T1 \r\n\t\t\tRIGHT JOIN " . $vtemp->table . " AS T2 ON (T1." . $vtemp->champ_identifiant . "_rel=T2." . $vtemp->champ_identifiant . " AND T1.visible=1 AND T1.langue='{$langue}') \r\n\t\t\tWHERE T2.niveau={$i} AND T2.visible=1 AND T2.langue='{$langue}' \r\n\t\t\tGROUP BY T1." . $vtemp->champ_identifiant . "_rel";
         $select_suivante = requete_sql($select_suivante);
         while ($noeud = tableau_sql($select_suivante)) {
             $update_taille = "UPDATE {$vtemp->table} SET taille=" . $noeud['vtaille'] . " WHERE {$vtemp->champ_identifiant}=" . $noeud['idtheme'] . ";";
             requete_sql($update_taille);
         }
     }
     //mise a jour de la bornegauche des themes
     require_once $adresserepertoiresite . '/scripts/php/class.regle.php';
     $ordre_tri = new regle("0", "tri_theme");
     for ($i = 0; $i < $niveaumax + 1; $i++) {
         //mise a jour des racines de l'arborescence
         if ($i == 0) {
             $select_borne = "select T1." . $vtemp->champ_identifiant . ", T1.taille, T2.bornegauche AS vborne, T2.idtheme AS vidtheme_pere FROM " . $vtemp->table . " AS T1 \r\n\t\t\t\tLEFT JOIN " . $vtemp->table . " AS T2 ON (T1." . $vtemp->champ_identifiant . "_rel=T2." . $vtemp->champ_identifiant . " AND T1.visible=1 AND T1.langue='{$langue}')\r\n\t\t\t\tWHERE T2.niveau IS NULL AND T1.idtheme IS NOT NULL AND T2.langue='{$langue}'\r\n\t\t\t\tORDER BY T1.idtheme_rel ASC, T1.{$ordre_tri->valeur} ASC";
         } else {
             $select_borne = "select T1." . $vtemp->champ_identifiant . ", T1.taille, T2.bornegauche AS vborne, T2.idtheme AS vidtheme_pere\r\n\t\t\t\tFROM " . $vtemp->table . " AS T1 \r\n\t\t\t\tRIGHT JOIN " . $vtemp->table . " AS T2 ON (T1." . $vtemp->champ_identifiant . "_rel=T2." . $vtemp->champ_identifiant . " AND T1.visible=1 AND T1.langue='{$langue}')\r\n\t\t\t\tWHERE T2.niveau={$i} AND T1.idtheme IS NOT NULL AND T2.visible=1 AND T2.langue='{$langue}'\r\n\t\t\t\tORDER BY T1.idtheme_rel ASC, T1.{$ordre_tri->valeur} ASC";
         }
         $select_borne = requete_sql($select_borne);
         $nombre_ligne = compte_sql($select_borne);
         for ($j = 1; $j <= $nombre_ligne; $j++) {
             $element = tableau_sql($select_borne);
             //si l'on change de pere la borne se calcul par rapport a la borne du pere :
             if ($element['vidtheme_pere'] != $pere_prec) {
                 $borne_prec = $element['vborne'] + 1;
                 $update_borne = "UPDATE {$vtemp->table} SET bornegauche=" . $borne_prec . " WHERE {$vtemp->champ_identifiant}=" . $element['idtheme'] . ";";
                 $taille_prec = $element['taille'];
                 requete_sql($update_borne);
                 $pere_prec = $element['vidtheme_pere'];
             } else {
                 $borne_prec = $taille_prec + 1 + $borne_prec;
                 $update_borne = "UPDATE {$vtemp->table} SET bornegauche=" . $borne_prec . " WHERE {$vtemp->champ_identifiant}=" . $element['idtheme'] . ";";
                 $taille_prec = $element['taille'];
                 requete_sql($update_borne);
                 $pere_prec = $element['vidtheme_pere'];
             }
         }
     }
 }