Warning: fopen(logv.txt): failed to open stream: Permission denied in /home/keonox/www/pyg/ganesha/inc.php on line 61

Warning: fputs(): supplied argument is not a valid stream resource in /home/keonox/www/pyg/ganesha/inc.php on line 62

Warning: fclose(): supplied argument is not a valid stream resource in /home/keonox/www/pyg/ganesha/inc.php on line 63
Addon Moolinex
Accueil > Addons > moolinex Contact  | Imprimer  | English translation

Addon Moolinex 

(c) PyG : dev@cornalys.com -- v0.5 17/03/2004
Code sous licence GNU/GPL

* Moolinex utilise du code Ganesha (c) Anema Formation <http://www.anemalab.org> sous licence GPL
* Moolinex utilise la classe pclZip (c) Vincent Blavet <http://www.phpconcept.net> sous licence LGPL

Objet

L'addon Moolinex permet d'ajouter des activités HotPotatoes ou NetQuiz3 dans Ganesha sans aucune programmation.

Screenshots / démonstrations

NB : il est conseillé d'avoir une résolution de 1024*768 et de maximiser la fénêtre de son navigateur (touche "F11") pour visualiser correctement ces démonstrations.

Si vous n'avez pas le lecteur Flash, vous pouvez le télécharger en cliquant ici

Fonctionnalités  

En plus du tracking (remontée des scores, du temps, etc.), l'addon permet entre autre de :


Il permet aussi d'ajouter des caractéristiques optionnelles.
Ainsi pour les activités HotPotatoes, il est possible de remplacer la feuille de style (=couleur) par des couleurs prédéfinies, ou d'utiliser les fonctionnalités de l'addon "Lanceur" qui permet :
1- de lancer l'activité dans une popup
2- de limiter le lancement de l'activité en fonction du nombre d'essais déjà effectués
3- de limiter le lancement de l'activité en fonction d'un score moyen déjà obtenu
4- de limiter le lancement en fonction d'une date de début
5- de limiter le lancement en fonction d'une date de fin
6- de limiter le lancement en fonction d'un score minimum à l'activité précédente.

Enfin cet addon à été développé d'une façon suffisament souple (j'espere !) pour faciliter son amélioration :

Il s'agit essentiellement de pouvoir répondre à la demande d'intégration rapide, massive et sans programmation d'exercices non AICC/SCORM dans Ganesha (la version 2 de Ganesha gérant ces normes).

Bref, il s'agit de faciliter le travail du développeur fainéant ;) ayant plusieurs centaines (et oui !) d'exercices à entrer dans la plateforme, mais il peut aussi servir au personnes n'ayant pas de compétences particulières en programmation.

Téléchargements

v0.5 :

patch 0.2->0.3 : remplacez le fichier /moolinex/motifs/hp5/hp5.motifs.php par ce fichier (merci à Roger T.)
* correction d'un warning à l'affichage de l'exercice.
+ fonctionnalité : le stagiaire est obligé de répondre à toutes les questions avant de valider.
+ fonctionnalité : désactivation du clic-droit pour IE5.5 et superieur.

Installation pour Ganesha 1.3 (installation pour Ganesha 2)

En fait, l'installation se compose de 3 addons pour le prix d'un :
- Moolinex proprement dit.
- Lanceur (avec des versions spéciales V1 et V2).
- GASP, un gestionnaire d'addon (livré ici en version embryonnaire).

La procédure d'install est longue, mais pas très complexe.
Le principal écueil se situe au niveau des droits en lecture/écriture sur le serveur, mais j'y reviendrais.

0- Prenez conscience que cet addon est livré tel quel, sans garantie de bon fonctionnement, ni support.
L'auteur ne pourra pas être tenu responsable si l'installation l'addon nuit au bon fonctionnement de votre Ganesha.

Si c'est le cas, passez à l'étape 1 ;)


1- Dézippez l'archive moolinex.zip [160ko - téléchargé   fois]


2- Copiez le dossier /addons/ et son contenu à la racine de votre plateforme, au même niveau que /formation.
Vous devez donc avoir une arborescence ressemblant à :
/addons/
/addons/gasp/
/addons/lanceur/
/addons/moolinex/
/.../
/formation/
/ganesha/
/.../


 3- Mise en place de GASP 

Vous utilisez ganesha 1.3

3A -Ajoutez dans /ganesha/inc/config.php, sous "$RP['jpgraph'] = $RP['ganesha'].'jpgraph/' ;" :

