function JLMS_showCoursesForGuest($option, $enrollment = false) { global $JLMS_DB, $JLMS_CONFIG, $JLMS_SESSION, $Itemid; $app =& JFactory::getApplication(); $filter_groups = intval(mosGetParam($_REQUEST, 'groups_course', 0)); $limit = intval(mosGetParam($_GET, 'limit', $JLMS_SESSION->get('list_limit', $JLMS_CONFIG->get('list_limit')))); $JLMS_SESSION->set('list_limit', $limit); $limitstart = intval(mosGetParam($_GET, 'limitstart', 0)); $lists = array(); /*Courses Blog*/ $menu_params = ''; if ($Itemid) { $query = "SELECT params FROM #__menu WHERE id = '" . $Itemid . "'"; $JLMS_DB->setQuery($query); $menu_params = $JLMS_DB->loadResult(); } $menu_params = new JLMSParameters($menu_params); if ($Itemid) { $lists['menu_params'] = $menu_params; } /*Courses Blog*/ if ($JLMS_CONFIG->get('meta_desc')) { $doc =& JFactory::getDocument(); $doc->setMetaData('description', $JLMS_CONFIG->get('meta_desc')); } if ($JLMS_CONFIG->get('meta_keys')) { $doc =& JFactory::getDocument(); $doc->setMetaData('keywords', $JLMS_CONFIG->get('meta_keys')); } $query = "SELECT * FROM `#__lms_course_cats` WHERE `parent` = '0' AND `restricted` = 0 ORDER BY c_category"; $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadObjectList(); $type_g[] = mosHTML::makeOption(0, _JLMS_COURSES_ALL_CATEGORIES); $i = 1; foreach ($groups as $group) { $type_g[] = mosHTML::makeOption($group->id, $group->c_category); $i++; } $link = "index.php?option={$option}&Itemid={$Itemid}&task=courses"; $link = $link . "&groups_course='+this.options[selectedIndex].value+'"; $link = sefRelToAbs($link); $link = str_replace('%5C%27', "'", $link); $link = str_replace('%5B', "[", $link); $link = str_replace('%5D', "]", $link); $link = str_replace('%20', "+", $link); $link = str_replace("\\\\\\", "", $link); $link = str_replace('%27', "'", $link); $lists['groups_course'] = mosHTML::selectList($type_g, 'groups_course', 'class="inputbox" size="1" onchange="document.location.href=\'' . $link . '\';"', 'value', 'text', $filter_groups); //FLMS multicat if ($JLMS_CONFIG->get('multicat_use', 0)) { $query = "SELECT * FROM #__lms_course_cats_config ORDER BY id"; $JLMS_DB->setQuery($query); $levels = $JLMS_DB->loadObjectList(); if (count($levels) == 0) { for ($i = 0; $i < 5; $i++) { if ($i > 0) { $levels[$i]->cat_name = _JLMS_COURSES_COURSES_GROUPS; } else { $levels[$i]->cat_name = _JLMS_COURSES_COURSES_GROUPS; } } } $lists['levels'] = $levels; $level_id = array(); for ($i = 0; $i < count($levels); $i++) { if (isset($_REQUEST['category_filter']) && $_REQUEST['category_filter']) { if ($i == 0) { $level_id[$i] = $_REQUEST['category_filter']; $parent_id[$i] = 0; } else { $level_id[$i] = 0; $parent_id[$i] = $level_id[$i - 1]; } } else { if ($i == 0) { $level_id[$i] = intval(mosGetParam($_REQUEST, 'filter_id_' . $i . '', $JLMS_SESSION->get('FLMS_filter_id_' . $i . '', 0))); $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } else { $level_id[$i] = intval(mosGetParam($_REQUEST, 'filter_id_' . $i . '', $JLMS_SESSION->get('FLMS_filter_id_' . $i . '', 0))); $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } if ($i == 0) { $parent_id[$i] = 0; } else { $parent_id[$i] = $level_id[$i - 1]; } if ($i == 0 || $parent_id[$i]) { //(Max): extra requests $query = "SELECT count(id) FROM `#__lms_course_cats` WHERE parent = '" . $parent_id[$i] . "' ORDER BY c_category"; $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadResult(); if ($groups == 0) { $level_id[$i] = 0; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } } } } for ($i = 0; $i < count($levels); $i++) { if ($i > 0 && $level_id[$i - 1] == 0) { $level_id[$i] = 0; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); $parent_id[$i] = 0; } elseif ($i == 0 && $level_id[$i] == 0) { $level_id[$i] = 0; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); $parent_id[$i] = 0; } } $javascript = 'onclick="javascript:read_filter();" onchange="javascript:write_filter();document.adminForm.task.value=\'courses\';document.adminForm.submit();"'; for ($i = 0; $i < count($levels); $i++) { if ($i == 0 || $parent_id[$i]) { //(Max): extra requests if ($parent_id[$i] == 0) { $query = "SELECT * FROM `#__lms_course_cats` WHERE `parent` = '0' AND `restricted` = 0"; $query .= "\n ORDER BY `c_category`"; } else { $query = "SELECT * FROM `#__lms_course_cats` WHERE parent = '" . $parent_id[$i] . "' ORDER BY c_category"; } $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadObjectList(); if ($parent_id[$i] && $i > 0 && count($groups)) { $type_level[$i][] = mosHTML::makeOption(0, ' '); foreach ($groups as $group) { $type_level[$i][] = mosHTML::makeOption($group->id, $group->c_category); } $lists['filter_' . $i . ''] = mosHTML::selectList($type_level[$i], 'filter_id_' . $i . '', 'class="inputbox" size="1" style="width: 266px;" ' . $javascript, 'value', 'text', $level_id[$i]); //onchange="document.location.href=\''. $link_multi .'\';" } elseif ($i == 0) { $type_level[$i][] = mosHTML::makeOption(0, ' '); foreach ($groups as $group) { $type_level[$i][] = mosHTML::makeOption($group->id, $group->c_category); } $lists['filter_' . $i . ''] = mosHTML::selectList($type_level[$i], 'filter_id_' . $i . '', 'class="inputbox" size="1" style="width: 266px;" ' . $javascript, 'value', 'text', $level_id[$i]); //onchange="document.location.href=\''. $link_multi .'\';" } } } } //FLMS multicat //FILTER $where = ''; if ($JLMS_CONFIG->get('multicat_use', 0)) { //NEW MUSLTICATS // $tmp_level = array(); $last_catid = 0; $tmp_cats_filter = JLMS_getFilterMulticategories($last_catid); /* if(isset($_REQUEST['category_filter']) && $_REQUEST['category_filter']){ $last_catid = $_REQUEST['category_filter']; } else { $i=0; foreach($_REQUEST as $key=>$item){ if(preg_match('#filter_id_(\d+)#', $key, $result)){ if($item){ $tmp_level[$i] = $result; $last_catid = $item; $i++; } } } } $query = "SELECT * FROM #__lms_course_cats ORDER BY id"; $JLMS_DB->setQuery($query); $all_cats = $JLMS_DB->loadObjectList(); $tmp_cats_filter = array(); $children = array(); foreach($all_cats as $cat){ $pt = $cat->parent; $list = @$children[$pt] ? $children[$pt] : array(); array_push($list, $cat->id); $children[$pt] = $list; } $tmp_cats_filter[0] = $last_catid; $i=1; foreach($children as $key=>$childs){ if($last_catid == $key){ foreach($children[$key] as $v){ if(!in_array($v, $tmp_cats_filter)){ $tmp_cats_filter[$i] = $v; $i++; } } } } foreach($children as $key=>$childs){ if(in_array($key, $tmp_cats_filter)){ foreach($children[$key] as $v){ if(!in_array($v, $tmp_cats_filter)){ $tmp_cats_filter[$i] = $v; $i++; } } } } $tmp_cats_filter = array_unique($tmp_cats_filter); */ $catids = implode(",", $tmp_cats_filter); if ($last_catid && count($tmp_cats_filter)) { $where .= "\n AND ( a.cat_id IN (" . $catids . ")"; if ($JLMS_CONFIG->get('sec_cat_use', 0)) { foreach ($tmp_cats_filter as $tmp_cats_filter_one) { $where .= "\n OR a.sec_cat LIKE '%|" . $tmp_cats_filter_one . "|%'"; } } $where .= "\n )"; } //NEW MUSLTICATS } else { if ($filter_groups) { if ($JLMS_CONFIG->get('sec_cat_use', 0)) { $where .= " AND (a.cat_id = '{$filter_groups}' OR a.sec_cat LIKE '%|{$filter_groups}|%') "; } else { $where .= " AND a.cat_id = '{$filter_groups}' "; } } } $show_paid_courses = $JLMS_CONFIG->get('show_paid_courses', 1); $where .= $show_paid_courses ? '' : ' AND a.paid <> 1 '; $restricted_courses = JLMS_illegal_courses_guest(); $restricted_courses = implode(',', $restricted_courses); if ($restricted_courses == '') { $restricted_courses = "''"; } $query = "SELECT a.*, b.username, b.email, b.name as user_fullname, a.id as course_id, d.c_category FROM `#__lms_courses` as a " . "\n LEFT JOIN `#__lms_course_cats` as d ON d.id = a.cat_id " . "\n ,`#__users` as b " . "\n WHERE a.owner_id = b.id" . "\n AND ( a.published = 1" . ($JLMS_CONFIG->get('show_future_courses', false) ? '' : "\n AND ( ((a.publish_start = 1) AND (a.start_date <= '" . date('Y-m-d') . "')) OR (a.publish_start = 0) )") . "\n AND ( ((a.publish_end = 1) AND (a.end_date >= '" . date('Y-m-d') . "')) OR (a.publish_end = 0) )" . "\n )" . "\n AND a.id NOT IN ({$restricted_courses})" . "\n AND a.gid = 0" . "\n {$where} " . "\n ORDER BY " . ($JLMS_CONFIG->get('lms_courses_sortby', 0) ? "a.ordering, a.course_name, a.id" : "a.course_name, a.ordering, a.id"); $JLMS_DB->setQuery($query); $JLMS_DB->query(); $total = $JLMS_DB->getNumRows(); require_once _JOOMLMS_FRONT_HOME . DS . "includes" . DS . "classes" . DS . "lms.pagination.php"; $pageNav = new JLMSPageNav($total, $limitstart, $limit); // $JLMS_DB->setQuery( $query, $pageNav->limitstart, $pageNav->limit ); $JLMS_DB->setQuery($query); $rows = $JLMS_DB->LoadObjectList(); //Leading Courses - Blog parametrs if (strlen($menu_params->get('leading_courses', ''))) { $leading_courses = array(); $leading_courses = explode(',', $menu_params->get('leading_courses', '')); for ($i = 0; $i < count($rows); $i++) { $rows[$i]->leading_course = 0; if (in_array($rows[$i]->id, $leading_courses)) { $rows[$i]->leading_course = 1; $lists['leading_courses'] = 1; } } $ordering = 0; $i = 0; while ($i < count($rows)) { $j = $i + 1; while ($j < count($rows)) { if ($rows[$j]->leading_course) { $temp = new stdClass(); $rows[$i]->ordering = $j; $rows[$j]->ordering = $i; $temp = $rows[$j]; $rows[$j] = $rows[$i]; $rows[$i] = $temp; break; } $j++; } $i++; } $ordering = 0; $i = 0; while ($i < count($rows)) { if ($rows[$i]->leading_course) { $j = $i + 1; while ($j < count($rows)) { if (isset($leading_courses[$i]) && $rows[$j]->id == $leading_courses[$i]) { $rows[$i]->ordering = $j; $rows[$j]->ordering = $i; $temp = new stdClass(); $temp = $rows[$j]; $rows[$j] = $rows[$i]; $rows[$i] = $temp; break; } $j++; } } $i++; } } //Leading Courses - Blog parametrs $tmp_rows = $rows; $rows = array(); for ($i = $pageNav->limitstart; $i < $pageNav->limitstart + $pageNav->limit; $i++) { if (isset($tmp_rows[$i]) && $tmp_rows[$i]->id) { $rows[] = $tmp_rows[$i]; } } //$lists = array(); $lists['homepage_text'] = $JLMS_CONFIG->get('frontpage_text'); JLMS_ShowHeading($JLMS_CONFIG->get('jlms_heading'), false); $lms_titles_cache =& JLMSFactory::getTitles(); $lms_titles_cache->setArray('courses', $rows, 'id', 'course_name'); if ($menu_params->get('blog', 0)) { joomla_lms_html::showCoursesForGuest_blog($option, $lists, $rows, $pageNav, $enrollment); } else { joomla_lms_html::showCoursesForGuest($option, $lists, $rows, $pageNav, $enrollment); } }
function JLMS_view_all_notices($option) { global $JLMS_DB, $my, $JLMS_CONFIG, $JLMS_SESSION; JLMS_ShowHeading($JLMS_CONFIG->get('jlms_heading'), true); $limit = intval(mosGetParam($_GET, 'limit', $JLMS_SESSION->get('list_limit', $JLMS_CONFIG->get('list_limit')))); $JLMS_SESSION->set('list_limit', $limit); $limitstart = intval(mosGetParam($_REQUEST, 'limitstart', 0)); $course_id = intval(mosGetParam($_REQUEST, 'course_id', 0)); $lists = array(); if ($JLMS_CONFIG->get('multicat_use', 0)) { $query = "SELECT * FROM #__lms_course_cats_config ORDER BY id"; $JLMS_DB->setQuery($query); $lists['levels'] = $JLMS_DB->loadObjectList(); if (count($lists['levels']) == 0) { for ($i = 0; $i < 5; $i++) { if ($i > 0) { $lists['levels'][$i]->cat_name = _JLMS_COURSES_COURSES_GROUPS; } else { $lists['levels'][$i]->cat_name = _JLMS_COURSES_COURSES_GROUPS; } } } $level_id = array(); for ($i = 0; $i < count($lists['levels']); $i++) { if ($i == 0) { $level_id[$i] = intval(mosGetParam($_REQUEST, 'filter_id_' . $i . '', $JLMS_SESSION->get('FLMS_filter_id_' . $i . '', 0))); $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } else { $level_id[$i] = intval(mosGetParam($_REQUEST, 'filter_id_' . $i . '', $JLMS_SESSION->get('FLMS_filter_id_' . $i . '', 0))); $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } if ($i == 0) { $parent_id[$i] = 0; } else { $parent_id[$i] = $level_id[$i - 1]; } $query = "SELECT count(id) FROM `#__lms_course_cats` WHERE parent = '" . $parent_id[$i] . "' ORDER BY c_category"; $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadResult(); if ($groups == 0) { $level_id[$i] = 0; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } } for ($i = 0; $i < count($lists['levels']); $i++) { if ($i > 0 && $level_id[$i - 1] == 0) { $level_id[$i] = 0; $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); $parent_id[$i] = 0; } elseif ($i == 0 && $level_id[$i] == 0) { $level_id[$i] = 0; $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); $parent_id[$i] = 0; } } $javascript = 'onclick="javascript:read_filter();" onchange="javascript:write_filter();document.adminForm.task.value=\'view_all_notices\';document.adminForm.submit();"'; $query1 = "SELECT group_id FROM `#__lms_users_in_global_groups` WHERE user_id = '" . $my->id . "'"; $JLMS_DB->setQuery($query1); $user_group_ids = $JLMS_DB->loadResultArray(); for ($i = 0; $i < count($lists['levels']); $i++) { if ($parent_id[$i] == 0) { $query = "SELECT * FROM `#__lms_course_cats` WHERE `parent` = '0'"; /* $query .= "\n AND ("; if (count($user_group_ids)) { $query .= "( `restricted` = 1 AND ( `groups` LIKE '%|$user_group_ids[0]|%'"; for($i1=1;$i1<count($user_group_ids);$i1++) { $query .= "\n OR `groups` like '%|$user_group_ids[$i1]|%'"; } $query .= "\n ) ) \n OR "; } $query .= "(`restricted` = 0 )) "; */ $query .= "\n ORDER BY `c_category`"; } else { $query = "SELECT * FROM `#__lms_course_cats` WHERE parent = '" . $parent_id[$i] . "' ORDER BY c_category"; } $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadObjectList(); if ($parent_id[$i] && $i > 0 && count($groups)) { $type_level[$i][] = mosHTML::makeOption(0, ' '); foreach ($groups as $group) { $type_level[$i][] = mosHTML::makeOption($group->id, $group->c_category); } $lists['filter_' . $i . ''] = mosHTML::selectList($type_level[$i], 'filter_id_' . $i . '', 'class="inputbox" size="1" ' . $javascript, 'value', 'text', $level_id[$i]); //onchange="document.location.href=\''. $link_multi .'\';" } elseif ($i == 0) { $type_level[$i][] = mosHTML::makeOption(0, ' '); foreach ($groups as $group) { $type_level[$i][] = mosHTML::makeOption($group->id, $group->c_category); } $lists['filter_' . $i . ''] = mosHTML::selectList($type_level[$i], 'filter_id_' . $i . '', 'class="inputbox" size="1" ' . $javascript, 'value', 'text', $level_id[$i]); //onchange="document.location.href=\''. $link_multi .'\';" } } } //FLMS multicat $where = ''; if ($JLMS_CONFIG->get('multicat_use', 0)) { //NEW MUSLTICATS // $tmp_level = array(); $last_catid = 0; $tmp_cats_filter = JLMS_getFilterMulticategories($last_catid); /* $i=0; foreach($_REQUEST as $key=>$item){ if(preg_match('#filter_id_(\d+)#', $key, $result)){ if($item){ $tmp_level[$i] = $result; $last_catid = $item; $i++; } } } $query = "SELECT * FROM #__lms_course_cats ORDER BY id"; $JLMS_DB->setQuery($query); $all_cats = $JLMS_DB->loadObjectList(); $tmp_cats_filter = array(); $children = array(); foreach($all_cats as $cat){ $pt = $cat->parent; $list = @$children[$pt] ? $children[$pt] : array(); array_push($list, $cat->id); $children[$pt] = $list; } $tmp_cats_filter[0] = $last_catid; $i=1; foreach($children as $key=>$childs){ if($last_catid == $key){ foreach($children[$key] as $v){ if(!in_array($v, $tmp_cats_filter)){ $tmp_cats_filter[$i] = $v; $i++; } } } } foreach($children as $key=>$childs){ if(in_array($key, $tmp_cats_filter)){ foreach($children[$key] as $v){ if(!in_array($v, $tmp_cats_filter)){ $tmp_cats_filter[$i] = $v; $i++; } } } } $tmp_cats_filter = array_unique($tmp_cats_filter); */ $catids = implode(",", $tmp_cats_filter); if ($last_catid && count($tmp_cats_filter)) { $where .= "\n AND ( a.cat_id IN (" . $catids . ")"; if ($JLMS_CONFIG->get('sec_cat_use', 0)) { foreach ($tmp_cats_filter as $tmp_cats_filter_one) { $where .= "\n OR a.sec_cat LIKE '%|" . $tmp_cats_filter_one . "|%'"; } } $where .= "\n )"; } //NEW MUSLTICATS } $query = "SELECT a.id as value, a.course_name as text" . "\n FROM #__lms_courses as a" . "\n WHERE a.id > 0" . "\n {$where}"; $JLMS_DB->setQuery($query); $courses = $JLMS_DB->loadObjectList(); // echo '<pre>'; // print_r($courses); // echo '</pre>'; $courses_ids = array(); foreach ($courses as $course) { $courses_ids[] = $course->value; } $str_courses_ids = implode(",", $courses_ids); $f_courses = array(); $f_courses[] = mosHTML::makeOption(0, ' '); $f_courses = array_merge($f_courses, $courses); $lists['f_course'] = mosHTML::selectList($f_courses, 'course_id', 'class="inputbox" size="1" style="width: 100%;" ' . $javascript, 'value', 'text', $course_id); $query = "SELECT a.*, b.course_name " . "\n FROM #__lms_page_notices as a" . "\n LEFT JOIN #__lms_courses as b ON a.course_id = b.id" . "\n WHERE a.usr_id = '" . $my->id . "'" . ($level_id[0] ? "\n AND a.course_id IN (" . $str_courses_ids . ")" : '') . ($course_id ? "\n AND a.course_id = '" . $course_id . "'" : '') . "\n ORDER BY a.data DESC"; $JLMS_DB->setQuery($query); $lists['my_notices'] = $JLMS_DB->loadObjectList(); $total = count($lists['my_notices']); require_once _JOOMLMS_FRONT_HOME . DS . "includes" . DS . "classes" . DS . "lms.pagination.php"; $pageNav = new JLMSPageNav($total, $limitstart, $limit); FLMS_page_notice::show_all_notices($option, $lists, $total, $pageNav, $limitstart, $limit); }
function JLMS_sreportGrade($option, $is_full) { global $JLMS_DB, $JLMS_CONFIG, $JLMS_SESSION, $my, $Itemid; $view = mosGetParam($_REQUEST, 'view', ''); if ($view == 'csv' || $view == 'xls') { $is_full = 0; } $limit = intval(mosGetParam($_GET, 'limit', $JLMS_SESSION->get('list_limit', $JLMS_CONFIG->get('list_limit')))); $JLMS_SESSION->set('list_limit', $limit); $limitstart = intval(mosGetParam($_GET, 'limitstart', 0)); $filt_group = intval(mosGetParam($_REQUEST, 'filt_group', 0)); $filt_cat = intval(mosGetParam($_REQUEST, 'filt_cat', 0)); $user_id = intval(mosGetParam($_REQUEST, 'filt_user', 0)); $lists = array(); $reporting_header = array(); //FLMS multicat $JLMS_ACL =& JLMSFactory::getACL(); $levels = array(); if ($JLMS_CONFIG->get('multicat_use', 0)) { $query = "SELECT * FROM #__lms_course_cats_config ORDER BY id"; $JLMS_DB->setQuery($query); $levels = $JLMS_DB->loadObjectList(); if (count($levels) == 0) { for ($i = 0; $i < 5; $i++) { if ($i > 0) { $levels[$i]->cat_name = _JLMS_COURSES_COURSES_GROUPS; } else { $levels[$i]->cat_name = _JLMS_COURSES_COURSES_GROUPS; } } } $level_id = array(); for ($i = 0; $i < count($levels); $i++) { if ($i == 0) { $level_id[$i] = intval(mosGetParam($_REQUEST, 'filter_id_' . $i . '', $JLMS_SESSION->get('FLMS_filter_id_' . $i . '', 0))); $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } else { $level_id[$i] = intval(mosGetParam($_REQUEST, 'filter_id_' . $i . '', $JLMS_SESSION->get('FLMS_filter_id_' . $i . '', 0))); $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } if ($i == 0) { $parent_id[$i] = 0; } else { $parent_id[$i] = $level_id[$i - 1]; } if ($i == 0 || $parent_id[$i]) { //(Max): extra requests $query = "SELECT count(id) FROM `#__lms_course_cats` WHERE parent = '" . $parent_id[$i] . "' ORDER BY c_category"; $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadResult(); if ($groups == 0) { $level_id[$i] = 0; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); } } } for ($i = 0; $i < count($levels); $i++) { if ($i > 0 && $level_id[$i - 1] == 0) { $level_id[$i] = 0; $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); $parent_id[$i] = 0; } elseif ($i == 0 && $level_id[$i] == 0) { $level_id[$i] = 0; $_REQUEST['filter_id_' . $i] = $level_id[$i]; $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]); $parent_id[$i] = 0; } } $javascript = 'onclick="javascript:read_filter();" onchange="javascript:write_filter();submitFormView();"'; $query1 = "SELECT group_id FROM `#__lms_users_in_global_groups` WHERE user_id = '" . $my->id . "'"; $JLMS_DB->setQuery($query1); $user_group_ids = $JLMS_DB->loadResultArray(); $categories_reporting = array(); $name_categories_reporting = array(); for ($i = 0; $i < count($levels); $i++) { if ($i == 0 || $parent_id[$i]) { //(Max): extra requests if ($parent_id[$i] == 0 && !$JLMS_ACL->CheckPermissions('lms', 'create_course')) { $query = "SELECT * FROM `#__lms_course_cats` WHERE `parent` = '0'"; $query .= "\n AND ("; if (count($user_group_ids)) { $query .= "( `restricted` = 1 AND ( `groups` LIKE '%|{$user_group_ids['0']}|%'"; for ($i1 = 1; $i1 < count($user_group_ids); $i1++) { $query .= "\n OR `groups` like '%|{$user_group_ids[$i1]}|%'"; } $query .= "\n ) ) \n OR "; } $query .= "(`restricted` = 0 )) "; $query .= "\n ORDER BY `c_category`"; } else { $query = "SELECT * FROM `#__lms_course_cats` WHERE parent = '" . $parent_id[$i] . "' ORDER BY c_category"; } $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadObjectList(); if ($parent_id[$i] && $i > 0 && count($groups)) { $type_level[$i][] = mosHTML::makeOption(0, ' '); foreach ($groups as $group) { $type_level[$i][] = mosHTML::makeOption($group->id, $group->c_category); if ($group->id == $level_id[$i]) { $name_categories_reporting[] = $levels[$i]->cat_name; $categories_reporting[] = $group->c_category; } } $lists['filter_' . $i . ''] = mosHTML::selectList($type_level[$i], 'filter_id_' . $i . '', 'class="inputbox" size="1" style="width: 100%;" ' . $javascript, 'value', 'text', $level_id[$i]); //onchange="document.location.href=\''. $link_multi .'\';" } elseif ($i == 0) { $type_level[$i][] = mosHTML::makeOption(0, ' '); foreach ($groups as $group) { $type_level[$i][] = mosHTML::makeOption($group->id, $group->c_category); if ($group->id == $level_id[$i]) { $name_categories_reporting[] = $levels[$i]->cat_name; $categories_reporting[] = $group->c_category; } } $lists['filter_' . $i . ''] = mosHTML::selectList($type_level[$i], 'filter_id_' . $i . '', 'class="inputbox" size="1" style="width: 100%;" ' . $javascript, 'value', 'text', $level_id[$i]); //onchange="document.location.href=\''. $link_multi .'\';" } } } $reporting_header['name_categories'] = $name_categories_reporting; $reporting_header['categories'] = $categories_reporting; } //FLMS multicat $teacher_in_courses = $JLMS_CONFIG->get('teacher_in_courses', array()); $parent_in_courses = $JLMS_CONFIG->get('parent_in_courses', array()); $courses = array_merge($teacher_in_courses, $parent_in_courses); //var_dump($courses); if (count($courses)) { $courses_str = implode(',', $courses); $JLMS_DB->setQuery('SELECT id FROM #__lms_courses WHERE id IN(' . $courses_str . ')'); $courses = $JLMS_DB->loadResultArray(); $g_items = array(); $g_items[] = mosHTML::makeOption(0, _JLMS_ATT_FILTER_ALL_GROUPS); if ($JLMS_CONFIG->get('use_global_groups', 1)) { if (!count($courses)) { $courses = array(0); } $query = "SELECT user_id FROM #__lms_users_in_groups WHERE course_id IN (" . implode(',', $courses) . ")"; $JLMS_DB->setQuery($query); $cid = $JLMS_DB->loadResultArray(); if (!$cid) { $cid = array(-1); } $query = "SELECT group_id FROM #__lms_users_in_global_groups WHERE user_id IN (" . implode(',', $cid) . ")"; $JLMS_DB->setQuery($query); $gid = $JLMS_DB->loadResultArray(); if (!$gid) { $gid = array(-1); } $query = "SELECT distinct id AS value, ug_name AS text FROM #__lms_usergroups WHERE id IN (" . implode(',', $gid) . ") AND course_id = 0 ORDER BY text"; //course id check just in case)) $JLMS_DB->setQuery($query); $groups = $JLMS_DB->loadObjectList(); } else { if (!count($courses)) { $courses = array(0); } $query = "SELECT distinct a.id as value, a.ug_name as text FROM #__lms_usergroups as a, #__lms_users_in_groups as b" . "\n WHERE a.course_id IN (" . implode(',', $courses) . ") AND b.group_id = a.id ORDER BY a.ug_name"; $JLMS_DB->SetQuery($query); $groups = $JLMS_DB->LoadObjectList(); } $g_items = array_merge($g_items, $groups); $link = "javascript:submitFormView();"; //$link = $link ."&filt_group=' + this.options[selectedIndex].value + '"; $lists['filter'] = mosHTML::selectList($g_items, 'filt_group', 'class="inputbox" size="1" style="width: 100%;" onchange="' . $link . '"', 'value', 'text', $filt_group); $name_groups_reporting = array(); $groups_reporting = array(); foreach ($groups as $grp) { if ($filt_group && $grp->value == $filt_group) { $name_groups_reporting[] = _JLMS_REPORTING_USERGROUP; $groups_reporting[] = $grp->text; } } $reporting_header['name_groups'] = $name_groups_reporting; $reporting_header['groups'] = $groups_reporting; //--- if ($JLMS_CONFIG->get('use_global_groups', 1) && $filt_group) { $query = "SELECT DISTINCT a.id as value, a.name as text" . "\n FROM #__users as a, #__lms_users_in_global_groups as c" . "\n WHERE a.id = c.user_id " . ($filt_group ? "\n AND c.group_id = '" . $filt_group . "'" : '') . "\n ORDER BY a.name"; } else { if (!count($courses)) { $courses = array(0); } if ($view == 'xls') { $query = "SELECT DISTINCT a.id as value, a.name as text" . "\n FROM #__users as a, #__lms_users_in_groups as c" . "\n WHERE a.id = c.user_id AND c.course_id IN (" . implode(',', $courses) . ")" . ($filt_group ? "\n AND c.group_id = '" . $filt_group . "'" : '') . "\n ORDER BY a.name"; } else { $query = "SELECT DISTINCT a.id as value, CONCAT(a.name,' (',a.username,')') as text" . "\n FROM #__users as a, #__lms_users_in_groups as c" . "\n WHERE a.id = c.user_id AND c.course_id IN (" . implode(',', $courses) . ")" . ($filt_group ? "\n AND c.group_id = '" . $filt_group . "'" : '') . "\n ORDER BY a.name"; } } $JLMS_DB->SetQuery($query); $usr_cats[] = mosHTML::makeOption('0', _JLMS_SB_SELECT_USER); $usr_cats = array_merge($usr_cats, $JLMS_DB->loadObjectList()); $lists['jlms_filt_user'] = mosHTML::selectList($usr_cats, 'filt_user', 'class="text_area" size="1" style="width: 100%;" onchange="javascript:submitFormView();"', 'value', 'text', $user_id); $name_users_reporting = array(); $users_reporting = array(); foreach ($usr_cats as $usr) { if ($user_id && $usr->value == $user_id) { $name_users_reporting[] = _JLMS_USERS_NAME; $users_reporting[] = $usr->text; } } $reporting_header['name_users'] = $name_users_reporting; $reporting_header['users'] = $users_reporting; //--- //--- //$user_id = 64; $where = ''; if ($JLMS_CONFIG->get('multicat_use', 0)) { //NEW MUSLTICATS // $tmp_level = array(); $last_catid = 0; $tmp_cats_filter = JLMS_getFilterMulticategories($last_catid); /* $i=0; foreach($_REQUEST as $key=>$item){ if(preg_match('#filter_id_(\d+)#', $key, $result)){ if($item){ $tmp_level[$i] = $result; $last_catid = $item; $i++; } } } $query = "SELECT * FROM #__lms_course_cats ORDER BY id"; $JLMS_DB->setQuery($query); $all_cats = $JLMS_DB->loadObjectList(); $tmp_cats_filter = array(); $children = array(); foreach($all_cats as $cat){ $pt = $cat->parent; $list = @$children[$pt] ? $children[$pt] : array(); array_push($list, $cat->id); $children[$pt] = $list; } $tmp_cats_filter[0] = $last_catid; $i=1; foreach($children as $key=>$childs){ if($last_catid == $key){ foreach($children[$key] as $v){ if(!in_array($v, $tmp_cats_filter)){ $tmp_cats_filter[$i] = $v; $i++; } } } } foreach($children as $key=>$childs){ if(in_array($key, $tmp_cats_filter)){ foreach($children[$key] as $v){ if(!in_array($v, $tmp_cats_filter)){ $tmp_cats_filter[$i] = $v; $i++; } } } } $tmp_cats_filter = array_unique($tmp_cats_filter); */ $catids = implode(",", $tmp_cats_filter); if ($last_catid && count($tmp_cats_filter)) { $where .= "\n AND ( cat_id IN (" . $catids . ")"; if ($JLMS_CONFIG->get('sec_cat_use', 0)) { foreach ($tmp_cats_filter as $tmp_cats_filter_one) { $where .= "\n OR sec_cat LIKE '%|" . $tmp_cats_filter_one . "|%'"; } } $where .= "\n )"; } //NEW MUSLTICATS /* if($level_id[0]){ $where .= " AND cat_id = '".$level_id[0]."' "; } $other_cat_ids = array(); for($i=1;$i<count($level_id);$i++){ if($level_id[$i]){ $other_cat_ids[] = $level_id[$i]; } } $other_cat_id = ''; if(count($other_cat_ids) > 0){ $other_cat_id = implode(",", $other_cat_ids); $query = "SELECT course_id, cat_id, level FROM #__lms_course_level WHERE cat_id IN (".$other_cat_id.")"; $JLMS_DB->setQuery($query); $c_list = $JLMS_DB->loadObjectList(); $c_result = array(); foreach($c_list as $data){ if($data->level == count($other_cat_ids)){ $c_result[] = $data->course_id; } } $course_subs = implode(",", $c_result); $where .= " AND id IN (".$course_subs.") "; } */ } $query = "SELECT id FROM #__lms_courses WHERE id IN(" . $courses_str . ")" . $where . " ORDER BY id"; $JLMS_DB->setQuery($query); $courses2 = $JLMS_DB->loadResultArray(); //Test Course Only (FLMS) (Max - 18.04.2011) if ($JLMS_CONFIG->get('flms_integration')) { $test_lesson = JRequest::getVar('test_lesson', 0); $checked = $test_lesson ? 'checked="checked"' : ''; $lists['test_lesson'] = '<input type="checkbox" name="test_lesson" value="1" class="inputbox" ' . $checked . ' onclick="javascript:submitFormView();" />'; $lists['test_lesson_value'] = $test_lesson; if ($test_lesson) { $query = "SELECT b.course_id" . "\n FROM" . "\n #__lms_courses as a" . "\n, #__lmsf_courses as b" . "\n WHERE 1" . "\n AND a.id = b.course_id" . "\n AND b.test_lesson = 1"; $JLMS_DB->setQuery($query); $test_course_ids = $JLMS_DB->loadResultArray(); $tmp = array(); foreach ($courses2 as $c) { foreach ($test_course_ids as $t) { if ($c == $t) { $tmp[] = $c; } } } if (count($tmp)) { $courses2 = array(); $courses2 = $tmp; } } } //Test Course Only (FLMS) (Max - 18.04.2011) /* OLd Filter $query = "SELECT distinct a.id as value, a.c_category as text FROM #__lms_course_cats as a, #__lms_courses as c WHERE c.cat_id=a.id AND c.id IN (".implode(',',$courses).") order by a.c_category"; $JLMS_DB->setQuery( $query ); $sf_cats = array(); $sf_cats[] = mosHTML::makeOption( '0', '- Select Category -' ); $sf_cats = array_merge( $sf_cats, $JLMS_DB->loadObjectList() ); $lists['jlms_course_cats'] = mosHTML::selectList( $sf_cats, 'filt_cat', 'class="text_area" size="1" onchange="document.adminForm.submit();"', 'value', 'text', $filt_cat ); */ $courses = $courses2; //$JLMS_DB->setQuery('SELECT COUNT(*) FROM #__lms_courses as c, #__lms_user_courses as u WHERE c.id=u.course_id AND c.id IN('.$courses_str.') AND u.user_id = '.$user_id.' '.($filt_cat?" AND cat_id=$filt_cat":"")); require_once _JOOMLMS_FRONT_HOME . DS . "includes" . DS . "classes" . DS . "lms.pagination.php"; if (!count($courses)) { $courses = array(0); } $query = "SELECT COUNT(*)" . "\n FROM #__lms_users_in_groups as b" . "\n LEFT JOIN #__lms_usergroups as c ON b.group_id = c.id AND c.course_id IN (" . implode(',', $courses) . ")," . "\n #__users as u, #__lms_courses as lc" . "\n WHERE b.course_id IN (" . implode(',', $courses) . ") AND b.user_id = u.id AND b.course_id = lc.id" . "\n AND b.user_id = '" . $user_id . "'"; $JLMS_DB->SetQuery($query); $pageNav = new JLMSPageNav($JLMS_DB->loadResult(), $limitstart, $limit); $query = "SELECT distinct b.course_id" . "\n FROM #__lms_users_in_groups as b" . "\n LEFT JOIN #__lms_usergroups as c ON b.group_id = c.id AND c.course_id IN (" . implode(',', $courses) . ")," . "\n #__users as u, #__lms_courses as lc" . "\n WHERE b.course_id IN (" . implode(',', $courses) . ") AND b.user_id = u.id AND b.course_id = lc.id" . "\n AND b.user_id = '" . $user_id . "'" . "\n ORDER BY lc.course_name " . (!$is_full ? "LIMIT {$pageNav->limitstart}, {$pageNav->limit}" : ""); $JLMS_DB->SetQuery($query); $courses = $JLMS_DB->loadResultArray(); //$JLMS_DB->setQuery('SELECT id FROM #__lms_courses as c, #__lms_user_courses as u WHERE c.id=u.course_id AND c.id IN('.$courses_str.') AND u.user_id = '.$user_id.' '.($filt_cat?" AND cat_id=$filt_cat":"")." ORDER BY id LIMIT $pageNav->limitstart, $pageNav->limit"); //$courses = $JLMS_DB->loadResultArray(); $hits = array(); $rowz = array(); if ($user_id) { //--start grade $rowz = array(); //$lists = array(); $lists['user_id'] = $user_id; $lists['hits'] = array(); foreach ($courses as $course_id) { //$course_id = 177; $query = "SELECT b.*, u.username, u.name, u.email, c.ug_name, lc.course_name" . "\n FROM #__lms_users_in_groups as b" . "\n LEFT JOIN #__lms_usergroups as c ON b.group_id = c.id AND c.course_id = '" . $course_id . "'," . "\n #__users as u, #__lms_courses as lc" . "\n WHERE b.course_id = '" . $course_id . "' AND b.user_id = u.id AND b.course_id = lc.id" . "\n AND b.user_id = '" . $user_id . "'"; $JLMS_DB->SetQuery($query); $rows = $JLMS_DB->LoadObjectList(); $uids = array(); foreach ($rows as $row) { $uids[] = $row->user_id; } //var_dump($rows);die(); if (count($uids)) { JLMS_GB_getUsersGrades($course_id, $uids, $rows, $lists, 1); if (count($rows)) { $rowz[] = $rows[0]; } } $query = "SELECT COUNT(*) FROM #__lms_track_hits WHERE course_id = " . $course_id . " AND user_id = " . $user_id; $JLMS_DB->SetQuery($query); $lists['hits'][] = $JLMS_DB->LoadResult(); } $hits = $lists['hits']; //JLMS_gradebook_html::showUserGradebook( $course_id, $option, $rows, $lists ); //---end grade //var_dump($users); /*if(count($users)){ $users_str = implode(',',$users); $query = "SELECT h.user_id as usr_id,h.course_id as c_id FROM #__lms_certificate_users as h LEFT JOIN #__users as u ON h.user_id=u.id LEFT JOIN #__lms_courses as c ON h.course_id = c.id WHERE h.course_id IN (".$courses_str.") AND h.user_id IN (".$users_str.") AND h.crt_date > '".$s_date_db."' AND h.crt_date < '".$e_date_db."' ORDER BY h.course_id,h.user_id"; $JLMS_DB->SetQuery( $query ); $hits = $JLMS_DB->LoadObjectLIST(); //var_dump($hits); }*/ } } if ($is_full) { JLMS_reports_html::JLMS_sreportGradeFV($option, $rowz, $pageNav, $lists, $levels, $filt_group, $filt_cat, $user_id, $is_full); } else { $users = array(); $users[] = $user_id; $reporting_header['data_grade']['rowz'] = $rowz; $reporting_header['data_grade']['lists'] = $lists; // if($view == 'csv') { // JLMS_REP_exportCsv($hits, array(), $users, $courses, $pageNav, $lists, $levels, $filt_cat, $filt_group, $option, 1); // } else if ($view == 'xls') { JLMS_REP_exportXLS($hits, array(), $users, $courses, $reporting_header); } else { JLMS_reports_html::JLMS_sreportGrade($option, $rowz, $pageNav, $lists, $levels, $filt_group, $filt_cat, $user_id, $is_full); } } }