// // ------------------------------------------------------------------------ // // Based on XoopsHP1.01 by Yoshi, aka HowardGee. // // ------------------------------------------------------------------------ // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // You may not change or alter any portion of this comment or credits // // of supporting developers from this source code or any supporting // // source code which is considered copyrighted (c) material of the // // original comment or credit authors. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // ------------------------------------------------------------------------ // include 'header.php'; // License check: Add access permission to the guest group if license hasn't been purchased $groupperm_handler =& xoops_gethandler('groupperm', 'xoopshp'); if (!$xoopsModuleConfig['has_license'] && !$groupperm_handler->checkRight('module_read', $xoopsModule->getVar('mid'), XOOPS_GROUP_ANONYMOUS)) { // $groupperm_handler->addRight('module_read', $xoopsModule->getVar('mid'), XOOPS_GROUP_ANONYMOUS); // Heck, can't figure out how to get around the restriction in the kernel, so here's a tentative workaround. $query ="INSERT INTO ".$xoopsDB->prefix('group_permission')." (gperm_name, gperm_itemid, gperm_groupid, gperm_modid) VALUES (".$xoopsDB->quoteString('module_read').", ".$xoopsModule->getVar('mid').", ".XOOPS_GROUP_ANONYMOUS.", 1)"; $result = $xoopsDB->queryF($query); } global $isModAdmin; if ($xoopsUser && $xoopsUser->isAdmin($xoopsModule->mid())) { $isModAdmin = true; } else { $isModAdmin = false; } function listsections() { global $xoopsConfig, $xoopsModuleConfig, $xoopsDB, $xoopsUser, $xoopsTheme, $xoopsLogger, $xoopsModule, $xoopsTpl, $isModAdmin, $xoopsUserIsAdmin, $xoopsModuleConfig; include XOOPS_ROOT_PATH.'/header.php'; $myts =& MyTextSanitizer::getInstance(); include 'module_prefix.php'; $result = $xoopsDB->query("SELECT secid, secname, secdesc, display, expire FROM ".$xoopsDB->prefix($module_prefix."_sections")." ORDER BY secname"); echo "
"; echo "

"; printf($xoopsModuleConfig['welcome'],htmlspecialchars($xoopsConfig['sitename'], ENT_QUOTES)); echo "

"; echo "

".$xoopsModuleConfig['welcome_desc'].'

