Exemplo n.º 1
0
function listtreemodules($mysqli, $moduleid, $block_id, $plk, $flat = false, $explode = false)
{
    $icons = array('formative', 'progress', 'summative', 'survey', 'osce', 'offline', 'peer_review');
    $configObject = Config::get_instance();
    $moduleidorig = $moduleid;
    $moduleid = module_utils::get_idMod($moduleid, $mysqli);
    $sql = "SELECT DISTINCT crypt_name, paper_type, paper_title, retired, idMod FROM properties, properties_modules WHERE idMod = ? and properties.property_id = properties_modules.property_id AND deleted IS NULL AND paper_type IN ('0','1','3','4') ORDER BY paper_type, paper_title";
    $results2 = $mysqli->prepare($sql);
    $results2->bind_param('i', $moduleid);
    $results2->execute();
    $results2->bind_result($crypt_name, $paper_type, $paper_title, $retired, $moduleID);
    $results2->store_result();
    if ($results2->num_rows() > 0) {
        $rt = $results2->num_rows();
        echo '<div>';
        while ($results2->fetch()) {
            if (strtolower($_SESSION['_lti_context']['resource_link_title']) == strtolower($paper_title)) {
                $checked = ' checked';
            } else {
                $checked = '';
            }
            $extra = "<input type=\"radio\" name=\"paperlinkID\" id=\"paperlinkID-{$plk}\" value=\"{$plk}\"{$checked}><label for=\"paperlinkID-{$plk}\">";
            $extra1 = "</label>";
            echo "<div style=\"padding-left:20px\">{$extra}<img src=\"../artwork/" . $icons[$paper_type] . "_16.gif\" width=\"16\" height=\"16\" alt=\"" . $paper_type . "\" />&nbsp;" . $paper_title . "{$extra1}</div>\n";
            $_SESSION['postlookup'][$plk] = array($crypt_name, $moduleid);
            $plk++;
        }
        echo '</div>';
        $block_id++;
    } else {
        // no papers
    }
    $results2->close();
    return array($block_id, $plk);
}
Exemplo n.º 2
0
 /**
  * Test to see if a student is on a module by name.
  *
  * @param int $tmp_userID ID of the student.
  * @param int $idMod Module ID for the enrolement.
  * @param string $session The academic year.
  * @param object $db $mysqli database connection.
  *
  * @return bool return true if successful.
  *
  */
 static function is_user_on_module_by_name($tmp_userID, $idMod, $session, $db)
 {
     if (is_array($idMod)) {
         foreach ($idMod as $idmods) {
             $modid[] = module_utils::get_idMod($idmods, $db);
         }
     } else {
         $modid = module_utils::get_idMod($idMod, $db);
     }
     if ($modid === false) {
         return false;
     }
     return self::is_user_on_module($tmp_userID, $modid, $session, $db);
 }
