(hopefuly) fixed documentation syntax and clarified display

master
Fabien Benetou 13 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
#
@ -9,9 +9,8 @@
# e.g. size, frequency update, last edition, ...
# which of those page corresponds the updates visualization V, A, B or C?
# keyword or URL in pages
# page linked to other page
# implemented
# is page A linked to page B?
# is page A linked to page B? (type=pagelink)
# consider a difficulty parameter
# 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)
@ -19,8 +18,8 @@
$RecipeInfo['Exercises']['Version'] = '2011-12-08';
$HandleActions['Exercises'] = 'Exercises';
$HandleAuth['Exercises'] = 'read';
SDV($HandleActions['Exercises'], 'Exercises');
SDV($HandleAuth['Exercises'],'read');
function Exercises($pagename, $auth){
@ -71,12 +70,24 @@ function Exercises($pagename, $auth){
$answers = array ($pageA,$pageB,$pageC);
shuffle($answers);
for ($i=0;$i<count($answers);$i++) {
if ( $i == count($answers) -1 )
$result .= " or ";
$result .="[[$pagename?action=ExercisesCheck&".$counterparam."type=$exercisetype&source=$sourcepage&answer=".$answers[$i]."|".$answers[$i]."]],";
if ($answers[$i] != "") {
if ( $i == count($answers) -1 )
$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 .="\n\nClick on the answer.";
$result .= "\n\nGenerated by [[http://fabien.benetou.fr/MemoryRecalls/ImprovingPIM#PIMBasedExercises|PIM Based Exercises]]";
$renderedresult = MarkupToHTML($pagename, $result);
print $renderedresult;
@ -85,12 +96,11 @@ function Exercises($pagename, $auth){
//print $content;
}
$HandleActions['ExercisesCheck'] = 'ExercisesCheck';
$HandleAuth['ExercisesCheck'] = 'read';
SDV($HandleActions['ExercisesCheck'], 'ExercisesCheck');
SDV($HandleAuth['ExercisesCheck'],'read');
function ExercisesCheck($pagename, $auth){
$type = $_GET["type"];
// assuming pagelink
$sourcepage = $_GET["source"];
$answer = $_GET["answer"];
$counter = (int) $_GET["counter"];
@ -102,30 +112,33 @@ function ExercisesCheck($pagename, $auth){
} else {
$pages = ListPages("/$group\./e");
}
$content = ReadPage($sourcepage,READPAGE_CURRENT);
$links = $content["targets"];
$links_array = explode(",",$links);
if ( in_array($answer,$links_array) ) {
$result .="Excellent! [[$sourcepage]] is indeed linked to [[$answer]]. ";
$result .="Note that $links also are. ";
if ( $counter > 0) {
$counter++;
$result .="See if you can [[$pagename?action=Exercises&counter=$counter|solve yet another one]]. ";
} else {
$result .="See if you can [[$pagename?action=Exercises&counter=1|solve yet another one]]. ";
}
} else {
$result .="No, [[$sourcepage]] is not linked to [[$answer]] ";
$result .="but $links are. ";
$result .="Try to redeem yourself by [[$pagename?action=Exercises|trying another time]]. ";
switch ($type) {
case "pagelink":
$content = ReadPage($sourcepage,READPAGE_CURRENT);
$links = $content["targets"];
$links_array = explode(",",$links);
$formattedlinks = implode(", ",$links_array);
if ( in_array($answer,$links_array) ) {
$result .="Excellent! [[$sourcepage]] is indeed linked to [[$answer]]. ";
$result .="Note that $formattedlinks also are. ";
if ( $counter > 0) {
$counter++;
$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);
print $renderedresult;
//$text = RetrieveAuthSection($pagename,$auth);
//$content = MarkupToHTML($pagename, $text);
//print $content;
}
?>

Loading…
Cancel
Save