'; echo "
"; echo ""; echo ""; if ($xoopsUser) { echo ""; } echo "
"._MD_RETURN2INDEX.""._MD_LT_PORTFOLIO."
"; echo ""; echo ""; echo ""; echo ""; echo ""; if ($xoopsUser) {echo ""; } echo ""; echo ""; while ( list($secid, $secname, $secdesc, $display, $expire) = $xoopsDB->fetchRow($result) ) { if ($display) { $secid = intval($secid); $secname = $myts->stripSlashesGPC($secname); $secdesc = $myts->stripSlashesGPC($secdesc); $expire = $myts->stripSlashesGPC($expire); $currenttime = formatTimestamp(time(), "Y-m-d H:i:s"); echo ""; if ($expire != '0000-00-00 00:00:00' && $expire < $currenttime) { echo ""; } else { echo ""; } echo ""; include 'module_prefix.php'; $result_db = $xoopsDB->prefix($module_prefix.'_results'); include 'module_prefix.php'; $quiz_db = $xoopsDB->prefix($module_prefix.'_quiz'); $qnum = $xoopsDB->query("SELECT * FROM $quiz_db WHERE secid=$secid"); $qnum = $xoopsDB->getRowsNum($qnum); echo ""; if ($xoopsUser) { include 'module_prefix.php'; $quiz_db = $xoopsDB->prefix($module_prefix.'_quiz'); if ($isModAdmin) { $query = "SELECT DISTINCT $result_db.quiz_id, $quiz_db.artid, $quiz_db.secid FROM $result_db, $quiz_db WHERE $quiz_db.artid = $result_db.quiz_id AND $quiz_db.secid = $secid"; } else { $query = "SELECT DISTINCT $result_db.quiz_id, $quiz_db.artid, $quiz_db.secid FROM $result_db, $quiz_db WHERE $quiz_db.artid = $result_db.quiz_id AND $quiz_db.secid = $secid AND uid=".$xoopsUser->getVar('uid'); } $results = $xoopsDB->query($query); $done = $xoopsDB->getRowsNum($results); echo ""; } if ($expire != '0000-00-00 00:00:00') { if ($expire > $currenttime) { echo ""; } else { echo ""; } } else { echo ""; } echo ""; } } echo "
"._MD_SECNAMEC.""._MD_SECDESC.""._MD_SECQNUM.""._MD_SECDNUM.""._MD_LT_EXPIRE."
".$myts->displayTarea($secname)."$secname".$myts->displayTarea($secdesc)."$qnum$done".$expire."".$expire."("._MD_LT_EXPIRED.")".'-------------------'."
"; echo ""; echo ""; echo "
Version ".round($xoopsModule->getVar('version')/100, 2)."
"; echo "
"; echo "
"; include '../../footer.php'; } function listarticles($secid) { global $xoopsConfig, $xoopsModuleConfig, $xoopsUser, $xoopsDB, $xoopsTheme, $xoopsLogger, $xoopsModule, $xoopsTpl, $isModAdmin, $xoopsUserIsAdmin; include '../../header.php'; $myts =& MyTextSanitizer::getInstance(); $secid = intval($secid); include 'module_prefix.php'; $result = $xoopsDB->query("SELECT secname, secdesc, display, expire FROM ".$xoopsDB->prefix($module_prefix."_sections")." WHERE secid=$secid"); list($secname, $secdesc, $display, $expire) = $xoopsDB->fetchRow($result); $secname = $myts->displayTarea($myts->stripSlashesGPC($secname)); $secdesc = $myts->displayTarea($myts->stripSlashesGPC($secdesc)); $display = intval($display); $expire = $myts->displayTarea($myts->stripSlashesGPC($expire)); // Trap for hidden or expired items if (!$display) { redirect_header("index.php", 2, _AM_MSG_ACCESS_ERROR); } elseif ($expire != '0000-00-00 00:00:00' && $expire < formatTimestamp(time(), "Y-m-d H:i:s")) { redirect_header("index.php", 2, _AM_MSG_ACCESS_ERROR); } include 'module_prefix.php'; $result = $xoopsDB->query("SELECT artid, secid, title, posted, counter, display, expire FROM ".$xoopsDB->prefix($module_prefix."_quiz")." WHERE secid=$secid"." ORDER BY title"); echo "
"; echo "

$secname

"; echo "

"._MD_THEFOLLOWING."