Exemplo n.º 3
0
require_once './include/errors.inc';
require_once './classes/dateutils.class.php';
require_once './classes/userutils.class.php';
require_once './classes/moduleutils.class.php';
require_once './classes/smsutils.class.php';
if (isset($_GET['moduleid'])) {
    // Old format
    $module = $_GET['moduleid'];
} elseif (isset($_GET['mod'])) {
    // New shorter format
    $module = $_GET['mod'];
} else {
    display_error($string['fatalerrormsg0'], $string['fatalerrormsg1'], true);
}
$session = date_utils::get_current_academic_year();
$modID = module_utils::get_idMod($module, $mysqli);
// Translate module code into ID
$mod_details = module_utils::get_full_details_by_ID($modID, $mysqli);
if ($mod_details === false) {
    $msg = sprintf($string['nomodule'], $module);
    display_error('Module ID error', $msg, false, true);
}
if ($mod_details['active'] == 1 and $mod_details['selfenroll'] == 1 and isset($_POST['submit'])) {
    if (!$userObject->has_role('Student')) {
        // Add role of 'Student' if current user doesn't have it.
        UserUtils::add_role('Student', $userObject->get_user_ID(), $mysqli);
    }
    // Insert new module enrollment
    UserUtils::add_student_to_module($userObject->get_user_ID(), $modID, 1, $_POST['session'], $mysqli);
}
?>
Exemplo n.º 4
0
require '../classes/moduleutils.class.php';
require '../classes/paperutils.class.php';
require_once '../classes/questionutils.class.php';
function stripTrainModule($module_string)
{
    $new_modules = array();
    $old_modules = explode(',', $module_string);
    foreach ($old_modules as $old_module) {
        if ($old_module != 'TRAIN') {
            $new_modules[] = $old_module;
        }
    }
    return implode(',', $new_modules);
}
// get the id of the TRAIN module
$trainIdMod = module_utils::get_idMod('TRAIN', $mysqli);
// Clear the TRAIN team
$update = $mysqli->prepare("DELETE FROM modules_staff WHERE idMod = ?");
$update->bind_param('i', $trainIdMod);
$update->execute();
$update->close();
// Get all the papers on the TRAIN team
$result = $mysqli->prepare("SELECT properties.property_id FROM properties, properties_modules WHERE properties.property_id = properties_modules.property_id AND idMod = ?");
$result->bind_param('i', $trainIdMod);
$result->execute();
$result->store_result();
$result->bind_result($paperID);
while ($result->fetch()) {
    Paper_utils::remove_modules(array($trainIdMod => 'TRAIN'), $paperID, $mysqli);
    $q_result = $mysqli->prepare("SELECT question FROM papers WHERE paper=?");
    $q_result->bind_param('i', $paperID);
Exemplo n.º 5
0
 public function getAvailableFeedback($username, $moduleID)
 {
     $allowaccess = false;
     $tmp_userID = $this->getUserID($username, false);
     $userObject = UserObject::get_instance();
     if ($userObject->has_role('SysAdmin')) {
         $allowaccess = true;
     } else {
         if ($userObject->has_role('Staff')) {
             $allowaccess = true;
         } else {
             if ($userObject->has_role('Student') and $tmp_userID == $userObject->get_user_ID()) {
                 // Students can only list their own feedabck
                 $allowaccess = true;
             }
         }
     }
     if ($allowaccess == false) {
         return '';
     }
     if ($moduleID != '') {
         $idMod = module_utils::get_idMod($moduleID, $this->db);
         if ($idMod == false) {
             return "Unknown Module";
         }
     }
     $paper_no = 0;
     $old_yearID = -1;
     $papers = array();
     if ($moduleID == '') {
         $sql = "SELECT \n                      paper_id, \n                      date, \n                      UNIX_TIMESTAMP(date) AS is_live, \n                      paper_type, \n                      paper_title, \n                      start_date, \n                      end_date, \n                      properties.calendar_year, \n                      crypt_name, \n                      moduleId \n               FROM feedback_release \n               LEFT JOIN properties ON feedback_release.paper_id = properties.property_id \n               LEFT JOIN properties_modules ON properties.property_id =  properties_modules.property_id \n               LEFT JOIN modules_student ON modules_student.idMod = properties_modules.idMod\n               LEFT JOIN modules ON modules.id = properties_modules.idMod \n               WHERE \n                      modules_student.userID=?";
         $res = $this->db->prepare($sql);
         $res->bind_param('i', $tmp_userID);
     } else {
         $sql = "SELECT \n                      paper_id, \n                      date, \n                      UNIX_TIMESTAMP(date) AS is_live, \n                      paper_type, \n                      paper_title, \n                      start_date, \n                      end_date, \n                      properties.calendar_year, \n                      crypt_name,\n                      moduleId  \n               FROM feedback_release \n               LEFT JOIN properties ON feedback_release.paper_id = properties.property_id \n               LEFT JOIN properties_modules ON properties.property_id = properties_modules.property_id \n               LEFT JOIN modules_student ON modules_student.idMod = properties_modules.idMod \n               LEFT JOIN modules ON modules.id = properties_modules.idMod \n               WHERE \n                      modules_student.userID=? AND \n                      modules_student.idMod=?";
         $res = $this->db->prepare($sql);
         $res->bind_param('ii', $tmp_userID, $idMod);
     }
     $res->execute();
     $res->store_result();
     $res->bind_result($paperID, $date, $is_live, $paper_type, $paper_title, $start_date, $end_date, $calendar_year, $crypt_name, $moduleID);
     while ($res->fetch()) {
         if ($is_live < time()) {
             // Have they sat the paper?
             $log = $this->db->prepare("SELECT userID FROM log_metadata WHERE userID=? AND paperID=? LIMIT 1");
             $log->bind_param('ii', $tmp_userID, $paperID);
             $log->execute();
             $log->store_result();
             $log->bind_result($log_userID);
             if ($log->num_rows != 1) {
                 $log->close();
                 continue;
             } else {
                 if ($userObject->has_role('Student')) {
                     $papers[$paper_no]['feedback_url'] = 'https://' . $_SERVER['SERVER_NAME'] . '/mapping/user_feedback.php?id=' . $crypt_name;
                 } else {
                     $papers[$paper_no]['feedback_url'] = 'https://' . $_SERVER['SERVER_NAME'] . '/mapping/user_feedback.php?id=' . $crypt_name . '&userID=' . $tmp_userID;
                 }
                 $log->close();
             }
         } else {
             $papers[$paper_no]['feedback_url'] = '';
         }
         $papers[$paper_no]['title'] = $paper_title;
         $papers[$paper_no]['type'] = $this->qtypes[$paper_type];
         $papers[$paper_no]['start_date'] = $start_date;
         $papers[$paper_no]['release_date'] = $date;
         $papers[$paper_no]['calendar_year'] = $calendar_year;
         $papers[$paper_no]['moduleID'] = $moduleID;
         $paper_no++;
     }
     $res->close();
     return $papers;
 }