function JLMS_viewInlineLink($id, $option) { global $my, $JLMS_DB, $Itemid, $JLMS_CONFIG; $JLMS_ACL =& JLMSFactory::getACL(); $course_id = $JLMS_CONFIG->get('course_id'); if ($course_id && $JLMS_ACL->CheckPermissions('links', 'view')) { $query = "SELECT a.*" . "\n FROM #__lms_links as a " . "\n WHERE a.id = {$id} AND a.course_id = '" . $course_id . "'" . ($JLMS_ACL->CheckPermissions('links', 'view_all') ? '' : "\n AND a.published = 1"); $JLMS_DB->SetQuery($query); $row = $JLMS_DB->LoadObject(); if (is_object($row)) { $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $_JLMS_PLUGINS->loadBotGroup('content'); $plugin_result_array = $_JLMS_PLUGINS->trigger('onContentProcess', array(&$row->link_href)); $plugin_result_array = $_JLMS_PLUGINS->trigger('onContentProcess', array(&$row->link_name)); if ($row->params) { $params = new JLMSParameters($row->params); } else { $params = new JLMSParameters('display_width=720' . "\n" . 'display_height=540'); } JLMS_course_links_html::showInlineLink($id, $option, $row, $params); } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=links&id={$course_id}")); } } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=links&id={$course_id}")); } }
function botAssociateCEO($users_info) { $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $dbo =& JFactory::GetDbo(); //---->get bot info if (!isset($_JLMS_PLUGINS->_user_bot_params['ceoassoc'])) { // load mambot params info $query = "SELECT params" . "\n FROM #__lms_plugins" . "\n WHERE element = 'ceoassoc'" . "\n AND folder = 'user'"; $dbo->setQuery($query); $bot = $dbo->loadObject(); // save query to class variable $_JLMS_PLUGINS->_user_bot_params['ceoassoc'] = $bot; } // pull query data from class variable $bot = $_JLMS_PLUGINS->_user_bot_params['ceoassoc']; $botParams = new jlmsPluginParameters($bot->params); $botParams->def('ceo_user_id', 0); //<---- if ($parent_id = $botParams->get('ceo_user_id', 0)) { if (is_array($users_info)) { foreach ($users_info as $user_info) { //---->check if user already associated to CEO and add associate if not $query = "SELECT COUNT(*) FROM #__lms_user_parents WHERE parent_id = {$parent_id} AND user_id = {$user_info->user_id}"; $dbo->setQuery($query); if (!$dbo->loadResult()) { $query = "INSERT INTO #__lms_user_parents (`parent_id`, `user_id`) VALUES ({$parent_id}, {$user_info->user_id})"; $dbo->setQuery($query); $dbo->query(); } //<---- } } else { $user_info = $users_info; //---->check if user already associated to CEO and add associate if not $query = "SELECT COUNT(*) FROM #__lms_user_parents WHERE parent_id = {$parent_id} AND user_id = {$user_info->user_id}"; $dbo->setQuery($query); if (!$dbo->loadResult()) { $query = "INSERT INTO #__lms_user_parents (`parent_id`, `user_id`) VALUES ({$parent_id}, {$user_info->user_id})"; $dbo->setQuery($query); $dbo->query(); } //<---- } } return; }
function JLMS_pluginaction() { $folder = JRequest::getVar('folder', ''); $plugin = JRequest::getVar('plugin', ''); $db =& JFactory::getDBO(); $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $query = "SELECT element, folder" . "\n FROM #__lms_plugins" . "\n WHERE 1" . "\n AND folder = '" . $folder . "'" . "\n AND element = '" . $plugin . "'" . "\n AND published = '1'"; $db->setQuery($query); $plugin_in_db = $db->loadObject(); $exist_in_db = isset($plugin_in_db->element) ? 1 : 0; $exist_in_dir = 0; if ($exist_in_db && file_exists(JPATH_SITE . DS . 'components' . DS . 'com_joomla_lms' . DS . 'includes' . DS . 'plugins' . DS . $plugin_in_db->folder . DS . $plugin_in_db->element . '.php') && file_exists(JPATH_SITE . DS . 'components' . DS . 'com_joomla_lms' . DS . 'includes' . DS . 'plugins' . DS . $plugin_in_db->folder . DS . $plugin_in_db->element . '.xml')) { $exist_in_dir = 1; } require_once JPATH_SITE . DS . 'components' . DS . 'com_joomla_lms' . DS . 'includes' . DS . 'plugins' . DS . $plugin_in_db->folder . DS . $plugin_in_db->element . '.php'; $_JLMS_PLUGINS->trigger('onPluginAction'); exit; }
function addToWaitingList($user_info, $course_info) { $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $dbo =& JFactory::GetDbo(); //---->get bot info if (!isset($_JLMS_PLUGINS->_course_bot_params['waitinglist'])) { // load mambot params info $query = "SELECT params" . "\n FROM #__lms_plugins" . "\n WHERE element = 'waitinglist'" . "\n AND folder = 'course'"; $dbo->setQuery($query); $bot = $dbo->loadObject(); // save query to class variable $_JLMS_PLUGINS->_course_bot_params['waitinglist'] = $bot; } // pull query data from class variable $bot = $_JLMS_PLUGINS->_course_bot_params['waitinglist']; $botParams = new jlmsPluginParameters($bot->params); //count users in course $query = "SELECT COUNT(DISTINCT(user_id)) FROM `#__lms_users_in_groups` WHERE course_id = {$course_info->course_id}"; // AND role_id = 2"; $dbo->setQuery($query); $current_attendees = $dbo->loadResult(); $max_attendees = $course_info->max_attendees; //course not full - return true if (!$max_attendees || $max_attendees > $current_attendees) { return true; } //check if user is already in waiting list (just in case) $query = "SELECT COUNT(*) FROM #__lms_waiting_lists WHERE course_id = {$course_info->course_id} AND user_id = {$user_info->user_id}"; $dbo->setQuery($query); if ($dbo->loadResult()) { return false; } //get max ordering of needed list $query = "SELECT MAX(ordering) FROM #__lms_waiting_lists WHERE course_id = {$course_info->course_id}"; $dbo->setQuery($query); $ordering = $dbo->loadResult(); $ordering++; //add user to waiting list $query = "INSERT INTO #__lms_waiting_lists (course_id, user_id, ordering) VALUES ({$course_info->course_id}, {$user_info->user_id}, {$ordering})"; $dbo->setQuery($query); $dbo->query(); return false; }
function notifyCourseJoined($users_info) { $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $JLMS_CONFIG =& JLMSFactory::getConfig(); //---->get bot info $dbo =& JFactory::GetDbo(); if (!isset($_JLMS_PLUGINS->_nontify_bot_params['coursejoinnotify'])) { // load mambot params info $query = "SELECT params" . "\n FROM #__lms_plugins" . "\n WHERE element = 'coursejoinnotify'" . "\n AND folder = 'notifications'"; $dbo->setQuery($query); $bot = $dbo->loadObject(); // save query to class variable $_JLMS_PLUGINS->_notify_bot_params['coursejoinnotify'] = $bot; } // pull query data from class variable $bot = $_JLMS_PLUGINS->_notify_bot_params['coursejoinnotify']; $botParams = new jlmsPluginParameters($bot->params); $botParams->def('mail_template', 'Hello {user_name}, You have just been added to the course {course_name} attendees list.'); $botParams->def('mail_subject', 'Course joining notification'); //<---- foreach ($users_info as $info_ids) { $query = "SELECT c.course_name AS course_name, u.name AS user_name, u.email AS mail_address FROM #__lms_courses AS c, #__users AS u" . "\n WHERE c.id={$info_ids->course_id} AND u.id={$info_ids->user_id}"; $dbo->setQuery($query); $info_text = $dbo->loadObject(); $mail_address = $dbo->getEscaped($info_text->mail_address); $mail_subject = $dbo->getEscaped($botParams->get('mail_subject')); $mail_text = $botParams->get('mail_template'); $mail_text = str_replace('{user_name}', $info_text->user_name, $mail_text); $mail_text = str_replace('{course_name}', $info_text->course_name, $mail_text); $mail_text = str_replace('{site_URL}', $JLMS_CONFIG->get('live_site'), $mail_text); $mail_text = $dbo->getEscaped($mail_text); $query = "INSERT INTO #__lms_notifications (assigned, mail_address, mail_subject, mail_body, sent) VALUES" . "\n ({$info_ids->teacher_id}, '{$mail_address}', '{$mail_subject}', '{$mail_text}', 0)"; $dbo->setQuery($query); $dbo->query(); } }
<?php // no direct access defined('_JEXEC') or die('Restricted access'); define('_JLMS_PLUGIN_TC', 'read or write comments'); $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $_JLMS_PLUGINS->registerFunction('onBelowCourseDetailsPage', 'TopicCollapsible'); $_JLMS_PLUGINS->registerFunction('onPluginAction', 'TopicCollapsible_Action'); //ALTER TABLE `jos_lms_topics` ADD `collapsible` INT NOT NULL ; function TopicCollapsible($course_id) { $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $document =& JFactory::getDocument(); $cookie_name = 'u' . $user->id . 'c' . $course_id . 'topics_exp'; $cookie_value = isset($_COOKIE[$cookie_name]) ? $_COOKIE[$cookie_name] : ''; $topics_expand = explode(',', $cookie_value); $tec = $topics_expand; $query = "SELECT *" . "\n FROM #__lms_topics_collapsible" . "\n WHERE 1" . "\n AND user_id = '" . $user->id . "'" . "\n AND course_id = '" . $course_id . "'"; $db->setQuery($query); $data = $db->loadObject(); $data->value = isset($data->value) ? $data->value : ''; $topics_expand = explode(',', $data->value); $tedb = $topics_expand; $topics_expand = array_merge($tec, $tedb); setcookie($cookie_name, ''); ob_start(); ?> <style type="text/css"> div.btn_collapse{ display: block;
function showSearchCommentsStandard($search_through = 0) { $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $JLMS_CONFIG =& JLMSFactory::getConfig(); $option = 'com_joomla_lms'; $Itemid = $JLMS_CONFIG->get('Itemid'); $task = JRequest::getCmd('task'); $search_jc_text = JRequest::getVar('search_jc_text', '', 'request', 'string'); $query_string = $_SERVER['QUERY_STRING']; preg_match_all('#([\\&a-zA-Z\\_]*)=([a-z\\d\\_]*)#', $query_string, $out, PREG_PATTERN_ORDER); $vars = $out[1]; $available_vars = array('task', 'id', 'course_id', 'topic_id', 'short', 'Itemid'); $inputs = array(); foreach ($_REQUEST as $var => $value) { if (in_array($var, $available_vars)) { $inputs[$var] = $value; } } // $inputs['short'] = 1; if (!$search_through) { $inputs['sall'] = 1; } $action = 'index.php?option=' . $option; $action .= '&task=' . $task; foreach ($inputs as $name => $value) { if (!in_array($name, array('option', 'task', 'short', 'sall', 'Itemid'))) { $action .= '&' . $name . '=' . $value; } } $action .= '&Itemid=' . $Itemid; ob_start(); ?> <style type="text/css"> #search_jc h4{ background-color:inherit; border-bottom:1px solid #D2DADB; color:#555555; font-weight:bold; margin-bottom:10px; padding:0 0 2px; text-align:left; } #search_jc input{ background-color:#FFFFFF; border:1px solid #CCCCCC; color:#444444; padding:0; } #search_jc .search_fields{ height:1%; margin-left:20px; } </style> <div id="search_jc"> <form action="<?php echo JRoute::_($action); ?> " name="searchJCFormStnd" method="post"> <h4> <?php echo _JLMS_PLUGIN_JC_HEAD_SEARCH; ?> </h4> <div class="search_fields"> <table width="100%" cellpadding="0" cellspacing="3" border="0"> <tr> <td align="center"> <input type="text" name="search_jc_text" value="<?php echo $search_jc_text; ?> " class="inputbox" style="width: 98%" /> </td> <td width="1%"> <input type="button" name="btn_search" value="<?php echo _JLMS_PLUGIN_JC_SEARCH; ?> " onclick="document.forms.searchJCFormStnd.submit();" /> </td> <td width="1%"> <input type="button" name="btn_reset" value="<?php echo _JLMS_PLUGIN_JC_RESET; ?> " onclick="document.forms.searchJCFormStnd.search_jc_text.value='';document.forms.searchJCFormStnd.sall.value='0';document.forms.searchJCFormStnd.submit();" /> </td> </tr> </table> </div> <input type="hidden" name="search_jc" value="1" /> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <?php foreach ($inputs as $name => $value) { ?> <input type="hidden" name="<?php echo trim($name); ?> " value="<?php echo $value; ?> " /> <?php } ?> </form> </div> <?php $ret = ob_get_contents(); ob_end_clean(); return $ret; }
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 JLMS_ShowToolbar($toolbar, $href_link = true, $align = 'right', $cellpad = 0, $cellspac = 0) { global $Itemid, $JLMS_CONFIG; //b Events JLMS Plugins $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $_JLMS_PLUGINS->loadBotGroup('system'); $args = array(); $args[] =& $toolbar; $_JLMS_PLUGINS->trigger('onShowToolbar', $args); //e Events JLMS Plugins $extra_style = ''; if ($align == 'center') { $extra_style .= 'margin: 0 auto;'; } $toolbar_thml = ''; if (count($toolbar)) { $toolbar_thml .= "<table class='jlms_toolbar_buttons' align='{$align}' style='text-align: {$align}; width:auto; {$extra_style}' cellpadding='{$cellpad}' cellspacing='{$cellspac}' border='0'><tr>"; foreach ($toolbar as $toolbar_btn) { $toolbar_thml .= "<td>"; $btn_w = "32"; $btn_h = "32"; switch ($toolbar_btn['btn_type']) { case 'send': $btn_str = _JLMS_SEND_ALT_TITLE; $btn_img = 'buttons/btn_send.png'; break; case 'addtocart': $btn_str = _JLMS_ADD_TO_CART; $btn_img = 'buttons/btn_addtocart.png'; break; case 'checkout': $btn_str = _JLMS_CHECKOUT_ITEMS; $btn_img = 'buttons/btn_checkout.png'; break; case 'viewcart': $btn_str = _JLMS_VIEW_CART; $btn_img = 'buttons/btn_viewcart.png'; break; case 'edit': $btn_str = _JLMS_EDIT; $btn_img = 'buttons/btn_edit.png'; break; case 'save': $btn_str = _JLMS_SAVE_ALT_TITLE; $btn_img = 'buttons/btn_save.png'; break; case 'preview': $btn_str = _JLMS_PREVIEW_ALT_TITLE; $btn_img = 'buttons/btn_preview.png'; break; case 'back': $btn_str = _JLMS_BACK_ALT_TITLE; $btn_img = 'buttons/btn_back.png'; break; case 'import': $btn_str = _JLMS_IMPORT_ALT_TITLE; $btn_img = 'buttons/btn_upload.png'; break; case 'cancel': $btn_str = _JLMS_CANCEL_ALT_TITLE; $btn_img = 'buttons/btn_cancel.png'; break; //homework //homework case 'complete': $btn_str = _JLMS_COMPLETE_ALT_TITLE; $btn_img = 'buttons/btn_complete.png'; break; case 'yes': $btn_str = _JLMS_YES_ALT_TITLE; $btn_img = 'buttons/btn_complete.png'; break; case 'newtopic': $btn_str = _JLMS_YES_ALT_TITLE; $btn_img = 'buttons/btn_newtopic.png'; break; //quiz //quiz case 'quiz_ok': $btn_str = _JLMS_OK_ALT_TITLE; $btn_img = 'buttons/btn_complete.png'; break; //'show_lpath' section //'show_lpath' section case 'start': $btn_str = _JLMS_START_ALT_TITLE; $btn_img = 'buttons/btn_start.png'; break; case 'resume': $btn_str = _JLMS_RESUME_ALT_TITLE; $btn_img = 'buttons/btn_start.png'; break; case 'next': $btn_str = _JLMS_NEXT_ALT_TITLE; $btn_img = 'buttons/btn_start.png'; break; case 'continue': $btn_str = _JLMS_CONTINUE_ALT_TITLE; $btn_img = 'buttons/btn_start.png'; break; case 'prev': $btn_str = _JLMS_PREV_ALT_TITLE; $btn_img = 'buttons/btn_back.png'; break; case 'contents': $btn_str = _JLMS_CONTENTS_ALT_TITLE; $btn_img = 'buttons/btn_contents.png'; break; case 'restart': $btn_str = _JLMS_RESTART_ALT_TITLE; $btn_img = 'buttons/btn_restart.png'; break; case 'export': $btn_str = _JLMS_EXPORT_ALT_TITLE; $btn_img = 'buttons/btn_export.png'; break; case 'clear': $btn_str = _JLMS_CLEAR_ALT_TITLE; $btn_img = 'buttons/btn_clear.png'; break; case 'settings': $btn_str = _JLMS_SETTINGS_ALT_TITLE; $btn_img = 'buttons/btn_configure.png'; break; case 'archive': $btn_str = _JLMS_ARCHIVE_ALT_TITLE; $btn_img = 'buttons/btn_archive.png'; break; case 'booking': $btn_str = 'Booking'; $btn_img = 'buttons/schedule.png'; break; //---messages--/// //---messages--/// case 'mail_inbox': $btn_str = _JLMS_INBOX_ALT_TITLE; $btn_img = 'buttons/btn_inbox.png'; break; case 'mail_outbox': $btn_str = _JLMS_OUTBOX_ALT_TITLE; $btn_img = 'buttons/btn_outbox.png'; break; case 'mail_send': $btn_str = _JLMS_COMPOSE_ALT_TITLE; $btn_img = 'buttons/btn_compose.png'; break; //Max 6.10.08 Quiz Skip mod //Max 6.10.08 Quiz Skip mod case 'skip': $btn_str = 'Skip'; $btn_img = 'buttons/btn_next.png'; break; //Max 26.03.08 Quiz //Max 26.03.08 Quiz case 'certificate_fbar': $btn_str = _JLMS_q_quiz_fin_btn_certificate; $btn_img = 'buttons/btn_certificate_fbar.png'; break; case 'print_fbar': $btn_str = _JLMS_q_quiz_fin_btn_print; $btn_img = 'buttons/btn_print_fbar.png'; break; case 'email_to_fbar': $btn_str = _JLMS_q_quiz_fin_btn_email; $btn_img = 'buttons/btn_email_to_fbar.png'; break; case 'review_fbar': $btn_str = _JLMS_q_quiz_fin_btn_review; $btn_img = 'buttons/btn_review_fbar.png'; break; //Max 10.04.08 Booking Timetable //Max 10.04.08 Booking Timetable case 'new': $btn_str = 'New'; $btn_img = 'buttons/btn_new.png'; break; case 'edit': $btn_str = _JLMS_EDIT; $btn_img = 'buttons/btn_edit.png'; break; case 'delete': $btn_str = _JLMS_DELETE; $btn_img = 'buttons/btn_trash.png'; break; case 'apply': $btn_str = 'Apply'; $btn_img = 'buttons/btn_complete.png'; break; case 'save': $btn_str = _JLMS_SAVE_ALT_TITLE; $btn_img = 'buttons/btn_save.png'; break; case 'cancel': $btn_str = _JLMS_CANCEL_ALT_TITLE; $btn_img = 'buttons/btn_cancel.png'; break; case 'pdf': $btn_str = 'PDF'; $btn_img = 'buttons/btn_pdf.png'; break; default: $btn_str = _JLMS_SAVE_ALT_TITLE; $btn_img = 'buttons/btn_save.png'; break; } if (isset($toolbar_btn['btn_str'])) { $btn_str = $toolbar_btn['btn_str']; } $btn_str_link = $btn_str; if (isset($toolbar_btn['btn_title'])) { $btn_str = $toolbar_btn['btn_title']; } $target = ''; if (isset($toolbar_btn['btn_target']) && $toolbar_btn['btn_target']) { $target = " target='" . $toolbar_btn['btn_target'] . "'"; } if ($href_link) { $toolbar_thml .= "<a" . $target . " class=\"jlms_img_link\" href=\"" . $toolbar_btn['btn_js'] . "\" title=\"" . $btn_str . "\" onmouseover=\"jlms_WStatus('" . addslashes($btn_str) . "');return true;\" onmouseout=\"jlms_WStatus('');return true;\">"; } else { $toolbar_thml .= "<a" . $target . " class=\"jlms_img_link\" style=\"cursor:pointer\" onclick=\"" . $toolbar_btn['btn_js'] . "\" title=\"" . $btn_str . "\" onmouseover=\"jlms_WStatus('" . addslashes($btn_str) . "');return true;\" onmouseout=\"jlms_WStatus('');return true;\">"; } if (substr($btn_img, 0, 5) == 'http:' || substr($btn_img, 0, 6) == 'https:') { $toolbar_thml .= "<img class='JLMS_png' src=\"" . $btn_img . "\" width='" . $btn_w . "' height='" . $btn_h . "' border='0' alt=\"" . $btn_str . "\" title=\"" . $btn_str . "\" />"; } else { $toolbar_thml .= "<img class='JLMS_png' src=\"" . $JLMS_CONFIG->getCfg('live_site') . '/' . $JLMS_CONFIG->get('lms_path_to_images') . "/" . $btn_img . "\" width='" . $btn_w . "' height='" . $btn_h . "' border='0' alt=\"" . $btn_str . "\" title=\"" . $btn_str . "\" />"; } $toolbar_thml .= "</a>"; $toolbar_thml .= "</td>"; $toolbar_thml .= "<td valign='middle' style='vertical-align:middle'>"; if ($href_link) { $toolbar_thml .= "<a" . $target . " href=\"" . $toolbar_btn['btn_js'] . "\" title=\"" . $btn_str . "\" onmouseover=\"jlms_WStatus('" . addslashes($btn_str) . "');return true;\" onmouseout=\"jlms_WStatus('');return true;\">"; } else { $toolbar_thml .= "<a" . $target . " style=\"cursor:pointer\" onclick=\"" . $toolbar_btn['btn_js'] . "\" title=\"" . $btn_str . "\" onmouseover=\"jlms_WStatus('" . addslashes($btn_str) . "');return true;\" onmouseout=\"jlms_WStatus('');return true;\">"; } $toolbar_thml .= " " . $btn_str_link . " "; $toolbar_thml .= "</a>"; $toolbar_thml .= "</td>"; } $toolbar_thml .= "</tr></table>"; } return $toolbar_thml; }
function addItemToLPath($lpath_id, $course_id, $option, &$my_documents, &$my_links, &$my_quizzes, &$my_scorms, &$lists, $parent) { global $Itemid, $JLMS_CONFIG; ?> <script language="javascript" type="text/javascript"> <!-- function jlms_get_kol_selected(fff) { var kol_sel=0; selItem=fff['cid[]']; var rrr=''; if (selItem) { if (selItem.length) { var i; for (i = 0; i<selItem.length; i++) { if (selItem[i].checked) { kol_sel++; } } } else if (selItem.checked) { kol_sel++; } } return kol_sel; } function submitbutton_doc(pressbutton) { var form = document.docForm; var kol_docs = jlms_get_kol_selected(form); if ( (pressbutton == 'lpath_add_doc') && (kol_docs == 0) ) { alert( "<?php echo _JLMS_LPATH_SELECT_DOCS; ?> " ); } else { form.task.value = pressbutton; form.submit(); } } function submitbutton_link(pressbutton) { var form = document.linkForm; var kol_links = jlms_get_kol_selected(form); if ( (pressbutton == 'lpath_add_link') && (kol_links == 0) ) { alert( "<?php echo _JLMS_LPATH_SELECT_LINKS; ?> " ); } else { form.task.value = pressbutton; form.submit(); } } function submitbutton_quiz(pressbutton) { var form = document.quizForm; var kol_quizzes = jlms_get_kol_selected(form); if ( (pressbutton == 'lpath_add_quiz') && (kol_quizzes == 0) ) { alert( "<?php echo _JLMS_LPATH_SELECT_QUIZZES; ?> " ); } else { form.task.value = pressbutton; form.submit(); } } function submitbutton_scorm(pressbutton) { var form = document.scormForm; var kol_scorms = jlms_get_kol_selected(form); if ( (pressbutton == 'lpath_add_scorm') && (kol_scorms == 0) ) { alert( "<?php echo _JLMS_LPATH_SELECT_SCORMS; ?> " ); } else { form.task.value = pressbutton; form.submit(); } } function submitbutton_chap(pressbutton) { var form = document.chapForm; if ( (pressbutton == 'lpath_add_chapter') && (form.step_name.value == '') ) { alert( "<?php echo _JLMS_LPATH_ENTER_CHAP_NAME; ?> " ); } else { form.task.value = pressbutton; form.submit(); } } function submitbutton_content(pressbutton) { var form = document.contentForm; try { form.onsubmit(); } catch(e) { //alert(e); } if ( (pressbutton == 'lpath_add_content') && (form.step_name.value == '') ) { alert( "<?php echo _JLMS_LPATH_ENTER_CONTENT_NAME; ?> " ); } else { form.task.value = pressbutton; form.submit(); } } //--> </script> <?php JLMS_TMPL::OpenMT(); $hparams = array(); JLMS_TMPL::ShowHeader('lpath', '', $hparams); JLMS_TMPL::OpenTS(); ?> <form action="<?php echo sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid); ?> " method="post" name="swapParent"> <input name="parent" type="hidden" value="<?php echo $parent; ?> " /> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="add_lpath_step" /> <input type="hidden" name="id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="lpath_id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="course_id" value="<?php echo $course_id; ?> " /> </form> <?php echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_ITEMS); $tabs = new JLMSTabs(0); echo $tabs->startPane("JLMS"); echo $tabs->startTab(_JLMS_LPATH_CONTENT, "jlmstab6"); echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_CONTENT); ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders"> <tr> <td align="right"> <?php $toolbar = array(); $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_content('lpath_add_content');"); $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_content('cancel_lpath_step');"); echo JLMS_ShowToolbar($toolbar); ?> </td> </tr> </table> <form action="<?php echo sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid); ?> " method="post" name="contentForm" onsubmit="setgood();"> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties"> <tr> <td width="15%"><br /><?php echo _JLMS_ENTER_NAME; ?> </td> <td> <br /><input type="text" name="step_name" style="width:260px" value="" /> </td> </tr> <tr> <td width="15%"><br /><?php echo _JLMS_PLACE_IN; ?> </td> <td><br /><?php echo $lists['lpath_chaps1']; ?> </td> </tr> <tr> <td><br /><?php echo _JLMS_ORDERING; ?> </td> <td colspan="2"><br /><?php echo $lists['lpath_order']; ?> </td> </tr> <tr> <td align="left" valign="top" style="vertical-align:top "><br /><?php echo _JLMS_SHORT_DESCRIPTION; ?> </td> <td colspan="2"><br /><textarea class="inputbox" name="step_shortdescription" cols="50" rows="3"></textarea></td> </tr> <tr> <td colspan="3" align="left" style="text-align:left "><br /><?php echo _JLMS_DESCRIPTION; ?> </td> </tr> <tr> <td colspan="3"> <?php JLMS_editorArea('editor1', '', 'step_description', '100%', '250', '40', '20'); ?> </td> </tr> </table> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="lpath_add_content" /> <input type="hidden" name="id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="lpath_id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="course_id" value="<?php echo $course_id; ?> " /> </form> <?php echo $tabs->endTab(); echo $tabs->startTab(_JLMS_LPATH_CHAPTER, "jlmstab5"); echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_CHAP); ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders"> <tr> <td align="right"> <?php $toolbar = array(); $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_chap('lpath_add_chapter');"); $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_chap('cancel_lpath_step');"); echo JLMS_ShowToolbar($toolbar); ?> </td> </tr> </table> <form action="<?php echo sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid); ?> " method="post" name="chapForm"> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties"> <tr> <td width="15%"><br /><?php echo _JLMS_ENTER_NAME; ?> </td> <td> <br /><input type="text" name="step_name" style="width:260px" value="" /> </td> </tr> <tr> <td width="15%"><br /><?php echo _JLMS_PLACE_IN; ?> </td> <td><br /><?php echo $lists['lpath_chaps1']; ?> </td> </tr> <tr> <td><br /><?php echo _JLMS_ORDERING; ?> </td> <td><br /><?php echo $lists['lpath_order']; ?> </td> </tr> </table> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="lpath_add_chapter" /> <input type="hidden" name="id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="lpath_id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="course_id" value="<?php echo $course_id; ?> " /> </form> <?php echo $tabs->endTab(); if (!empty($my_documents)) { echo $tabs->startTab(_JLMS_HEAD_DOCS_STR, "jlmstab1"); echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_DOCS); ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders"> <tr> <td align="right"> <?php $toolbar = array(); $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_doc('lpath_add_doc');"); $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_doc('cancel_lpath_step');"); echo JLMS_ShowToolbar($toolbar); ?> </td> </tr> </table> <form action="<?php echo sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid); ?> " method="post" name="docForm"> <?php $max_tree_width = 0; $max_tree_width1 = 0; if (isset($my_documents[0])) { $max_tree_width = $my_documents[0]->tree_max_width; } $max_tree_width1 = $max_tree_width; ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php echo JLMSCSS::_('jlmslist'); ?> "> <tr> <<?php echo JLMSCSS::tableheadertag(); ?> width="1%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " align="center">#</<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="1%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="<?php echo $max_tree_width + 1; ?> %" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> " colspan="<?php echo $max_tree_width + 1; ?> "> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="50%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "><?php echo _JLMS_LPATH_TBL_HEAD_NAME_DOCS; ?> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="<?php echo 48 - ($max_tree_width + 1); ?> %" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "><span style="display:block; width:150px"><?php echo _JLMS_LPATH_TBL_HEAD_DESCR_DOCS; ?> </span></<?php echo JLMSCSS::tableheadertag(); ?> > </tr> <?php $k = 1; $tree_modes = array(); for ($i = 0, $n = count($my_documents); $i < $n; $i++) { $row = $my_documents[$i]; $max_tree_width = $row->tree_max_width; $link = "index.php?option=" . $option . "&Itemid=" . $Itemid . "&task=get_document&course_id=" . $course_id . "&id=" . $row->id; $checked = '<input type="checkbox" name="cid[]" value="' . $row->id . '" />'; ?> <tr class="<?php echo JLMSCSS::_('sectiontableentry' . $k); ?> "> <td align="center"><?php echo $i + 1; ?> </td> <td align="center" valign="middle"><?php if (!$row->folder_flag || $row->folder_flag == 2 || $row->folder_flag == 3) { echo $checked; } else { echo ' '; } ?> </td> <?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 class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/treeview/" . $pref . "line.png\" width='16' height='16' /></td>"; $g++; } $add_img .= "<td width='16' valign='middle'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/treeview/sub" . $row->tree_mode . ".png\" width='16' height='16' /></td>"; $max_tree_width = $max_tree_width - $g - 1; } echo $add_img; ?> <td align="center" valign="middle" style="vertical-align:middle " width='16'> <?php if ($row->folder_flag == 1) { echo "<span style='text-align:center; font-weight:bold; vertical-align:middle;'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/folder.png\" width='16' height='16' alt='" . _JLMS_LPATH_DOC_ALT_FOLDER . "' /></span>"; } else { echo "<span style='text-align:center;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='" . _JLMS_LPATH_DOC_ALT_FILE . "' /></span>"; } ?> </td> <td align="left" valign="middle" <?php if ($max_tree_width > 0) { echo "colspan='" . ($max_tree_width + 1) . "'"; } ?> width="35%"> <?php if ($row->folder_flag || !$row->folder_flag && !$row->file_id) { echo '<strong>' . $row->doc_name . '</strong>'; } else { ?> <?php /*<a href="<?php echo sefRelToAbs($link);?>" title="<?php echo _JLMS_LPATH_LINK_DOC_DOWNLOAD;?>"> */ echo $row->doc_name; /* </a> */ } ?> </td> <td><?php $doc_descr = trim(strip_tags($row->doc_description)); if (strlen($doc_descr) > 75) { $doc_descr = substr($doc_descr, 0, 75) . "..."; } echo $doc_descr ? $doc_descr : ' '; ?> </td> </tr> <?php $k = 3 - $k; } ?> </table> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties"> <tr> <td width="15%"><?php echo _JLMS_PLACE_IN; ?> </td> <td><?php echo $lists['lpath_chaps1']; ?> </td> </tr> <tr> <td><br /><?php echo _JLMS_ORDERING; ?> </td> <td><br /><?php echo $lists['lpath_order']; ?> </td> </tr> </table> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="lpath_add_doc" /> <input type="hidden" name="id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="lpath_id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="course_id" value="<?php echo $course_id; ?> " /> </form> <?php echo $tabs->endTab(); } if (!empty($my_links)) { echo $tabs->startTab(_JLMS_HEAD_LINK_STR, "jlmstab2"); echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_LINKS); ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders"> <tr> <td align="right"> <?php $toolbar = array(); $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_link('lpath_add_link');"); $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_link('cancel_lpath_step');"); echo JLMS_ShowToolbar($toolbar); ?> </td> </tr> </table> <form action="<?php echo sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid); ?> " method="post" name="linkForm"> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php echo JLMSCSS::_('jlmslist'); ?> "> <tr> <<?php echo JLMSCSS::tableheadertag(); ?> width="1%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> ">#</<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="1%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="50%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "><?php echo _JLMS_LPATH_TBL_HEAD_NAME_LINKS; ?> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="48%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "><span style="display:block; width:150px"><?php echo _JLMS_LPATH_TBL_HEAD_DESCR_LINKS; ?> </span></<?php echo JLMSCSS::tableheadertag(); ?> > </tr> <?php $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $_JLMS_PLUGINS->loadBotGroup('content'); for ($i = 0, $n = count($my_links); $i < $n; $i++) { $plugin_result_array = $_JLMS_PLUGINS->trigger('onContentProcess', array(&$my_links[$i]->link_href)); $plugin_result_array = $_JLMS_PLUGINS->trigger('onContentProcess', array(&$my_links[$i]->link_name)); } $k = 1; for ($i = 0, $n = count($my_links); $i < $n; $i++) { $row = $my_links[$i]; $link = $row->link_href; //'javascript:void(0);';//"index.php?option=".$option."&Itemid=".$Itemid."&task=get_file&id=".$row->file_id; $checked = '<input type="checkbox" name="cid[]" value="' . $row->id . '" />'; ?> <tr class="<?php echo JLMSCSS::_('sectiontableentry' . $k); ?> "> <td align="center"><?php echo $i + 1; ?> </td> <td><?php echo $checked; ?> </td> <td> <a target="_blank" href="<?php echo sefRelToAbs($link); ?> " title="<?php echo _JLMS_LPATH_VIEW_LINK; ?> "> <?php echo $row->link_name; ?> </a> </td> <td><?php echo trim($row->link_description) ? $row->link_description : ' '; ?> </td> </tr> <?php $k = 3 - $k; } ?> </table> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties"> <tr> <td width="15%"><?php echo _JLMS_PLACE_IN; ?> </td> <td><?php echo $lists['lpath_chaps1']; ?> </td> </tr> <tr> <td><br /><?php echo _JLMS_ORDERING; ?> </td> <td><br /><?php echo $lists['lpath_order']; ?> </td> </tr> </table> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="lpath_add_link" /> <input type="hidden" name="id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="lpath_id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="course_id" value="<?php echo $course_id; ?> " /> </form> <?php echo $tabs->endTab(); } if (!empty($my_quizzes)) { echo $tabs->startTab(_JLMS_HEAD_QUIZ_STR, "jlmstab3"); echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_QUIZZES); ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders"> <tr> <td align="right"> <?php $toolbar = array(); $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_quiz('lpath_add_quiz');"); $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_quiz('cancel_lpath_step');"); echo JLMS_ShowToolbar($toolbar); ?> </td> </tr> </table> <form action="<?php echo sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid); ?> " method="post" name="quizForm"> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php echo JLMSCSS::_('jlmslist'); ?> "> <tr> <<?php echo JLMSCSS::tableheadertag(); ?> width="1%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> ">#</<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="1%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="50%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "><?php echo _JLMS_LPATH_TBL_HEAD_NAME_QUIZ; ?> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="48%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "><span style="display:block; width:150px"><?php echo _JLMS_LPATH_TBL_HEAD_CAT_QUIZ; ?> </span></<?php echo JLMSCSS::tableheadertag(); ?> > </tr> <?php $k = 1; for ($i = 0, $n = count($my_quizzes); $i < $n; $i++) { $row = $my_quizzes[$i]; // (WARNING) if link will be changed, don't forgot to change target of <a> element $link = 'javascript:void(0);'; //$row->link_href;//"index.php?option=".$option."&Itemid=".$Itemid."&task=get_file&id=".$row->file_id; $checked = '<input type="checkbox" name="cid[]" value="' . $row->c_id . '" />'; ?> <tr class="<?php echo JLMSCSS::_('sectiontableentry' . $k); ?> "> <td align="center"><?php echo $i + 1; ?> </td> <td><?php echo $checked; ?> </td> <td> <a href="<?php echo sefRelToAbs($link); ?> "> <?php echo $row->c_title; ?> </a> </td> <td><?php echo trim($row->c_category) ? $row->c_category : ' '; ?> </td> </tr> <?php $k = 3 - $k; } ?> </table> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties"> <tr> <td width="15%"><?php echo _JLMS_PLACE_IN; ?> </td> <td><?php echo $lists['lpath_chaps1']; ?> </td> </tr> <tr> <td><br /><?php echo _JLMS_ORDERING; ?> </td> <td><br /><?php echo $lists['lpath_order']; ?> </td> </tr> </table> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="lpath_add_quiz" /> <input type="hidden" name="id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="lpath_id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="course_id" value="<?php echo $course_id; ?> " /> </form> <?php echo $tabs->endTab(); } if (!empty($my_scorms)) { echo $tabs->startTab(_JLMS_LPATH_SCORM_OBJECTS, "jlmstab4"); echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_SCORMS); ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders"> <tr> <td align="right"> <?php $toolbar = array(); $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_scorm('lpath_add_scorm');"); $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_scorm('cancel_lpath_step');"); echo JLMS_ShowToolbar($toolbar); ?> </td> </tr> </table> <form action="<?php echo sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid); ?> " method="post" name="scormForm"> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php echo JLMSCSS::_('jlmslist'); ?> "> <tr> <<?php echo JLMSCSS::tableheadertag(); ?> width="1%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> ">#</<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="1%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "> </<?php echo JLMSCSS::tableheadertag(); ?> > <<?php echo JLMSCSS::tableheadertag(); ?> width="98%" class="<?php echo JLMSCSS::_('sectiontableheader'); ?> "><?php echo _JLMS_LPATH_SCORM_OBJECT; ?> </<?php echo JLMSCSS::tableheadertag(); ?> > </tr> <?php $k = 1; for ($i = 0, $n = count($my_scorms); $i < $n; $i++) { $row = $my_scorms[$i]; // (WARNING) if link will be changed, don't forgot to change target of <a> element $link = 'javascript:void(0);'; //$row->link_href;//"index.php?option=".$option."&Itemid=".$Itemid."&task=get_file&id=".$row->file_id; $checked = '<input type="checkbox" name="cid[]" value="' . $row->id . '" />'; ?> <tr class="<?php echo JLMSCSS::_('sectiontableentry' . $k); ?> "> <td align="center"><?php echo $i + 1; ?> </td> <td><?php if (!isset($row->is_link)) { echo $checked; } ?> </td> <td> <?php if (!isset($row->is_link)) { ?> <a href="<?php echo sefRelToAbs($link); ?> "> <?php } ?> <?php echo $row->lpath_name; ?> <?php if (!isset($row->is_link)) { ?> </a> <?php } ?> </td> </tr> <?php $k = 3 - $k; } ?> </table> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties"> <tr> <td width="15%"><?php echo _JLMS_PLACE_IN; ?> </td> <td><?php echo $lists['lpath_chaps1']; ?> </td> </tr> <tr> <td><br /><?php echo _JLMS_ORDERING; ?> </td> <td><br /><?php echo $lists['lpath_order']; ?> </td> </tr> </table> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="lpath_add_scorm" /> <input type="hidden" name="id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="lpath_id" value="<?php echo $lpath_id; ?> " /> <input type="hidden" name="course_id" value="<?php echo $course_id; ?> " /> </form> <?php echo $tabs->endTab(); } echo $tabs->endPane(); JLMS_TMPL::CloseTS(); JLMS_TMPL::CloseMT(); }
function showCourseDetails($id, &$row, &$params, $option, &$lists, $view_type = 'view') { $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); global $Itemid, $my, $JLMS_CONFIG, $JLMS_SESSION; $count_modules = 0; $JLMS_ACL =& JLMSFactory::getACL(); if ($JLMS_ACL->GetRole() && !$JLMS_ACL->isStaff()) { if ($params->get('homework_view') && $JLMS_CONFIG->get('course_homework')) { $count_modules++; } if ($params->get('agenda_view')) { $count_modules++; } if ($params->get('dropbox_view')) { $count_modules++; } if ($params->get('mailbox_view')) { $count_modules++; } if ($params->get('certificates_view')) { $count_modules++; } if ($params->get('latest_forum_posts_view')) { $count_modules++; } if ($count_modules) { ?> <?php } } JLMS_TMPL::OpenMT(); $hparams = array(); if ($view_type == 'view') { $hparams['simple_menu'] = true; $hparams['sys_msg'] = _JLMS_MESSAGE_SHORT_COURSE_INFO; } if ($view_type == 'offerWL') { $hparams['sys_msg'] = _JLMS_MESSAGE_OFFER_JOIN_WAITING_LIST; } elseif ($view_type == 'inWL') { $hparams['sys_msg'] = _JLMS_MESSAGE_ALREADY_IN_WATING_LIST; $JLMS_CONFIG->set('enableterms', 0); } if ($JLMS_SESSION->get('joomlalms_just_joined', 0)) { if (isset($hparams['sys_msg'])) { $hparams['sys_msg'] = $JLMS_SESSION->get('joomlalms_sys_message', '') . '<br />' . $hparams['sys_msg']; } else { $hparams['sys_msg'] = $JLMS_SESSION->get('joomlalms_sys_message', ''); } $JLMS_SESSION->clear('joomlalms_just_joined'); } $toolbar = array(); $JLMS_ACL =& JLMSFactory::getACL(); if ($JLMS_ACL->CheckPermissions('course', 'manage_settings')) { $toolbar[] = array('btn_type' => 'newtopic', 'btn_js' => "index.php?option={$option}&Itemid={$Itemid}&task=add_topic&id={$id}", 'btn_str' => _JLMS_TOPIC_T_ADD); $toolbar[] = array('btn_type' => 'settings', 'btn_js' => sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=settings&id={$id}")); $toolbar[] = array('btn_type' => 'edit', 'btn_js' => ampReplace(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=edit_course&id={$id}&is_inside=1"))); } elseif ($view_type == 'view' || $view_type == 'offerWL' || $view_type == 'inWL') { $hparams['simple_menu'] = true; if ($my->id && $row->self_reg && JLMS_checkCourseGID($my->id, $row->gid)) { //check that enrollment is available and user gid is allowed if ($row->paid) { if ($view_type != 'inWL') { $toolbar[] = array('btn_type' => 'yes', 'btn_str' => _JLMS_SUBSCRIBE, 'btn_js' => "javascript:submitbutton('subscription','');"); } } else { if ($view_type != 'inWL') { $toolbar[] = array('btn_type' => 'yes', 'btn_str' => _JLMS_SUBSCRIBE, 'btn_js' => "javascript:submitbutton('course_subscribe','');"); } } if ($view_type != 'inWL') { $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=courses")); } else { $toolbar[] = array('btn_type' => 'back', 'btn_js' => sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=courses")); } $hparams['toolbar_position'] = 'center'; $html_code_before_toolbar = "\n\t\t\t\t<form action='" . sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}") . "' method='post' name='adminForm_enroll'>\n\t\t\t\t<script language='javascript' type='text/javascript'>\n\t\t\t\t\t<!--\n\n\t\t\t\t\tfunction submitbutton(pressbutton) {\n\t\t\t\t\t\tvar form = document.adminForm_enroll;"; if ($JLMS_CONFIG->get('enableterms') && !$row->paid) { $html_code_before_toolbar .= "\n\t\t\t\t\t\tif( (pressbutton == 'course_subscribe') && (document.getElementById('jlms_agreement').checked == false) ){\n\t\t\t\t\t\t\talert( '" . addslashes(_JLMS_AGREEMENT) . "' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tform.task.value = pressbutton;\n\t\t\t\t\t\t\tform.submit();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t"; } else { $html_code_before_toolbar .= "\n\t\t\t\t\t\t\tform.task.value = pressbutton;\n\t\t\t\t\t\t\tform.submit();\n\t\t\t\t\t"; } $html_code_before_toolbar .= "\n\t\t\t\t\t\t\t}\n\t\t\t\t\t//-->\n\t\t\t\t\t</script>\n\t\t\t\t\t"; if ($JLMS_CONFIG->get('enableterms') && !$row->paid) { $html_code_before_toolbar .= "\n\t\t\t\t\t<table align='center' class='jlms_table_no_borders'><tr><td width='20'>\n\t\t\t\t\t\t<input type='checkbox' name='agreement' id='jlms_agreement' />\n\t\t\t\t\t</td><td style='text-align:left'>\n\t\t\t\t\t\t<label for='jlms_agreement'>" . $JLMS_CONFIG->get('jlms_terms') . "</label>\n\t\t\t\t\t</td></tr></table>\n\t\t\t\t\t"; } if ($row->paid) { $html_code_before_toolbar .= "\n\t\t\t\t\t\t<input type='hidden' name='option' value='" . $option . "' />\n\t\t\t\t\t\t<input type='hidden' name='Itemid' value='" . $Itemid . "' />\n\t\t\t\t\t\t<input type='hidden' name='task' value='subscription' />\n\t\t\t\t\t\t<input type='hidden' name='cid[]' value='" . $row->id . "' />\n\t\t\t\t\t\t<input type='hidden' name='state' value='0' />\n\t\t\t\t\t\t</form>\n\t\t\t\t\t"; } else { $html_code_before_toolbar .= "\n\t\t\t\t\t\t<input type='hidden' name='option' value='" . $option . "' />\n\t\t\t\t\t\t<input type='hidden' name='Itemid' value='" . $Itemid . "' />\n\t\t\t\t\t\t<input type='hidden' name='task' value='courses' />\n\t\t\t\t\t\t<input type='hidden' name='id' value='" . $row->id . "' />\n\t\t\t\t\t\t<input type='hidden' name='state' value='0' />\n\t\t\t\t\t\t</form>\n\t\t\t\t\t"; } $hparams['html_code_before_toolbar'] = $html_code_before_toolbar; } else { $toolbar[] = array('btn_type' => 'back', 'btn_js' => sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=courses")); } } elseif ($view_type == 'future_course') { $hparams['simple_menu'] = true; if ($row->publish_start) { $hparams['sys_msg'] = str_replace('{date}', JLMS_dateToDisplay($row->start_date), _JLMS_COURSE_IS_PENDING_MSG); } else { $query = "SELECT start_date FROM #__lms_users_in_groups WHERE course_id = " . $row->id . " AND user_id = " . $my->id; global $JLMS_DB; $JLMS_DB->SetQuery($query); $user_start = $JLMS_DB->LoadResult(); $hparams['sys_msg'] = str_replace('{date}', JLMS_dateToDisplay($user_start), _JLMS_COURSE_USER_IS_PENDING); } } JLMS_TMPL::ShowHeader('course', _JLMS_COURSES_DETAILS, $hparams, $toolbar); $_JLMS_PLUGINS->loadBotGroup('system'); $plugin_args = array(); $plugin_args[] = $id; $_JLMS_PLUGINS->trigger('onAboveCourseDetailsPage', $plugin_args); if ($JLMS_ACL->GetRole() && !$JLMS_ACL->isStaff() && $count_modules) { $custom_sections = array(); if ($JLMS_CONFIG->get('course_homework') && $params->get('homework_view')) { $txt = JLMS_showMyHomeWork($option, $Itemid, $lists['my_hw']); $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"'); } if ($params->get('agenda_view')) { $txt = JLMS_showMyAgenda($option, $Itemid, $lists['my_announcements']); $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"'); } if ($params->get('dropbox_view')) { $txt = JLMS_showMyDropBox($option, $Itemid, $lists['my_dropbox'], $lists); $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"'); } if ($params->get('mailbox_view')) { $txt = JLMS_showMyMailBox($option, $Itemid, $lists['my_mailbox'], $lists); $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"'); } if ($params->get('certificates_view')) { $txt = JLMS_showMyCertificates($option, $Itemid, $lists['my_certificates'], $lists); $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"'); } if ($JLMS_CONFIG->get('plugin_forum') && $params->get('latest_forum_posts_view')) { $txt = JLMS_showLatestForumPosts($option, $Itemid, $lists['latest_forum_posts'], $lists); $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"'); } JLMS_TMPL::ShowCustomSection($custom_sections, 1, 1); } $show_description = true; if ($JLMS_ACL->GetRole() && !$JLMS_ACL->isStaff()) { if (!$params->get('show_description', 1)) { $show_description = false; } } if ($show_description) { $text = JLMS_ShowText_WithFeatures($row->course_description); JLMS_TMPL::ShowSection($text); } //$_JLMS_PLUGINS->loadBotGroup('system'); $plugin_args = array(); $plugin_args[] = $id; $_JLMS_PLUGINS->trigger('onBelowCourseDescription', $plugin_args); /*Fix short course description + all comments*/ if (isset($lists['short']) && !$lists['short']) { if ($JLMS_ACL->GetRole() && !$JLMS_ACL->isStaff()) { //show topics of the course global $JLMS_DB; $query = "SELECT count(*) FROM #__lms_topics WHERE course_id = {$id}"; $JLMS_DB->SetQuery($query); $is_any_topic = $JLMS_DB->LoadResult(); if ($is_any_topic) { JLMS_TMPL::OpenTS(); $course = new JLMS_Course_HomePage($id); $course->listTopics(); JLMS_TMPL::CloseTS(); } } } //$_JLMS_PLUGINS->loadBotGroup('system'); $plugin_args = array(); $plugin_args[] = $id; $_JLMS_PLUGINS->trigger('onBelowCourseDetailsPage', $plugin_args); JLMS_TMPL::CloseMT(); }
function JQ_PrintResultForPDF($sid) { global $JLMS_DB; $str = ""; $query = "SELECT sq.*, q.*, u.* FROM #__lms_quiz_r_student_quiz AS sq, #__lms_quiz_t_quiz AS q, #__users AS u" . "\n WHERE sq.c_id = '" . $sid . "' AND sq.c_quiz_id = q.c_id AND sq.c_student_id = u.id"; $JLMS_DB->SetQuery($query); $info = $JLMS_DB->LoadAssocList(); $info = $info[0]; $quiz_id = $info['c_quiz_id']; $query = "SELECT quest_id FROM #__lms_quiz_r_student_quiz_pool WHERE start_id = " . $sid; $JLMS_DB->SetQuery($query); $stu_quests = $JLMS_DB->loadResultArray(); if (count($stu_quests)) { $stu_quests_str = implode(',', $stu_quests); $query = "SELECT sum(c_point) AS total_score FROM #__lms_quiz_t_question WHERE c_id IN ({$stu_quests_str})"; $JLMS_DB->SetQuery($query); $total = $JLMS_DB->LoadResult(); } else { $query = "SELECT sum(c_point) AS total_score FROM #__lms_quiz_t_question WHERE c_quiz_id = '" . $quiz_id . "'"; $JLMS_DB->SetQuery($query); $total = $JLMS_DB->LoadResult(); } $passing_score_suffix = ''; if (isset($info['c_passing_score']) && $info['c_passing_score']) { $pass_score = $info['c_passing_score'] * $total / 100; $pass_score_ceiled = ceil($pass_score); //TODO: add new language variable for 'point/points' ; 'ochko/ochka/ochkov' $points_str = 'points'; $passing_score_suffix = ' (' . $pass_score_ceiled . ' ' . $points_str . ')'; } $str .= "<strong>Quiz Title: </strong>" . $info['c_title'] . "<br>"; $str .= "<strong>User Name: </strong>" . $info['username'] . "<br>"; $str .= "<strong>Name: </strong>" . $info['name'] . "<br>"; $str .= "<strong>User Email: </strong>" . $info['email'] . '<br>'; $str .= "<strong>User Score: </strong>" . $info['c_total_score'] . "<br>"; $str .= "<strong>Total Score: </strong>" . $total . "<br>"; $str .= "<strong>Passing Score: </strong>" . $info['c_passing_score'] . "%" . $passing_score_suffix . "<br>"; $tot_min = floor($info['c_total_time'] / 60); $tot_sec = $info['c_total_time'] - $tot_min * 60; $str .= "The user spent <strong>" . str_pad($tot_min, 2, "0", STR_PAD_LEFT) . ":" . str_pad($tot_sec, 2, "0", STR_PAD_LEFT) . "</strong> time taking the quiz <br>"; if ($info['c_passed'] == 1) { $str .= $info['name'] . " has <strong>passed</strong> the quiz<br>"; } else { $str .= $info['name'] . " has <strong>not passed</strong> the quiz<br>"; } /*Integration Plugin Percentiles*/ $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $_JLMS_PLUGINS->loadBotGroup('system'); $data = new stdClass(); $data->course_id = $info['course_id']; $data->quiz_id = $info['c_quiz_id']; $data->user_id = $info['c_student_id']; if ($out_plugin = $_JLMS_PLUGINS->trigger('onQuizFinish', array($data))) { if (count($out_plugin)) { $percentiles = $out_plugin[0]; $percent = $percentiles->percent . '%'; $str .= "<strong>Percentiles: </strong>" . $percent . "<br>"; } } /*Integration Plugin Percentiles*/ $query = "SELECT lqrsq.c_id FROM #__lms_quiz_r_student_question as lqrsq, #__lms_quiz_t_question as lqtq" . "\n WHERE 1" . "\n AND lqrsq.c_stu_quiz_id = '" . $sid . "'" . "\n AND lqtq.c_id = lqrsq.c_question_id" . "\n ORDER BY lqtq.ordering"; $JLMS_DB->SetQuery($query); $info = $JLMS_DB->LoadObjectList(); $total = count($info); $tr = array(); $i = 0; for ($k1 = 0; $k1 < $total; $k1++) { $data = JQ_GetResults($info[$k1]->c_id); if (isset($data['c_question'])) { $tr[$i] = array(); //$as = $tr[$i]; $tr[$i]['#'] = $i + 1; $tr[$i]['Questions'] = trim(strip_tags(JLMS_ShowText_WithFeatures($data['c_question']))); //."[".$data['c_score'].'/'.$data['c_point']."]"; $type = $data['c_type']; $answer = ''; $text_answer = ''; if ($type == 1 || $type == 2 || $type == 3 || $type == 12 || $type == 13) { for ($j = 0, $k = 'a'; $j < count($data['c_choice']); $j++, $k++) { if ($data['c_choice'][$j]['c_choice_id']) { $answer .= $k; } $text_answer .= "<strong>{$k})</strong> " . $data['c_choice'][$j]['c_choice'] . "<br />"; } $text_answer .= '<br />Answer: ' . $answer; } elseif ($type == 4 || $type == 5) { for ($j = 0, $k = 'a'; $j < count($data['c_matching']); $j++, $k++) { $text_answer .= "<strong>{$k})</strong> " . $data['c_matching'][$j]['c_left_text'] . " "; $text_answer .= " " . $data['c_matching'][$j]['c_sel_text'] . "<br />"; } } elseif ($type == 6) { $text_answer .= $data['c_blank']['c_answer']; } elseif ($type == 7) { if ($data['c_score']) { $answer = 'right'; } else { $answer = 'wrong'; } $text_answer .= $answer; } elseif ($type == 8) { $text_answer .= $data['c_survey']['c_answer']; } elseif ($type == 9) { for ($j = 0; $j < count($data['c_scale']); $j++) { $mpz = $data['c_scale'][$j]; $text_answer .= "<strong>" . $mpz->fq . "</strong> - "; $text_answer .= $mpz->fa . '<br>'; } } elseif ($type == 10) { } elseif ($type == 11) { for ($j = 0, $k = 'a'; $j < count($data['c_matching']); $j++, $k++) { $text_answer .= "<strong>{$k})</strong> " . $data['c_matching'][$j]['c_left_text'] . ""; $text_answer .= " " . $data['c_matching'][$j]['c_sel_text'] . "<br />"; } } $tr[$i]['Answers'] = $text_answer; $tr[$i]['Points'] = $data['c_score'] . ' / ' . $data['c_point']; $i++; } } $str .= ""; /* // convert UTF symbols to ISO (Joomla 1.5.x only) if (class_exists('JFactory')) { global $JLMS_CONFIG; $cur_lang = strtolower($JLMS_CONFIG->get('default_language', 'english')); $sup_iso_languages_pre = array('english', 'danish', 'french', 'german', 'italian', 'norwegian', 'spanish', 'dutch'); $sup_iso_languages = $JLMS_CONFIG->get('iso88591_compat_languages', $sup_iso_languages_pre); if (in_array($cur_lang, $sup_iso_languages) || $cur_lang == "english" ) { if (function_exists('utf8_decode')) { $do_utf = true; $utf_method = 'utf8_encode'; $str = utf8_decode($str); for ($ii = 0; $ii <= $i; $ii ++ ) { if (isset($tr[$ii]['Answers'])) { $tr[$ii]['Answers'] = utf8_decode($tr[$ii]['Answers']); } if (isset($tr[$ii]['Questions'])) { $tr[$ii]['Questions'] = utf8_decode($tr[$ii]['Questions']); } } } } } */ $str_arr->header = $str; $str_arr->table = $tr; $str_arr->colsWidths = array('#' => 10, 'Answers' => 40, 'Questions' => 40, 'Points' => 10); // echo '<pre>'; // print_r($str_arr); // echo '</pre>'; // die; return $str_arr; }
function showCourseGuest($id, &$row, $option, $enrollment) { $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $JLMS_CONFIG =& JLMSFactory::getConfig(); $Itemid = $JLMS_CONFIG->get('Itemid'); JLMS_TMPL::OpenMT(); $params = array('show_menu' => true, 'simple_menu' => true); $toolbar = array(); $show_down_back = true; if ($enrollment) { if ($row->self_reg && !$row->gid) { $params['sys_msg'] = _JLMS_COURSES_ENROLL_MSG; $toolbar[] = array('btn_type' => 'yes', 'btn_str' => _JLMS_SUBSCRIBE, 'btn_js' => "javascript:submitbutton('subscription','');"); $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=courses")); $params['toolbar_position'] = 'center'; $show_down_back = false; $html_code_before_toolbar = "\n\t\t\t\t<form action='" . sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}") . "' method='post' name='adminForm_enroll'>\n\t\t\t\t<script language='javascript' type='text/javascript'>\n\t\t\t\t\t<!--\n\t\t\t\t\t\n\t\t\t\t\tfunction submitbutton(pressbutton) {\n\t\t\t\t\t\tvar form = document.adminForm_enroll;\n\t\t\t\t\t\tform.task.value = pressbutton;\n\t\t\t\t\t\tform.submit();\n\t\t\t\t\t}\n\t\t\t\t\t//-->\n\t\t\t\t</script>\n\t\t\t\t"; /*if ($row->paid) { $html_code_before_toolbar .= " <input type='hidden' name='option' value='".$option."' /> <input type='hidden' name='Itemid' value='".$Itemid."' /> <input type='hidden' name='task' value='subscription' /> <input type='hidden' name='cid[]' value='".$row->id."' /> <input type='hidden' name='state' value='0' /> </form> "; } else {*/ $html_code_before_toolbar .= "\n\t\t\t\t\t\t<input type='hidden' name='option' value='" . $option . "' />\n\t\t\t\t\t\t<input type='hidden' name='Itemid' value='" . $Itemid . "' />\n\t\t\t\t\t\t<input type='hidden' name='task' value='courses' />\n\t\t\t\t\t\t<input type='hidden' name='id' value='" . $row->id . "' />\n\t\t\t\t\t\t<input type='hidden' name='cid[]' value='" . $row->id . "' />\n\t\t\t\t\t\t<input type='hidden' name='state' value='0' />\n\t\t\t\t\t\t</form>\n\t\t\t\t\t"; //} $params['html_code_before_toolbar'] = $html_code_before_toolbar; } } JLMS_TMPL::ShowHeader('course', $row->course_name, $params, $toolbar); JLMS_TMPL::OpenTS('', ' width="100%"'); ?> <table cellpadding="0" cellspacing="0" border="0" width="100%" id="jlms_course_desc_guest"> <?php $_JLMS_PLUGINS->loadBotGroup('system'); $plugin_args = array(); $plugin_args[] = $id; $_JLMS_PLUGINS->trigger('onAboveCourseDetailsPage', $plugin_args); ?> <tr> <td> <?php echo JLMS_ShowText_WithFeatures($row->course_description); ?> </td> </tr> <?php //$_JLMS_PLUGINS->loadBotGroup('system'); $plugin_args = array(); $plugin_args[] = $id; $_JLMS_PLUGINS->trigger('onBelowCourseDetailsPage', $plugin_args); ?> </table> <?php JLMS_TMPL::CloseTS(); if ($show_down_back) { JLMS_TMPL::OpenTS('', ' style="text-align:center"'); ?> <br /><br /><a class="back_button" href="<?php echo sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}"); ?> "><?php echo _JLMS_TXT_BACK; ?> </a> <?php JLMS_TMPL::CloseTS(); } JLMS_TMPL::CloseMT(); }
function JLMS_tchangeHW($course_id, $option) { $JLMS_CONFIG =& JLMSFactory::getConfig(); $Itemid = $JLMS_CONFIG->get('Itemid'); $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $db =& JFactory::getDbo(); $user_id = intval(mosGetParam($_REQUEST, 'user_id', 0)); $JLMS_ACL =& JLMSFactory::getACL(); if ($course_id && $user_id && $JLMS_ACL->CheckPermissions('homework', 'manage')) { $state = intval(mosGetParam($_REQUEST, 'state', 0)); if ($state != 1) { $state = 0; } //$state = 1; $cid = mosGetParam($_REQUEST, 'cid', array(0)); $cid2 = intval(mosGetParam($_REQUEST, 'cid2', 0)); if ($cid2) { $cid = array(); $cid[] = $cid2; } if (!is_array($cid)) { $cid = array(0); } if (!is_array($cid) || count($cid) < 1) { $action = 1 ? 'Publish' : 'Unpublish'; echo "<script> alert('Select an item to {$action}'); window.history.go(-1);</script>\n"; exit; } $cid1 = array(); $cid1[] = $cid[0]; $cids = implode(',', $cid1); //$now = date( 'Y-m-d', time() ); //check rights to change id's $query = "SELECT id FROM #__lms_homework WHERE course_id = '" . $course_id . "'" . "\n AND id IN ( {$cids} )"; $db->SetQuery($query); $cid = $db->LoadResultArray(); if (!is_array($cid)) { $cid = array(0); } $cids = implode(',', $cid); $query = "SELECT hw_id FROM #__lms_homework_results WHERE course_id = '" . $course_id . "' AND user_id = '" . $user_id . "' AND hw_id IN ( {$cids} )"; $db->SetQuery($query); $pre_cids = $db->LoadResultArray(); if (!count($pre_cids)) { $pre_cids = array(0); } $upd_cid = array_intersect($cid, $pre_cids); $ins_cid = array_diff($cid, $pre_cids); $now = date('Y-m-d H:i:s'); if (!$state) { $now = ''; } $hw_id_notify = 0; if (count($upd_cid)) { $cids = implode(',', $upd_cid); if (isset($upd_cid[0]) && $upd_cid[0]) { $hw_id_notify = $upd_cid[0]; } $query = "UPDATE #__lms_homework_results" . "\n SET hw_status = {$state}, hw_date = '" . $now . "'" . "\n WHERE hw_id IN ( {$cids} ) AND course_id = {$course_id} AND user_id = '" . $user_id . "'"; $db->setQuery($query); if (!$db->query()) { echo "<script> alert('" . $db->getErrorMsg() . "'); window.history.go(-1); </script>\n"; exit; } } if (count($ins_cid)) { if (isset($ins_cid[0]) && $ins_cid[0]) { $hw_id_notify = $ins_cid[0]; } $query = "INSERT INTO #__lms_homework_results (course_id, user_id, hw_id, hw_status, hw_date) VALUES "; $t = 0; foreach ($ins_cid as $ins_id) { $query .= "\n ({$course_id}, " . $user_id . ", " . $ins_id . ", {$state}, '" . $now . "')" . ($t < count($ins_cid) - 1 ? ',' : ''); $t++; } $db->setQuery($query); if (!$db->query()) { echo "<script> alert('" . $db->getErrorMsg() . "'); window.history.go(-1); </script>\n"; exit; } } if ($state && $hw_id_notify) { //*** email notification about new homework submission $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(); $query = "SELECT hw_name FROM #__lms_homework WHERE id = '" . $hw_id_notify . "'"; $db->setQuery($query); $e_hw_name = $db->loadResult(); $e_user = new stdClass(); $e_user->name = ''; $e_user->email = ''; $e_user->username = ''; $query = "SELECT email, name, username FROM #__users WHERE id = '" . $user_id . "'"; $db->setQuery($query); $e_user = $db->loadObject(); $e_params['user_id'] = $user_id; $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']['{homeworkname}'] = $e_hw_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}'] = 'OnCSVImportUser'; $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'] = 'OnHomeworkReview'; $_JLMS_PLUGINS->loadBotGroup('emails'); $plugin_result_array = $_JLMS_PLUGINS->trigger('OnHomeworkReview', array(&$e_params)); //*** end of emails } } JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=hw_stats&course_id={$course_id}&id={$cid[0]}")); }
function showTopic($course_id, $topic_id, $row, $lists) { global $option, $Itemid, $JLMS_CONFIG; JLMS_TMPL::OpenMT(); $hparams = array(); $toolbar = array(); $title = isset($row->id) ? $row->name : ''; $toolbar[] = array('btn_type' => 'back', 'btn_js' => "javascript:submitbutton('cancel_topic');"); JLMS_TMPL::ShowHeader('doc', $title, $hparams, $toolbar); JLMS_TMPL::OpenTS(); ?> <form action="<?php echo sefRelToAbs("index.php?option=" . $option . "&Itemid=" . $Itemid); ?> " method="post" name="adminForm" enctype="multipart/form-data"> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="Itemid" value="<?php echo $Itemid; ?> " /> <input type="hidden" name="task" value="details_course" /> <input type="hidden" name="boxchecked" value="0" /> <input type="hidden" name="weekly" value="0" /> <input type="hidden" name="course_id" value="<?php echo $course_id; ?> " /> <input type="hidden" name="id" value="<?php echo $row->id; ?> " /> </form> <?php echo JLMS_ShowText_WithFeatures($row->description); ?> <?php JLMS_TMPL::CloseTS(); $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $_JLMS_PLUGINS->loadBotGroup('system'); $plugin_args = array(); $plugin_args[] = $row->id; $_JLMS_PLUGINS->trigger('onBelowTopicPage', $plugin_args); JLMS_TMPL::CloseMT(); }
function JQ_FinishQuiz_nojs() { global $JLMS_DB, $my, $Itemid, $option, $Itemid; $ret_str = ''; $quiz_id = intval(mosGetParam($_REQUEST, 'quiz', 0)); $id = intval(mosGetParam($_REQUEST, 'id', 0)); $query = "SELECT * FROM #__lms_quiz_t_quiz WHERE c_id = '" . $quiz_id . "'"; $JLMS_DB->SetQuery($query); $quiz = $JLMS_DB->LoadObjectList(); if (count($quiz)) { $quiz = $quiz[0]; } else { return $ret_str; } $quiz_params = new JLMSParameters($quiz->params); $inside_lp = intval(mosGetParam($_REQUEST, 'inside_lp', 0)); $QA = new JLMS_quiz_API($quiz_id, $inside_lp); if (!$QA->quiz_valid()) { return ''; } // $toolbar_no_a = $QA->quiz_Get_NoAtToolbar(); $stu_quiz_id = intval(mosGetParam($_REQUEST, 'stu_quiz_id', 0)); $user_unique_id = strval(mosGetParam($_REQUEST, 'user_unique_id', '')); $QA->set('stu_quiz_id', $stu_quiz_id); $QA->set('user_unique_id', $user_unique_id); $QA->quiz_ProcessStartData(); if ($QA->start_valid() && $quiz_id) { // temporary fo compatibility // (25 April 2007 commented) $quiz = $QA->quiz_data; //print_r($stu_quiz_id); $query = "SELECT SUM(c_score) FROM #__lms_quiz_r_student_question WHERE c_stu_quiz_id = '" . $stu_quiz_id . "'"; $JLMS_DB->SetQuery($query); $user_score = $JLMS_DB->LoadResult(); if (!$user_score) { $user_score = 0; } /*$query = "SELECT SUM(c_point) FROM #__lms_quiz_t_question WHERE c_quiz_id = '".$quiz_id."'"; $JLMS_DB->SetQuery( $query ); $max_score = $JLMS_DB->LoadResult();*/ $max_score = $QA->quiz_Get_MaxScore(); $nugno_score = $QA->get_qvar('c_passing_score', 0) * $max_score / 100; $user_passed = 0; if ($user_score >= $nugno_score) { $user_passed = 1; } $user_time = 0; $quiz_time1 = time() - date('Z'); $query = "SELECT c_date_time FROM #__lms_quiz_r_student_quiz WHERE c_id = '" . $stu_quiz_id . "'"; $JLMS_DB->SetQuery($query); $quiz_time2 = $JLMS_DB->LoadResult(); $quiz_time2a = strtotime($quiz_time2); $user_time = $quiz_time1 - $quiz_time2a; $query = "UPDATE #__lms_quiz_r_student_quiz SET c_total_score = '" . $user_score . "', c_passed = '" . $user_passed . "', c_total_time = '" . $user_time . "'" . "\n WHERE c_id = '" . $stu_quiz_id . "' and c_quiz_id = '" . $quiz_id . "' and c_student_id = '" . $my->id . "'"; $JLMS_DB->SetQuery($query); $JLMS_DB->query(); // update lms results $lms_course = $QA->get_qvar('course_id', 0); $lms_quiz = $quiz_id; $lms_user = $my->id; $lms_score = $user_score; $lms_time = $user_time; $lms_date = date('Y-m-d H:i:s', time() - date('Z')); $lms_passed = $user_passed; global $JLMS_CONFIG; if ($lms_course && $JLMS_CONFIG->get('course_id') == $lms_course) { $course_params = $JLMS_CONFIG->get('course_params'); $params = new JLMSParameters($course_params); $do_insert_new_res = false; if ($params->get('track_type', 0) == 1) { $query = "SELECT * FROM #__lms_quiz_results WHERE course_id = '" . $lms_course . "' AND quiz_id = '" . $lms_quiz . "' AND user_id = '" . $lms_user . "'"; $JLMS_DB->SetQuery($query); $old_user_results = $JLMS_DB->LoadObject(); if (is_object($old_user_results)) { if (!$lms_passed && !$old_user_results->user_passed && $lms_score > $old_user_results->user_score) { $do_insert_new_res = true; } elseif ($lms_passed && !$old_user_results->user_passed) { $do_insert_new_res = true; } elseif ($lms_passed && $old_user_results->user_passed && $lms_score > $old_user_results->user_score) { $do_insert_new_res = true; } elseif ($lms_passed && $old_user_results->user_passed && $lms_score == $old_user_results->user_score && $lms_time < $old_user_results->user_time) { $do_insert_new_res = true; } } else { $do_insert_new_res = true; } } else { $do_insert_new_res = true; } if ($do_insert_new_res) { $query = "DELETE FROM #__lms_quiz_results WHERE course_id = '" . $lms_course . "' AND quiz_id = '" . $lms_quiz . "' AND user_id = '" . $lms_user . "'"; $JLMS_DB->SetQuery($query); $JLMS_DB->query(); $query = "INSERT INTO #__lms_quiz_results (course_id, quiz_id, user_id, user_score, quiz_max_score, user_time, quiz_date, user_passed)" . "\n VALUES ('" . $lms_course . "', '" . $lms_quiz . "', '" . $lms_user . "', '" . $lms_score . "', " . intval($max_score) . ", '" . $lms_time . "', '" . $lms_date . "', '" . $lms_passed . "')"; $JLMS_DB->SetQuery($query); $JLMS_DB->query(); if ($lms_passed) { $db =& JFactory::getDbo(); $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); //*** send email notifications $JLMS_CONFIG =& JLMSFactory::getConfig(); $Itemid = $JLMS_CONFIG->get('Itemid'); $e_course = new stdClass(); $e_course->course_alias = ''; $e_course->course_name = ''; $query = "SELECT course_name, name_alias FROM #__lms_courses WHERE id = '" . $lms_course . "'"; $db->setQuery($query); $e_course = $db->loadObject(); $query = "SELECT c_title FROM #__lms_quiz_t_quiz WHERE c_id = '" . $lms_quiz . "'"; $db->setQuery($query); $e_quiz_name = $db->loadResult(); $e_user = new stdClass(); $e_user->name = ''; $e_user->email = ''; $e_user->username = ''; $query = "SELECT email, name, username FROM #__users WHERE id = '" . $lms_user . "'"; $db->setQuery($query); $e_user = $db->loadObject(); $e_params['user_id'] = $lms_user; $e_params['course_id'] = $lms_course; $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_params['markers']['{quizname}'] = $e_quiz_name; $e_params['markers']['{courselink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}&task=details_course&id={$lms_course}"); $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'] = 'OnQuizCompletion'; $_JLMS_PLUGINS->loadBotGroup('emails'); $plugin_result_array = $_JLMS_PLUGINS->trigger('OnQuizCompletion', array(&$e_params)); //*** end of emails } } } // end of lms results section } //redirect JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=quiz_action&id={$id}&quiz={$quiz_id}&stu_quiz_id={$stu_quiz_id}&user_unique_id={$user_unique_id}&atask=review_stop")); }
function JLMS_ShowText_WithFeatures($text, $force_compatibility = false, $process_js_separately = false) { // Black list of mambots: $banned_bots = array(); if ($process_js_separately) { $force_compatibility = true; } if ($force_compatibility) { /* Fix of the excellent :) "EOLAS - no click to activate" plugin */ // 26.02.2007 - function "writethis(jsval);" generates opening of new window during processing DATA within LP Ajax procedures (document.write() fails) $banned_bots[] = strtolower('botgznoclicktoactivate'); /* Ban the Joomla email cloack mambot */ // 06.12.2007 - this mambot generates document.write() js code $banned_bots[] = strtolower('botMosEmailCloak'); $banned_bots[] = strtolower('plgContentEmailCloak'); $banned_bots[] = strtolower('plgEmailCloak'); if (class_exists('JURI')) { // Joomla 1.5.x $base = JURI::base(true) . '/'; $protocols = '[a-zA-Z0-9]+:'; //To check for all unknown protocols (a protocol must contain at least one alpahnumeric fillowed by : $regex = '#(src|href)="(?!/|' . $protocols . '|\\#|\')([^"]*)"#m'; $text = preg_replace($regex, "\$1=\"{$base}\$2\"", $text); // Background image $regex = '#style\\s*=\\s*[\'\\"](.*):\\s*url\\s*\\([\'\\"]?(?!/|' . $protocols . '|\\#)([^\\)\'\\"]+)[\'\\"]?\\)#m'; $text = preg_replace($regex, 'style="$1: url(\'' . $base . '$2$3\')', $text); // OBJECT <param name="xx", value="yy"> -- fix it only inside the <param> tag $regex = '#(<param\\s+)name\\s*=\\s*"(movie|src|url)"[^>]\\s*value\\s*=\\s*"(?!/|' . $protocols . '|\\#|\')([^"]*)"#m'; $text = preg_replace($regex, '$1name="$2" value="' . $base . '$3"', $text); // OBJECT <param value="xx", name="yy"> -- fix it only inside the <param> tag $regex = '#(<param\\s+[^>]*)value\\s*=\\s*"(?!/|' . $protocols . '|\\#|\')([^"]*)"\\s*name\\s*=\\s*"(movie|src|url)"#m'; $text = preg_replace($regex, '<param value="' . $base . '$2" name="$3"', $text); // OBJECT data="xx" attribute -- fix it only in the object tag $regex = '#(<object\\s+[^>]*)data\\s*=\\s*"(?!/|' . $protocols . '|\\#|\')([^"]*)"#m'; $text = preg_replace($regex, '$1data="' . $base . '$2"$3', $text); } } $known_bots = array(); /* strtolower fix for PHP4 */ if ($process_js_separately) { $known_bots[] = strtolower('botmgmediabot210'); $known_bots[] = strtolower('botJCEUtilities'); $known_bots[] = strtolower('botJceUtilities'); $known_bots[] = strtolower('plgSystemJCEUtilities'); $known_bots[] = strtolower('plgContentAvreloaded'); // J1.5 native plugin $known_bots[] = strtolower('plgContentjlmsSqueezeBox'); // J1.5 native plugin $known_bots[] = strtolower('plgContentjlmsCoursesContentLoader'); // J1.5 native plugin $known_bots[] = strtolower('botLLschedule1'); $known_bots[] = strtolower('botLLschedule'); $known_bots[] = strtolower('plgContentRokbox'); $known_bots[] = strtolower('plgSystemRokBox'); $known_bots[] = strtolower('plgContentJw_allvideos'); #$known_bots[] = strtolower('plgContentjlmsSqueezeBox'); } $is_avreloaded = false; $js_separately_processed_mambots = false; $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $_JLMS_PLUGINS->loadBotGroup('system'); $arg_params = array(); $arg_params[] =& $text; $_JLMS_PLUGINS->trigger('onPreparePageText', $arg_params); $row = new stdclass(); $row->text = $text; $row->introtext = ''; $params = new JLMSParameters(''); $new_text = $text; JPluginHelper::importPlugin('content'); $dispatcher = JDispatcher::getInstance(); if ($force_compatibility) { $proceed_force_compat = true; if (method_exists($dispatcher, 'getObservers')) { $onPrepareContent_bots = $dispatcher->getObservers(); //$_MAMBOTS->_events['onPrepareContent']; } elseif (is_array($dispatcher->get('_observers')) && $dispatcher->get('_observers')) { $onPrepareContent_bots = $dispatcher->get('_observers'); } else { $proceed_force_compat = false; } if ($proceed_force_compat) { $onPrepareContent_bots_allowed = array(); foreach ($onPrepareContent_bots as $oPCb) { if (is_array($oPCb) && isset($oPCb['event']) && $oPCb['event'] == 'onPrepareContent' && isset($oPCb['handler']) && in_array(strtolower($oPCb['handler']), $banned_bots)) { if (method_exists($dispatcher, 'detach')) { $dispatcher->detach($oPCb); } } else { if (is_array($oPCb) && isset($oPCb['event']) && $oPCb['event'] == 'onPrepareContent' && isset($oPCb['handler']) && in_array(strtolower($oPCb['handler']), $known_bots)) { $js_separately_processed_mambots = true; } elseif (is_object($oPCb) && in_array(strtolower(get_class($oPCb)), $known_bots)) { $js_separately_processed_mambots = true; if (strtolower(get_class($oPCb)) == strtolower('plgContentAvreloaded')) { $is_avreloaded = true; } } $onPrepareContent_bots_allowed[] = $oPCb; } } if (method_exists($dispatcher, 'attach')) { //$dispatcher->attach( $onPrepareContent_bots_allowed ); } } } $results = $dispatcher->trigger('onPrepareContent', array(&$row, &$params, 0)); $new_text = $row->text; //echo '<pre>'; //print_r($new_text); //echo '</pre>'; if ($process_js_separately) { //ajax pages... //trigger on AfterDispatch in order for system plugins to add required js/css into document head // ... we will parse head later (below in this function) to extract required things from there $app =& JFactory::getApplication(); $app->triggerEvent('onAfterDispatch'); } /** * JLMS topic readmore replacing */ global $JLMS_CONFIG, $JLMS_topic_readmore_closeTag, $JLMS_replace_step, $JLMS_count_begin_tags, $JLMS_count_end_tags, $JLMS_topic_readmore_js; $JLMS_topic_readmore_closeTag = 0; $JLMS_replace_step = 0; $JLMS_count_begin_tags = 0; $JLMS_count_end_tags = 0; $doc =& JFactory::getDocument(); $js_readmore = ""; $js_readmore .= "\n\t\t\tfunction toogleReadmore(){\n\t\t\t\tvar toogle_readmore = \$\$('.toogle_readmore');\n\t\t\t\ttoogle_readmore.removeEvents('click');\n\t\t\t\ttoogle_readmore.addEvents({\n\t\t\t\t\t'click': function(){\n\t\t\t\t\t\tvar next = this.getNext();\n\t\t\t\t\t\tif((next.tagName == 'DIV' || next.tagName == 'SPAN') && next.hasClass('topic_readmore')){\n\t\t\t\t\t\t"; if (JLMS_mootools12()) { $js_readmore .= "\n\t\t\t\t\t\t\tvar next_Fx_show = new Fx.Morph(next, {\n\t\t\t\t\t\t\t\tduration: 500, \n\t\t\t\t\t\t\t\ttransition: Fx.Transitions.Sine.easeInOut,\n\t\t\t\t\t\t\t\tonStart: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'block', 'opacity': 0});\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonComplete: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'block'});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t\tvar next_Fx_hide = new Fx.Morph(next, {\n\t\t\t\t\t\t\t\tduration: 500, \n\t\t\t\t\t\t\t\ttransition: Fx.Transitions.Sine.easeInOut,\n\t\t\t\t\t\t\t\tonComplete: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'none'});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t\tif(next.getStyle('display') == 'block'){\n\t\t\t\t\t\t\t\thideReadmore(next, next_Fx_hide);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tshowReadmore(next, next_Fx_show);\n\t\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\t"; } else { $js_readmore .= "\n\t\t\t\t\t\t\tvar next_Fx_show = next.effects({\n\t\t\t\t\t\t\t\tduration: 500, \n\t\t\t\t\t\t\t\ttransition: Fx.Transitions.Sine.easeInOut,\n\t\t\t\t\t\t\t\tonStart: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'block', 'opacity': 0});\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonComplete: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'block'});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t\tvar next_Fx_hide = next.effects({\n\t\t\t\t\t\t\t\tduration: 500, \n\t\t\t\t\t\t\t\ttransition: Fx.Transitions.Sine.easeInOut,\n\t\t\t\t\t\t\t\tonComplete: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'none'});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t\tif(next.getStyle('display') == 'block'){\n\t\t\t\t\t\t\t\thideReadmore(next, next_Fx_hide);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tshowReadmore(next, next_Fx_show);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t"; } $js_readmore .= "\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tfunction showReadmore(el, Fx){\n\t\t\t\tFx.start({\n\t\t\t\t\t'opacity': [0, 1]\n\t\t\t\t});\t\n\t\t\t}\n\t\t\tfunction hideReadmore(el, Fx){\n\t\t\t\tFx.start({\n\t\t\t\t\t'opacity': [1, 0]\n\t\t\t\t});\n\t\t\t}\n\t\t\twindow.addEvent('domready', function(){\n\t\t\t\ttoogleReadmore();\n\t\t\t});\n\t\t"; $domready = ""; //$domready .= $js_readmore; $domready .= "\n\t\t\ttoogleReadmore();\n\t\t"; if (!isset($JLMS_topic_readmore_js) || !$JLMS_topic_readmore_js) { $doc->addScriptDeclaration($js_readmore); //$JLMS_CONFIG->set('web20_domready_code', $JLMS_CONFIG->get('web20_domready_code','').$domready); $JLMS_topic_readmore_js = true; } if (preg_match_all('#\\{readmore([^}]*)\\}#', $new_text, $out)) { $js_separately_processed_mambots = true; $count_begin = count($out[0]); $JLMS_count_begin_tags = $count_begin; $JLMS_topic_readmore_closeTag = 1; $new_text = preg_replace_callback('#\\{readmore([^}]*)\\}#', 'callbackFnBegin', $new_text); } if (preg_match_all('#\\{\\/readmore\\}#', $new_text, $out)) { $count_end = count($out[0]); $JLMS_count_end_tags = $count_end; if ($count_begin >= $count_end) { $JLMS_topic_readmore_closeTag = 1; $replace = '<div class="clr"><!-- --></div></div>' . "\n"; $new_text = str_replace('{/readmore}', $replace, $new_text); } else { if ($count_begin < $count_end) { $JLMS_topic_readmore_closeTag = 0; $new_text = preg_replace_callback('#\\{\\/readmore\\}#', 'callbackFnEnd', $new_text); } } } /** * JLMS topic readmore replacing */ /* * 17.12.2007 (DEN) * Processing of MGMediabot2 JS's in IE. * We should extract all javascripts from content and execute them separately. */ //b Events JLMS Plugins $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $_JLMS_PLUGINS->loadBotGroup('system'); $_JLMS_PLUGINS->trigger('onTextProcess', array(&$new_text)); //e Events JLMS Plugins /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * 03.01.2007: * BAD-IDEA (we don't know the list of used mambots and their syntax) - idea: Before starting lpath, we should analize list of available mambots and preload their JS libs at the lpath starting page! * */ if ($process_js_separately) { $document =& JFactory::getDocument(); $document->addScriptDeclaration($JLMS_CONFIG->get('web20_domready_code')); if ($js_separately_processed_mambots) { $nn = ''; //if (!$is_avreloaded) { // ignore included libraries if avreloaded is used (to avoid reloading of swfobject) $document =& JFactory::getDocument(); $scripts = $document->_scripts; foreach ($document->_scripts as $strSrc => $strType) { /*if (strpos($strSrc, 'swfobject.js') === false) { //this is not swfobject.js library } elseif (strpos($strSrc, 'mootools.js') === false) { //this is not mootools library } else { $nn .= '<script type="'.$strType.'" src="'.$strSrc.'"></script>'; }*/ //fix for !J1.7 if (is_array($strType) && isset($strType['mime'])) { $strType = $strType['mime']; } $known_lib = false; if (strpos($strSrc, 'swfobject.js') !== false) { //do not include this lib ! (in order to avoid issues with avreloaded) } elseif (strpos($strSrc, 'mootools.js') !== false) { //do not include this lib ! } elseif (strpos($strSrc, 'rokbox') !== false) { //roxbox plugins (system + content ) - provide a possibility to open links in 'lightbox' similar way $known_lib = true; } elseif (strpos($strSrc, 'jwplayer.js') || strpos($strSrc, 'silverlight.js') || strpos($strSrc, 'wmvplayer.js') || strpos($strSrc, 'AC_QuickTime.js')) { $known_lib = true; } if ($known_lib) { $nn .= '<script type="' . $strType . '" src="' . $strSrc . '"></script>'; } } foreach ($document->_script as $strType => $strSrc) { $nn .= '<script type="' . $strType . '">' . $strSrc . '</script>'; } //} $new_text = $nn . $new_text; $js = ''; $tags = array('`<script[^>]*>(.*)</script>`isU'); # <script ...>...</script> areas $replacements = array(); # Storage for the elements found to be processed foreach (array_keys($tags) as $idx) { # Handle all kings of tag areas and tags, one by one $tmptags = array(); # Storage for the found occurrences preg_match_all($tags[$idx], $new_text, $tmptags); # And here they are $js1 = ''; $js1_count = 0; $js2 = ''; $js2_count = 0; if ($tmptags) { # Found some? if (isset($tmptags[0])) { $tmptags = $tmptags[0]; foreach ($tmptags as $tmptag) { preg_match('`<script type="text/javascript" src="(.*)"></script>`isU', $tmptag, $matches2); # <script...src="(#our_content#)"...></script> areas if (isset($matches2[1])) { $js1_count++; $js1 .= "\r\n" . "dhtmlLoadScript(\"" . $matches2[1] . "\");" . "\r\n"; } else { preg_match('`<script[^>]*>(.*)</script>`isU', $tmptag, $matches2); # <script...>(#our_content#)</script> areas if (isset($matches2[1])) { $js2_count++; if (false) { //} && preg_match_all('#\/\/jlms_exec_js_start\/\/([^<]*)\/\/jlms_exec_js_end\/\/#m', $matches2[1], $out, PREG_PATTERN_ORDER)>0){ $js2 .= $out[1][0]; } else { $new_js = $matches2[1]; $new_js = str_replace('jQuery(document).ready(', 'jQuery.isReady = true; jQuery(document).ready(', $new_js); if (strpos($new_js, "addEvent('domready'")) { $rnd = "" . rand(1, 1000) . time(); $new_js = str_replace("addEvent('domready'", "addEvent('domready_jlms_ajax" . $rnd . "'", $new_js); $new_js .= "\r\n" . "window.fireEvent('domready_jlms_ajax" . $rnd . "');window.removeEvents('domready_jlms_ajax" . $rnd . "');"; } $js2 .= "\r\n" . $new_js . "\r\n"; } } } $new_text = str_replace($tmptag, '', $new_text); } } } if ($js1_count) { $js .= "\r\n" . "function OtherScriptsShouldBeExecuted(){" . "\r\n\t" . "scripts_already_loaded ++;" . "\r\n\t" . "if (scripts_already_loaded > ({$js1_count} - 1) ){" . "\r\n\t\t" . "if(!other_scripts_executed){" . "\r\n\t\t\t" . "other_scripts_executed = 1;" . "\r\n\t\t\t" . $js2 . "\r\n\t\t" . "}" . "\r\n\t" . "}" . "\r\n" . "}" . "\r\n"; $js .= "\r\n" . 'function dhtmlLoadScript(url) {' . "\r\n\t" . 'var e = document.createElement("script");' . "\r\n\t" . 'e.src = url;e.type="text/javascript";' . "\r\n\t" . 'e.onreadystatechange= function () {' . "\r\n\t\t" . 'if (this.readyState == "loaded") {' . "\r\n\t\t\t" . 'OtherScriptsShouldBeExecuted();' . "\r\n\t\t" . '}' . "\r\n\t" . '}' . "\r\n\t" . 'e.onload = OtherScriptsShouldBeExecuted;document.getElementsByTagName("head")[0].appendChild(e);' . "\r\n" . '}' . "\r\n"; $js .= "var scripts_already_loaded = 0;" . "\r\n" . "other_scripts_executed = 0;" . "\r\n" . "setTimeout(function(){scripts_already_loaded = {$js1_count};OtherScriptsShouldBeExecuted();}, 1000);" . "\r\n"; $js .= $js1; } else { $js .= $js2; } unset($tmptags); # A bit of dirty work } $js = str_replace('<![CDATA[', '<!--', $js); $js = str_replace(']]>', '-->', $js); $new_text = str_replace('<![CDATA[', '<!--', $new_text); $new_text = str_replace(']]>', '-->', $new_text); $ret_ar = array(); $ret_ar['new_text'] =& $new_text; $ret_ar['js'] =& $js; return $ret_ar; } else { $new_text = str_replace('<![CDATA[', '<!--', $new_text); $new_text = str_replace(']]>', '-->', $new_text); } $ret_ar = array(); $ret_ar['new_text'] =& $new_text; $ret_ar['js'] = ''; //$js; return $ret_ar; } else { return $new_text; } return $new_text; }
function JLMS_GB_getUsersGrades($id, $uids, &$rows, &$lists, $cycle = 0) { $db =& JFactory::getDbo(); $JLMS_ACL =& JLMSFactory::getACL(); $is_teacher = $JLMS_ACL->isTeacher(); $uids_str = implode(',', $uids); if (count($uids)) { $query = "SELECT a.*, b.scale_name FROM #__lms_gradebook as a LEFT JOIN #__lms_gradebook_scale as b ON a.gb_points=b.id AND b.course_id = {$id} WHERE a.course_id = '" . $id . "' AND a.user_id IN ({$uids_str})"; $db->SetQuery($query); $gb_rows = $db->LoadObjectList(); $query = "SELECT * FROM #__lms_certificate_users WHERE course_id = '" . $id . "' AND user_id IN ({$uids_str})"; $db->SetQuery($query); $crt_rows = $db->LoadObjectList(); } else { $crt_rows = array(); $gb_rows = array(); } $query = "SELECT * FROM #__lms_gradebook_scale WHERE course_id = {$id} ORDER BY ordering, scale_name"; $db->SetQuery($query); $scale_rows = $db->LoadObjectList(); if (count($uids) == 1) { if (count($crt_rows) > 1) { $del_ids_tmp = array(); $del_ids = array(); foreach ($crt_rows as $crt_row) { if ($crt_row->crt_date == '0000-00-00 00:00:00') { $del_ids_tmp[] = $crt_row->id; } } if (count($del_ids) == count($crt_rows)) { $del_ii = 1; while ($del_ii < count($del_ids_tmp)) { $del_ids[] = $del_ids_tmp[$del_ii]; $del_ii++; } } else { $del_ids = $del_ids_tmp; } $del_ids_str = implode(',', $del_ids); $query = "DELETE FROM #__lms_certificate_users WHERE id IN ({$del_ids_str}) AND course_id = '" . $id . "' AND user_id IN ({$uids_str}) AND crt_date = '0000-00-00 00:00:00'"; $db->SetQuery($query); $db->query(); } } $query = "SELECT * FROM #__lms_gradebook_items WHERE course_id = '" . $id . "' ORDER BY ordering, gbi_name"; $db->SetQuery($query); $irows = $db->LoadObjectList(); $query = "SELECT * FROM #__lms_learn_paths WHERE course_id = '" . $id . "' AND item_id <> '0' AND item_id <> '' AND published = '1' ORDER BY ordering"; $db->SetQuery($query); $scorm_rows = $db->LoadObjectList(); $scorm_ans = array(); $scorm_n_ans = array(); if (count($scorm_rows)) { $scids = array(); $scn_ids = array(); $scrows_i = 0; foreach ($scorm_rows as $scorm_row) { $tmp_params = new JLMSParameters($scorm_row->lp_params); if ($tmp_params->get('show_in_gradebook', 1)) { if ($scorm_row->lp_type == 1 || $scorm_row->lp_type == 2) { $scn_ids[] = $scorm_row->item_id; } else { $scids[] = $scorm_row->item_id; } } $scorm_rows[$scrows_i]->show_in_gradebook = $tmp_params->get('show_in_gradebook', 1); $scrows_i++; } if ($cycle) { $query = "SELECT params FROM #__lms_courses WHERE id = '" . $id . "'"; //Atention! $db->setQuery($query); //Atention! $course_params = $db->loadResult(); //Atention! } else { global $JLMS_CONFIG; $course_params = $JLMS_CONFIG->get('course_params'); } $params = new JLMSParameters($course_params); if (count($scids) || count($scn_ids)) { require_once _JOOMLMS_FRONT_HOME . "/includes/lms_scorm.lib.php"; if (count($scids)) { //nothing here $scorm_ans =& JLMS_GetSCORM_userResults($uids, $scids); } if (count($scn_ids)) { $scorm_n_ans = array(); $uids_groups = array(); $uids_group = array(); //group user IDs by 5 $uid_i = 1; foreach ($uids as $uid) { $uids_group[] = $uid; $uid_i++; if ($uid_i > 5) { $uids_groups[] = $uids_group; $uids_group = array(); $uid_i = 1; } } if (count($uids_group)) { $uids_groups[] = $uids_group; } foreach ($uids_groups as $uids5) { foreach ($scn_ids as $scn_id) { $scn_ids_new_array = array(); $scn_ids_new_array[] = $scn_id; $scorm_n_ans1 =& JLMS_Get_N_SCORM_userResults($uids5, $scn_ids_new_array, $params->get('track_type', 0)); $scorm_n_ans = array_merge($scorm_n_ans, $scorm_n_ans1); } } } } } $query = "SELECT * FROM #__lms_quiz_t_quiz WHERE course_id = '" . $id . "' AND c_gradebook = 1 ORDER BY c_title"; $db->SetQuery($query); $quiz_rows = $db->LoadObjectList(); $quiz_ans = array(); if (count($quiz_rows)) { if (count($uids)) { $query = "SELECT a.*, b.c_full_score FROM #__lms_quiz_results as a, #__lms_quiz_t_quiz as b WHERE a.course_id = '" . $id . "'" . "\n AND a.quiz_id = b.c_id AND a.user_id IN ( {$uids_str} ) ORDER BY a.user_id, a.quiz_id"; $db->SetQuery($query); $quiz_ans = $db->LoadObjectList(); } else { $quiz_ans = array(); } } $i = 0; while ($i < count($rows)) { $p = array(); foreach ($irows as $irow) { $pp = new stdClass(); $pp->gbi_id = $irow->id; $pp->gbi_type = 1; // 1 - gb_item, 2 - scorm; 3 - quiz; $pp->user_grade = '-'; $pp->scale_id = 0; $p[] = $pp; } $j = 0; while ($j < count($gb_rows)) { if ($gb_rows[$j]->user_id == $rows[$i]->user_id) { $k = 0; while ($k < count($p)) { if ($p[$k]->gbi_id == $gb_rows[$j]->gbi_id && $p[$k]->gbi_type == 1) { $p[$k]->user_grade = $gb_rows[$j]->scale_name ? $gb_rows[$j]->scale_name : '-'; //$gb_rows[$j]->gb_points; $p[$k]->scale_id = $gb_rows[$j]->gb_points ? $gb_rows[$j]->gb_points : '-'; } $k++; } } $j++; } $rows[$i]->user_certificate = 0; $rows[$i]->user_certificate_date = ''; $j = 0; while ($j < count($crt_rows)) { if ($crt_rows[$j]->user_id == $rows[$i]->user_id) { $rows[$i]->user_certificate = $crt_rows[$j]->crt_option; $rows[$i]->user_certificate_date = $crt_rows[$j]->crt_date; } $j++; } $rows[$i]->grade_info = $p; //scorm $p = array(); foreach ($scorm_rows as $srow) { $pp = new stdClass(); $pp->gbi_id = $srow->item_id; $pp->lp_type = $srow->lp_type; $pp->gbi_type = 2; // 1 - gb_item, 2 - scorm; 3 - quiz; $pp->user_grade = '-'; $pp->user_pts = 0; $pp->user_status = -1; $p[] = $pp; } $j = 0; while ($j < count($scorm_ans)) { if ($scorm_ans[$j]->user_id == $rows[$i]->user_id) { $k = 0; while ($k < count($p)) { if ($p[$k]->gbi_id == $scorm_ans[$j]->content_id && $p[$k]->gbi_type == 2 && !$p[$k]->lp_type) { /*$p[$k]->user_grade = $scorm_ans[$j]->score; $p[$k]->user_status = $scorm_ans[$j]->status;*/ $user_per = $scorm_ans[$j]->score > 100 ? 100 : $scorm_ans[$j]->score; $sc_i = count($scale_rows) - 1; while ($sc_i >= 0) { if ($scale_rows[$sc_i]->min_val <= $user_per && $scale_rows[$sc_i]->max_val >= $user_per) { $p[$k]->user_grade = $scale_rows[$sc_i]->scale_name; break; } $sc_i--; } $p[$k]->user_pts = $scorm_ans[$j]->score; $p[$k]->user_status = $scorm_ans[$j]->status; } $k++; } } $j++; } $j = 0; while ($j < count($scorm_n_ans)) { if ($scorm_n_ans[$j]->user_id == $rows[$i]->user_id) { $k = 0; while ($k < count($p)) { if ($p[$k]->gbi_id == $scorm_n_ans[$j]->content_id && $p[$k]->gbi_type == 2 && ($p[$k]->lp_type == 1 || $p[$k]->lp_type == 2)) { /*$p[$k]->user_grade = $scorm_n_ans[$j]->score; $p[$k]->user_status = $scorm_n_ans[$j]->status;*/ $user_per = $scorm_n_ans[$j]->score > 100 ? 100 : $scorm_n_ans[$j]->score; //$user_per = intval($quiz_ans[$j]->user_score * 100 / $quiz_ans[$j]->c_full_score); $sc_i = count($scale_rows) - 1; while ($sc_i >= 0) { if ($scale_rows[$sc_i]->min_val <= $user_per && $scale_rows[$sc_i]->max_val >= $user_per) { $p[$k]->user_grade = $scale_rows[$sc_i]->scale_name; break; } $sc_i--; } $p[$k]->user_pts = $scorm_n_ans[$j]->score; $p[$k]->user_status = $scorm_n_ans[$j]->status; } $k++; } } $j++; } $rows[$i]->scorm_info = $p; //quizzes $p = array(); foreach ($quiz_rows as $qrow) { $pp = new stdClass(); $pp->gbi_id = $qrow->c_id; $pp->allow_user_pdf_print = $qrow->c_enable_print; $pp->gbi_type = 3; // 1 - gb_item, 2 - scorm; 3 - quiz; $pp->user_grade = '-'; $pp->user_pts = 0; $pp->user_pts_full = '0'; $pp->user_status = -1; $pp->user_passed = -1; $pp->user_score = 0; $pp->quiz_max_score = 0; /*Integration Plugin Percentiles*/ $_JLMS_PLUGINS =& JLMSFactory::getPlugins(); $_JLMS_PLUGINS->loadBotGroup('system'); $data_plugin = new stdClass(); $data_plugin->course_id = $rows[$i]->course_id; $data_plugin->quiz_id = $qrow->c_id; $data_plugin->user_id = $rows[$i]->user_id; if ($out_plugin = $_JLMS_PLUGINS->trigger('onQuizFinish', array($data_plugin))) { if (count($out_plugin)) { $percentiles = $out_plugin[0]; if ($percentiles->percent >= 0) { $percent = $percentiles->percent . '%'; $pp->user_percentile = $percent; } } } /*Integration Plugin Percentiles*/ $p[] = $pp; } $j = 0; while ($j < count($quiz_ans)) { if ($quiz_ans[$j]->user_id == $rows[$i]->user_id) { $k = 0; while ($k < count($p)) { if ($p[$k]->gbi_id == $quiz_ans[$j]->quiz_id && $p[$k]->gbi_type == 3) { if ($quiz_ans[$j]->quiz_max_score) { $user_per = intval($quiz_ans[$j]->user_score * 100 / $quiz_ans[$j]->quiz_max_score); } elseif ($quiz_ans[$j]->c_full_score) { $user_per = intval($quiz_ans[$j]->user_score * 100 / $quiz_ans[$j]->c_full_score); } else { if ($quiz_ans[$j]->user_score) { // ...strange ... HOW? $user_per = 100; } else { $user_per = 0; } } $sc_i = count($scale_rows) - 1; while ($sc_i >= 0) { if ($scale_rows[$sc_i]->min_val <= $user_per && $scale_rows[$sc_i]->max_val >= $user_per) { $p[$k]->user_grade = $scale_rows[$sc_i]->scale_name; break; } $sc_i--; } $p[$k]->user_pts = $quiz_ans[$j]->user_score; $p[$k]->user_pts_full = $quiz_ans[$j]->user_score . '/' . $quiz_ans[$j]->quiz_max_score; $p[$k]->user_status = $quiz_ans[$j]->user_passed; $p[$k]->user_passed = $quiz_ans[$j]->user_passed; $p[$k]->user_score = $quiz_ans[$j]->user_score; $p[$k]->quiz_max_score = $quiz_ans[$j]->quiz_max_score; } $k++; } } $j++; } $rows[$i]->quiz_info = $p; $i++; } global $my; //-------------------------- for ($i = 0; $i < count($scorm_rows); $i++) { if ($scorm_rows[$i]->lp_type == 2) { $query = "SELECT scorm_package FROM #__lms_n_scorm WHERE id = '" . $scorm_rows[$i]->item_id . "'"; $db->SetQuery($query); $scorm_package = $db->LoadResult(); $query = "SELECT id FROM #__lms_n_scorm WHERE scorm_package = '" . $scorm_package . "' AND course_id = 0"; $db->SetQuery($query); $scorm_lib_id = $db->LoadResult(); $outer_doc = null; $query = "SELECT outdoc_share, owner_id, allow_link FROM #__lms_outer_documents WHERE file_id = '" . $scorm_lib_id . "' AND folder_flag = 3"; $db->SetQuery($query); $outer_doc = $db->LoadObject(); if (is_object($outer_doc) && isset($outer_doc->allow_link) && $outer_doc->allow_link == 1) { } else { unset($scorm_rows[$i]); } } } $mas = array(); foreach ($scorm_rows as $k => $v) { $mas[] = $scorm_rows[$k]; } unset($scorm_rows); $scorm_rows = $mas; //--------------------------------- if ($cycle) { $lists['gb_rows'][] = $irows; $lists['sc_rows'][] = $scorm_rows; $lists['quiz_rows'][] = $quiz_rows; } else { $lists['gb_rows'] = $irows; $lists['sc_rows'] = $scorm_rows; $lists['quiz_rows'] = $quiz_rows; } }