"; echo "
"; echo ""; echo ""; if ($xoopsUser) { echo ""; $alert = ""; } else { $alert = " onClick='alert(\""._MD_ALERTGUEST."\")'"; } echo "
"._MD_RETURN2INDEX." -> "._MD_RETURN2QUIZ.""._MD_LT_PORTFOLIO."
"; echo ""; echo ""; echo ""; echo ""; if ($isModAdmin) { echo ""; } elseif ($xoopsUser) { echo ""; } echo ""; echo ""; if ($xoopsUser) { echo ""; } echo ""; $currenttime = formatTimestamp(time(), "Y-m-d H:i:s"); while ( list($artid, $secid, $title, $posted, $counter, $display, $expire) = $xoopsDB->fetchRow($result) ) { if ($display) { $title = $myts->displayTarea($title); $expire = $myts->stripSlashesGPC($expire); echo ""; if ($expire != '0000-00-00 00:00:00' && $expire < $currenttime) { echo ""; } else { echo ""; } if ($xoopsUser) { $uid = $xoopsUser->getVar('uid'); include 'module_prefix.php'; $query1 = "SELECT DISTINCT uid FROM ".$xoopsDB->prefix($module_prefix.'_results')." WHERE quiz_id=$artid"; include 'module_prefix.php'; $query2 = "SELECT score FROM ".$xoopsDB->prefix($module_prefix.'_results')." WHERE quiz_id=$artid AND uid=$uid"; if ($isModAdmin) { $results_exist = $xoopsDB->query($query1); $done_by = $xoopsDB->query($query1); } else { $results_exist = $xoopsDB->query($query2); $done_by = $xoopsDB->query($query1); } $results_exist = $xoopsDB->getRowsNum($results_exist); } else { include 'module_prefix.php'; $query1 = "SELECT DISTINCT uid FROM ".$xoopsDB->prefix($module_prefix.'_results')." WHERE quiz_id=$artid"; $done_by = $xoopsDB->query($query1); } $done_by = $xoopsDB->getRowsNum($done_by); echo ""; include 'module_prefix.php'; $site_max = $xoopsDB->query("SELECT MAX(score), AVG(score) FROM ".$xoopsDB->prefix($module_prefix.'_results')." WHERE quiz_id = $artid"); list($site_max, $site_avg) = $xoopsDB->fetchRow($site_max); if ($isModAdmin) { echo ""; } elseif ($xoopsUser) { include 'module_prefix.php'; $my_max = $xoopsDB->query("SELECT MAX(score) FROM ".$xoopsDB->prefix($module_prefix.'_results')." WHERE uid = $uid AND quiz_id = $artid"); list($my_max) = $xoopsDB->fetchRow($my_max); echo ""; } echo ""; if ($expire != '0000-00-00 00:00:00') { if ($expire > $currenttime) { echo ""; } else { echo ""; } } else { echo ""; } if ($xoopsUser) { if ($results_exist) { echo ""; } else { echo ""; } } if ($isModAdmin) { echo ""; echo ""; } echo ""; } } echo "
"._MD_LT_TITLE.""._XD_FB_FINISHED_BY.""._MD_LT_SITEAVG.""._MD_LT_MYMAX.""._MD_LT_SITEMAX.""._MD_LT_EXPIRE.""._MD_LT_ACTION."
$title$title$done_by".round($site_avg)."$my_max$site_max".$expire."".$expire."("._MD_LT_EXPIRED.")".'-------------------'."". _MD_LT_RESULTS ." ". _MD_EDIT ."". _MD_DELETE ."
"; echo ""; echo ""; echo "
Version ".round($xoopsModule->getVar('version')/100, 2)."
"; echo "
"; echo "
"; include '../../footer.php'; } function viewarticle($artid) { global $xoopsConfig, $xoopsModuleConfig, $xoopsUser, $xoopsDB, $xoopsTpl, $isModAdmin, $xoopsUserIsAdmin; $myts =& MyTextSanitizer::getInstance(); $artid = intval($artid); include 'module_prefix.php'; $result=$xoopsDB->query("SELECT secid, title, content, display, expire FROM ".$xoopsDB->prefix($module_prefix."_quiz")." WHERE artid=$artid"); list($secid, $title, $content, $display, $expire) = $xoopsDB->fetchRow($result); $secid = intval($secid); $display = intval($display); $expire = $myts->stripSlashesGPC($expire); $currenttime = formatTimestamp(time(), "Y-m-d H:i:s"); if ($display) { include 'module_prefix.php'; $result2=$xoopsDB->query("SELECT display, expire FROM ".$xoopsDB->prefix($module_prefix."_sections")." WHERE secid=$secid"); list($display2, $expire2) = $xoopsDB->fetchRow($result2); $display2 = intval($display2); $expire2 = $myts->stripSlashesGPC($expire2); if ($display2) { if ($expire2 == '0000-00-00 00:00:00' || $expire2 > $currenttime) { if ($expire == '0000-00-00 00:00:00' || $expire > $currenttime) { setcookie("xoopsHP_file_id", $artid); $title = $myts->displayTarea($title); // Can't decide an appropriate sanitizer... //$content = $myts->displayTarea($content, 1); echo $content; } else { redirect_header("index.php", 2, _AM_MSG_ACCESS_ERROR); } } else { redirect_header("index.php", 2, _AM_MSG_ACCESS_ERROR); } } else { redirect_header("index.php", 2, _AM_MSG_ACCESS_ERROR); } } else { redirect_header("index.php", 2, _AM_MSG_ACCESS_ERROR); } } function viewresults($artid, $sort_key) { global $xoopsConfig, $xoopsModuleConfig, $xoopsUser, $xoopsDB, $xoopsTheme, $xoopsLogger, $xoopsModule, $xoopsTpl, $isModAdmin, $xoopsUserIsAdmin; include '../../header.php'; $myts =& MyTextSanitizer::getInstance(); //Retrieve table data by users $artid = intval($artid); include 'module_prefix.php'; $result2 = $xoopsDB->query("SELECT title, posted, secid FROM ".$xoopsDB->prefix($module_prefix."_quiz")." WHERE artid=$artid"); list($title, $posted, $secid) = $xoopsDB->fetchRow($result2); $title = $myts->displayTarea($title); $posted = $myts->displayTarea($posted); include 'module_prefix.php'; $result_db = $xoopsDB->prefix($module_prefix.'_results'); $users_db = $xoopsDB->prefix('users'); if ($isModAdmin) { $query = "SELECT $result_db.id, $result_db.quiz_id, $result_db.uid, $result_db.score, $result_db.timestamp, $result_db.comment, $users_db.uname, $users_db.name FROM $result_db, $users_db WHERE $result_db.uid = $users_db.uid AND $result_db.quiz_id = $artid ORDER BY ". $sort_key; } elseif ($xoopsUser) { $uid = $xoopsUser->getVar('uid'); $query = "SELECT $result_db.id, $result_db.quiz_id, $result_db.uid, $result_db.score, $result_db.timestamp, $result_db.comment, $users_db.uname, $users_db.name FROM $result_db, $users_db WHERE $result_db.uid = $uid AND $result_db.uid = $users_db.uid AND $result_db.quiz_id = $artid ORDER BY ". $sort_key; } $result = $xoopsDB->query($query); echo "
"; echo "

