//Filtre ACDC pour SPIP fait par Laurent Giboulot (Gib)avec l' aide plus que précieuse du Doc. et inspiré par le logiciel GenexiAC de J.J. Hochart
//Le but de cette fonction est de generer automatiquement un exercice autocorrigé mot par mot à partir d'une phrase mise entre ¤ et ¤ dans un article .
// remplacer [(#TEXTE)] par [(#TEXTE|acdc)] dans le squelette de l' article .html ou celui de votre choix .
//Passer le temps de recalcul des pages articles ou du squelette souhaité à quelques secondes, par ex. 2s. au lieu de 24 h. ( 1*2 au lieu de 24*3600 dans le php correspondant )
function acdc ($texte) {
$score=10;
while(ereg("¤",$texte)){
list($avant,$solutio,$apres)=explode("¤",$texte);//si le texte du article contient ¤, on isole la solution de la dictee
$solution=trim($solutio);
$codehtml = "";
$codehtml.= " PROPOSER :
RESULTAT: ";
for ($j = 0 ; $j<$nbmotsolu ; $j++) { // pour chaque mot
if ($motsolu[$j] == $motprop[$j]) {
$codehtml.=""; // ok
} else {
for ($k = 0 ; $k<$nbmotsolu ; $k++) {
if ($motprop[$j] == $motsolu[$k]) {
$codehtml.=""; // position ko
} else {
if ($k == "0") $codehtml.=""; // mot ko (pas trouvé: ortho ou absent) // $k pour afficher une seule fois
}
}
}
$codehtml.= " $motprop[$j]";
$codehtml.= " "; // espace entre les mots
}
$codehtml.= " ";
$prop=trim($propose);
$solu=trim($solution);
if ($prop==$solu){
$codehtml.= "
BRAVO !!! Passez à la dictée suivante
";
$score=$score+5;
}
$codehtml.= ""; // prevoir duplications indéterminées du font
$codehtml.= " Legende : ";//affichage de la legende
$codehtml.= "| Faute orthographe ou ponctuation voisine, ou mot inconnu ";
$codehtml.= " | correct mais mal placé ou précédé d'un probleme; ";
$codehtml.= " | correct et bien placé ";
$codehtml.= " | Score : ".$score." ";
}
$codehtml="".$codehtml."";
$texte =$avant.$apres.$codehtml;
}
$texte=$teteFormulaire.$texte.$piedFormulaire;
return $texte;
}
?>