예제 #1
0
    function qcm($val = 0)
    {
        // Declaration des variables:
        global $idutilisateur;
        global $adresserepertoiresite;
        //En tete du QCM :
        ?>
		<div id="form_questionnaire">
			<script type="text/javascript">
				<!--
				<?php 
        //Calcul des identifiants des questions precedante et suivante
        $prec = $val - 1;
        if ($prec < 0) {
            $prec = 0;
        }
        $suiv = $val + 1;
        if (isset($_POST["reponse"])) {
            $suiv = $suiv - 1;
        }
        if ($suiv + 1 > $this->nbquestion_nonrep()) {
            $suiv = $suiv - 1;
        }
        if ($prec != $val) {
            ?>
					function fprec(){
						if (document.getElementById("formulaire_qcm").reponse!=undefined && document.getElementById("formulaire_qcm").reponse.value==undefined)
						{
							document.getElementById('formulaire_qcm').val.value = "<?php 
            echo $prec;
            ?>
";
						}
						document.getElementById('formulaire_qcm').submit();
					}
					<?php 
        }
        if ($suiv != $val || isset($_POST["reponse"])) {
            ?>
					function fsuiv(){
						if (document.getElementById("formulaire_qcm").reponse!=undefined && document.getElementById("formulaire_qcm").reponse.value==undefined)
						{
							document.getElementById('formulaire_qcm').val.value = "<?php 
            echo $suiv;
            ?>
";
						}
						document.getElementById('formulaire_qcm').submit();
					}
					<?php 
        }
        ?>
				//-->
			</script>
			<form action="<?php 
        echo $_SERVER['PHP_SELF'];
        ?>
" method="post" id="formulaire_qcm">
	    		<div class="fielset">
					<fieldset><legend><?php 
        echo $this->titre;
        ?>
</legend>
						<div id="intitule_questionnaire">
							<?php 
        echo $this->intitule;
        ?>
						</div><?php 
        //Creation de variables temporaires:
        require_once $adresserepertoiresite . '/scripts/php/class.question.php';
        require_once $adresserepertoiresite . '/scripts/php/class.reponse.php';
        $vtemp = new question();
        $vreponse = new reponse();
        // Recherche de la nieme question pour laquelle l'utilisateur n'a pas encore repondu:
        $select_sql = "select T1.* \r\n\t\t\t\t\t\tFROM {$vtemp->table} AS T1 \r\n\t\t\t\t\t\tLEFT JOIN {$vreponse->table} AS T2 ON (T1.idquestion=T2.idquestion_rel AND T2.idutilisateur_rel='{$idutilisateur}' AND T2.visible='1')\r\n\t\t\t\t\t\tWHERE T2.idreponse IS NULL AND T1.visible='1' AND T1.idquestionnaire_rel='{$this->identifiant}' AND T1.validation='1'\r\n\t\t\t\t\t\tORDER BY T1.ordre LIMIT {$val}, 1;";
        $select_sql = requete_sql($select_sql);
        if (compte_sql($select_sql) > 0) {
            //affichage de la question voulue non encore repondue
            if (!isset($_GET['num'])) {
                $question_sql = tableau_sql($select_sql);
                $num = $question_sql[$vtemp->champ_identifiant];
            }
            $question = new question($num);
            $question->formulaire_question();
        } else {
            //affichage du score de l'utilisateur pour ce questionnaire
            $score = $this->score_qcm();
            //calcul de l'angle de l'arc de reponse(s) fausse(s)
            if ($score[0] > 0) {
                $rapport_total_sur_faux = $score[3] / $score[0];
            } else {
                $rapport_total_sur_faux = 0;
            }
            $vanglefaux = 360 * $rapport_total_sur_faux;
            $vpctvrai = 1 - $rapport_total_sur_faux;
            $vpctvrai = $vpctvrai * 100;
            // French notation
            $nombre_format_francais = number_format($vpctvrai, 2, ',', ' ');
            $vtextepctvrai = $nombre_format_francais . "%";
            $vtextevrai = _REPONSES_VRAI . $score[2] . "/" . $score[0];
            //calcul de l'angle de l'arc du score
            if ($score[7] - $score[6] != 0) {
                $rapport_score_ecart = ($score[4] - $score[6]) / ($score[7] - $score[6]);
            } else {
                $rapport_score_ecart = 0;
            }
            $vanglescore = 360 * (1 - $rapport_score_ecart);
            $vpctscore = $rapport_score_ecart;
            $vpctscore = $vpctscore * 100;
            // French notation
            $nombre_format_francais_score = number_format($vpctscore, 2, ',', ' ');
            $vtextepctscore = $nombre_format_francais_score . "%";
            $vtextescore = _SCORE . $score[4] . "/" . $score[7];
            $vtextescoremin = _MIN . $score[6];
            //texte alternatif pour l'image :
            $vtexte_alt = $vtextevrai . " ==> " . $vtextepctvrai . "  / " . $vtextescore . " ==> " . $vtextepctscore . " (" . $vtextescoremin . ")";
            ?>
							
							<img src="image.scorequestionnaire.php?i=<?php 
            echo $this->identifiant;
            ?>
&amp;u=<?php 
            echo $idutilisateur;
            ?>
" alt="<?php 
            echo $vtexte_alt;
            ?>
" />
							
							<?php 
        }
        ?>
<div class="bouton_cadre"><?php 
        //Calcul du nombre de question(s) restante(s)
        $nombre_question = $this->nbquestion_nonrep();
        //Affichage des boutons de suivi du questionnaire
        if ($prec != $val && !isset($_POST["reponse"]) && $nombre_question > 0) {
            ?>
<input type="button" value="<?php 
            echo _QUESTION_PRECEDANTE;
            ?>
" onclick="fprec()" /> <?php 
        }
        if ($suiv != $val && !isset($_POST["reponse"]) && $nombre_question > 0) {
            ?>
<input type="button" value="<?php 
            echo _QUESTION_SUIVANTE;
            ?>
" onclick="fsuiv()"/>
							<?php 
        }
        if (isset($_POST["reponse"]) && $nombre_question > 0) {
            ?>
<input type="button" value="<?php 
            echo _QUESTION_SUIVANTE;
            ?>
" onclick="fsuiv()"/>
							<?php 
        }
        if (isset($_POST["reponse"]) && $nombre_question == 0) {
            ?>
<input type="button" value="<?php 
            echo _RESULTAT_QUESTIONNAIRE;
            ?>
" onclick="fsuiv()"/>
							<?php 
        }
        ?>
<input type="hidden" name="val" value="0" /><input type="hidden" name="v" value="<?php 
        echo $this->identifiant;
        ?>
" />
						</div>
					</fieldset>
				</div>
			</form>
		</div>
		<?php 
    }
    //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 
    }
}
예제 #3
0
 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>";
     }
 }
    }
    ?>
	<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>";
    }