" ._MD_LT_RESULTS. ": $title

"; echo "
"; echo ""; echo ""; echo ""; echo "
"._MD_RETURN2INDEX." -> "._MD_RETURN2QUIZ." -> "._MD_RESULTLIST." ("._MD_RESULT_SIMPLE.") "._MD_RESULT_DETAIL."
"; echo ""; echo ""; echo ""; echo ""; echo ""; if ($isModAdmin) {echo ""; } echo ""; while ( list($res_id, $quiz_id, $uid, $score, $timestamp, $comment, $uname, $name) = $xoopsDB->fetchRow($result) ) { echo ""; if ($xoopsUser) { echo ""; } echo ""; echo ""; if ($isModAdmin) { echo ""; } echo ""; } echo "
"._MD_LT_STUDENT.""._MD_LT_SCORE.""._MD_LT_DATE.""._MD_LT_ACTION."
".$uname; if (!empty($name)) { echo " (".$name.")"; } echo "$score$timestamp". _MD_DELETE ."
"; echo ""; echo ""; echo "
Version ".round($xoopsModule->getVar('version')/100, 2)."
"; echo "
"; echo "
"; include '../../footer.php'; } function viewdetails($artid, $sort_key) { global $xoopsConfig, $xoopsModuleConfig, $xoopsUser, $xoopsDB, $xoopsTheme, $xoopsLogger, $xoopsModule, $xoopsTpl, $isModAdmin, $xoopsUserIsAdmin; include '../../header.php'; $myts =& MyTextSanitizer::getInstance(); $artid = intval($artid); $sort_key = $myts->addSlashes($sort_key); //Retrieve table data by users include 'module_prefix.php'; $result2 = $xoopsDB->query("SELECT title, posted, secid FROM ".$xoopsDB->prefix($module_prefix."_quiz")." WHERE artid=$artid"); list($title, $posted, $secid) = $xoopsDB->fetchRow($result2); $title = $myts->displayTarea($title); $posted = $myts->displayTarea($posted); $uid = ($xoopsUser) ? $xoopsUser->getVar('uid') : 0; include 'module_prefix.php'; $result_db = $xoopsDB->prefix($module_prefix.'_results'); $users_db = $xoopsDB->prefix('users'); if ($isModAdmin) { $query = "SELECT $result_db.id, $result_db.quiz_id, $result_db.uid, $result_db.score, $result_db.start_time, $result_db.end_time, $result_db.timestamp, $result_db.host, $result_db.ip, $result_db.comment, $users_db.uname, $users_db.name FROM $result_db, $users_db WHERE $result_db.uid = $users_db.uid AND $result_db.quiz_id = $artid ORDER BY ". $sort_key; } elseif ($xoopsUser) { $query = "SELECT $result_db.id, $result_db.quiz_id, $result_db.uid, $result_db.score, $result_db.start_time, $result_db.end_time, $result_db.timestamp, $result_db.host, $result_db.ip, $result_db.comment, $users_db.uname, $users_db.name FROM $result_db, $users_db WHERE $result_db.uid = $uid AND $result_db.uid = $users_db.uid AND $result_db.quiz_id = $artid ORDER BY ". $sort_key; } $result = $xoopsDB->query($query); echo "
"; echo "

