* @see LanceurV1
* @version 0.5
* @access public
*/
function LanceurV2($popup="false",$essai="false",$score="false", $dated="false", $datef="false", $prevscore="false") {
// variables globales et récupération des params GET
global $guserid, $connexion, $chapitre, $module, $groupe;
global $ClsTracking, $db, $TBL;
// si le traitement est déjà fait : on sort
if (isset($_GET['PopLanceur'])) {
return;
}
// headers et footer HTML
$HtmlHeader = "\n
\n";
$HtmlHeader .= "Activité\n";
$HtmlHeader .= "\n";
$HtmlFooter .= "\n";
// définition des valeurs par défaut
$defautPopup = "800*600"; // taille de la popup par defaut
$defautEssai = "3"; // Nb d'essais max
$defautScore = "60"; // %age max
$defautPrevScore = "80"; // %age min du dernier score de l'activité précédente pour lancer l'activité
$popup = ($popup=="defaut") ? $defautPopup : $popup;
$essai = ($essai=="defaut") ? $defautEssai : $essai;
$score = ($score=="defaut") ? $defautScore : $score;
$prevscore = ($prevscore=="defaut") ? $defautPrevScore : $prevscore;
// cible à ouvrir
$targetURL = $PHP_SELF."?connexion=$connexion&chapitre=$chapitre&module=$module&PopLanceur=1&groupe=$groupe";
// script popup ------------------------------------------------------------------
$script = "";
$paramsPopup = "top=0, left=0, scrollbars=yes, status=yes, resizable=yes, menubar=no";
if ($popup!="false") { // on veut que l'activité s'ouvre en popup
$script = "\n";
}
// contenu ------------------------------------------------------------------
$contenu = "";
// on teste le nb d'essai
if ($essai!="false") { // on a defini un nb d'essais
$nbEssai = $ClsTracking->NbTrackingByChapter($guserid,$module,$chapitre,$groupe); //nb d'essai du stagiaire
if ($nbEssai >= $essai) {
$contenu .= "\n";
$contenu .= "Vous avez dépassé le nombre d'essais maximum auquel vous aviez droit ($essai) \n";
$contenu .= "
\n";
$launch = false;
}
}
// on teste le pourcentage
if ($score!="false") { // on a defini un nb d'essais
$Pourcentage = $ClsTracking->Moyenne($guserid,$module,$chapitre,$groupe); //Moyenne du stagiaire à cette activité
if ($Pourcentage>$score) {
$contenu .= "\n";
$contenu .= "Votre score moyen ($Pourcentage%) a atteint ou dépassé la moyenne maximum fixée ($score%)\n";
$contenu .= "
\n";
$launch = false;
}
}
// on teste la date de début
if ($dated!="false") {
$tab = explode("/", $dated);
$timed = mktime (0,0,0,$tab[1],$tab[0],$tab[2]);
if (time() <= $timed ) {
$contenu .= "\n";
$contenu .= "Cette activité sera disponible à partir du $dated !\n";
$contenu .= "
\n";
$launch = false;
}
}
// on teste la date de fin
if ($datef!="false") {
$tab = explode("/", $datef);
$timef = mktime (0,0,0,$tab[1],$tab[0],$tab[2]) + (24*60*60);
if (time() >= $timef ) {
$contenu .= "\n";
$contenu .= "Cette activité n'est plus disponible depuis le $datef !\n";
$contenu .= "
\n";
$launch = false;
}
}
// on la note du chapitre précédent
if ($prevscore!="false") {
if ($chapitre > 1) { // uniquement si le chapitre qui précède est une activité
$chap = $chapitre -1;
$sql = "SELECT MAX(score) from ".$TBL['tracking']." where module_id=".$module." and chapitre_id=".$chap." and user_id=".$guserid." ORDER BY date DESC;";
$query = mysql_query($sql);
$req = mysql_fetch_array($query);
if (isset($req[0]) && ($req[0] < $prevscore) ) {
$contenu .= "\n";
$contenu .= "Vous devez atteindre un score minimum de ".$prevscore."% à l'activité précédente (".$req["0"]."% actuellement) avant de pouvoir faire cette activité !\n";
$contenu .= "
\n";
$launch=false;
}
if (!isset($req[0])) {
$contenu .= "\n";
$contenu .= "Vous devez faire l'activité précédente et obtenir un score minimum de ".$prevscore."% avant de pouvoir faire celle-ci !\n";
$contenu .= "
\n";
$launch=false;
}
}
}
if ( $launch===false ) { // si on a atteint une limitation
$html = $HtmlHeader;
$html .= "\n";
$html .= $contenu;
$html .= $HtmlFooter;
echo $html;
exit;
}
if ( $script!="" ) { // on ouvre en popup
$html = $HtmlHeader;
$html .= $script;
$html .= "\n";
$html .= "\n";
$html .= "Ouverture de l'activité...
\n";
$html .= $HtmlFooter;
echo $html;
exit;
}
return;
}
/**
* Genere une page de "transition" permettant diverses actions au lancement d'une activité
*
* v0.4 05/03/2004
* Fonction à utiliser avec la V1
*
* @param string $popup Lancer l'activité dans une popup
* @param string $essai Limiter le lancement de l'activité en fonction du nb d'essais déjà effectué
* @param integer $score Limiter le lancement de l'activité en fonction d'un score moyen déjà obtenu
* @param string $dated Limiter le lancement en fonction d'une date de début
* @param integer $datef Limiter le lancement en fonction d'une date de fin
* @param integer $prevscore Limiter le lancement en fonction d'un score minimum à l'activité précédente
* @link http://ganesha.keonox.com/addons/lanceur
* @author Pierre-Yves GOSSET
* @see LanceurV2
* @version 0.4
* @access public
*/
function LanceurV1($popup="false",$essai="false",$score="false", $dated="false", $datef="false", $prevscore="false") {
// variables globales et récupération des params GET
global $guserid, $connexion, $chapitre, $module;
global $ClsTracking, $db, $TBL;
// si le traitement est déjà fait : on sort
if (isset($_GET['PopLanceur'])) {
return;
}
// headers et footer HTML
$HtmlHeader = "\n\n";
$HtmlHeader .= "Activité\n";
$HtmlHeader .= "\n";
$HtmlFooter .= "\n";
// définition des valeurs par défaut
$defautPopup = "800*600"; // taille de la popup par defaut
$defautEssai = "3"; // Nb d'essais max
$defautScore = "60"; // %age max
$defautPrevScore = "80"; // %age min du dernier score de l'activité précédente pour lancer l'activité
$popup = ($popup=="defaut") ? $defautPopup : $popup;
$essai = ($essai=="defaut") ? $defautEssai : $essai;
$score = ($score=="defaut") ? $defautScore : $score;
$prevscore = ($prevscore=="defaut") ? $defautPrevScore : $prevscore;
// cible à ouvrir
$targetURL = $PHP_SELF."?connexion=$connexion&chapitre=$chapitre&module=$module&PopLanceur=1";
// script popup ------------------------------------------------------------------
$script = "";
$paramsPopup = "top=0, left=0, scrollbars=yes, status=yes, resizable=yes, menubar=no";
if ($popup!="false") { // on veut que l'activité s'ouvre en popup
$script = "\n";
}
// contenu ------------------------------------------------------------------
$contenu = "";
// on teste le nb d'essai
if ($essai!="false") { // on a defini un nb d'essais
$nbEssai = $ClsTracking->NbTrackingByChapter($guserid,$module,$chapitre); //nb d'essai du stagiaire
if ($nbEssai >= $essai) {
$contenu .= "\n";
$contenu .= "Vous avez dépassé le nombre d'essais maximum auquel vous aviez droit ($essai) \n";
$contenu .= "
\n";
$launch = false;
}
}
// on teste le pourcentage
if ($score!="false") { // on a defini un nb d'essais
$Pourcentage = $ClsTracking->Moyenne($guserid,$module,$chapitre); //Moyenne du stagiaire à cette activité
if ($Pourcentage>$score) {
$contenu .= "\n";
$contenu .= "Votre score moyen ($Pourcentage%) a atteint ou dépassé la moyenne maximum fixée ($score%)\n";
$contenu .= "
\n";
$launch = false;
}
}
// on teste la date de début
if ($dated!="false") {
$tab = explode("/", $dated);
$timed = mktime (0,0,0,$tab[1],$tab[0],$tab[2]);
if (time() <= $timed ) {
$contenu .= "\n";
$contenu .= "Cette activité sera disponible à partir du $dated !\n";
$contenu .= "
\n";
$launch = false;
}
}
// on teste la date de fin
if ($datef!="false") {
$tab = explode("/", $datef);
$timef = mktime (0,0,0,$tab[1],$tab[0],$tab[2]) + (24*60*60);
if (time() >= $timef ) {
$contenu .= "\n";
$contenu .= "Cette activité n'est plus disponible depuis le $datef !\n";
$contenu .= "
\n";
$launch = false;
}
}
// on la note du chapitre précédent
if ($prevscore!="false") {
if ($chapitre > 1) { // uniquement si le chapitre qui précède est une activité
$chap = $chapitre -1;
$sql = "SELECT MAX(note) from ".$TBL['tracking']." where module_id=".$module." and chapitre_id=".$chap." and user_id=".$guserid." ORDER BY date DESC;";
$query = mysql_query($sql);
$req = mysql_fetch_array($query);
if (isset($req['note']) && ($req['note'] < $prevscore) ) {
$contenu .= "\n";
$contenu .= "Vous devez atteindre un score minimum de ".$prevscore."% à l'activité précédente (".$req["note"]."% actuellement) avant de pouvoir faire cette activité !\n";
$contenu .= "
\n";
$launch=false;
}
if (!isset($req['note'])) {
$contenu .= "\n";
$contenu .= "Vous devez faire l'activité précédente et obtenir un score minimum de ".$prevscore."% avant de pouvoir faire celle-ci !\n";
$contenu .= "
\n";
$launch=false;
}
}
}
if ( $launch===false ) { // si on a atteint une limitation
$html = $HtmlHeader;
$html .= "\n";
$html .= $contenu;
$html .= $HtmlFooter;
echo $html;
exit;
}
if ( $script!="" ) { // on ouvre en popup
$html = $HtmlHeader;
$html .= $script;
$html .= "\n";
$html .= "\n";
$html .= "Ouverture de l'activité...
\n";
$html .= $HtmlFooter;
echo $html;
exit;
}
return;
}
?>