$RP['addons'] = $RP['main'].'addons/' ;
define('RP_ADDONS', $RP['addons']) ;

3B - Dans le même fichier, sous "$HTTP['aide'] = $HTTP['ganesha'].'aide/' ;" :

$HTTP['addons'] = $HTTP['main'].'addons/' ;
define('HTTP_ADDONS', $HTTP['addons']) ;

3C - Dans /ganesha/inc/common.inc.php, ajoutez en bas, avant le "?>" :

include_once(RP_ADDONS."gasp/gasp.inc.php");

 

Félicitations : GASP est installé !


 4- Mise en place de l'appel à l'addon 

4A - Ouvrez /ganesha/inc/tuteur.inc.php, et cherchez la fonction "function menu_tuteur()"

Ganesha Version 1.3

4B - Recherchez

print ('</TABLE>') ;
print ('<TABLE width="100%" border="0" cellspacing="0" cellpadding="0" align="left" valign="left">');
print (' <TR><td height="50" bgcolor="'.$color2.'" >&nbsp;</td>') ;
print (' <TD height="50" bgcolor="'.$color2.'" >&nbsp;</TD></TR>') ;
print ('</TABLE>') ;

4C - Collez à la suite :

// modif moolinex
if ( GAD_MOOLINEX ) {
global $GAD;
put (' <tr '.$action.'><td align="middle" valign="middle" width="5%" bgcolor="'.$color2.'">*</td>');
$url = $GAD['moolinex']['HTTP'].'index.php?connexion='.$connexion ;
$link = '<a class="HEADER1" href="'.$url.'" '.status().'> Moolinex </a>';
put (' <td align="left" valign="middle" width="95%" bgcolor="'.$color2.'">'.$link.' </td></tr>');
}
// fin modif moolinex

Félicitations l'addon est installé !
NB : ici l'addon est installé côté tuteur, mais il pourrait l'être côté admin en copiant le contenu de l'étape 4C dans le code admin.


 5 - Droits 

Le plus long, mais le plus simple est fait. Il reste essentiellement le problème des droits.

En effet, Moolinex génére automatiquement les dossiers et fichiers de vos activités.
Par conséquent, vous devez vous assurer que les droits sur ces derniers sont corrects.

Le problème vient du fait que chaque hebergeur a sa propre politique de sécurité, et qu'il n'y a donc pas de règle commune.
Ainsi, certains hebergeurs imposeront des droits 755 sur les dossiers, alors que d'autres exigeront du 750 ou 705.
Pour ceux qui ne connaissent rien aux droits, une rapide lecture s'impose :
- http://www.webogeo.com/forums/viewtopic.php?t=75
- http://www.toutestfacile.com/phpinit.php?tef_site=php&chap=chmod1

Comme je ne pourrais pas répondre aux questions de chacun sur les droits, Moolinex propose 2 aides à la détermination des droits.

(1)- Sur la page affichant le formulaire permettant l'ajout d'une activité, les droits sont testés par défaut.
Regardez en bas du formulaire, vous devez avoir un bloc

"Vérification des droits"
Repertoire Test créé avec succés !
Fichier Test créé avec succés !
Fichier Test chmodé avec succés !
Fichier Test supprimé avec succès !
Dossier Test supprimé avec succès !
Si vous êtes encore là, c'est que la vérification des droits est OK !