예제 #5
0
 function enregistrer()
 {
     // Definition des variables globales :
     global $prefixe;
     // Initialisation du message :
     $this->message = "";
     // 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)) {
         echo _TABLE . $this->table . _INEXISTANTE_POUR_LA_CLASSE . $this->classe;
         $test_table = false;
     }
     if ($test_table == true) {
         // Enregistrement en base :
         if (isset($this->identifiant) && is_numeric($this->identifiant) && intval($this->identifiant) == $this->identifiant) {
             // Initialisation de la requete :
             $sql_requete_update = "UPDATE {$this->table} SET ";
             foreach ($this->champs as $valeur) {
                 // Concatenation champ = valeur :
                 if (isset($this->{$valeur}) && !is_array($this->{$valeur}) && $valeur != "id" . $this->classe) {
                     $sql_requete_update = $sql_requete_update . "{$valeur}='" . $this->{$valeur} . "', ";
                 }
             }
             $sql_requete_update = substr($sql_requete_update, 0, -2);
             // Clause WHERE :
             $sql_requete_update = $sql_requete_update . " WHERE " . $this->champ_identifiant . "='" . $this->identifiant . "';";
             // Lancement de la mise a jour de l objet correspondant :
             $sql_resultat = requete_sql($sql_requete_update);
             return $this->identifiant;
         } elseif (!isset($this->identifiant)) {
             // Test des champs obligatoires :
             $test_champs_obligatoires = true;
             if (isset($this->champs_obligatoires) && is_array($this->champs_obligatoires)) {
                 foreach ($this->champs_obligatoires as $champoblig) {
                     if (!isset($this->{$champoblig}) || $this->{$champoblig} == "") {
                         if ($test_champs_obligatoires == true) {
                             $this->message .= _IL_MANQUE_UN_CHAMP_OBLIGATOIRE;
                             $this->message .= _CLASSE_CHAMPS_MANQUANT . $this->classe . _CLASSE_CHAMPS_MANQUANT_FIN;
                             $this->message .= _LES_CHAMPS_OBLIGATOIRES_MANQUANT_SONT_LES_SUIVANTS;
                             $this->message .= "<ul>";
                         }
                         $test_champs_obligatoires = false;
                         $this->message .= "<li>" . $champoblig . "</li>";
                     }
                     if ($test_champs_obligatoires == false) {
                         $this->message .= "</ul>";
                     }
                 }
             }
             // Test des champs uniques :
             $test_champs_uniques = true;
             if (isset($this->champs_uniques) && is_array($this->champs_uniques)) {
                 foreach ($this->champs_uniques as $champuniq) {
                     if ((isset($this->{$champuniq}) || $this->{$champuniq} != "") && in_array($champuniq, $this->champs)) {
                         $sql = "select * FROM {$this->table} WHERE " . $champuniq . "='" . $this->{$champuniq} . "'";
                         $requete = requete_sql($sql);
                         $qte = compte_sql($requete);
                         if ($qte != 0) {
                             $test_champs_uniques = false;
                             $this->message .= "<p><span>" . _LA_VALEUR . $this->{$champuniq} . _POUR_LE_CHAMP . $champuniq . _EXISTE_DEJA . "</span></p><a href=\"javascript:history.go(-1)\">" . _RETOUR . "</a>";
                         }
                     }
                 }
             }
             // Initialisation de la requete :
             if ($test_champs_obligatoires == true && $test_champs_uniques == true) {
                 $sql_requete_insert1 = "INSERT INTO {$this->table} (";
                 foreach ($this->champs as $valeur) {
                     // Concatenation champ1,champ2 et 'valeur1','valeur2' :
                     if (isset($this->{$valeur}) && !is_array($this->{$valeur}) && $valeur != "id" . $this->classe) {
                         $sql_requete_insert1 = $sql_requete_insert1 . "{$valeur},";
                         $sql_requete_insert2 = $sql_requete_insert2 . "'" . $this->{$valeur} . "',";
                     }
                 }
                 $sql_requete_insert1 = substr($sql_requete_insert1, 0, -1) . ") VALUES (";
                 $sql_requete_insert2 = substr($sql_requete_insert2, 0, -1) . ");";
                 $sql_requete_insert = $sql_requete_insert1 . $sql_requete_insert2;
                 // Lancement de la creation de l objet correspondant :
                 $sql_resultat = requete_sql($sql_requete_insert);
                 $this->identifiant = id_insere_sql();
                 return $this->identifiant;
             }
         }
         if ($this->message != "") {
             echo $this->message;
         }
     }
 }
예제 #6
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";
     }
 }
예제 #7
0
 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'];
             }
         }
     }
 }