". _MD_RESULT_DETAIL.": ".$title."

"; echo "
"; echo ""; echo ""; if ($xoopsUser) { echo ""; } echo "
"._MD_RETURN2INDEX." -> "._MD_RETURN2QUIZ." -> "._MD_RESULTLIST." ("._MD_RESULT_DETAIL.") "._MD_RESULT_SIMPLE."
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; if ($isModAdmin) { echo ""; } echo ""; while ( list($res_id, $quiz_id, $uid, $score, $start_time, $end_time, $timestamp, $host, $ip, $comment, $uname, $name) = $xoopsDB->fetchRow($result) ) { echo ""; if ($xoopsUser) { echo ""; } echo ""; echo ""; echo ""; echo ""; echo ""; if ($isModAdmin) { echo ""; } echo ""; } echo "
"._MD_LT_STUDENT.""._MD_LT_SCORE.""._XD_FB_START.""._XD_FB_END.""._XD_FB_HOST.""._XD_FB_IP.""._MD_LT_ACTION."
".$uname; if (!empty($name)) { echo " (".$name.")"; } echo "$score$start_time$end_time$host$ip". _MD_DELETE ."
"; echo ""; echo ""; echo "
Version ".round($xoopsModule->getVar('version')/100, 2)."
"; echo "
"; echo "
"; include '../../footer.php'; } function portfolio($sort_key, $secid) { global $xoopsConfig, $xoopsModuleConfig, $xoopsUser, $xoopsDB, $xoopsTheme, $xoopsLogger, $xoopsModule, $xoopsTpl, $isModAdmin, $xoopsUserIsAdmin; include '../../header.php'; $myts =& MyTextSanitizer::getInstance(); $secid = intval($secid); $sort_key = $myts->addSlashes($sort_key); include 'module_prefix.php'; $result_db = $xoopsDB->prefix($module_prefix.'_results'); include 'module_prefix.php'; $quiz_db = $xoopsDB->prefix($module_prefix.'_quiz'); $users_db = $xoopsDB->prefix('users'); if ($secid == 0) { $section_query = ""; } else { $section_query ="AND $quiz_db.secid = $secid "; } if ($isModAdmin) { $query = "SELECT $result_db.id, $result_db.quiz_id, $result_db.uid, $result_db.score, $result_db.start_time, $result_db.end_time, $result_db.timestamp, $result_db.host, $result_db.ip, $result_db.comment, $quiz_db.artid, $quiz_db.secid, $quiz_db.title, $users_db.uid, $users_db.uname, $users_db.name FROM $result_db, $quiz_db, $users_db WHERE $quiz_db.artid = $result_db.quiz_id AND $result_db.uid = $users_db.uid ".$section_query." ORDER BY ". $sort_key; $user_name = ""; } elseif ($xoopsUser) { $user_id = $xoopsUser->getVar('uid'); $user_name = " (".$xoopsUser->getVar('uname').")"; $query = "SELECT $result_db.id, $result_db.quiz_id, $result_db.uid, $result_db.score, $result_db.start_time, $result_db.end_time, $result_db.timestamp, $result_db.host, $result_db.ip, $result_db.comment, $quiz_db.artid, $quiz_db.secid, $quiz_db.title, $users_db.uid, $users_db.uname, $users_db.name FROM $result_db, $quiz_db, $users_db WHERE $quiz_db.artid = $result_db.quiz_id AND $result_db.uid = $users_db.uid AND $result_db.uid=$user_id ".$section_query." ORDER BY ".$sort_key; } else { $user_name = ""; } $result = $xoopsDB->query($query); echo "
"; echo "