En clair, lorsque que vous arrivez sur cette page, Moolinex crée un répertoire bidon, crée un fichier bidon dedans, change les droits de ce fichier puis supprime le tout. Si les droits sont ok, tant mieux pour vous : vous pouvez passer à l'étape de configuration :)
Sinon, voyez le point (2)... :(


(2)- Une fois Moolinex installé vous pouvez appeler http://votre_ganesha/addons/moolinex/droits.php

En partant que votre plateforme fonctionne correctement, les droits corrects ont dûs être mis en place lors de l'install.

Ce fichier va tester et afficher les droits :

Repérez et notez alors les valeurs de la dernière colonne.

Editez alors /addons/moolinex/fonctions/fichiers.inc.php et regardez la fonction Droit()

function Droits($type) {
// Declaration des droits pour les fichiers / dossiers
global $BDD;
if ( $BDD['server']=="localhost" ) { // on est en local
   switch ($type) {
    case "fichier" : $droits = "0755"; break; // fichier image
    case "fichier2" : $droits = "0755"; break; // fichier html
    case "php" : $droits = "0755"; break; // fichier php
    case "dossier" : $droits = "0777"; break; // dossier
  }
} else { // a priori, on est en ligne
  switch ($type) {
    case "fichier" : $droits = "0640"; break; // fichier image
    case "fichier2" : $droits = "0750"; break; // fichier html
    case "php" : $droits = "0700"; break; // fichier php
    case "dossier" : $droits = "02750"; break; // dossier
  }
}
return $droits;
}

La première partie indique les droits si votre serveur sql se nomme "localhost" (souvent le cas si vous utilisez EasyPHP ou un serveur linux local). Ces valeurs devraient être correctes.

La seconde partie indique les droits si votre serveur n'est pas "localhost", c'est le cas dans 90% des serveurs mutualisés.
Les valeurs par défaut correspondent à mon hébergeur (sitadelle) et les valeurs doivent donc être adaptées à celles de votre hébergeur (vous pouvez alors vous aider des informations notées précédemment).
Renvoyez le fichier en ligne et refaites un test en croisant les doigts !

L'addon Moolinex devrait donc être installé ET fonctionnel.

Configuration

Etant plutôt autonome, il y a assez peu d'options de configuration.
Ouvrez /addons/moolinex/config.inc.php pour voir les principales options.
Vous souhaiterez notamment sans doute désactiver la vérification des droits une fois quelques exercices ajoutés avec succès.
NB : l'addon est désactivable, simplement en modifiant le statut 'actif' de l'addon dans /addons/gasp/gad.inc.php

Principes de fonctionnenment

Moolinex est en fait une "machine à faire du rechercher-remplacer", qui permet d'éviter la phase de "ganeshaïsation" d'un exercice.

On se place dans le dossier du module de la future activité, et on crée un sous dossier "moolact" qui contiendra les activités ajoutées avec moolinex.

  1. définitions des variables
  2. on crée le dossier (de la forme AAMMJJ-HHMMSS) et le sous-dossier "moolinex"
  3. on récupère l'id du Programme Auteur
  4. on déplace le fichier d'activité (.zip ou .htm) dans le dossier AAMMJJ-HHMMSS
  5. on dézippe (si nécéssaire)
  6. on verifie le zip/l'arborescence (si nécéssaire)
  7. on applique la moolinette sur chaque fichier qui le nécéssite
  8. on teste s'il y a des options et on applique les moolinettes spécifiques si besoin
  9. on déplace le fichier source dans le dossier moolinex
  10. on ajoute l'historique (date, titre, auteur, logiciel, fichiers sources)
  11. on ajoute l'exercice à la BDD

Voilà pour le principe de base.
Pour plus de détails, fouillez dans les fichiers de fonctions.

S'il y a des demandes et que j'ai le temps, j'écrirais peut être un mode d'emploi décrivant comment ajouter/modifier les différentes moulinettes.

Limitations

Pour les activités NetQuiz, il faut "zipper" les activités avec un outil externe (celui que vous voulez, même celui fourni avec Windows XP fonctionne sans problème). Mais n'utilisez PAS la fonction de "compression" de NetQuiz, qui semble bugguée.

Pour les activités HotPotatoes, celles-ci (1) doivent être sur une seule page (mais avec autant de questions que vous le souhaitez) et (2) ne pas comporter de médias (images/sons/etc...). Préférez-lui NetQuiz dans si vous voulez intégrer des médias.

TODO

Si certaines de ces fonctionnalités (ou d'autres vous interressent) contactez-moi gentiment ;)

Changelog

v0.5 : 17/03/2004
* bugfix : lanceur : prise en compte des modifications de la table tracking
* bugfix : meilleure prise en compte de mozilla
* new : HP : suppressions des barres de navigation HP s'il y en a.
* new : HP : désactivation du clic-droit (IE only)
* new : HP : ajout du script em^pechant la validation si l'activité n'est pas terminée.
* bugfix : prise en compte du register globals = off (EasyPHP)
* new : HP : alerte lors de la saisie des options du lanceur
* new : prise en compte des exercices HP6 (avec option "lanceur", mais pas option "couleurs")
* bugfix : pff, plein de petits trucs

v0.4 : 05/03/2004
* bugfix : probleme de lancement d'une activité conditionnée au score de l'activité précédente (merci à Roger T).
* new : le lancement conditionné à l'activité précédente se fait sur la base de meilleure note, et non plus sur la base de la dernière note
v0.3 : 09/02/2004

 

Accueil > Addons > moolinex Contact  | Imprimer  | English translation