function JLMS_showLinks($option) { $JLMS_CONFIG =& JLMSFactory::getCOnfig(); $Itemid = $JLMS_CONFIG->get('Itemid'); $db =& JFactory::getDbo(); $user = JLMSFactory::getUser(); $my_id = $user->get('id'); $JLMS_ACL =& JLMSFactory::getACL(); $id = $JLMS_CONFIG->get('course_id'); $AND_ST = ""; if (false !== ($enroll_period = JLMS_getEnrolPeriod($my_id, $id))) { $AND_ST = " AND IF(a.is_time_related, (a.show_period < '" . $enroll_period . "' ), 1) "; } if ($id && $JLMS_ACL->CheckPermissions('links', 'view')) { $query = "SELECT a.*, b.name as author_name" . "\n FROM #__lms_links as a LEFT JOIN #__users as b ON a.owner_id = b.id" . "\n WHERE a.course_id = '" . $id . "'" . $AND_ST . ($JLMS_ACL->CheckPermissions('links', 'view_all') ? '' : "\n AND a.published = 1") . "\n ORDER BY a.ordering, a.link_name"; $db->SetQuery($query); $rows = $db->LoadObjectList(); $lms_titles_cache =& JLMSFactory::getTitles(); $lms_titles_cache->setArray('links', $rows, 'id', 'link_name'); JLMS_course_links_html::showCourseLinks($id, $option, $rows); } elseif ($id) { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=details_course&id={$id}")); } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}")); } }
function JLMS_DatamodelSCORM($option) { global $JLMS_DB, $Itemid, $JLMS_CONFIG; $user = JLMSFactory::getUser(); $user_id = $user->get('id'); if (!$user_id) { $ssid = strval(mosGetParam($_REQUEST, 'ssid', '')); if ($ssid) { $ssid_parts = explode('_', $ssid); if (count($ssid_parts) == 2) { $pre_userid = isset($ssid_parts[0]) ? $ssid_parts[0] : 0; $pre_hash = isset($ssid_parts[1]) ? $ssid_parts[1] : 'xxxxx'; $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $hash_check = md5($pre_userid . '_' . $user_agent); if ($hash_check == $pre_hash) { $user_id = $pre_userid; } } } } if (!$user_id) { $log_scorm_id = intval(mosGetParam($_REQUEST, 'id', 0)) ? intval(mosGetParam($_REQUEST, 'id', 0)) : intval(mosGetParam($_REQUEST, 'scorm_id', 0)); $log_course_id = $JLMS_CONFIG->get('course_id') ? $JLMS_CONFIG->get('course_id') : intval(mosGetParam($_REQUEST, 'course_id', 0)); JLMSErrorLog::writeSCORMLog('SCORM tracking error - user not logged in (session hash check failed)', $log_course_id, $log_scorm_id); exit; } $id = intval(mosGetParam($_REQUEST, 'id', 0)); $skip_resume = intval(mosGetParam($_REQUEST, 'skip_resume', 0)); if ($id) { $query = "SELECT * FROM #__lms_n_scorm WHERE id = {$id}"; $JLMS_DB->SetQuery($query); $scorm = $JLMS_DB->LoadObject(); if (is_object($scorm)) { $scoid = intval(mosGetParam($_REQUEST, 'scoid', 0)); $attempt = intval(mosGetParam($_REQUEST, 'attempt', 0)); if ($scoid) { $result = true; $request = null; // (DEN) //if (has_capability('mod/scorm:savetrack', get_context_instance(CONTEXT_MODULE,$cm->id))) { if (true) { foreach ($_POST as $element => $val_post) { $element = str_replace('__', '.', $element); // (DEN) (i'm insert 'get_magic_quotes_gpc'). 15.03.2007 $value = get_magic_quotes_gpc() ? stripslashes($val_post) : $val_post; if (substr($element, 0, 3) == 'cmi') { $element = preg_replace('/N(\\d+)/', ".\$1", $element); $result = scorm_insert_track($user_id, $scorm->id, $scoid, $attempt, $element, $value) && $result; } if (substr($element, 0, 15) == 'adl.nav.request') { // SCORM 2004 Sequencing Request require_once _JOOMLMS_FRONT_HOME . '/includes/n_scorm/datamodels/scorm_13lib.php'; $search = array('@continue@', '@previous@', '@\\{target=(\\S+)\\}choice@', '@exit@', '@exitAll@', '@abandon@', '@abandonAll@'); $replace = array('continue_', 'previous_', '\\1', 'exit_', 'exitall_', 'abandon_', 'abandonall'); $action = preg_replace($search, $replace, $value); if ($action != $value) { require_once _JOOMLMS_FRONT_HOME . '/includes/n_scorm/datamodels/sequencinglib.php'; // Evaluating navigation request $valid = scorm_seq_overall($scoid, $user_id, $action); // Set valid request $search = array('@continue@', '@previous@', '@\\{target=(\\S+)\\}choice@'); $replace = array('true', 'true', 'true'); $matched = preg_replace($search, $replace, $value); if ($matched == 'true') { $request = 'adl.nav.request_valid["' . $action . '"] = "' . $valid . '";'; } } } } /* 23 November 2007 (DEN) LMS resuming fix (for 'by the best attemp' tracking method */ global $JLMS_CONFIG; $course_params = $JLMS_CONFIG->get('course_params'); $params = new JLMSParameters($course_params); if ($params->get('track_type', 0) == 1 && !$skip_resume) { //by the best attempt + skip_resume (24march2010) if ($attempt > 1) { $query = "SELECT * FROM #__lms_n_scorm_scoes_track WHERE userid = '{$user_id}' AND scormid = '{$scorm->id}' AND scoid = '{$scoid}' AND attempt = '" . ($attempt - 1) . "'"; $JLMS_DB->SetQuery($query); $prev_tracks = $JLMS_DB->LoadObjectList(); foreach ($prev_tracks as $prev_track) { $query = "SELECT count(*) FROM #__lms_n_scorm_scoes_track WHERE userid = '{$user_id}' AND scormid = '{$scorm->id}' AND scoid = '{$scoid}' AND attempt = '{$attempt}' AND element = '{$prev_track->element}'"; $JLMS_DB->SetQuery($query); $ssss = $JLMS_DB->LoadResult(); if (!$ssss) { $track = new stdClass(); $track->userid = $user_id; $track->scormid = $scorm->id; $track->scoid = $scoid; $track->attempt = $attempt; $track->element = $prev_track->element; $track->value = $prev_track->value; $track->timemodified = $prev_track->timemodified; $JLMS_DB->InsertObject('#__lms_n_scorm_scoes_track', $track, 'id'); } } } //TODO: do not resume SCORM if it is played as LPath step and LPath was restarted !!! } /* End of LMS resuming fix */ } if ($result) { echo "true\n0"; } else { echo "false\n101"; } if ($request != null) { echo "\n" . $request; } } } } exit; }
function echoMyReports($option, $Itemid) { $JLMS_CONFIG =& JLMSFactory::getConfig(); $user = JLMSFactory::getUser(); $my_id = $user->get('id'); $db =& JFactory::getDbo(); $JLMS_ACL =& JLMSFactory::getACL(); ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php echo JLMSCSS::_('jlmslist', 'jlms_homepage_list'); ?> " style="margin-top:0; margin-bottom:0;"> <tr> <?php $reports_heading = _JLMS_REPORTS_MODULE; $add_text = ''; if ($JLMS_CONFIG->get('is_trial', false) && $JLMS_CONFIG->get('trial_reports_module_heading', '')) { $reports_heading .= $JLMS_CONFIG->get('trial_reports_module_heading', ''); } if ($JLMS_CONFIG->get('is_trial', false) && $JLMS_CONFIG->get('trial_reports_module_text', '')) { $add_text = $JLMS_CONFIG->get('trial_reports_module_text', ''); } ?> <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " colspan="2" align="center" style="text-align:center"><?php echo $reports_heading; ?> </<?php echo JLMSCSS::tableheadertag(); ?> > </tr> <?php if ($add_text) { echo '<tr><td colspan="2"><div class="joomlalms_sys_message">' . $add_text . '</div></td></tr>'; } if ($JLMS_ACL->isTeacher()) { $link = sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid . "&task=report_access"); echo "<tr class='" . JLMSCSS::_('sectiontableentry1') . "'>"; echo "<td valign='middle' width='16'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/toolbar/tlb_attendance.png\" width='16' height='16' border='0' alt='agenda' /></td>"; echo "<td><a href='" . $link . "' >" . _JLMS_REPORTS_ACCESS . "</a></td></tr>"; $link = sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid . "&task=report_certif"); echo "<tr class='" . JLMSCSS::_('sectiontableentry2') . "'>"; echo "<td valign='middle' width='16'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/toolbar/tlb_attendance.png\" width='16' height='16' border='0' alt='agenda' /></td>"; echo "<td><a href='" . $link . "' >" . _JLMS_REPORTS_CONCLUSION . "</a></td></tr>"; $link = sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid . "&task=report_grade"); echo "<tr class='" . JLMSCSS::_('sectiontableentry1') . "'>"; echo "<td valign='middle' width='16'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/toolbar/tlb_attendance.png\" width='16' height='16' border='0' alt='agenda' /></td>"; echo "<td><a href='" . $link . "' >" . _JLMS_REPORTS_USER . "</a></td></tr>"; } if (($JLMS_ACL->isTeacher() || $JLMS_ACL->isStaff()) && $JLMS_CONFIG->get('show_scorm_report_link', false)) { $link = sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid . "&task=report_scorm"); echo "<tr class='" . JLMSCSS::_('sectiontableentry2') . "'>"; echo "<td valign='middle' width='16'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/toolbar/tlb_attendance.png\" width='16' height='16' border='0' alt='agenda' /></td>"; echo "<td><a href='" . $link . "' >" . _JLMS_REPORTS_SCORM . "</a></td></tr>"; } ?> </table> <?php }
function JLMS_saveDropBox($option) { $JLMS_CONFIG =& JLMSFactory::getConfig(); $Itemid = $JLMS_CONFIG->get('Itemid'); $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $db =& JFactory::getDbo(); $user = JLMSFactory::getUser(); $course_id = intval(mosGetParam($_REQUEST, 'course_id', 0)); // if ($user->get('id') && $course_id && JLMS_GetUserType($user->get('id'), $course_id) ) { $JLMS_ACL =& JLMSFactory::getACL(); if ($user->get('id') && $course_id && $JLMS_ACL->CheckPermissions('dropbox', 'view')) { $recv_id = intval(mosGetParam($_REQUEST, 'recv_id', 0)); $recv_id = mosGetParam($_POST, 'recv_id', array(0)); if (!is_array($recv_id)) { $recv_id = array(0); } if (isset($recv_id[0]) && !$recv_id[0] || !count($recv_id)) { //fix one user (ticket [QDHZ-1096]) $msg = _JLMS_DROP_ERROR_NO_SEND_TO; JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}"), $msg); } //convert array of receiver's to numeric values $i = 0; while ($i < count($recv_id)) { $recv_id[$i] = intval($recv_id[$i]); $i++; } $recv_ids = implode(',', $recv_id); $do_continue = false; /* New permissions (Max) */ $query = "SELECT count(user_id) FROM #__lms_user_courses" . "\n WHERE course_id = '" . $course_id . "' AND user_id IN ( {$recv_ids} )"; $db->setQuery($query); $count_users = $db->LoadResult(); if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_teachers')) { if ($count_users) { $do_continue = true; } else { $query = "SELECT count(c.user_id) FROM #__lms_users_in_groups as c" . "\n WHERE c.course_id = '" . $course_id . "' AND c.user_id IN ( {$recv_ids} )"; $db->setQuery($query); $count_users = $db->LoadResult(); if ($count_users) { $do_continue = true; } } } if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_learners')) { if ($count_users) { $do_continue = true; } } /* Old part */ /* if (JLMS_GetUserType($user->get('id'), $course_id) == 1) { $query = "SELECT count(user_id) FROM #__lms_user_courses" . "\n WHERE course_id = '".$course_id."' AND (role_id = 1 OR role_id = 4) AND user_id IN ( $recv_ids )"; $db->setQuery($query); $count_users = $db->LoadResult(); if ($count_users) { $do_continue = true; } else { $query = "SELECT count(c.user_id) FROM #__lms_users_in_groups as c" . "\n WHERE c.course_id = '".$course_id."' AND c.user_id IN ( $recv_ids )"; $db->setQuery($query); $count_users = $db->LoadResult(); if ($count_users) { $do_continue = true; } } } elseif (JLMS_GetUserType($user->get('id'), $course_id) == 2) { $query = "SELECT count(user_id) FROM #__lms_user_courses" . "\n WHERE course_id = '".$course_id."' AND (role_id = 1 OR role_id = 4) AND user_id IN ( $recv_ids )"; $db->setQuery($query); $count_users = $db->LoadResult(); if ($count_users) { $do_continue = true; } } */ // (TIPS) // sender: teacher - RECEIVER must be teacher of this course or student of this course // sender: student - RECEIVER must be teacher of this course $flag = false; if ($do_continue) { if ($_FILES['userfile']['name'] == '') { $file_id = 0; $flag = true; } else { $file_id = JLMS_uploadFile($course_id); if ($file_id) { $flag = true; } } $_POST['drp_type'] = 1; if (intval(mosGetParam($_REQUEST, 'file_id', 0))) { $file_id = intval(mosGetParam($_REQUEST, 'file_id', 0)); $_POST['drp_type'] = 2; } if ($flag) { $row = new mos_Joomla_LMS_DropBox($db); if (!$row->bind($_POST)) { echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n"; exit; } $row->file_id = $file_id; $row->owner_id = $user->get('id'); $row->drp_mark = 1; /*$query = "SELECT file_name FROM #__lms_files WHERE id = '".$file_id."'"; $db->SetQuery( $query ); $row->drp_name = $db->LoadResult();*/ //$row->drp_name = strval(mosGetParam($_FILES['userfile'], 'name', 'dropbox_file')); if ($file_id > 0) { if ($row->drp_type == 1) { $drp_name = isset($_FILES['userfile']['name']) ? strval($_FILES['userfile']['name']) : 'dropbox_file'; } else { if ($row->drp_type == 2) { $drp_name = strval(mosGetParam($_REQUEST, 'dropbox_name', 'dropbox_file_(' . time() . ')')); } } } else { $drp_name = mosGetParam($_REQUEST, 'dropbox_name'); } $drp_name = get_magic_quotes_gpc() ? stripslashes($drp_name) : $drp_name; $row->drp_name = ampReplace(strip_tags($drp_name)); $row->drp_description = strval(JLMS_getParam_LowFilter($_POST, 'drp_description', '')); //$row->drp_description = JLMS_ProcessText_LowFilter($row->drp_description); // if (JLMS_GetUserType($user->get('id'), $course_id ) == 1) { if ($JLMS_ACL->CheckPermissions('dropbox', 'mark_as_corrected')) { $drp_corr = intval(mosGetParam($_REQUEST, 'drp_corrected', 0)); if ($drp_corr != 1) { $drp_corr = 0; } $row->drp_corrected = $drp_corr; } else { $row->drp_corrected = 0; } $row->drp_time = date('Y-m-d H:i:s'); //Replace old function JLMS_GetUserType //tmp $users_teachers = array(); $users_learners = array(); if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_teachers')) { $query = "SELECT a.* FROM #__users as a, #__lms_user_courses as c" . "\n WHERE a.id = c.user_id AND c.course_id = '" . $course_id . "' AND a.id <> '" . $user->id . "'" . "\n ORDER BY a.username"; $db->SetQuery($query); $users_teachers = $db->LoadObjectList(); $i = 0; while ($i < count($users_teachers)) { $users_teachers[$i]->username = _JLMS_ROLE_TEACHER . ' - ' . $users_teachers[$i]->name . ' (' . $users_teachers[$i]->username . ')'; $i++; } } if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_learners')) { $users_learners = JLMS_getCourseStudentsList($course_id); } $tmp = array(); foreach ($users_teachers as $n => $ut) { $tmp[$n] = $ut->id; } if (count($tmp)) { $users_teachers = $tmp; } $tmp = array(); foreach ($users_learners as $n => $ul) { $tmp[$n] = $ul->id; } if (count($tmp)) { $users_learners = $tmp; } //Replace old function JLMS_GetUserType //tmp foreach ($recv_id as $recv) { $check_recv = false; //Replace old function JLMS_GetUserType //tmp if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_teachers') && in_array($recv, $users_teachers)) { $check_recv = true; } if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_learners') && in_array($recv, $users_learners)) { $check_recv = true; } //Replace old function JLMS_GetUserType //tmp // if ($recv && ($recv != $user->get('id')) && ((JLMS_GetUserType($user->get('id'), $course_id) == 1 && JLMS_GetUserType($recv, $course_id)) || ((JLMS_GetUserType($user->get('id'), $course_id) == 2) && (JLMS_GetUserType($recv, $course_id, true) == 1))) || ((JLMS_GetUserType($user->get('id'), $course_id) == 2) && (JLMS_GetUserType($recv, $course_id, true) == 2)) ) { //old if ($recv && $recv != $user->get('id') && $check_recv) { $row->id = 0; $row->recv_id = $recv; if (!$row->check()) { echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n"; exit; } if (!$row->store()) { echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n"; exit; } //*** send email notification $e_course = new stdClass(); $e_course->course_alias = ''; $e_course->course_name = ''; $query = "SELECT course_name, name_alias FROM #__lms_courses WHERE id = '" . $course_id . "'"; $db->setQuery($query); $e_course = $db->loadObject(); $e_user = new stdClass(); $e_user->name = ''; $e_user->email = ''; $e_user->username = ''; $query = "SELECT email, name, username FROM #__users WHERE id = '" . $recv . "'"; $db->setQuery($query); $e_user = $db->loadObject(); $e_params['user_id'] = $recv; $e_params['course_id'] = $course_id; $e_params['markers']['{email}'] = $e_user->email; $e_params['markers']['{name}'] = $e_user->name; $e_params['markers']['{username}'] = $e_user->username; $e_params['markers']['{coursename}'] = $e_course->course_name; //( $e_course->course_alias )?$e_course->course_alias:$e_course->course_name; $e_params['markers']['{filename}'] = $row->drp_name; $e_params['markers']['{courselink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}&task=details_course&id={$course_id}"); $e_params['markers_nohtml']['{courselink}'] = $e_params['markers']['{courselink}']; $e_params['markers']['{courselink}'] = '<a href="' . $e_params['markers']['{courselink}'] . '">' . $e_params['markers']['{courselink}'] . '</a>'; $e_params['markers']['{lmslink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}"); $e_params['markers_nohtml']['{lmslink}'] = $e_params['markers']['{lmslink}']; $e_params['markers']['{lmslink}'] = '<a href="' . $e_params['markers']['{lmslink}'] . '">' . $e_params['markers']['{lmslink}'] . '</a>'; $e_params['action_name'] = 'OnNewDropboxFile'; $_JLMS_PLUGINS->loadBotGroup('emails'); $plugin_result_array = $_JLMS_PLUGINS->trigger('OnNewDropboxFile', array(&$e_params)); //*** end of emails } } JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}")); } else { mosErrorAlert("Upload of " . $userfile_name . " failed"); } } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}")); } } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}")); } }
function showCourseLinks($id, $option, &$rows) { $user = JLMSFactory::getUser(); $db =& JFactory::getDbo(); $JLMS_ACL =& JLMSFactory::getACL(); $JLMS_CONFIG = JLMSFactory::getConfig(); $Itemid = $JLMS_CONFIG->get('Itemid'); ?> <script language="javascript" type="text/javascript"> <!--//--><![CDATA[//><!-- function submitbutton(pressbutton) { var form = document.adminForm; if ( ((pressbutton == 'link_delete') || (pressbutton == 'pre_link_edit')) && (form.boxchecked.value == "0")){ alert("<?php echo _JLMS_ALERT_SELECT_ITEM; ?> "); } else { form.task.value = pressbutton; form.submit(); } } function submitbutton_order(pressbutton, item_id) { var form = document.adminForm; if ((pressbutton == 'link_orderup') || (pressbutton == 'link_orderdown')){ if (item_id) { form.task.value = pressbutton; form.row_id.value = item_id; form.submit(); } } } function submitbutton_change(pressbutton, state) { var form = document.adminForm; if (pressbutton == 'change_link'){ if (form.boxchecked.value == "0") { alert("<?php echo _JLMS_ALERT_SELECT_ITEM; ?> "); } else { form.task.value = pressbutton; form.state.value = state; form.submit(); } } } function submitbutton_change2(pressbutton, state, cid_id) { var form = document.adminForm; if (pressbutton == 'change_link'){ form.task.value = pressbutton; form.state.value = state; form.cid2.value = cid_id; form.submit(); } } //--><!]]> </script> <?php JLMS_TMPL::OpenMT(); $hparams = array(); JLMS_TMPL::ShowHeader('link', _JLMS_LINKS_COURSE_LINKS, $hparams); JLMS_TMPL::OpenTS(); ?> <form action="<?php echo $JLMS_CONFIG->get('live_site') . "/index.php?option={$option}&Itemid={$Itemid}"; ?> " method="post" name="adminForm"> <?php if (!empty($rows)) { ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php echo JLMSCSS::_('jlmslist'); ?> "> <tr> <<?php echo JLMSCSS::tableheadertag(); ?> width="20" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " align="center">#</<?php echo $JLMS_CONFIG->get('tableheader_tag', 'td'); ?> > <?php if ($JLMS_ACL->CheckPermissions('links', 'manage') || $JLMS_ACL->CheckPermissions('links', 'publish')) { ?> <<?php echo JLMSCSS::tableheadertag(); ?> width="20" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " align="center"><input type="checkbox" name="toggle" value="" onclick="checkAll(<?php echo count($rows); ?> );" /></<?php echo $JLMS_CONFIG->get('tableheader_tag', 'td'); ?> > <?php } ?> <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " width="40%"><?php echo _JLMS_LINKS_TBL_HEAD_LINK; ?> </<?php echo $JLMS_CONFIG->get('tableheader_tag', 'td'); ?> > <?php if ($JLMS_ACL->CheckPermissions('links', 'publish')) { ?> <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " width="1"> </<?php echo $JLMS_CONFIG->get('tableheader_tag', 'td'); ?> > <?php } if ($JLMS_ACL->CheckPermissions('links', 'order')) { ?> <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " colspan="2" width="1"> </<?php echo $JLMS_CONFIG->get('tableheader_tag', 'td'); ?> > <?php } ?> <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " width="60%"><?php echo _JLMS_LINKS_TBL_HEAD_DESCR; ?> </<?php echo $JLMS_CONFIG->get('tableheader_tag', 'td'); ?> > </tr> <?php $there_were_squeezeboxes = false; $k = 1; for ($i = 0, $n = count($rows); $i < $n; $i++) { $is_squeezebox = false; $row = $rows[$i]; $link = $row->link_href; if ($row->link_type == 2) { $link = sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=view_inline_link&course_id={$id}&id={$row->id}"); } if ($row->link_type == 3) { $is_squeezebox = true; $there_were_squeezeboxes = true; } $alt = $row->published ? _JLMS_STATUS_PUB : _JLMS_STATUS_UNPUB; $image = $row->published ? 'btn_accept.png' : 'btn_cancel.png'; $state = $row->published ? 0 : 1; if ($row->is_time_related) { $tooltip_txt = _JLMS_WILL_BE_RELEASED_IN; $showperiod = $row->show_period; $ost1 = $showperiod % (24 * 60); $sp_days = ($showperiod - $ost1) / (24 * 60); $ost2 = $showperiod % 60; $sp_hours = ($ost1 - $ost2) / 60; $sp_mins = $ost2; $release_time_info = false; if ($sp_days) { $tooltip_txt .= ' ' . $sp_days . ' ' . _JLMS_RELEASED_IN_DAYS; $release_time_info = true; } if ($sp_hours) { $tooltip_txt .= ' ' . $sp_hours . ' ' . _JLMS_RELEASED_IN_HOURS; $release_time_info = true; } if ($sp_mins) { $tooltip_txt .= ' ' . $sp_mins . ' ' . _JLMS_RELEASED_IN_MINUTES; $release_time_info = true; } if ($release_time_info) { $tooltip_txt .= ' ' . _JLMS_RELEASED_AFTER_ENROLLMENT; } } $checked = mosHTML::idBox($i, $row->id); ?> <tr class="<?php echo JLMSCSS::_('sectiontableentry' . $k); ?> "> <td align="center"><?php echo $i + 1; ?> </td> <?php if ($JLMS_ACL->CheckPermissions('links', 'manage') || $JLMS_ACL->CheckPermissions('links', 'publish')) { $show_check = true; if ($JLMS_ACL->CheckPermissions('links', 'only_own_items') && $row->owner_id != $user->get('id')) { $show_check = false; } elseif ($JLMS_ACL->CheckPermissions('links', 'only_own_role') && $JLMS_ACL->GetRole() != $JLMS_ACL->UserSystemRole($db, $row->owner_id)) { $show_check = false; } ?> <td> <?php echo $show_check ? $checked : ' '; ?> </td> <?php } ?> <td align="left"> <?php if ($is_squeezebox) { $tmp_params = new JLMSParameters($row->params); $x_size = 0; $y_size = 0; if (is_object($tmp_params) && $tmp_params->get('display_width')) { $x_size = intval($tmp_params->get('display_width')); } elseif (isset($tmp_params->display_width)) { $x_size = intval($tmp_params->display_width); } if (is_object($tmp_params) && $tmp_params->get('display_height')) { $y_size = intval($tmp_params->get('display_height')); } elseif (isset($tmp_params->display_height)) { $y_size = intval($tmp_params->display_height); } ?> <a class="jlms_modal" rel="{handler:'iframe', size:{x:<?php echo $x_size; ?> ,y:<?php echo $y_size; ?> }}" href="<?php echo $link; ?> " title="<?php echo str_replace('"', '"', $row->link_name); ?> "> <?php echo $row->link_name; ?> </a> <?php } else { ?> <?php if ($link) { ?> <a <?php echo !$row->link_type ? 'target="_blank" ' : ' '; ?> href="<?php echo $link; ?> " title="<?php echo str_replace('"', '"', $row->link_name); ?> "> <?php echo $row->link_name; ?> </a> <?php } else { echo $row->link_name; } ?> <?php } ?> <?php if ($JLMS_CONFIG->get('show_links_authors', 0)) { ?> <br /> <span class="small"><?php echo _JLMS_HOME_AUTHOR . " " . $row->author_name; ?> </span> <?php } ?> </td> <?php if ($JLMS_ACL->CheckPermissions('links', 'publish')) { ?> <td valign="middle"> <?php if ($JLMS_ACL->CheckPermissions('links', 'only_own_items') && $row->owner_id != $user->get('id')) { ?> <img class="JLMS_png" src="<?php echo $JLMS_CONFIG->get('live_site'); ?> /components/com_joomla_lms/lms_images/toolbar/<?php echo $image; ?> " width="16" height="16" border="0" alt="<?php echo $alt; ?> " /> <?php } elseif ($JLMS_ACL->CheckPermissions('links', 'only_own_role') && $JLMS_ACL->GetRole() != $JLMS_ACL->UserSystemRole($db, $row->owner_id)) { ?> <img class="JLMS_png" src="<?php echo $JLMS_CONFIG->get('live_site'); ?> /components/com_joomla_lms/lms_images/toolbar/<?php echo $image; ?> " width="16" height="16" border="0" alt="<?php echo $alt; ?> " /> <?php } else { if ($row->is_time_related) { if ($row->published) { $image = 'btn_publish_wait.png'; } $tooltip_link = 'javascript:submitbutton_change2(\'change_link\',' . $state . ',' . $row->id . ')'; $tooltip_name = '<img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/' . $image . '" width="16" height="16" border="0" alt="' . $alt . '" />'; echo JLMS_toolTip($alt, $tooltip_txt, $tooltip_name, $tooltip_link); } else { echo '<a href="javascript:submitbutton_change2(\'change_link\',' . $state . ',' . $row->id . ')" title="' . $alt . '">'; echo '<img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/' . $image . '" width="16" height="16" border="0" alt="' . $alt . '" />'; echo '</a>'; } } ?> </td> <?php } if ($JLMS_ACL->CheckPermissions('links', 'order')) { ?> <td><?php echo JLMS_orderUpIcon($i, $row->id, true, 'link_orderup'); ?> </td> <td><?php echo JLMS_orderDownIcon($i, $n, $row->id, true, 'link_orderdown'); ?> </td> <?php } ?> <td><?php echo $row->link_description ? $row->link_description : ' '; ?> </td> </tr> <?php $k = 3 - $k; } ?> </table> <?php if ($there_were_squeezeboxes) { JLMS_initialize_SqueezeBox(false); } } else { echo '<div class="joomlalms_user_message">' . _JLMS_NO_ITEMS_HERE . '</div>'; } ?> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="setup_category" /> <input type="hidden" name="boxchecked" value="0" /> <input type="hidden" name="id" value="<?php echo $id; ?> " /> <input type="hidden" name="row_id" value="0" /> <input type="hidden" name="state" value="0" /> <input type="hidden" name="cid2" value="0" /> </form> <?php JLMS_TMPL::CloseTS(); if ($id && ($JLMS_ACL->CheckPermissions('links', 'manage') || $JLMS_ACL->CheckPermissions('links', 'publish'))) { $link_new = JLMSRoute::_("index.php?option={$option}&Itemid={$Itemid}&task=pre_create_link&id={$id}"); $controls = array(); if ($JLMS_ACL->CheckPermissions('links', 'publish')) { $controls[] = array('href' => "javascript:submitbutton_change('change_link',1);", 'title' => _JLMS_SET_PUB, 'img' => 'publish'); $controls[] = array('href' => "javascript:submitbutton_change('change_link',0);", 'title' => _JLMS_SET_UNPUB, 'img' => 'unpublish'); if ($JLMS_ACL->CheckPermissions('links', 'manage')) { $controls[] = array('href' => 'spacer'); } } if ($JLMS_ACL->CheckPermissions('links', 'manage')) { $controls[] = array('href' => $link_new, 'onclick' => "", 'title' => _JLMS_LINKS_IMG_NEW_LINK, 'img' => 'add'); $controls[] = array('href' => "javascript:submitbutton('link_delete');", 'title' => _JLMS_LINKS_IMG_DEL_LINK, 'img' => 'delete'); $controls[] = array('href' => "javascript:submitbutton('pre_link_edit');", 'title' => _JLMS_LINKS_IMG_EDIT_LINK, 'img' => 'edit'); } JLMS_TMPL::ShowControlsFooter($controls); } JLMS_TMPL::CloseMT(); }
function JLMS_show_calendar($id, $option) { $JLMS_CONFIG =& JLMSFactory::getConfig(); $Itemid = $JLMS_CONFIG->get('Itemid'); $db =& JFactory::getDbo(); $user = JLMSFactory::getUser(); $my_id = $user->get('id'); $JLMS_ACL =& JLMSFactory::getACL(); $assigned_groups_only = $JLMS_ACL->CheckPermissions('advanced', 'assigned_groups_only'); $view_all_course_categories = $JLMS_ACL->CheckPermissions('advanced', 'view_all_course_categories'); //show top menu JLMS_agenda_html::show_head_menu($id, $option); //select all events if ($id) { $course_id = array($id); } else { $course_id = JLMS_GetUserCourses_IDs($my_id); if (!is_array($course_id) || empty($course_id)) { $course_id = array(0); } } //opredeliaem type usera $mode = mosGetParam($_REQUEST, 'mode', ''); $sort = mosGetParam($_REQUEST, 'jlms_agenda_order', 'desc'); $filter = mosGetParam($_REQUEST, 'jlms_agenda_filter', ''); $where = ''; switch ($filter) { case 'current': $where .= "\n AND end_date >= '" . date('Y-m-d') . "' AND start_date <= '" . date('Y-m-d') . "'"; break; case 'upcoming': $where .= "\n AND start_date > '" . date('Y-m-d') . "'"; break; } $course_id = implode(',', $course_id); if ($mode != 'add_avent' || $mode != 'edit_event') { $members = "'0'"; if ($JLMS_ACL->_role_type == 2 || $JLMS_ACL->_role_type == 3 || $JLMS_ACL->_role_type == 4) { if ($assigned_groups_only) { $groups_where_admin_manager = JLMS_ACL_HELPER::GetAssignedGroups($my_id, $id); $groups_where_isset_user = JLMS_ACL_HELPER::GetUserGlobalGroup($my_id, $id); $groups_where_admin_manager = array_merge($groups_where_admin_manager, $groups_where_isset_user); if (count($groups_where_admin_manager)) { $where .= "\n AND (is_limited = 0 OR `groups` LIKE '%|{$groups_where_admin_manager['0']}|%'"; for ($i = 1; $i < count($groups_where_admin_manager); $i++) { $where .= "\n OR `groups` like '%|{$groups_where_admin_manager[$i]}|%'"; } $where .= "\n OR owner_id = '" . $my_id . "')"; } else { $where .= "\n AND (is_limited = 0 OR owner_id = '" . $my_id . "' OR agenda_id = 0) AND groups = ''"; } } } elseif ($JLMS_ACL->_role_type < 2) { $query = "select a.group_id FROM #__lms_users_in_global_groups as a WHERE a.user_id = '" . $my_id . "' AND a.subgroup1_id = 0 AND a.group_id > 0"; $db->setQuery($query); $temp1 = $db->loadResultArray(); $query = "select subgroup1_id FROM #__lms_users_in_global_groups WHERE user_id = '" . $my_id . "' AND subgroup1_id > 0"; $db->setQuery($query); $temp2 = $db->loadResultArray(); $group_where_isset_user = array_merge($temp1, $temp2); if (count($group_where_isset_user)) { $where .= "\n AND (( `groups` <> '' AND `groups` IS NOT NULL AND (`groups` LIKE '%|{$group_where_isset_user['0']}|%'"; for ($i = 1; $i < count($group_where_isset_user); $i++) { $where .= "\n OR `groups` like '%|{$group_where_isset_user[$i]}|%'"; } $where .= "\n )) OR (is_limited = 0 AND (`groups` = '' OR `groups` IS NULL)))"; } } $query = "SELECT * FROM #__lms_agenda WHERE course_id IN ({$course_id})" . $where . "\n ORDER BY start_date "; $db->setQuery($query); $rows = $db->LoadObjectList(); $lms_titles_cache =& JLMSFactory::getTitles(); $lms_titles_cache->setArray('agenda', $rows, 'agenda_id', 'title'); if ($JLMS_ACL->_role_type < 2) { $rows = filterByShowPeriod($rows); } } //select date (if no, select current date) $cal_date = false; if (isset($_REQUEST['cal_date']) && $_REQUEST['cal_date'] != '' && strtotime($_REQUEST['cal_date']) != -1) { $cal_date = $_REQUEST['cal_date']; } else { if (isset($_REQUEST['date']) && $_REQUEST['date'] != '' && strtotime($_REQUEST['date']) != -1) { $cal_date = $_REQUEST['date']; } } if ($cal_date) { $now_date = JLMS_dateToDB($cal_date); $strDate = $now_date; $isValid = false; //proverka pravilnosti date $dateArr = getdate(strtotime($now_date)); $y = $dateArr['year']; $m = $dateArr['mon']; $d = $dateArr['mday']; $isValid = checkdate($m, $d, $y); if (!$isValid) { $now_date = date('Y-m-d'); } } else { $now_date = date('Y-m-d'); } $date = strtotime($now_date); if ($id && $JLMS_ACL->CheckPermissions('announce', 'view')) { switch ($mode) { case 'view_month': JLMS_agenda_html::show_calendar_month($id, $option, $rows, $date); break; case 'view_week': JLMS_agenda_html::show_calendar_week($id, $option, $rows, $date); break; case 'view_day': JLMS_agenda_html::show_calendar_day($id, $option, $rows, $date); break; case 'add_event': $JLMS_ACL =& JLMSFactory::getACL(); global $JLMS_CONFIG; $id = $JLMS_CONFIG->get('course_id'); if ($id && $JLMS_ACL->CheckPermissions('announce', 'manage')) { $lists['groups'] = JLMSmultiselect(array(), true, $id); if ($assigned_groups_only) { $lists['is_limited'] = mosHTML::yesnoRadioList('is_limited', 'disabled="disabled" class="inputbox" ', 1); } else { $lists['is_limited'] = mosHTML::yesnoRadioList('is_limited', 'class="inputbox" ', 0); } JLMS_agenda_html::show_add_event($id, $option, $agenda_item = '', $lists); } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=agenda&id={$id}")); } break; case 'cancel_agenda': JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=agenda&id={$id}")); break; case 'event_save': JLMS_save_event($option); break; case 'edit': JLMS_edit_event($option, $id); break; case 'delete': JLMS_delete_event($option, $id); break; default: show_agenda_items($id, $option, $rows, $date, $sort); break; } } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=details_course&id={$id}")); } }
function showCourseDocuments($id, $option, &$rows, &$lists, &$possibilities) { $JLMS_CONFIG =& JLMSFactory::getConfig(); $Itemid = $JLMS_CONFIG->get('Itemid'); $db =& JFactory::getDbo(); $user = JLMSFactory::getUser(); $JLMS_ACL =& JLMSFactory::getACL(); $lms_img_path = $JLMS_CONFIG->get('live_site') . '/' . $JLMS_CONFIG->get('lms_path_to_images', 'components/com_joomla_lms/lms_images'); $rows_c = $lists['collapsed_folders']; ?> <script language="javascript" type="text/javascript"> <!--//--><![CDATA[//><!-- function submitbutton(pressbutton) { var form = document.adminForm; if ((pressbutton == 'doc_delete') && (form.boxchecked.value == '0')) { alert( "<?php echo _JLMS_ALERT_SELECT_ITEM; ?> " ); } else if((pressbutton == 'doc_delete')){ if(confirm('<?php echo _JLMS_OUTDOCS_JS_CONFIRM_DELETE; ?> ')){ form.task.value = pressbutton; form.submit(); } } else if ((pressbutton == 'edit_doc') && (form.boxchecked.value == '0')) { alert( "<?php echo _JLMS_ALERT_SELECT_ITEM; ?> " ); } else { form.task.value = pressbutton; form.submit(); } } function submitbutton_change(pressbutton, state) { var form = document.adminForm; if (pressbutton == 'change_doc'){ if (form.boxchecked.value == '0') { alert( "<?php echo _JLMS_ALERT_SELECT_ITEM; ?> " ); } else { form.task.value = pressbutton; form.state.value = state; form.submit(); } } } function submitbutton_change2(pressbutton, state, cid_id) { var form = document.adminForm; if (pressbutton == 'change_doc'){ form.task.value = pressbutton; form.state.value = state; form.cid2.value = cid_id; form.submit(); } } function submitbutton_order(pressbutton, item_id) { var form = document.adminForm; if ((pressbutton == 'doc_orderup') || (pressbutton == 'doc_orderdown')){ if (item_id) { form.task.value = pressbutton; form.row_id.value = item_id; form.submit(); } } } function cf_saveorder(){ var form = document.adminForm; form.task.value = 'doc_saveorder'; form.submit(); } var TreeArray1 = new Array(); var TreeArray2 = new Array(); var Is_ex_Array = new Array(); <?php $i = 1; foreach ($rows as $row) { if ($row->p_view) { echo "TreeArray1[" . $i . "] = " . $row->parent_id . ";"; echo "TreeArray2[" . $i . "] = " . $row->id . ";"; if (in_array($row->id, $rows_c)) { echo "Is_ex_Array[" . $i . "] = 0;"; } else { echo "Is_ex_Array[" . $i . "] = 1;"; } $i++; } } ?> function Hide_Folder(fid) { var vis_style = 'hidden'; var dis_style = 'none'; var i = 1; while (i < TreeArray1.length) { if (TreeArray1[i] == fid) { getObj('tree_row_'+TreeArray2[i]).style.visibility = vis_style; getObj('tree_row_'+TreeArray2[i]).style.display = dis_style; Hide_Folder(TreeArray2[i]) } i ++; } } function Show_Folder(fid) { var vis_style = 'visible'; var dis_style = ''; var i = 1; while (i < TreeArray1.length) { if (TreeArray1[i] == fid) { if (getObj('tree_row_'+TreeArray2[i])) { getObj('tree_row_'+TreeArray2[i]).style.display = dis_style; getObj('tree_row_'+TreeArray2[i]).style.visibility = vis_style; } NoChange_Folder(TreeArray2[i]) } i ++; } } function NoChange_Folder(fid) { var vis_style = 'hidden';var dis_style = 'none';var i = 1;var j = 0; while (i < TreeArray2.length) { if ( (TreeArray2[i] == fid) && (Is_ex_Array[i] == 1) ) { vis_style = 'visible'; dis_style = ''; j = 1; } i ++; } i = 1; while (i < TreeArray1.length) { if (TreeArray1[i] == fid) { getObj('tree_row_'+TreeArray2[i]).style.visibility = vis_style; getObj('tree_row_'+TreeArray2[i]).style.display = dis_style; if (j == 1) { NoChange_Folder(TreeArray2[i]); } else { Hide_Folder(TreeArray2[i]); } } i ++; } } function Ex_Folder(fid) { var i = 1; var j = 1; while (i < TreeArray2.length) { if ( (TreeArray2[i] == fid) && (Is_ex_Array[i] == 1) ) { j = 0; } i ++; } if (j == 1) { Show_Folder(fid); if (getObj('tree_img_' + fid).runtimeStyle) { var StStr = getObj('tree_img_' + fid).runtimeStyle.filter; var imgStr = getObj('tree_img_' + fid).outerHTML; imgStr = imgStr.replace('expandall.png','collapseall.png').replace('<?php echo _JLMS_DOCS_EXP_FOLDER; ?> ', '<?php echo _JLMS_DOCS_COLL_FOLDER; ?> '); StStr = StStr.replace('expandall.png','collapseall.png'); getObj('tree_img_' + fid).outerHTML = imgStr; getObj('tree_img_' + fid).runtimeStyle.filter = StStr; } else { getObj('tree_img_' + fid).src = '<?php echo $JLMS_CONFIG->get('live_site'); ?> /components/com_joomla_lms/lms_images/docs/collapseall.png'; getObj('tree_img_' + fid).alt = '<?php echo _JLMS_DOCS_COLLAPSE; ?> '; getObj('tree_img_' + fid).title = '<?php echo _JLMS_DOCS_COLL_FOLDER; ?> '; } } else { Hide_Folder(fid); if (getObj('tree_img_' + fid).runtimeStyle) { var StStr = getObj('tree_img_' + fid).runtimeStyle.filter; var imgStr = getObj('tree_img_' + fid).outerHTML; imgStr = imgStr.replace('collapseall.png','expandall.png').replace('<?php echo _JLMS_DOCS_COLL_FOLDER; ?> ', '<?php echo _JLMS_DOCS_EXP_FOLDER; ?> '); StStr = StStr.replace('collapseall.png','expandall.png'); getObj('tree_img_' + fid).outerHTML = imgStr; getObj('tree_img_' + fid).runtimeStyle.filter = StStr; } else { getObj('tree_img_' + fid).src = '<?php echo $JLMS_CONFIG->get('live_site'); ?> /components/com_joomla_lms/lms_images/docs/expandall.png'; getObj('tree_img_' + fid).alt = '<?php echo _JLMS_DOCS_EXPAND; ?> '; getObj('tree_img_' + fid).title = '<?php echo _JLMS_DOCS_EXP_FOLDER; ?> '; } } i = 1; while (i < TreeArray2.length) { if ( (TreeArray2[i] == fid) ) { if (Is_ex_Array[i] == 1) { Is_ex_Array[i] = 0; } else { Is_ex_Array[i] = 1; } } i ++; } } <?php if ($possibilities->manage && count($rows)) { ?> var docs_save_blocked = false; function Docs_WriteSysMsg(mes) { if (jlms_writetxt('joomlalms_sys_message', mes)) { getObj('joomlalms_sys_message_container').style.display = ''; getObj('joomlalms_sys_message_container').style.visibility = 'visible'; } } function Docs_save_view() { if (!docs_save_blocked) { var prepare_str = ''; Docs_WriteSysMsg("<img src='<?php echo $JLMS_CONFIG->get('live_site') . '/' . $JLMS_CONFIG->get('ajax_settings_small_indicator'); ?> ' />"); i = 1; var ps_pref = ''; while (i < TreeArray2.length) { if (Is_ex_Array[i] == 0) { prepare_str = ''+ prepare_str + ps_pref + TreeArray2[i]; ps_pref = '-'; } i ++; } Docs_MakeRequest(prepare_str); } } function Docs_analize_req(http_request) { if (http_request.readyState == 4) { if ((http_request.status == 200)) { if(http_request.responseXML.documentElement == null){ try { http_request.responseXML.loadXML(http_request.responseText) } catch (e) { /*alert("Can't load");*/ } } response = http_request.responseXML.documentElement; var mes = response.getElementsByTagName('message')[0].firstChild.data } else { var mes = "Request failed"; } Docs_WriteSysMsg(mes); docs_save_blocked = false; } } function Docs_MakeRequest(req_str) { docs_save_blocked = true; var http_request = false; if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } else if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); } } if (!http_request) { return false; } http_request.onreadystatechange = function() { Docs_analize_req(http_request); }; var lp_url_prefix2 = ''; var post_target = '<?php echo $JLMS_CONFIG->get('ajax_settings_request_safe_path'); ?> '; var url = 'task=documents_view_save&id=<?php echo $id; ?> &folders='+req_str; http_request.open("POST", post_target, true); http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http_request.setRequestHeader("Content-length", url.length); //http_request.setRequestHeader("Connection", "close"); http_request.send(url); } <?php } ?> JLMS_preloadImages('<?php echo $JLMS_CONFIG->get('live_site'); ?> /components/com_joomla_lms/lms_images/docs/expandall.png','<?php echo $JLMS_CONFIG->get('live_site'); ?> /components/com_joomla_lms/lms_images/docs/collapseall.png'<?php echo ", '" . $JLMS_CONFIG->get('live_site') . '/' . $JLMS_CONFIG->get('ajax_settings_small_indicator') . "'"; ?> ); //--><!]]> </script> <?php JLMS_TMPL::OpenMT(); $hparams = array(); $toolbar = array(); if ($JLMS_ACL->CheckPermissions('docs', 'manage') && count($rows)) { // this feature is available only for users who has 'documents' manage permission (for entire tool) $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:Docs_save_view();", 'btn_title' => _JLMS_DOCS_SAVE_VIEW_TITLE); } JLMS_TMPL::ShowHeader('docs', _JLMS_DOCS_COURSE_DOCS, $hparams, $toolbar); $max_tree_width = 0; if (isset($rows[0])) { $max_tree_width = $rows[0]->tree_max_width; } JLMS_TMPL::OpenTS(); ?> <form action="<?php echo $JLMS_CONFIG->get('live_site') . "/index.php?option=" . $option . "&Itemid=" . $Itemid; ?> " method="post" name="adminForm" enctype="multipart/form-data"> <?php if (!empty($rows)) { ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" id="jlms_doc_non_scr" class="<?php echo JLMSCSS::_('jlmslist'); ?> "> <tr> <<?php echo JLMSCSS::tableheadertag(); ?> width="20" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " align="center">#</<?php echo JLMSCSS::tableheadertag(); ?> > <?php if ($possibilities->manage || $possibilities->publish) { ?> <<?php echo JLMSCSS::tableheadertag(); ?> width="20" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "><input type="checkbox" value="0" name="fake_checkbox" style="visibility:hidden" /></<?php echo JLMSCSS::tableheadertag(); ?> > <?php } ?> <?php for ($th_i = 0; $th_i < $max_tree_width + 1; $th_i++) { ?> <<?php echo JLMSCSS::tableheadertag(); ?> width="16" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "> </<?php echo JLMSCSS::tableheadertag(); ?> > <?php } ?> <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " width="45%"><span style="display:block; width:150px; text-align:left;"><?php echo _JLMS_DOCS_TBL_DOCNAME; ?> </span></<?php echo JLMSCSS::tableheadertag(); ?> > <?php if ($possibilities->order) { ?> <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " colspan="2" width="1"> <?php echo JText::_(_JLMS_REORDER); ?> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " width="1"> <?php echo _JLMS_ORDER; ?> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " width="1"> <a href="javascript:saveorder(<?php echo count($rows) - 1; ?> , 'doc_saveorder');"> <img src="<?php echo $lms_img_path; ?> /toolbar/tlb_filesave.png" border="0" width="16" height="16" alt="<?php echo _JLMS_SAVEORDER; ?> " title="<?php echo _JLMS_SAVEORDER; ?> " /> </a> </<?php echo JLMSCSS::tableheadertag(); ?> > <?php } ?> <?php if ($possibilities->manage || $possibilities->publish) { ?> <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " width="1"> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "><?php echo _JLMS_DOCS_TBL_STARTING; ?> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "><?php echo _JLMS_DOCS_TBL_ENDING; ?> </<?php echo JLMSCSS::tableheadertag(); ?> > <?php } ?> <<?php echo JLMSCSS::tableheadertag(); ?> class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " width="60%"><span style="display:block; width:110px;"><?php echo _JLMS_DOCS_TBL_DESCR; ?> </span></<?php echo JLMSCSS::tableheadertag(); ?> > </tr> <?php $k = 1; $tree_modes = array(); $visible_folder = true; //$next_row_is_visible = true; $vis_mode = 0; $doc_number = 1; for ($i = 0, $n = count($rows); $i < $n; $i++) { $row = $rows[$i]; if ($row->p_view) { // if user can view this item $max_tree_width = $row->tree_max_width; $link = ''; $link_title = ''; if ($row->folder_flag == 2) { $link = sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid . "&task=docs_view_zip&course_id=" . $id . "&id=" . $row->id); $link_title = _JLMS_T_A_VIEW_ZIP_PACK; } elseif ((!$row->folder_flag || $row->folder_flag == 3) && $row->file_id) { $link = sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid . "&task=get_document&course_id=" . $id . "&id=" . $row->id); $link_title = _JLMS_DOCS_LINK_DOWNLOAD; } elseif ((!$row->folder_flag || $row->folder_flag == 3) && !$row->file_id) { $link = sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid . "&task=docs_view_content&course_id=" . $id . "&id=" . $row->id); $link_title = _JLMS_T_A_VIEW_CONTENT; } $time_p = $row->publish_start || $row->publish_end; $alt = $row->published ? $time_p ? _JLMS_STATUS_PUB2 : _JLMS_STATUS_PUB : _JLMS_STATUS_UNPUB; $image = $row->published ? $time_p ? 'btn_publish_wait.png' : 'btn_accept.png' : 'btn_cancel.png'; //($time_p?'btn_unpublish_wait.png':'btn_cancel.png'); $start_date_txt = ''; $end_date_txt = ''; $released_info_txt = ''; if ($row->is_time_related) { $released_info_txt = _JLMS_WILL_BE_RELEASED_IN; $showperiod = $row->show_period; $ost1 = $showperiod % (24 * 60); $sp_days = ($showperiod - $ost1) / (24 * 60); $ost2 = $showperiod % 60; $sp_hours = ($ost1 - $ost2) / 60; $sp_mins = $ost2; $released_info_time = false; if ($sp_days) { $released_info_txt .= ' ' . $sp_days . ' ' . _JLMS_RELEASED_IN_DAYS; $released_info_time = true; } if ($sp_hours) { $released_info_txt .= ' ' . $sp_hours . ' ' . _JLMS_RELEASED_IN_HOURS; $released_info_time = true; } if ($sp_mins) { $released_info_txt .= ' ' . $sp_mins . ' ' . _JLMS_RELEASED_IN_MINUTES; $released_info_time = true; } if ($released_info_time) { $released_info_txt .= ' ' . _JLMS_RELEASED_AFTER_ENROLLMENT; } } if ($time_p) { $is_expired = false; if ($row->publish_end) { $end_date_txt = _JLMS_COURSES_END_DATE . ': ' . $row->end_date; $e_date = strtotime($row->end_date); if ($e_date < time()) { $is_expired = true; } } if ($row->publish_start) { $start_date_txt = _JLMS_COURSES_ST_DATE . ': ' . $row->start_date; } if ($is_expired) { $alt = _JLMS_STATUS_EXPIRED; $image = 'btn_expired.png'; } elseif ($row->publish_start && !$is_expired) { $s_date = strtotime($row->start_date); if ($s_date > time()) { $alt = _JLMS_STATUS_UPCOMING; $image = 'btn_expired.png'; } } } $state = $row->published ? 0 : 1; $checked = mosHTML::idBox($i, $row->id); $manage_item = false; $publish_item = false; if ($row->p_manage) { //JLMS_ACL->CheckPermissions('docs', 'manage')) { $manage_item = true; } if ($row->p_publish) { //$JLMS_ACL->CheckPermissions('docs', 'publish')) { $publish_item = true; } if ($JLMS_ACL->CheckPermissions('docs', 'only_own_items') && $row->owner_id != $user->get('id')) { $manage_item = false; $publish_item = false; } elseif ($JLMS_ACL->CheckPermissions('docs', 'only_own_role') && $JLMS_ACL->GetRole() != $JLMS_ACL->UserSystemRole($db, $row->owner_id)) { $manage_item = false; $publish_item = false; } if (!$publish_item && !$manage_item) { $checked = ' '; } // Collapsed/Expanded view $tree_row_style = ''; $visible_folder = true; //$next_row_is_visible; //$next_row_is_visible = true; if ($vis_mode) { if ($row->tree_mode_num < $vis_mode) { $vis_mode = 0; } } if (in_array($row->id, $rows_c)) { //$next_row_is_visible = false; if ($vis_mode) { if ($row->tree_mode_num < $vis_mode) { $vis_mode = $row->tree_mode_num; } else { $visible_folder = false; } } else { $vis_mode = $row->tree_mode_num + 1; } } elseif ($vis_mode) { if ($row->tree_mode_num >= $vis_mode) { $visible_folder = false; } else { $vis_mode = 0; } } if (!$visible_folder) { $tree_row_style = ' style="visibility:hidden;display:none"'; } ?> <tr id="tree_row_<?php echo $row->id; ?> " class="<?php echo JLMSCSS::_('sectiontableentry' . $k); ?> "<?php echo $tree_row_style; ?> > <td align="center" valign="middle"><?php echo $doc_number; ?> </td> <?php if ($possibilities->manage || $possibilities->publish) { ?> <td valign="middle"><?php echo $row->p_manage || $row->p_publish ? $checked : '<input type="checkbox" value="0" name="fake_checkbox' . $row->id . '" style="visibility:hidden" />'; ?> </td> <?php } ?> <?php $add_img = ''; if ($row->tree_mode_num) { $g = 0; $tree_modes[$row->tree_mode_num - 1] = $row->tree_mode; while ($g < $row->tree_mode_num - 1) { $pref = ''; if (isset($tree_modes[$g]) && $tree_modes[$g] == 2) { $pref = 'empty_'; } $add_img .= "<td width='16' valign='middle'><img src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/treeview/" . $pref . "line.png\" width='16' height='16' alt='" . $pref . "line' /></td>"; $g++; } $add_img .= "<td width='16' valign='middle'><img src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/treeview/sub" . $row->tree_mode . ".png\" width='16' height='16' alt='sub" . $row->tree_mode . "' /></td>"; $max_tree_width = $max_tree_width - $g - 1; } echo $add_img; ?> <td align="center" valign="middle" width='16'> <?php if ($row->folder_flag == 1) { $collapse_img = 'collapseall.png'; $collapse_alt = _JLMS_DOCS_COLL_FOLDER; if (in_array($row->id, $rows_c)) { $collapse_img = 'expandall.png'; $collapse_alt = _JLMS_DOCS_EXP_FOLDER; } echo "<a class='jlms_img_link' id='tree_div_" . $row->id . "' style='alignment:center; width:16px; font-weight:bold; cursor:pointer; vertical-align:middle;' onclick='Ex_Folder(" . $row->id . "," . $row->id . ",true)' href='javascript:void(0);'><img class='JLMS_png' id='tree_img_" . $row->id . "' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/docs/{$collapse_img}\" width='13' height='13' border='0' alt='" . $collapse_alt . "' title='" . $collapse_alt . "' /></a>"; } else { echo "<span style='alignment:center; width:16px; font-weight:bold; vertical-align:middle;'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/files/" . $row->file_icon . ".png\" width='16' height='16' alt='{$row->file_icon}' /></span>"; } ?> </td> <td align="left" valign="middle" <?php if ($max_tree_width > 0) { echo "colspan='" . ($max_tree_width + 1) . "'"; } ?> width="<?php echo $row->tree_mode_num == $row->tree_max_width ? '85' : '45'; ?> %"> <span style='font-weight:bold; vertical-align:middle;'> <?php if ($row->folder_flag == 1) { echo ' <strong>' . $row->doc_name . '</strong>'; } else { if (!isset($row->is_link)) { ?> <a href="<?php echo $link; ?> " title="<?php echo str_replace('"', '"', $row->doc_name); ?> "> <?php echo $row->doc_name; ?> </a> <?php } else { echo $row->doc_name; } } ?> </span> <?php if ($JLMS_CONFIG->get('show_docs_authors', 0) && $row->author_name) { ?> <br /> <span class="small"><?php echo _JLMS_HOME_AUTHOR . " " . $row->author_name; ?> </span> <?php } ?> </td> <?php if ($possibilities->order) { ?> <td valign="middle" style="vertical-align:middle "><?php if ($row->allow_up == 1 && $row->p_order) { echo JLMS_orderUpIcon(1, $row->id, true, 'doc_orderup'); } else { echo ' '; } ?> </td> <td valign="middle" style="vertical-align:middle "><?php if ($row->allow_down == 1 && $row->p_order) { echo JLMS_orderDownIcon(1, 3, $row->id, true, 'doc_orderdown'); } else { echo ' '; } ?> </td> <td valign="middle" align="center" style="vertical-align:middle; text-align: center; " colspan="2"> <input type="text" name="order[]" size="5" value="<?php echo $row->ordering; ?> " class="inputbox" style="text-align: center;" /> </td> <?php } ?> <?php if ($possibilities->manage || $possibilities->publish) { ?> <td valign="middle"> <?php if ($publish_item) { $title = $alt; $content = ''; if ($start_date_txt) { $content .= $start_date_txt . '<br />'; } if ($end_date_txt) { $content .= $end_date_txt . '<br />'; } if ($released_info_txt) { $content .= $released_info_txt . '<br />'; } if ($row->is_time_related) { if ($image == 'btn_accept.png') { $image = 'btn_publish_wait.png'; } } $name = '<img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/' . $image . '" width="16" height="16" border="0" alt="' . $alt . '" />'; $link = 'javascript:submitbutton_change2(\'change_doc\',' . $state . ',' . $row->id . ')'; echo JLMS_toolTip($title, $content, $name, $link); } else { echo '<img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/' . $image . '" width="16" height="16" border="0" alt="' . $alt . '" />'; } ?> </td> <td align="center" nowrap='nowrap' valign="middle"><?php echo $row->publish_start ? JLMS_dateToDisplay($row->start_date) : '-'; ?> </td> <td align="center" nowrap='nowrap' valign="middle"><?php echo $row->publish_end ? JLMS_dateToDisplay($row->end_date) : '-'; ?> </td> <?php } ?> <td><?php $doc_descr = strip_tags($row->doc_description); $doc_descr = trim($doc_descr); if (!$row->folder_flag && !$row->file_id) { if (strlen($doc_descr) > 75) { $doc_descr = substr($doc_descr, 0, 75) . "..."; } } echo $doc_descr ? $doc_descr : ' '; ?> </td> </tr> <?php $k = 3 - $k; $doc_number++; } // end "if ($row->p_view)" } ?> </table> <?php } else { echo '<div class="joomlalms_user_message">' . _JLMS_NO_ITEMS_HERE . '</div>'; } ?> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="" /> <input type="hidden" name="boxchecked" value="0" /> <input type="hidden" name="id" value="<?php echo $id; ?> " /> <input type="hidden" name="row_id" value="0" /> <input type="hidden" name="state" value="0" /> <input type="hidden" name="cid2" value="0" /> </form> <noscript> <style type="text/css"> #jlms_doc_non_scr tr.sectiontableentry1, #jlms_doc_non_scr tr.sectiontableentry2 { display: table-row !important; visibility:visible !important; } </style> <!--[if IE]> <style type="text/css"> #jlms_doc_non_scr tr.sectiontableentry1, #jlms_doc_non_scr tr.sectiontableentry2 { display: block !important; visibility:visible !important; } </style> <![endif]--> </noscript> <?php JLMS_TMPL::CloseTS(); $controls = array(); if ($possibilities->publish) { $controls[] = array('href' => "javascript:submitbutton_change('change_doc',1);", 'title' => _JLMS_SET_PUB, 'img' => 'publish'); $controls[] = array('href' => "javascript:submitbutton_change('change_doc',0);", 'title' => _JLMS_SET_UNPUB, 'img' => 'unpublish'); if ($possibilities->manage) { $controls[] = array('href' => 'spacer'); } } if ($possibilities->create) { $link_foldernew = ampReplace(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=new_folder&id={$id}")); $link_filenew = ampReplace(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=new_document&id={$id}")); $controls[] = array('href' => $link_foldernew, 'title' => _JLMS_DOCS_LNK_NEW_FOLDER, 'img' => 'foldernew'); $controls[] = array('href' => $link_filenew, 'title' => _JLMS_DOCS_LNK_NEW_DOC, 'img' => 'filenew'); } if ($possibilities->manage) { $controls[] = array('href' => "javascript:submitbutton('doc_delete');", 'title' => _JLMS_DELETE, 'img' => 'delete'); $controls[] = array('href' => "javascript:submitbutton('edit_doc');", 'title' => _JLMS_EDIT, 'img' => 'edit'); } if ($JLMS_ACL->CheckPermissions('docs', 'manage')) { $controls[] = array('href' => "javascript:submitbutton('add_doclink');", 'title' => _JLMS_DOCS_ADD_FROM_LIBRARY, 'img' => 'add_library'); } if (count($controls)) { JLMS_TMPL::ShowControlsFooter($controls); } JLMS_TMPL::CloseMT(); }
function JLMS_sreportScorm($option, $is_full = 0) { global $JLMS_DB, $JLMS_CONFIG, $JLMS_SESSION, $task, $option, $my, $Itemid; $JLMS_ACL =& JLMSFactory::getACL(); $view = mosGetParam($_REQUEST, 'view', ''); if ($view == 'csv' || $view == 'xls') { $is_full = 1; } $limit = intval(mosGetParam($_GET, 'limit', $JLMS_SESSION->get('list_limit', $JLMS_CONFIG->get('list_limit')))); $JLMS_SESSION->set('list_limit', $limit); $limitstart = intval(mosGetParam($_GET, 'limitstart', 0)); $filt_group = intval(mosGetParam($_REQUEST, 'filt_group', $JLMS_SESSION->get('filt_group', 0))); $filt_cat = intval(mosGetParam($_REQUEST, 'filt_cat', 0)); $filt_course_id = intval(mosGetParam($_REQUEST, 'filt_course_id', 0)); $start_date = mosGetParam($_REQUEST, 'start_date', ""); $end_date = mosGetParam($_REQUEST, 'end_date', ""); $s_date_db = ''; $start_date = $start_date == "-" ? "" : $start_date; if ($start_date) { $start_date = JLMS_dateToDB($start_date); $s_date = explode('-', $start_date); $s_date_db = date("Y-m-d", mktime(0, 0, 0, $s_date[1], $s_date[2], $s_date[0])); } $e_date_db = ''; $end_date = $end_date == "-" ? "" : $end_date; if ($end_date) { $end_date = JLMS_dateToDB($end_date); $e_date = explode('-', $end_date); $e_date_db = date("Y-m-d", mktime(23, 59, 0, $e_date[1], $e_date[2], $e_date[0])); } $lists = array(); //FLMS multicat $levels = array(); if ($JLMS_CONFIG->get('multicat_use', 0)) { $query = "SELECT * FROM #__lms_course_cats_config ORDER BY id"; $JLMS_DB->setQuery($query); $levels = $JLMS_DB->loadObjectList(); if (count($levels) == 0) { for ($i = 0; $i < 5; $i++) { if ($i > 0) { $levels[$i]->cat_name = _JLMS_COURSES_COURSES_GROUPS; } else { $levels[$i]->cat_name = _JLMS_COURSES_COURSES_GROUPS; } } } $level_id = array(); for ($i = 0; $i < count($levels); $i++) { if ($i == 0) { $level_id[$i] = intval(mosGetParam($_REQUEST, 'filter_id_' . $i . '', $JLMS_SESSION->get('FLMS_filter_id_' . $i . '', 0))); $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } else { $level_id[$i] = intval(mosGetParam($_REQUEST, 'filter_id_' . $i . '', $JLMS_SESSION->get('FLMS_filter_id_' . $i . '', 0))); $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } if ($i == 0) { $parent_id[$i] = 0; } else { $parent_id[$i] = $level_id[$i - 1]; } if ($i == 0 || $parent_id[$i]) { //(Max): extra requests $query = "SELECT count(id) FROM `#__lms_course_cats` WHERE parent = '" . $parent_id[$i] . "' ORDER BY c_category"; $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadResult(); if ($groups == 0) { $level_id[$i] = 0; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } } } for ($i = 0; $i < count($levels); $i++) { if ($i > 0 && $level_id[$i - 1] == 0) { $level_id[$i] = 0; $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); $parent_id[$i] = 0; } elseif ($i == 0 && $level_id[$i] == 0) { $level_id[$i] = 0; $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); $parent_id[$i] = 0; } } $javascript = 'onclick="javascript:read_filter();" onchange="javascript:write_filter();submitFormView(\'\');"'; if (class_exists('JFactory')) { $user = JLMSFactory::getUser(); $my->id = $user->id; } $lists['user_id'] = $my->id; $query1 = "SELECT group_id FROM `#__lms_users_in_global_groups` WHERE user_id = '" . $my->id . "'"; $JLMS_DB->setQuery($query1); $user_group_ids = $JLMS_DB->loadResultArray(); $categories_reporting = array(); $name_categories_reporting = array(); for ($i = 0; $i < count($levels); $i++) { if ($i == 0 || $parent_id[$i]) { //(Max): extra requests if ($parent_id[$i] == 0 && !$JLMS_ACL->CheckPermissions('lms', 'create_course')) { $query = "SELECT * FROM `#__lms_course_cats` WHERE `parent` = '0'"; $query .= "\n AND ("; if (count($user_group_ids)) { $query .= "( `restricted` = 1 AND ( `groups` LIKE '%|{$user_group_ids['0']}|%'"; for ($i1 = 1; $i1 < count($user_group_ids); $i1++) { $query .= "\n OR `groups` like '%|{$user_group_ids[$i1]}|%'"; } $query .= "\n ) ) \n OR "; } $query .= "(`restricted` = 0 )) "; $query .= "\n ORDER BY `c_category`"; } else { $query = "SELECT * FROM `#__lms_course_cats` WHERE parent = '" . $parent_id[$i] . "' ORDER BY c_category"; } $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadObjectList(); if ($parent_id[$i] && $i > 0 && count($groups)) { $type_level[$i][] = mosHTML::makeOption(0, ' '); foreach ($groups as $group) { $type_level[$i][] = mosHTML::makeOption($group->id, $group->c_category); if ($group->id == $level_id[$i]) { $name_categories_reporting[] = $levels[$i]->cat_name; $categories_reporting[] = $group->c_category; } } $lists['filter_' . $i . ''] = mosHTML::selectList($type_level[$i], 'filter_id_' . $i . '', 'class="inputbox" size="1" style="width: 100%;" ' . $javascript, 'value', 'text', $level_id[$i]); //onchange="document.location.href=\''. $link_multi .'\';" } elseif ($i == 0) { $type_level[$i][] = mosHTML::makeOption(0, ' '); foreach ($groups as $group) { $type_level[$i][] = mosHTML::makeOption($group->id, $group->c_category); if ($group->id == $level_id[$i]) { $name_categories_reporting[] = $levels[$i]->cat_name; $categories_reporting[] = $group->c_category; } } $lists['filter_' . $i . ''] = mosHTML::selectList($type_level[$i], 'filter_id_' . $i . '', 'class="inputbox" size="1" style="width: 100%;" ' . $javascript, 'value', 'text', $level_id[$i]); //onchange="document.location.href=\''. $link_multi .'\';" } } } $reporting_header['name_categories'] = $name_categories_reporting; $reporting_header['categories'] = $categories_reporting; } //FLMS multicat global $JLMS_DB, $my; if (class_exists('Jfactory')) { $user = JLMSFactory::getUser(); $my->id = $user->id; } $is_ceo = $JLMS_ACL->isStaff(); $courses = array(); if ($JLMS_ACL->isTeacher()) { $courses = $JLMS_CONFIG->get('teacher_in_courses', array()); } else { if ($is_ceo) { $query = "SELECT user_id FROM #__lms_user_parents WHERE parent_id = '" . $my->id . "'"; $JLMS_DB->setQuery($query); $users = $JLMS_DB->loadResultArray(); if (count($users)) { $query = "SELECT course_id FROM #__lms_users_in_groups WHERE user_id IN (" . implode(",", $users) . ")"; $JLMS_DB->setQuery($query); $courses = $JLMS_DB->loadResultArray(); } } } if (count($courses)) { $where = ""; if ($JLMS_CONFIG->get('multicat_use', 0)) { //NEW MUSLTICATS // $tmp_level = array(); $last_catid = 0; $tmp_cats_filter = JLMS_getFilterMulticategories($last_catid); /* $i=0; foreach($_REQUEST as $key=>$item){ if(preg_match('#filter_id_(\d+)#', $key, $result)){ if($item){ $tmp_level[$i] = $result; $last_catid = $item; $i++; } } } $filt_cat = $last_catid; $query = "SELECT * FROM #__lms_course_cats ORDER BY id"; $JLMS_DB->setQuery($query); $all_cats = $JLMS_DB->loadObjectList(); $tmp_cats_filter = array(); $children = array(); foreach($all_cats as $cat){ $pt = $cat->parent; $list = @$children[$pt] ? $children[$pt] : array(); array_push($list, $cat->id); $children[$pt] = $list; } $tmp_cats_filter[0] = $last_catid; $i=1; foreach($children as $key=>$childs){ if($last_catid == $key){ foreach($children[$key] as $v){ if(!in_array($v, $tmp_cats_filter)){ $tmp_cats_filter[$i] = $v; $i++; } } } } foreach($children as $key=>$childs){ if(in_array($key, $tmp_cats_filter)){ foreach($children[$key] as $v){ if(!in_array($v, $tmp_cats_filter)){ $tmp_cats_filter[$i] = $v; $i++; } } } } $tmp_cats_filter = array_unique($tmp_cats_filter); */ $catids = implode(",", $tmp_cats_filter); if ($last_catid && count($tmp_cats_filter)) { $where .= "\n AND ( cat_id IN (" . $catids . ")"; if ($JLMS_CONFIG->get('sec_cat_use', 0)) { foreach ($tmp_cats_filter as $tmp_cats_filter_one) { $where .= "\n OR sec_cat LIKE '%|" . $tmp_cats_filter_one . "|%'"; } } $where .= "\n )"; } //NEW MUSLTICATS } $courses_str = implode(",", $courses); $query = "SELECT id FROM #__lms_courses WHERE id IN(" . $courses_str . ")" . $where . "\n ORDER BY id"; $JLMS_DB->setQuery($query); $courses = $JLMS_DB->loadResultArray(); $javascript2 = 'onchange="javascript:submitFormView();"'; $query = "SELECT id as value, course_name as text FROM #__lms_courses WHERE id IN (" . $courses_str . ")" . $where . "\n ORDER BY " . ($JLMS_CONFIG->get('lms_courses_sortby') ? "ordering" : "course_name"); $JLMS_DB->setQuery($query); $list_courses = $JLMS_DB->loadObjectList(); $f_courses = array(); $f_courses[] = mosHTML::makeOption(0, ' '); $f_courses = array_merge($f_courses, $list_courses); $lists['filt_course'] = mosHTML::selectList($f_courses, 'filt_course_id', 'class="inputbox" size="1" style="width: 100%;" ' . $javascript2, 'value', 'text', $filt_course_id); $g_items = array(); $g_items[] = mosHTML::makeOption(0, _JLMS_ATT_FILTER_ALL_GROUPS); if ($JLMS_CONFIG->get('use_global_groups', 1)) { if ($is_ceo) { $cid = $users; } else { if (!count($courses)) { $courses = array(0); } $query = "SELECT user_id FROM #__lms_users_in_groups WHERE course_id IN (" . implode(',', $courses) . ")"; $JLMS_DB->setQuery($query); $cid = $JLMS_DB->loadResultArray(); } if (!$cid) { $cid = array(-1); } $query = "SELECT group_id FROM #__lms_users_in_global_groups WHERE user_id IN (" . implode(',', $cid) . ")"; $JLMS_DB->setQuery($query); $gid = $JLMS_DB->loadResultArray(); if (!$gid) { $gid = array(-1); } $query = "SELECT distinct id AS value, ug_name AS text FROM #__lms_usergroups WHERE id IN (" . implode(',', $gid) . ") AND course_id = 0 ORDER BY text"; //course id check just in case)) $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadObjectList(); } else { if (!count($courses)) { $courses = array(0); } $query = "SELECT distinct a.id as value, a.ug_name as text FROM #__lms_usergroups as a, #__lms_users_in_groups as b" . "\n WHERE a.course_id IN (" . implode(',', $courses) . ") AND b.group_id = a.id ORDER BY a.ug_name"; $JLMS_DB->SetQuery($query); $groups = $JLMS_DB->LoadObjectList(); } $g_items = array_merge($g_items, $groups); $lists['filt_group'] = mosHTML::selectList($g_items, 'filt_group', 'class="inputbox" size="1" style="width: 100%;" ' . $javascript2, 'value', 'text', $filt_group); if ($filt_group) { if ($JLMS_CONFIG->get('use_global_groups', 1)) { $query = "SELECT user_id" . "\n FROM #__lms_users_in_global_groups ugg" . "\n WHERE 1" . "\n AND group_id = '" . $filt_group . "'"; $JLMS_DB->setQuery($query); $filt_grp_users = $JLMS_DB->loadResultArray(); } else { $query = "SELECT user_id" . "\n FROM #__lms_user_in_groups" . "\n WHERE 1" . "\n AND group_id = '" . $filt_group . "'"; $JLMS_DB->setQuery($query); $filt_grp_users = $JLMS_DB->loadResultArray(); } } $query = "SELECT COUNT(*)" . "\n FROM #__lms_courses as c, #__lms_users_in_groups as ug" . "\n LEFT JOIN #__lms_certificate_users as cu ON cu.course_id = ug.course_id AND cu.user_id = ug.user_id" . "\n, #__lms_learn_paths as lp, #__users as u" . "\n WHERE 1" . "\n AND c.id = ug.course_id" . "\n AND c.id = lp.course_id" . "\n AND lp.item_id <> 0" . "\n AND lp.lp_type = 1" . "\n AND lp.published = 1" . "\n AND ug.user_id = u.id" . "\n AND c.id IN (" . implode(",", $courses) . ")" . ($filt_course_id ? "\n AND c.id = '" . $filt_course_id . "'" : "") . ($filt_group ? "\n AND ug.user_id IN (" . implode(",", $filt_grp_users) . ")" : "") . ($is_ceo ? "\n AND ug.user_id IN (" . implode(",", $users) . ")" : ""); $JLMS_DB->setQuery($query); $total = $JLMS_DB->loadResult(); require_once _JOOMLMS_FRONT_HOME . DS . "includes" . DS . "classes" . DS . "lms.pagination.php"; $pageNav = new JLMSPageNav($total, $limitstart, $limit); $query = "SELECT" . "\n c.id as course_id, c.course_name" . "\n, lp.id, lp.lpath_name, lp.item_id" . "\n, u.id as user_id, u.username, u.name, u.email" . "\n, cu.crt_option, cu.crt_date" . "\n FROM #__lms_courses as c, #__lms_users_in_groups as ug" . "\n LEFT JOIN #__lms_certificate_users as cu ON cu.course_id = ug.course_id AND cu.user_id = ug.user_id" . "\n, #__lms_learn_paths as lp, #__users as u" . "\n WHERE 1" . "\n AND c.id = ug.course_id" . "\n AND c.id = lp.course_id" . "\n AND lp.item_id <> 0" . "\n AND lp.lp_type = 1" . "\n AND lp.published = 1" . "\n AND ug.user_id = u.id" . "\n AND c.id IN (" . implode(",", $courses) . ")" . ($filt_course_id ? "\n AND c.id = '" . $filt_course_id . "'" : "") . ($filt_group ? "\n AND ug.user_id IN (" . implode(",", $filt_grp_users) . ")" : "") . ($is_ceo ? "\n AND ug.user_id IN (" . implode(",", $users) . ")" : "") . "\n ORDER BY " . ($JLMS_CONFIG->get('lms_courses_sortby') ? "c.ordering" : "c.course_name") . "\n, u.username, lp.lpath_name"; if (strlen($s_date_db) || strlen($e_date_db)) { $JLMS_DB->setQuery($query); } else { if ($is_full) { $JLMS_DB->setQuery($query); } else { $JLMS_DB->setQuery($query, $limitstart, $limit); } } $scorm_list = $JLMS_DB->loadObjectList(); $user_scorms = array(); foreach ($scorm_list as $scorm) { $user_scorms[$scorm->user_id][] = $scorm->item_id; } require_once _JOOMLMS_FRONT_HOME . "/includes/lms_scorm.lib.php"; $result = array(); foreach ($user_scorms as $user_id => $scorms) { $uids = array(); $uids[] = $user_id; $scn_ids = array(); $scn_ids = $scorms; $result[$user_id]->scorm_data =& JLMS_Get_N_SCORM_userResults($uids, $scn_ids, 0); } $new_scorm_list = array(); foreach ($scorm_list as $n => $scorm) { $new_scorm_list[$n] = $scorm; $new_scorm_list[$n]->course_status = 0; if (isset($scorm->crt_option) && $scorm->crt_option) { $new_scorm_list[$n]->course_status = 1; } if (isset($result[$scorm->user_id]->scorm_data)) { $tmp = $result[$scorm->user_id]->scorm_data; foreach ($tmp as $t) { if ($t->content_id == $scorm->item_id) { $scorm_data = new stdClass(); $scorm_data = $t; $scorm_data->start = $t->at_start; $scorm_data->end = $t->scn_timemodified; $new_scorm_list[$n]->scorm_data = $scorm_data; } } } } if (strlen($s_date_db) || strlen($e_date_db)) { $start = strtotime($s_date_db); $end = strtotime($e_date_db); $tmp = array(); foreach ($new_scorm_list as $scorm) { $add = false; if ($start) { $add = false; if (isset($scorm->scorm_data->end) && $scorm->scorm_data->end && $start <= $scorm->scorm_data->end) { $add = true; } } if ($end) { $add = false; if (isset($scorm->scorm_data->end) && $scorm->scorm_data->end && $end >= $scorm->scorm_data->end) { $add = true; } } if ($add) { $tmp[] = $scorm; } } if (count($tmp)) { $new_scorm_list = array(); $new_scorm_list = $tmp; } $total = count($new_scorm_list); $pageNav = new JLMSPageNav($total, $limitstart, $limit); if (!$is_full) { $tmp = array(); for ($i = $limitstart - 1; $i < $limitstart + $limit; $i++) { if (isset($new_scorm_list[$i])) { $tmp[] = $new_scorm_list[$i]; } } if (count($tmp)) { $new_scorm_list = array(); $new_scorm_list = $tmp; } } } if (count($new_scorm_list)) { $rowz = $new_scorm_list; } if ($view == 'csv') { JLMS_REP_exportCsv(array(), array(), array(), $rowz, $pageNav, $lists, $levels, $filt_cat, $filt_group, $option, 1); } else { JLMS_reports_html::JLMS_sreportScorm($option, $rowz, $start_date, $end_date, $pageNav, $lists, $levels, $filt_cat, $filt_group, $is_full); } } }
function showUserGradebook($id, $option, &$rows, &$lists) { global $Itemid, $JLMS_CONFIG; $juser = JLMSFactory::getUser(); $JLMS_ACL =& JLMSFactory::getACL(); if ($JLMS_ACL->CheckPermissions('gradebook', 'manage')) { ?> <script language="javascript" type="text/javascript"> <!-- function submitbutton(pressbutton) { var form = document.adminForm; form.task.value = pressbutton; form.submit(); } function submitbutton_crtf(pressbutton, state, cid_id) { var form = document.adminForm; if (pressbutton == 'gb_crtA'){ form.task.value = pressbutton; form.state.value = state; form.cid2.value = cid_id; form.submit(); } } //--> </script> <?php } ?> <?php echo '<table class="contentpane" id="joomlalms_usergradebook" style="width:100%" cellpadding="0" cellspacing="0" border="0">' . "\r\n"; $hparams = array(); $toolbar = array(); if ($JLMS_ACL->CheckPermissions('gradebook', 'manage')) { if (count($lists['gb_rows'])) { $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton('save_grades');"); } $toolbar[] = array('btn_type' => 'pdf', 'btn_js' => JLMSRoute::_("index.php?option={$option}&Itemid={$Itemid}&task=gb_user_pdf&course_id={$id}&id=" . $lists['user_id'])); $toolbar[] = array('btn_type' => 'back', 'btn_js' => sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=gradebook&id={$id}")); } else { $toolbar[] = array('btn_type' => 'pdf', 'btn_js' => JLMSRoute::_("index.php?option={$option}&Itemid={$Itemid}&task=gb_user_pdf&course_id={$id}&id=" . $lists['user_id'])); } JLMS_TMPL::ShowHeader('gradebook', _JLMS_GB_TITLE, $hparams, $toolbar); $userinfo = array(); $userinfo['text'] = JLMS_outputUserInfo($rows[0]->username, $rows[0]->name, $rows[0]->email, $rows[0]->ug_name, '20%'); $crtf_txt = array(); $crtf_txt['text'] = ''; $crtf_txt['attrib'] = ' nowrap="nowrap"'; if ($JLMS_ACL->CheckPermissions('gradebook', 'manage')) { $crtf_txt['text'] = '<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders"><tr><td width="30%" nowrap="nowrap">' . _JLMS_COURSE_COMPLETED_ADMIN . '</td>'; $crtf_txt['text'] .= '<td> '; $image = $rows[0]->user_certificate ? 'btn_accept.png' : 'btn_cancel.png'; $alt = $rows[0]->user_certificate ? _JLMS_GB_USER_HAVE_CRT : _JLMS_GB_USER_HAVE_NO_CRT; $state = $rows[0]->user_certificate ? 0 : 1; $crtf_txt['text'] .= '<a class="jlms_img_link" href="javascript:submitbutton_crtf(\'gb_crtA\',' . $state . ',' . $rows[0]->user_id . ')" title="' . $alt . '"><img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/' . $image . '" width="16" height="16" border="0" alt="' . $alt . '" /></a>'; $crtf_txt['text'] .= '</td></tr></table>'; } elseif ($JLMS_ACL->CheckPermissions('gradebook', 'view') && $rows[0]->user_certificate) { $crtf_txt['text'] = '<table width="100%" cellpadding="0" cellspacing="0" border="0" id="usergradebook_header_crtf_info" class="jlms_table_no_borders"><tr><td width="30%">' . ($juser->get('id') == $rows[0]->user_id ? _JLMS_COURSE_COMPLETED_USER : _JLMS_COURSE_COMPLETED_ADMIN) . '</td>'; $crtf_txt['text'] .= '<td> '; $image = $rows[0]->user_certificate ? 'btn_accept.png' : 'btn_cancel.png'; $alt = $rows[0]->user_certificate ? _JLMS_GB_USER_HAVE_CRT : _JLMS_GB_USER_HAVE_NO_CRT; $state = $rows[0]->user_certificate ? 0 : 1; $crtf_txt['text'] .= JLMS_gradebook_html::publishIcon($rows[0]->user_id, $id, $state, 'gb_crtA', $alt, $image, $option, ''); $crtf_txt['text'] .= '</td></tr></table>'; } $params_cs = array(); if ($JLMS_ACL->CheckPermissions('gradebook', 'manage') && !empty($lists['enrollment_answers'])) { JLMS_TMPL::OpenTS('', ' id="usergradebook_header"'); echo '<table width="100%" class="jlms_table_no_borders">'; echo '<tr><td width="50%" valign="top"><table width="100%" cellpadding="0" cellspacing="0" border="0" id="usergradebook_header_user_info" class="' . JLMSCSS::_('jlmslist') . '" style="margin:0px;padding:0px;">'; echo '<tr><' . JLMSCSS::tableheadertag() . ' class="' . JLMSCSS::_('sectiontableheader') . '" colspan="2">' . _JLMS_GB_USER_INFORMATION . '</' . JLMSCSS::tableheadertag() . '></tr>'; echo '<tr class="' . JLMSCSS::_('sectiontableentry1') . '"><td align="left">' . _JLMS_UI_USERNAME . '</td><td align="left">' . $rows[0]->username . '</td></tr>'; echo '<tr class="' . JLMSCSS::_('sectiontableentry2') . '"><td align="left">' . _JLMS_UI_NAME . '</td><td align="left">' . $rows[0]->name . '</td></tr>'; echo '<tr class="' . JLMSCSS::_('sectiontableentry1') . '"><td align="left">' . _JLMS_UI_EMAIL . '</td><td align="left">' . $rows[0]->email . '</td></tr>'; echo '<tr class="' . JLMSCSS::_('sectiontableentry2') . '"><td align="left">' . _JLMS_UI_GROUP . '</td><td align="left">' . ($rows[0]->ug_name ? $rows[0]->ug_name : ' ') . '</td></tr>'; echo '</table><br />'; echo $crtf_txt['text']; echo '</td><td width="50%" valign="top"><table width="100%" cellpadding="0" cellspacing="0" border="0" id="usergradebook_header_reg_info" class="' . JLMSCSS::_('jlmslist') . '" style="margin:0px;padding:0px;">'; echo '<tr><' . JLMSCSS::tableheadertag() . ' class="' . JLMSCSS::_('sectiontableheader') . '" colspan="2">' . _JLMS_GB_REG_INFORMATION . '</' . JLMSCSS::tableheadertag() . '></tr>'; $k = 1; foreach ($lists['enrollment_answers'] as $ea) { echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td>' . $ea->course_question . '</td><td>' . ($ea->user_answer ? $ea->user_answer : ' ') . '</td></tr>'; $k = 3 - $k; } echo '</table></td></tr>'; echo '</table>'; JLMS_TMPL::CloseTS(); } else { $params_cs[] = $userinfo; $params_cs[] = $crtf_txt; JLMS_TMPL::ShowCustomSection($params_cs); } /** * Certificates MOD - 04.10.2007 (DEN) * We will show the list of all achieved certificates in the User Gradebook */ global $JLMS_DB; $query = "SELECT count(*) FROM #__lms_certificates WHERE course_id = '" . $id . "' AND published = 1 AND crtf_type = 1 AND parent_id = 0"; $JLMS_DB->SetQuery($query); $is_course_certificate = $JLMS_DB->loadResult(); if (!empty($lists['user_quiz_certificates']) || isset($rows[0]->user_certificate) && $rows[0]->user_certificate && $is_course_certificate) { JLMS_TMPL::OpenTS('', ' id="usergradebook_certificates_title"'); echo '<br />'; echo JLMSCSS::h2(_JLMS_GB_CERTIFICATES); JLMS_TMPL::CloseTS(); JLMS_TMPL::OpenTS(); $old_format = $JLMS_CONFIG->get('date_format', 'Y-m-d'); $new_format = $JLMS_CONFIG->get('gradebook_certificate_date', ''); if ($new_format) { $JLMS_CONFIG->set('date_format', $new_format); } echo '<table class="' . JLMSCSS::_('jlmslist') . '" id="usergradebook_certificates" style="width:100%" cellpadding="0" cellspacing="0" border="0">' . "\r\n"; $k = 2; foreach ($lists['user_quiz_certificates'] as $crtf_row) { echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="16"><img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/btn_certificate.png" alt="certificate" width="16" height="16" /></td><td width="30%" align="left"><strong>' . $crtf_row->quiz_name . '</strong></td>' . '<td>' . JLMS_offsetDateToDisplay($crtf_row->crtf_date) . '</td>' . '<td align=\'left\'>' . ($JLMS_ACL->CheckPermissions('gradebook', 'view') ? '<a target="_blank" href="' . ampReplace($JLMS_CONFIG->get('live_site') . "/index.php?tmpl=component&option={$option}&Itemid={$Itemid}&no_html=1&task=print_quiz_cert&course_id={$id}&stu_quiz_id={$crtf_row->stu_quiz_id}&user_unique_id={$crtf_row->user_unique_id}") . '">' . _JLMS_GB_PRINT_CERTIFICATE . '</a>' : '') . '</td></tr>'; $k = 3 - $k; } if (isset($rows[0]->user_certificate) && $rows[0]->user_certificate && $is_course_certificate) { $cert_user_id = 0; if (isset($lists['user_id']) && $lists['user_id']) { global $my; if ($my->id == $lists['user_id']) { } else { $cert_user_id = $lists['user_id']; } } $link = ampReplace(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=gb_get_cert&id={$id}" . ($cert_user_id ? "&user_id={$cert_user_id}" : ''))); echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="16"><img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/btn_certificate.png" alt="certificate" width="16" height="16" /></td><td width="30%" align="left"><strong>' . _JLMS_GB_COURSE_CERTIFICATE . '</strong></td>' . '<td>' . JLMS_offsetDateToDisplay($rows[0]->user_certificate_date) . '</td>' . '<td align=\'left\'>' . ($JLMS_ACL->CheckPermissions('gradebook', 'view') ? '<a target="_blank" href="' . $link . '">' . _JLMS_GB_PRINT_CERTIFICATE . '</a>' : ' ') . '</td></tr>'; } JLMS_TMPL::CloseMT(); JLMS_TMPL::CloseTS(); $JLMS_CONFIG->set('date_format', $old_format); } /* END of Certificates MOD */ if (count($lists['sc_rows'])) { $k = 2; $is_shown = 0; foreach ($lists['sc_rows'] as $sc_row) { if ($sc_row->show_in_gradebook) { $is_shown++; if ($is_shown == 1) { JLMS_TMPL::OpenTS('', ' id="usergradebook_scorms_title"'); echo '<br />'; echo JLMSCSS::h2(_JLMS_GB_SCORM_RESULTS); JLMS_TMPL::CloseTS(); JLMS_TMPL::OpenTS(); echo '<table class="' . JLMSCSS::_('jlmslist') . '" id="usergradebook_scorms" style="width:100%" cellpadding="0" cellspacing="0" border="0">' . "\r\n"; } $j = 0; while ($j < count($rows[0]->scorm_info)) { if ($rows[0]->scorm_info[$j]->gbi_id == $sc_row->item_id) { if ($rows[0]->scorm_info[$j]->user_status == -1) { echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="30%" align="left"><strong>' . $sc_row->lpath_name . '</strong></td>' . '<td align=\'left\' colspan="2">' . '-' . '</td></tr>'; $k = 3 - $k; } else { $image = $rows[0]->scorm_info[$j]->user_status ? 'btn_accept.png' : 'btn_cancel.png'; $alt = $rows[0]->scorm_info[$j]->user_status ? 'btn_accept' : 'btn_cancel'; $img = JLMS_gradebook_html::publishIcon(0, 0, 0, '', $alt, $image, $option, false); echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="30%" align="left"><strong>' . $sc_row->lpath_name . '</strong></td>' . '<td width="16">' . $img . '</td>' . '<td align=\'left\'>' . '<b>' . $rows[0]->scorm_info[$j]->user_grade . "</b> (" . $rows[0]->scorm_info[$j]->user_pts . _JLMS_GB_POINTS . ")" . '</td></tr>'; $k = 3 - $k; } } $j++; } } } if ($is_shown) { JLMS_TMPL::CloseMT(); JLMS_TMPL::CloseTS(); } } if (count($lists['quiz_rows'])) { JLMS_TMPL::OpenTS('', ' id="usergradebook_quizzes_title"'); echo '<br />'; echo JLMSCSS::h2(_JLMS_GB_QUIZ_RESULTS); JLMS_TMPL::CloseTS(); JLMS_TMPL::OpenTS(); /*Integration Plugin Percentiles*/ if (isset($lists['chart_percentiles']->show) && $lists['chart_percentiles']->show) { JLMS_TMPL::OpenTS(); echo $lists['chart_percentiles']->chart; JLMS_TMPL::CloseTS(); } /*Integration Plugin Percentiles*/ echo '<table class="' . JLMSCSS::_('jlmslist') . '" id="usergradebook_quizzes" style="width:100%" cellpadding="0" cellspacing="0" border="0">' . "\r\n"; $k = 2; foreach ($lists['quiz_rows'] as $quiz_row) { $j = 0; while ($j < count($rows[0]->quiz_info)) { if ($rows[0]->quiz_info[$j]->gbi_id == $quiz_row->c_id) { // if ($rows[0]->quiz_info[$j]->user_status == -1) { // echo '<tr class="'.JLMSCSS::_('sectiontableentry'.$k).'"><td width="30%" align="left"><strong>'.$quiz_row->c_title.'</strong></td>' // . '<td align=\'left\' colspan="2">' // . '-' // . '</td></tr>'; // $k = 3 - $k; // } else { // $image = $rows[0]->quiz_info[$j]->user_status ? 'btn_accept.png' : 'btn_cancel.png'; // $alt = $rows[0]->quiz_info[$j]->user_status ? 'btn_accept' : 'btn_cancel'; // $img = JLMS_gradebook_html::publishIcon(0, 0, 0, '', $alt, $image, $option, false ); echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="30%" align="left"><strong>' . $quiz_row->c_title . '</strong></td>'; //old functional // echo '<td width="16">'. $img.'</td>'; // echo '<td align=\'left\'>' // . '<b>' . $rows[0]->quiz_info[$j]->user_grade . "</b> (" . $rows[0]->quiz_info[$j]->user_pts_full .")"; // /*Integration Plugin Percentiles*/ // if (isset($rows[0]->quiz_info[$j]->user_percentile)) { // echo ' - '.$rows[0]->quiz_info[$j]->user_percentile; // } // /*Integration Plugin Percentiles*/ // echo '</td>'; //new functional echo '<td>'; echo JLMS_showQuizStatus($rows[0]->quiz_info[$j]); echo '</td>'; if (isset($rows[0]->quiz_info[$j]->user_unique_id)) { $show_print = false; if (isset($rows[0]->quiz_info[$j]->allow_user_pdf_print) && $rows[0]->quiz_info[$j]->allow_user_pdf_print) { $show_print = true; } elseif ($JLMS_ACL->CheckPermissions('gradebook', 'manage')) { $show_print = true; } elseif ($JLMS_ACL->isStaff()) { $show_print = true; } if ($show_print) { echo '' . '<td><a target="_blank" href="' . $JLMS_CONFIG->get('live_site') . '/index.php?tmpl=component&option=com_joomla_lms&Itemid=' . $Itemid . '&no_html=1&task=print_quiz_result&course_id=' . $quiz_row->course_id . '&stu_quiz_id=' . $rows[0]->quiz_info[$j]->stu_quiz_id . '&user_unique_id=' . $rows[0]->quiz_info[$j]->user_unique_id . '">' . _JLMS_PRINT_RESULTS . '</a></td>'; } else { echo '<td>'; echo ' '; echo '</td>'; } } else { echo '<td>'; echo ' '; echo '</td>'; } echo '</tr>'; $k = 3 - $k; // } } $j++; } } JLMS_TMPL::CloseMT(); JLMS_TMPL::CloseTS(); } if (count($lists['gb_rows'])) { JLMS_TMPL::OpenTS('', ' id="usergradebook_grades_title"'); echo '<br />'; echo JLMSCSS::h2(_JLMS_GB_GBI_RESULTS); JLMS_TMPL::CloseTS(); JLMS_TMPL::OpenTS(); ?> <form action="<?php echo sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}"); ?> " method="post" name="adminForm"> <?php echo '<table class="' . JLMSCSS::_('jlmslist') . '" id="usergradebook_grades" style="width:100%" cellpadding="0" cellspacing="0" border="0">' . "\r\n"; $k = 2; foreach ($lists['gb_rows'] as $gb_row) { $j = 0; while ($j < count($rows[0]->grade_info)) { if ($rows[0]->grade_info[$j]->gbi_id == $gb_row->id) { echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="30%" align="left"><strong>' . $gb_row->gbi_name . '</strong></td>' . '<td align=\'left\' colspan="2">' . ($JLMS_ACL->CheckPermissions('gradebook', 'manage') ? JLMS_gradebook_html::Create_SelectList($id, $rows[0]->grade_info[$j]->scale_id, $gb_row->id) : $rows[0]->grade_info[$j]->user_grade); echo '</td></tr>'; $k = 3 - $k; } $j++; } } JLMS_TMPL::CloseMT(); ?> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="gradebook" /> <input type="hidden" name="state" value="0" /> <input type="hidden" name="cid2" value="0" /> <input type="hidden" name="boxchecked" value="0" /> <input type="hidden" name="id" value="<?php echo $id; ?> " /> <input type="hidden" name="user_id" value="<?php echo $lists['user_id']; ?> " /> </form> <?php JLMS_TMPL::CloseTS(); JLMS_TMPL::CloseMT(); } else { JLMS_TMPL::CloseMT(); ?> <form action="<?php echo sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}"); ?> " method="post" name="adminForm"> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="gradebook" /> <input type="hidden" name="state" value="0" /> <input type="hidden" name="cid2" value="0" /> <input type="hidden" name="boxchecked" value="0" /> <input type="hidden" name="id" value="<?php echo $id; ?> " /> <input type="hidden" name="user_id" value="<?php echo $lists['user_id']; ?> " /> </form> <?php } ?> <?php }
function JLMS_downloadFileHW($option) { $JLMS_CONFIG =& JLMSFactory::getConfig(); $Itemid = $JLMS_CONFIG->get('Itemid'); $course_id = intval(mosGetParam($_REQUEST, 'course_id', 0)); $hw_id = intval(mosGetParam($_REQUEST, 'hw_id', 0)); $file_id = intval(mosGetParam($_REQUEST, 'file_id', 0)); $user_id = intval(mosGetParam($_REQUEST, 'user_id', 0)); $JLMS_ACL =& JLMSFactory::getACL(); $user = JLMSFactory::getUser(); if ($course_id && ($JLMS_ACL->CheckPermissions('homework', 'manage') || $user_id == $user->get('id')) && ($hw_id && JLMS_GetHWCourse($hw_id) == $course_id)) { JLMS_downloadFile($file_id, $option); } JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=hw_view_result&course_id={$course_id}&hw_id={$hw_id}&user_id={$user_id}")); }
function my_certificates($course_id, $hp_items, $user_id) { $db =& JFactory::getDbo(); $user = JLMSFactory::getUser(); $my_courses = array(); $my_certificates = array(); if ($user_id) { $query = "SELECT a.id, a.course_name" . "\n FROM #__lms_courses as a" . "\n, #__lms_users_in_groups as b" . "\n WHERE 1" . "\n AND a.id = b.course_id" . "\n AND b.user_id = '" . $user_id . "'"; $db->setQuery($query); $my_courses = $db->loadObjectList(); $query = "SELECT cc.* FROM (\n\t\t\tSELECT a.*, c.course_name, d.uniq_id, d.crtf_id, d.quiz_id, d.role_id\n\t\t\tFROM #__lms_certificate_users as a\n\t\t\tLEFT JOIN #__lms_certificate_prints as d ON a.course_id = d.course_id AND a.user_id = d.user_id AND crtf_id \n\t\t\t,#__lms_users_in_groups as b\n\t\t\t,#__lms_courses as c\n\t\t\tWHERE 1\n\t\t\tAND a.user_id = {$user_id}\n\t\t\tAND a.user_id = b.user_id\n\t\t\tAND a.course_id = b.course_id\n\t\t\tAND b.course_id = c.id\n\t\t\tORDER BY d.role_id DESC\n\t\t) AS cc\n\t\tGROUP BY cc.user_id, cc.course_id, cc.crtf_id, cc.quiz_id\n\t\tORDER BY cc.crt_date DESC\n\t\t"; $db->setQuery($query); $my_certificates = $db->loadObjectList(); } $lists = array(); $JLMS_ACL =& JLMSFactory::getACL(); if (count($my_courses)) { foreach ($my_courses as $course) { //JLMS_GB_getUserCertificates($course->id, $user_id, $lists); /** * Certificates MOD - 04.10.2007 (DEN) * We will show the list of all achieved certificates in the User Gradebook */ $query = "SELECT * FROM #__lms_quiz_t_quiz WHERE course_id = '" . $course->id . "' AND c_certificate <> 0 ORDER BY c_title"; $db->SetQuery($query); $quiz_rows = $db->LoadObjectList(); $p = array(); foreach ($quiz_rows as $qrow) { $pp = new stdClass(); $pp->gbi_id = $qrow->c_id; $pp->user_pts = 0; $pp->user_status = -1; $pp->quiz_name = ''; $pp->crtf_id = ''; $p[] = $pp; } $certificates = array(); $quiz_ans = array(); if (count($quiz_rows)) { $query = "SELECT a.*, b.c_full_score, b.c_title, b.c_certificate FROM #__lms_quiz_results as a, #__lms_quiz_t_quiz as b WHERE a.course_id = '" . $course->id . "'" . "\n AND a.quiz_id = b.c_id AND a.user_id = {$user_id} ORDER BY a.user_id, a.quiz_id"; $db->SetQuery($query); $quiz_ans = $db->LoadObjectList(); $j = 0; while ($j < count($quiz_ans)) { if ($quiz_ans[$j]->user_id == $user_id) { $k = 0; while ($k < count($p)) { if ($p[$k]->gbi_id == $quiz_ans[$j]->quiz_id) { $p[$k]->user_pts = $quiz_ans[$j]->user_score; $p[$k]->user_status = $quiz_ans[$j]->user_passed; $p[$k]->quiz_name = $quiz_ans[$j]->c_title; $p[$k]->crtf_id = $quiz_ans[$j]->c_certificate; } $k++; } } $j++; } $certificates = array(); foreach ($p as $pp) { if ($pp->user_status == 1) { $query = "SELECT * FROM #__lms_quiz_r_student_quiz WHERE c_quiz_id = {$pp->gbi_id} AND c_student_id = {$user_id} AND c_total_score = {$pp->user_pts} AND c_passed = 1 ORDER BY c_date_time DESC LIMIT 0,1"; $db->SetQuery($query); $u_res = $db->LoadObject(); if (is_object($u_res)) { $role = $JLMS_ACL->UserRole($db, $user_id, 1); $query = "SELECT crtf_date as crt_date FROM #__lms_certificate_prints WHERE user_id = {$user_id} AND (role_id = {$role} OR role_id = 0) AND course_id = {$course->id} AND quiz_id = {$pp->gbi_id} AND crtf_id = {$pp->crtf_id}" . "\n ORDER BY role_id DESC LIMIT 0,1"; /* !!!!!!!! Bring from DB date of printing by user role or by default role (only if userrole not found) - imenno dlya etogo tut sidit ORDER i LIMIT*/ $db->SetQuery($query); $crtf_date = $db->LoadResult(); if (!$crtf_date) { $crtf_date = $u_res->c_date_time; } $ppp = new stdClass(); $ppp->user_id = $user_id; $ppp->stu_quiz_id = $u_res->c_id; $ppp->quiz_id = $u_res->c_quiz_id; $ppp->user_unique_id = $u_res->unique_id; $ppp->quiz_name = $pp->quiz_name; $ppp->crt_date = $crtf_date; $certificates[] = $ppp; } } } } $lists['user_quiz_certificates'] =& $certificates; /* END of Certificates MOD */ if (isset($lists['user_quiz_certificates']) && count($lists['user_quiz_certificates'])) { for ($i = 0; $i < count($lists['user_quiz_certificates']); $i++) { $lists['user_quiz_certificates'][$i]->course_id = $course->id; $lists['user_quiz_certificates'][$i]->course_name = $course->course_name; } } $my_certificates = array_merge($my_certificates, $lists['user_quiz_certificates']); } } //sort $sort_date = array(); for ($i = 0; $i < count($my_certificates); $i++) { $sort_date[] = strtotime($my_certificates[$i]->crt_date); } arsort($sort_date); $tmp = array(); foreach ($sort_date as $n => $item) { foreach ($my_certificates as $m => $crt) { if ($n == $m) { $tmp[] = $crt; } } } if (isset($tmp) && count($tmp)) { $my_certificates = array(); $my_certificates = $tmp; } return $my_certificates; }