" ._MD_LT_PORTFOLIO. $user_name."

"; echo "
"; echo ""; echo ""; echo ""; echo ""; echo "
"._MD_RETURN2INDEX." -> "._MD_LT_PORTFOLIO.""._MD_SECNAMEC ."" ."" ."
"; echo ""; echo ""; if ($isModAdmin) { echo ""; } echo ""; echo ""; echo ""; if ($isModAdmin) { echo ""; } echo ""; while ( list($res_id, $quiz_id, $uid, $score, $start_time, $end_time, $timestamp, $host, $ip, $comment, $artid, $secid, $title, $uid2, $uname, $name) = $xoopsDB->fetchRow($result) ) { echo ""; if ($isModAdmin) { echo ""; } echo ""; echo ""; echo ""; if ($isModAdmin) { echo ""; } echo ""; } echo "
"._MD_LT_STUDENT.""._MD_LT_TITLE2.""._MD_LT_SCORE.""._MD_LT_DATE.""._MD_LT_ACTION."
".$uname; if (!empty($name)) { echo " (".$name.")"; } echo "$title$score$timestamp". _MD_DELETE ."
"; echo ""; echo ""; echo "
Version ".round($xoopsModule->getVar('version')/100, 2)."
"; echo "
"; echo "
"; include '../../footer.php'; } $op = isset($HTTP_GET_VARS['op']) ? trim($HTTP_GET_VARS['op']) : ''; $secid = isset($HTTP_GET_VARS['secid']) ? intval($HTTP_GET_VARS['secid']) : 0; $page = isset($HTTP_GET_VARS['page']) ? intval($HTTP_GET_VARS['page']) : 0; $artid = isset($HTTP_GET_VARS['artid']) ? intval($HTTP_GET_VARS['artid']) : 0; $uid = isset($HTTP_GET_VARS['uid']) ? intval($HTTP_GET_VARS['uid']) : 0; $sort_key = isset($HTTP_GET_VARS['sort_key']) ? trim($HTTP_GET_VARS['sort_key']) : "uname"; switch ( $op ) { case "viewarticle": viewarticle($artid); break; case "listarticles": listarticles($secid); break; case "viewresults": viewresults($artid, $sort_key); break; case "viewdetails": viewdetails($artid, $sort_key); break; case "portfolio": portfolio($sort_key, $secid); break; default: listsections(); break; } ?>