0byt3m1n1
Path:
/
data
/
applications
/
aps
/
tikiwiki
/
14.1-0
/
standard
/
htdocs
/
lib
/
wiki-plugins
/
[
Home
]
File: wikiplugin_miniquiz.php
<?php // (c) Copyright 2002-2015 by authors of the Tiki Wiki CMS Groupware Project // // All Rights Reserved. See copyright.txt for details and a complete list of authors. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. // $Id: wikiplugin_miniquiz.php 56280 2015-09-21 01:56:38Z lindonb $ function wikiplugin_miniquiz_info() { return array( 'name' => tra('Mini Quiz'), 'documentation' => 'PluginMiniQuiz', 'description' => tra('Create a quiz using a tracker'), 'prefs' => array( 'feature_trackers', 'wikiplugin_miniquiz' ), 'body' => tra('Instructions::Feedback'), 'iconname' => 'help', 'introduced' => 1, 'params' => array( 'trackerId' => array( 'required' => true, 'name' => tra('Tracker ID'), 'description' => tra('Numeric value representing the miniquiz tracker ID'), 'since' => '1', 'default' => '', 'profile_reference' => 'tracker', ), ), ); } function rcmp($a, $b) { return mt_rand(-1, 1); } function shuf(&$ar) { srand((double) microtime() * 10000000); uksort($ar, "rcmp"); } function wikiplugin_miniquiz($data, $params) { global $user, $group, $prefs; $trklib = TikiLib::lib('trk'); $tikilib = TikiLib::lib('tiki'); extract($params, EXTR_SKIP); if ($prefs['feature_trackers'] != 'y' || !isset($trackerId) || !($tracker = $trklib->get_tracker($trackerId))) { $smarty = TikiLib::lib('smarty'); return $smarty->fetch("wiki-plugins/error_tracker.tpl"); } $items = $trklib->list_tracker_items($trackerId, 0, -1, 'lastModif_desc', '', 'o'); foreach ($items['data'] as $it) { $id = $it['itemId']; foreach ($it['field_values'] as $val) { $field = $val['name']; $info["$id"]["$field"] = $val['value']; } $info["$id"]['qresult'] = 'n'; } $back = ''; $out = ''; if ($tracker) { $success_mess[] = "Wow !"; $success_mess[] = "Congratulation !"; $success_mess[] = "Success !"; $success_mess[] = "Excellent !"; $success_mess[] = "Superb !"; $success_mess[] = "Bravo !"; $success_mess[] = "Well done !"; $success_comment[] = "You found it right !"; $success_comment[] = "This is correct."; $success_comment[] = "You are the best !"; $success_comment[] = "The answer is correct."; $success_comment[] = "Your cleverness is amazing."; $success_comment[] = "Go on that way !"; $failed_mess[] = "Wrong !"; $failed_mess[] = "Too bad !"; $failed_mess[] = "No luck !"; $failed_mess[] = "Failed !"; $failed_mess[] = "Argh !"; $failed_mess[] = "Missed !"; $failed_comment[] = "Please think before clicking."; $failed_comment[] = "Did you read the question before reading the answer ?"; $failed_comment[] = "Try again."; $failed_comment[] = "Get another chance."; $failed_comment[] = "Think carefully that time."; $failed_comment[] = "Use the force !"; $failed_comment[] = "You should concentrate a little more."; if (isset($_REQUEST['quizit']) and $_REQUEST['quizit']) { if (isset($_REQUEST['answer']) and is_array($_REQUEST['answer'])) { $out.= "[MiniQuiz]\n"; $out.= "trackerId : $trackerId\n"; $out.= "user : $user\n"; $out.= "group : $group\n"; foreach ($_REQUEST['answer'] as $q=>$a) { if ($info["$q"]['answer'] == $a) { $out.= "$q : $a --> yeah !\n"; $info["$q"]['qresult'] = 'y'; } else { $out.= "$q : $a\n"; $info["$q"]['qresult'] = 'b'; } } $bout = "^$data^"; $bout.= "~pp~$out~/pp~"; //return $bout; } else { $back.= "!Please fill the quiz!\n"; } } $back.= '~np~<form method="post"><input type="hidden" name="quizit" value="1" />'; $back.= '<input type="hidden" name="page" value="'.$_REQUEST["page"].'" />'; $back.= '<div class="titlebar"><a href="tiki-view_tracker.php?trackerId='.$trackerId.'">'.$tracker["name"].'</a></div>'; $back.= '<div class="wikitext">'.$tracker["description"].'</div><br />'; $back.= '<style>.q label { background-color: none; cursor: normal; border: 1px solid white; padding: 0 5px 0 5px; }'; $back.= '.q label:hover { background-color: #efe0d0; cursor: pointer; border: 1px solid black; }</style>'; foreach ($info as $id=>$item) { if (isset($item['valid']) and $item['valid'] == 'y') { $back.= '<div class="titlebar">'.$item['question'].'</div>'; if ($item['qresult'] == 'y') { $back.= '<div class="wikitext" style="background-color:#ccffcc;">'; if (!isset($_POST["$id"])) { $back.= '<b>'.$success_mess[array_rand($success_mess)].'</b> '. $success_comment[array_rand($success_comment)].'<br />'; } $back.= 'The answer was: <b>'.$item['answer'].'</b></div><br />'; $back.= '<input type="hidden" name="answer['.$id.']" value="'. htmlspecialchars($item['answer']).'" />'; $back.= '<input type="hidden" name="'.$id.'" value="1" />'; } else { if ($item['qresult'] == 'b') { $back.= '<div class="wikitext" style="background-color:#ffcccc;">'; $back.= '<b>'.$failed_mess[array_rand($failed_mess)].'</b> '. $failed_comment[array_rand($failed_comment)].'</div>'; } $answers = array($item['answer'],$item['option a'],$item['option b'],$item['option c']); shuf($answers); $back.= '<div class="wikitext">'; $i = 1; foreach ($answers as $aid=>$answer) { $back.= '<div class="q"><input type="radio" id="answer'.$id.'_'.++$i.'" name="answer['.$id.']" value="'. htmlspecialchars($answer).'" /> '; $back.= '<label for="answer'.$id.'_'.$i.'">'.$answer.'</label>'; $back.= '</div>'; } $back.= '</div><br />'; $failed = true; } } } $back.= "<br /><div><input type='reset' name='reset' value='Start Over' /><input type='submit' name='action' value='Finish' />"; $back.= '</div>'; $back.= '<br /><div><b>Students</b>: <a href="tiki-view_tracker.php?trackerId='.$trackerId.'&new">Suggest a new question</a></div>'; $back.= "</form>~/np~"; } else { $back = "No such id in trackers."; } return $back; }
© 2017 -
ZeroByte.ID
.