(hopefuly) fixed documentation syntax and clarified display

master
Fabien Benetou 14 years ago
parent 980c42de71
commit 5821b36d0b
  1. 75
      pmwiki_recipes/exercises.php

@ -1,4 +1,4 @@
<?php <?php if (!defined('PmWiki')) exit();
# generate exercises based on wiki content and its structure # generate exercises based on wiki content and its structure
# #
@ -9,9 +9,8 @@
# e.g. size, frequency update, last edition, ... # e.g. size, frequency update, last edition, ...
# which of those page corresponds the updates visualization V, A, B or C? # which of those page corresponds the updates visualization V, A, B or C?
# keyword or URL in pages # keyword or URL in pages
# page linked to other page
# implemented # implemented
# is page A linked to page B? # is page A linked to page B? (type=pagelink)
# consider a difficulty parameter # consider a difficulty parameter
# should be linked to the counter # should be linked to the counter
# e.g. increasing the number of possibilities (at least 1 out of 5 pages instead of at least 1 out of 3) # e.g. increasing the number of possibilities (at least 1 out of 5 pages instead of at least 1 out of 3)
@ -19,8 +18,8 @@
$RecipeInfo['Exercises']['Version'] = '2011-12-08'; $RecipeInfo['Exercises']['Version'] = '2011-12-08';
$HandleActions['Exercises'] = 'Exercises'; SDV($HandleActions['Exercises'], 'Exercises');
$HandleAuth['Exercises'] = 'read'; SDV($HandleAuth['Exercises'],'read');
function Exercises($pagename, $auth){ function Exercises($pagename, $auth){
@ -71,12 +70,24 @@ function Exercises($pagename, $auth){
$answers = array ($pageA,$pageB,$pageC); $answers = array ($pageA,$pageB,$pageC);
shuffle($answers); shuffle($answers);
for ($i=0;$i<count($answers);$i++) { for ($i=0;$i<count($answers);$i++) {
if ( $i == count($answers) -1 ) if ($answers[$i] != "") {
$result .= " or "; if ( $i == count($answers) -1 )
$result .="[[$pagename?action=ExercisesCheck&".$counterparam."type=$exercisetype&source=$sourcepage&answer=".$answers[$i]."|".$answers[$i]."]],"; $result .= " or ";
//display the groupname everytime only if using AllPages
if ($group != "AllPages") {
list($currentgroup,$currentpage) = explode(".",$answers[$i]);
$result .="[[$pagename?action=ExercisesCheck&".$counterparam
."type=$exercisetype&source=$sourcepage&answer=".$answers[$i]."|".$currentpage."]], ";
} else {
$result .="[[$pagename?action=ExercisesCheck&".$counterparam
."type=$exercisetype&source=$sourcepage&answer=".$answers[$i]."|".$answers[$i]."]], ";
}
}
} }
$result .="? "; $result .="? ";
$result .="\n\nClick on the answer.";
$result .= "\n\nGenerated by [[http://fabien.benetou.fr/MemoryRecalls/ImprovingPIM#PIMBasedExercises|PIM Based Exercises]]";
$renderedresult = MarkupToHTML($pagename, $result); $renderedresult = MarkupToHTML($pagename, $result);
print $renderedresult; print $renderedresult;
@ -85,12 +96,11 @@ function Exercises($pagename, $auth){
//print $content; //print $content;
} }
$HandleActions['ExercisesCheck'] = 'ExercisesCheck'; SDV($HandleActions['ExercisesCheck'], 'ExercisesCheck');
$HandleAuth['ExercisesCheck'] = 'read'; SDV($HandleAuth['ExercisesCheck'],'read');
function ExercisesCheck($pagename, $auth){ function ExercisesCheck($pagename, $auth){
$type = $_GET["type"]; $type = $_GET["type"];
// assuming pagelink
$sourcepage = $_GET["source"]; $sourcepage = $_GET["source"];
$answer = $_GET["answer"]; $answer = $_GET["answer"];
$counter = (int) $_GET["counter"]; $counter = (int) $_GET["counter"];
@ -102,30 +112,33 @@ function ExercisesCheck($pagename, $auth){
} else { } else {
$pages = ListPages("/$group\./e"); $pages = ListPages("/$group\./e");
} }
$content = ReadPage($sourcepage,READPAGE_CURRENT);
$links = $content["targets"];
$links_array = explode(",",$links);
if ( in_array($answer,$links_array) ) { switch ($type) {
$result .="Excellent! [[$sourcepage]] is indeed linked to [[$answer]]. "; case "pagelink":
$result .="Note that $links also are. "; $content = ReadPage($sourcepage,READPAGE_CURRENT);
if ( $counter > 0) { $links = $content["targets"];
$counter++; $links_array = explode(",",$links);
$result .="See if you can [[$pagename?action=Exercises&counter=$counter|solve yet another one]]. "; $formattedlinks = implode(", ",$links_array);
} else {
$result .="See if you can [[$pagename?action=Exercises&counter=1|solve yet another one]]. "; if ( in_array($answer,$links_array) ) {
} $result .="Excellent! [[$sourcepage]] is indeed linked to [[$answer]]. ";
} else { $result .="Note that $formattedlinks also are. ";
$result .="No, [[$sourcepage]] is not linked to [[$answer]] "; if ( $counter > 0) {
$result .="but $links are. "; $counter++;
$result .="Try to redeem yourself by [[$pagename?action=Exercises|trying another time]]. "; $result .="\n\nSee if you can [[$pagename?action=Exercises&counter=$counter|solve yet another one]]. ";
} else {
$result .="\n\nSee if you can [[$pagename?action=Exercises&counter=1|solve yet another one]]. ";
}
} else {
$result .="No, [[$sourcepage]] is not linked to [[$answer]] ";
$result .="but $formattedlinks are. ";
$result .="\n\nTry to redeem yourself by [[$pagename?action=Exercises|trying another time]]. ";
}
break;
} }
$result .= "\n\nGenerated by [[http://fabien.benetou.fr/MemoryRecalls/ImprovingPIM#PIMBasedExercises|PIM Based Exercises]]";
$renderedresult = MarkupToHTML($pagename, $result); $renderedresult = MarkupToHTML($pagename, $result);
print $renderedresult; print $renderedresult;
//$text = RetrieveAuthSection($pagename,$auth);
//$content = MarkupToHTML($pagename, $text);
//print $content;
} }
?> ?>

Loading…
Cancel
Save