function JLMS_showLinks($option)
{
    $JLMS_CONFIG =& JLMSFactory::getCOnfig();
    $Itemid = $JLMS_CONFIG->get('Itemid');
    $db =& JFactory::getDbo();
    $user = JLMSFactory::getUser();
    $my_id = $user->get('id');
    $JLMS_ACL =& JLMSFactory::getACL();
    $id = $JLMS_CONFIG->get('course_id');
    $AND_ST = "";
    if (false !== ($enroll_period = JLMS_getEnrolPeriod($my_id, $id))) {
        $AND_ST = " AND IF(a.is_time_related, (a.show_period < '" . $enroll_period . "' ), 1) ";
    }
    if ($id && $JLMS_ACL->CheckPermissions('links', 'view')) {
        $query = "SELECT a.*, b.name as author_name" . "\n FROM #__lms_links as a LEFT JOIN #__users as b ON a.owner_id = b.id" . "\n WHERE a.course_id = '" . $id . "'" . $AND_ST . ($JLMS_ACL->CheckPermissions('links', 'view_all') ? '' : "\n AND a.published = 1") . "\n ORDER BY a.ordering, a.link_name";
        $db->SetQuery($query);
        $rows = $db->LoadObjectList();
        $lms_titles_cache =& JLMSFactory::getTitles();
        $lms_titles_cache->setArray('links', $rows, 'id', 'link_name');
        JLMS_course_links_html::showCourseLinks($id, $option, $rows);
    } elseif ($id) {
        JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=details_course&id={$id}"));
    } else {
        JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}"));
    }
}
function JLMS_DatamodelSCORM($option)
{
    global $JLMS_DB, $Itemid, $JLMS_CONFIG;
    $user = JLMSFactory::getUser();
    $user_id = $user->get('id');
    if (!$user_id) {
        $ssid = strval(mosGetParam($_REQUEST, 'ssid', ''));
        if ($ssid) {
            $ssid_parts = explode('_', $ssid);
            if (count($ssid_parts) == 2) {
                $pre_userid = isset($ssid_parts[0]) ? $ssid_parts[0] : 0;
                $pre_hash = isset($ssid_parts[1]) ? $ssid_parts[1] : 'xxxxx';
                $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
                $hash_check = md5($pre_userid . '_' . $user_agent);
                if ($hash_check == $pre_hash) {
                    $user_id = $pre_userid;
                }
            }
        }
    }
    if (!$user_id) {
        $log_scorm_id = intval(mosGetParam($_REQUEST, 'id', 0)) ? intval(mosGetParam($_REQUEST, 'id', 0)) : intval(mosGetParam($_REQUEST, 'scorm_id', 0));
        $log_course_id = $JLMS_CONFIG->get('course_id') ? $JLMS_CONFIG->get('course_id') : intval(mosGetParam($_REQUEST, 'course_id', 0));
        JLMSErrorLog::writeSCORMLog('SCORM tracking error - user not logged in (session hash check failed)', $log_course_id, $log_scorm_id);
        exit;
    }
    $id = intval(mosGetParam($_REQUEST, 'id', 0));
    $skip_resume = intval(mosGetParam($_REQUEST, 'skip_resume', 0));
    if ($id) {
        $query = "SELECT * FROM #__lms_n_scorm WHERE id = {$id}";
        $JLMS_DB->SetQuery($query);
        $scorm = $JLMS_DB->LoadObject();
        if (is_object($scorm)) {
            $scoid = intval(mosGetParam($_REQUEST, 'scoid', 0));
            $attempt = intval(mosGetParam($_REQUEST, 'attempt', 0));
            if ($scoid) {
                $result = true;
                $request = null;
                // (DEN)
                //if (has_capability('mod/scorm:savetrack', get_context_instance(CONTEXT_MODULE,$cm->id))) {
                if (true) {
                    foreach ($_POST as $element => $val_post) {
                        $element = str_replace('__', '.', $element);
                        // (DEN) (i'm insert 'get_magic_quotes_gpc'). 15.03.2007
                        $value = get_magic_quotes_gpc() ? stripslashes($val_post) : $val_post;
                        if (substr($element, 0, 3) == 'cmi') {
                            $element = preg_replace('/N(\\d+)/', ".\$1", $element);
                            $result = scorm_insert_track($user_id, $scorm->id, $scoid, $attempt, $element, $value) && $result;
                        }
                        if (substr($element, 0, 15) == 'adl.nav.request') {
                            // SCORM 2004 Sequencing Request
                            require_once _JOOMLMS_FRONT_HOME . '/includes/n_scorm/datamodels/scorm_13lib.php';
                            $search = array('@continue@', '@previous@', '@\\{target=(\\S+)\\}choice@', '@exit@', '@exitAll@', '@abandon@', '@abandonAll@');
                            $replace = array('continue_', 'previous_', '\\1', 'exit_', 'exitall_', 'abandon_', 'abandonall');
                            $action = preg_replace($search, $replace, $value);
                            if ($action != $value) {
                                require_once _JOOMLMS_FRONT_HOME . '/includes/n_scorm/datamodels/sequencinglib.php';
                                // Evaluating navigation request
                                $valid = scorm_seq_overall($scoid, $user_id, $action);
                                // Set valid request
                                $search = array('@continue@', '@previous@', '@\\{target=(\\S+)\\}choice@');
                                $replace = array('true', 'true', 'true');
                                $matched = preg_replace($search, $replace, $value);
                                if ($matched == 'true') {
                                    $request = 'adl.nav.request_valid["' . $action . '"] = "' . $valid . '";';
                                }
                            }
                        }
                    }
                    /* 23 November 2007 (DEN) LMS resuming fix (for 'by the best attemp' tracking method */
                    global $JLMS_CONFIG;
                    $course_params = $JLMS_CONFIG->get('course_params');
                    $params = new JLMSParameters($course_params);
                    if ($params->get('track_type', 0) == 1 && !$skip_resume) {
                        //by the best attempt + skip_resume (24march2010)
                        if ($attempt > 1) {
                            $query = "SELECT * FROM #__lms_n_scorm_scoes_track WHERE userid = '{$user_id}' AND scormid = '{$scorm->id}' AND scoid = '{$scoid}' AND attempt = '" . ($attempt - 1) . "'";
                            $JLMS_DB->SetQuery($query);
                            $prev_tracks = $JLMS_DB->LoadObjectList();
                            foreach ($prev_tracks as $prev_track) {
                                $query = "SELECT count(*) FROM #__lms_n_scorm_scoes_track WHERE userid = '{$user_id}' AND scormid = '{$scorm->id}' AND scoid = '{$scoid}' AND attempt = '{$attempt}' AND element = '{$prev_track->element}'";
                                $JLMS_DB->SetQuery($query);
                                $ssss = $JLMS_DB->LoadResult();
                                if (!$ssss) {
                                    $track = new stdClass();
                                    $track->userid = $user_id;
                                    $track->scormid = $scorm->id;
                                    $track->scoid = $scoid;
                                    $track->attempt = $attempt;
                                    $track->element = $prev_track->element;
                                    $track->value = $prev_track->value;
                                    $track->timemodified = $prev_track->timemodified;
                                    $JLMS_DB->InsertObject('#__lms_n_scorm_scoes_track', $track, 'id');
                                }
                            }
                        }
                        //TODO: do not resume SCORM if it is played as LPath step and LPath was restarted !!!
                    }
                    /* End of LMS resuming fix */
                }
                if ($result) {
                    echo "true\n0";
                } else {
                    echo "false\n101";
                }
                if ($request != null) {
                    echo "\n" . $request;
                }
            }
        }
    }
    exit;
}
    function echoMyReports($option, $Itemid)
    {
        $JLMS_CONFIG =& JLMSFactory::getConfig();
        $user = JLMSFactory::getUser();
        $my_id = $user->get('id');
        $db =& JFactory::getDbo();
        $JLMS_ACL =& JLMSFactory::getACL();
        ?>
		<table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php 
        echo JLMSCSS::_('jlmslist', 'jlms_homepage_list');
        ?>
" style="margin-top:0; margin-bottom:0;">
		<tr>
<?php 
        $reports_heading = _JLMS_REPORTS_MODULE;
        $add_text = '';
        if ($JLMS_CONFIG->get('is_trial', false) && $JLMS_CONFIG->get('trial_reports_module_heading', '')) {
            $reports_heading .= $JLMS_CONFIG->get('trial_reports_module_heading', '');
        }
        if ($JLMS_CONFIG->get('is_trial', false) && $JLMS_CONFIG->get('trial_reports_module_text', '')) {
            $add_text = $JLMS_CONFIG->get('trial_reports_module_text', '');
        }
        ?>
			<<?php 
        echo JLMSCSS::tableheadertag();
        ?>
 class="<?php 
        echo JLMSCSS::_('sectiontableheader');
        ?>
" colspan="2" align="center" style="text-align:center"><?php 
        echo $reports_heading;
        ?>
</<?php 
        echo JLMSCSS::tableheadertag();
        ?>
>
		</tr>
		<?php 
        if ($add_text) {
            echo '<tr><td colspan="2"><div class="joomlalms_sys_message">' . $add_text . '</div></td></tr>';
        }
        if ($JLMS_ACL->isTeacher()) {
            $link = sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid . "&amp;task=report_access");
            echo "<tr class='" . JLMSCSS::_('sectiontableentry1') . "'>";
            echo "<td valign='middle' width='16'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/toolbar/tlb_attendance.png\" width='16' height='16' border='0' alt='agenda' /></td>";
            echo "<td><a href='" . $link . "' >" . _JLMS_REPORTS_ACCESS . "</a></td></tr>";
            $link = sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid . "&amp;task=report_certif");
            echo "<tr class='" . JLMSCSS::_('sectiontableentry2') . "'>";
            echo "<td valign='middle' width='16'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/toolbar/tlb_attendance.png\" width='16' height='16' border='0' alt='agenda' /></td>";
            echo "<td><a href='" . $link . "' >" . _JLMS_REPORTS_CONCLUSION . "</a></td></tr>";
            $link = sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid . "&amp;task=report_grade");
            echo "<tr class='" . JLMSCSS::_('sectiontableentry1') . "'>";
            echo "<td valign='middle' width='16'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/toolbar/tlb_attendance.png\" width='16' height='16' border='0' alt='agenda' /></td>";
            echo "<td><a href='" . $link . "' >" . _JLMS_REPORTS_USER . "</a></td></tr>";
        }
        if (($JLMS_ACL->isTeacher() || $JLMS_ACL->isStaff()) && $JLMS_CONFIG->get('show_scorm_report_link', false)) {
            $link = sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid . "&amp;task=report_scorm");
            echo "<tr class='" . JLMSCSS::_('sectiontableentry2') . "'>";
            echo "<td valign='middle' width='16'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/toolbar/tlb_attendance.png\" width='16' height='16' border='0' alt='agenda' /></td>";
            echo "<td><a href='" . $link . "' >" . _JLMS_REPORTS_SCORM . "</a></td></tr>";
        }
        ?>
	</table>
<?php 
    }
function JLMS_saveDropBox($option)
{
    $JLMS_CONFIG =& JLMSFactory::getConfig();
    $Itemid = $JLMS_CONFIG->get('Itemid');
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $db =& JFactory::getDbo();
    $user = JLMSFactory::getUser();
    $course_id = intval(mosGetParam($_REQUEST, 'course_id', 0));
    //	if ($user->get('id') && $course_id && JLMS_GetUserType($user->get('id'), $course_id) ) {
    $JLMS_ACL =& JLMSFactory::getACL();
    if ($user->get('id') && $course_id && $JLMS_ACL->CheckPermissions('dropbox', 'view')) {
        $recv_id = intval(mosGetParam($_REQUEST, 'recv_id', 0));
        $recv_id = mosGetParam($_POST, 'recv_id', array(0));
        if (!is_array($recv_id)) {
            $recv_id = array(0);
        }
        if (isset($recv_id[0]) && !$recv_id[0] || !count($recv_id)) {
            //fix one user (ticket  [QDHZ-1096])
            $msg = _JLMS_DROP_ERROR_NO_SEND_TO;
            JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}"), $msg);
        }
        //convert array of receiver's to numeric values
        $i = 0;
        while ($i < count($recv_id)) {
            $recv_id[$i] = intval($recv_id[$i]);
            $i++;
        }
        $recv_ids = implode(',', $recv_id);
        $do_continue = false;
        /*
        New permissions (Max)
        */
        $query = "SELECT count(user_id) FROM #__lms_user_courses" . "\n WHERE course_id = '" . $course_id . "' AND user_id IN ( {$recv_ids} )";
        $db->setQuery($query);
        $count_users = $db->LoadResult();
        if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_teachers')) {
            if ($count_users) {
                $do_continue = true;
            } else {
                $query = "SELECT count(c.user_id) FROM #__lms_users_in_groups as c" . "\n WHERE c.course_id = '" . $course_id . "' AND c.user_id IN ( {$recv_ids} )";
                $db->setQuery($query);
                $count_users = $db->LoadResult();
                if ($count_users) {
                    $do_continue = true;
                }
            }
        }
        if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_learners')) {
            if ($count_users) {
                $do_continue = true;
            }
        }
        /*
        Old part
        */
        /*
        if (JLMS_GetUserType($user->get('id'), $course_id) == 1) {
        	$query = "SELECT count(user_id) FROM #__lms_user_courses"
        	. "\n WHERE course_id = '".$course_id."' AND (role_id = 1 OR role_id = 4) AND user_id IN ( $recv_ids )";
        	$db->setQuery($query);
        	$count_users = $db->LoadResult();
        	
        	if ($count_users) {
        		$do_continue = true;
        	} else {
        		$query = "SELECT count(c.user_id) FROM #__lms_users_in_groups as c"
        		. "\n WHERE c.course_id = '".$course_id."' AND c.user_id IN ( $recv_ids )";
        		$db->setQuery($query);
        		$count_users = $db->LoadResult();
        		if ($count_users) {
        			$do_continue = true;
        		}
        	}
        } elseif (JLMS_GetUserType($user->get('id'), $course_id) == 2) {
        	$query = "SELECT count(user_id) FROM #__lms_user_courses"
        	. "\n WHERE course_id = '".$course_id."' AND (role_id = 1 OR role_id = 4) AND user_id IN ( $recv_ids )";
        	$db->setQuery($query);
        	$count_users = $db->LoadResult();
        	if ($count_users) {
        		$do_continue = true;
        	}
        }
        */
        // (TIPS)
        // sender: teacher - RECEIVER must be teacher of this course or student of this course
        // sender: student - RECEIVER must be teacher of this course
        $flag = false;
        if ($do_continue) {
            if ($_FILES['userfile']['name'] == '') {
                $file_id = 0;
                $flag = true;
            } else {
                $file_id = JLMS_uploadFile($course_id);
                if ($file_id) {
                    $flag = true;
                }
            }
            $_POST['drp_type'] = 1;
            if (intval(mosGetParam($_REQUEST, 'file_id', 0))) {
                $file_id = intval(mosGetParam($_REQUEST, 'file_id', 0));
                $_POST['drp_type'] = 2;
            }
            if ($flag) {
                $row = new mos_Joomla_LMS_DropBox($db);
                if (!$row->bind($_POST)) {
                    echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
                    exit;
                }
                $row->file_id = $file_id;
                $row->owner_id = $user->get('id');
                $row->drp_mark = 1;
                /*$query = "SELECT file_name FROM #__lms_files WHERE id = '".$file_id."'";
                				$db->SetQuery( $query );
                
                				$row->drp_name = $db->LoadResult();*/
                //$row->drp_name = strval(mosGetParam($_FILES['userfile'], 'name', 'dropbox_file'));
                if ($file_id > 0) {
                    if ($row->drp_type == 1) {
                        $drp_name = isset($_FILES['userfile']['name']) ? strval($_FILES['userfile']['name']) : 'dropbox_file';
                    } else {
                        if ($row->drp_type == 2) {
                            $drp_name = strval(mosGetParam($_REQUEST, 'dropbox_name', 'dropbox_file_(' . time() . ')'));
                        }
                    }
                } else {
                    $drp_name = mosGetParam($_REQUEST, 'dropbox_name');
                }
                $drp_name = get_magic_quotes_gpc() ? stripslashes($drp_name) : $drp_name;
                $row->drp_name = ampReplace(strip_tags($drp_name));
                $row->drp_description = strval(JLMS_getParam_LowFilter($_POST, 'drp_description', ''));
                //$row->drp_description = JLMS_ProcessText_LowFilter($row->drp_description);
                //				if (JLMS_GetUserType($user->get('id'), $course_id ) == 1) {
                if ($JLMS_ACL->CheckPermissions('dropbox', 'mark_as_corrected')) {
                    $drp_corr = intval(mosGetParam($_REQUEST, 'drp_corrected', 0));
                    if ($drp_corr != 1) {
                        $drp_corr = 0;
                    }
                    $row->drp_corrected = $drp_corr;
                } else {
                    $row->drp_corrected = 0;
                }
                $row->drp_time = date('Y-m-d H:i:s');
                //Replace old function JLMS_GetUserType //tmp
                $users_teachers = array();
                $users_learners = array();
                if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_teachers')) {
                    $query = "SELECT a.* FROM #__users as a, #__lms_user_courses as c" . "\n WHERE a.id = c.user_id AND c.course_id = '" . $course_id . "' AND a.id <> '" . $user->id . "'" . "\n ORDER BY a.username";
                    $db->SetQuery($query);
                    $users_teachers = $db->LoadObjectList();
                    $i = 0;
                    while ($i < count($users_teachers)) {
                        $users_teachers[$i]->username = _JLMS_ROLE_TEACHER . ' - ' . $users_teachers[$i]->name . ' (' . $users_teachers[$i]->username . ')';
                        $i++;
                    }
                }
                if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_learners')) {
                    $users_learners = JLMS_getCourseStudentsList($course_id);
                }
                $tmp = array();
                foreach ($users_teachers as $n => $ut) {
                    $tmp[$n] = $ut->id;
                }
                if (count($tmp)) {
                    $users_teachers = $tmp;
                }
                $tmp = array();
                foreach ($users_learners as $n => $ul) {
                    $tmp[$n] = $ul->id;
                }
                if (count($tmp)) {
                    $users_learners = $tmp;
                }
                //Replace old function JLMS_GetUserType //tmp
                foreach ($recv_id as $recv) {
                    $check_recv = false;
                    //Replace old function JLMS_GetUserType //tmp
                    if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_teachers') && in_array($recv, $users_teachers)) {
                        $check_recv = true;
                    }
                    if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_learners') && in_array($recv, $users_learners)) {
                        $check_recv = true;
                    }
                    //Replace old function JLMS_GetUserType //tmp
                    //					if ($recv && ($recv != $user->get('id')) && ((JLMS_GetUserType($user->get('id'), $course_id) == 1 && JLMS_GetUserType($recv, $course_id)) || ((JLMS_GetUserType($user->get('id'), $course_id) == 2) && (JLMS_GetUserType($recv, $course_id, true) == 1))) || ((JLMS_GetUserType($user->get('id'), $course_id) == 2) && (JLMS_GetUserType($recv, $course_id, true) == 2)) ) { //old
                    if ($recv && $recv != $user->get('id') && $check_recv) {
                        $row->id = 0;
                        $row->recv_id = $recv;
                        if (!$row->check()) {
                            echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
                            exit;
                        }
                        if (!$row->store()) {
                            echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
                            exit;
                        }
                        //*** send email notification
                        $e_course = new stdClass();
                        $e_course->course_alias = '';
                        $e_course->course_name = '';
                        $query = "SELECT course_name, name_alias FROM #__lms_courses WHERE id = '" . $course_id . "'";
                        $db->setQuery($query);
                        $e_course = $db->loadObject();
                        $e_user = new stdClass();
                        $e_user->name = '';
                        $e_user->email = '';
                        $e_user->username = '';
                        $query = "SELECT email, name, username FROM #__users WHERE id = '" . $recv . "'";
                        $db->setQuery($query);
                        $e_user = $db->loadObject();
                        $e_params['user_id'] = $recv;
                        $e_params['course_id'] = $course_id;
                        $e_params['markers']['{email}'] = $e_user->email;
                        $e_params['markers']['{name}'] = $e_user->name;
                        $e_params['markers']['{username}'] = $e_user->username;
                        $e_params['markers']['{coursename}'] = $e_course->course_name;
                        //( $e_course->course_alias )?$e_course->course_alias:$e_course->course_name;
                        $e_params['markers']['{filename}'] = $row->drp_name;
                        $e_params['markers']['{courselink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}&task=details_course&id={$course_id}");
                        $e_params['markers_nohtml']['{courselink}'] = $e_params['markers']['{courselink}'];
                        $e_params['markers']['{courselink}'] = '<a href="' . $e_params['markers']['{courselink}'] . '">' . $e_params['markers']['{courselink}'] . '</a>';
                        $e_params['markers']['{lmslink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}");
                        $e_params['markers_nohtml']['{lmslink}'] = $e_params['markers']['{lmslink}'];
                        $e_params['markers']['{lmslink}'] = '<a href="' . $e_params['markers']['{lmslink}'] . '">' . $e_params['markers']['{lmslink}'] . '</a>';
                        $e_params['action_name'] = 'OnNewDropboxFile';
                        $_JLMS_PLUGINS->loadBotGroup('emails');
                        $plugin_result_array = $_JLMS_PLUGINS->trigger('OnNewDropboxFile', array(&$e_params));
                        //*** end of emails
                    }
                }
                JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}"));
            } else {
                mosErrorAlert("Upload of " . $userfile_name . " failed");
            }
        } else {
            JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}"));
        }
    } else {
        JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}"));
    }
}
    function showCourseLinks($id, $option, &$rows)
    {
        $user = JLMSFactory::getUser();
        $db =& JFactory::getDbo();
        $JLMS_ACL =& JLMSFactory::getACL();
        $JLMS_CONFIG = JLMSFactory::getConfig();
        $Itemid = $JLMS_CONFIG->get('Itemid');
        ?>
<script language="javascript" type="text/javascript">
<!--//--><![CDATA[//><!--
function submitbutton(pressbutton) {
	var form = document.adminForm;
	if ( ((pressbutton == 'link_delete') || (pressbutton == 'pre_link_edit')) && (form.boxchecked.value == "0")){
		alert("<?php 
        echo _JLMS_ALERT_SELECT_ITEM;
        ?>
");
	} else {
		form.task.value = pressbutton;
		form.submit();
	}
}
function submitbutton_order(pressbutton, item_id) {
	var form = document.adminForm;
	if ((pressbutton == 'link_orderup') || (pressbutton == 'link_orderdown')){
		if (item_id) {
		form.task.value = pressbutton;
		form.row_id.value = item_id;
		form.submit();
		}
	}
}
function submitbutton_change(pressbutton, state) {
	var form = document.adminForm;
	if (pressbutton == 'change_link'){
		if (form.boxchecked.value == "0") {
			alert("<?php 
        echo _JLMS_ALERT_SELECT_ITEM;
        ?>
");
		} else {
			form.task.value = pressbutton;
			form.state.value = state;
			form.submit();
		}
	}
}
function submitbutton_change2(pressbutton, state, cid_id) {
	var form = document.adminForm;
	if (pressbutton == 'change_link'){
		form.task.value = pressbutton;
		form.state.value = state;
		form.cid2.value = cid_id;
		form.submit();
	}
}
//--><!]]>
</script>
<?php 
        JLMS_TMPL::OpenMT();
        $hparams = array();
        JLMS_TMPL::ShowHeader('link', _JLMS_LINKS_COURSE_LINKS, $hparams);
        JLMS_TMPL::OpenTS();
        ?>
		<form action="<?php 
        echo $JLMS_CONFIG->get('live_site') . "/index.php?option={$option}&amp;Itemid={$Itemid}";
        ?>
" method="post" name="adminForm">
<?php 
        if (!empty($rows)) {
            ?>
			<table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php 
            echo JLMSCSS::_('jlmslist');
            ?>
">
				<tr>
					<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="20" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
" align="center">#</<?php 
            echo $JLMS_CONFIG->get('tableheader_tag', 'td');
            ?>
>
				<?php 
            if ($JLMS_ACL->CheckPermissions('links', 'manage') || $JLMS_ACL->CheckPermissions('links', 'publish')) {
                ?>
					<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 width="20" class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
" align="center"><input type="checkbox" name="toggle" value="" onclick="checkAll(<?php 
                echo count($rows);
                ?>
);" /></<?php 
                echo $JLMS_CONFIG->get('tableheader_tag', 'td');
                ?>
>
				<?php 
            }
            ?>
					<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
" width="40%"><?php 
            echo _JLMS_LINKS_TBL_HEAD_LINK;
            ?>
</<?php 
            echo $JLMS_CONFIG->get('tableheader_tag', 'td');
            ?>
>
				<?php 
            if ($JLMS_ACL->CheckPermissions('links', 'publish')) {
                ?>
					<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
" width="1">&nbsp;</<?php 
                echo $JLMS_CONFIG->get('tableheader_tag', 'td');
                ?>
>
				<?php 
            }
            if ($JLMS_ACL->CheckPermissions('links', 'order')) {
                ?>
					<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
" colspan="2" width="1">&nbsp;</<?php 
                echo $JLMS_CONFIG->get('tableheader_tag', 'td');
                ?>
>
				<?php 
            }
            ?>
					<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
" width="60%"><?php 
            echo _JLMS_LINKS_TBL_HEAD_DESCR;
            ?>
</<?php 
            echo $JLMS_CONFIG->get('tableheader_tag', 'td');
            ?>
>
				</tr>
			<?php 
            $there_were_squeezeboxes = false;
            $k = 1;
            for ($i = 0, $n = count($rows); $i < $n; $i++) {
                $is_squeezebox = false;
                $row = $rows[$i];
                $link = $row->link_href;
                if ($row->link_type == 2) {
                    $link = sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=view_inline_link&course_id={$id}&id={$row->id}");
                }
                if ($row->link_type == 3) {
                    $is_squeezebox = true;
                    $there_were_squeezeboxes = true;
                }
                $alt = $row->published ? _JLMS_STATUS_PUB : _JLMS_STATUS_UNPUB;
                $image = $row->published ? 'btn_accept.png' : 'btn_cancel.png';
                $state = $row->published ? 0 : 1;
                if ($row->is_time_related) {
                    $tooltip_txt = _JLMS_WILL_BE_RELEASED_IN;
                    $showperiod = $row->show_period;
                    $ost1 = $showperiod % (24 * 60);
                    $sp_days = ($showperiod - $ost1) / (24 * 60);
                    $ost2 = $showperiod % 60;
                    $sp_hours = ($ost1 - $ost2) / 60;
                    $sp_mins = $ost2;
                    $release_time_info = false;
                    if ($sp_days) {
                        $tooltip_txt .= ' ' . $sp_days . ' ' . _JLMS_RELEASED_IN_DAYS;
                        $release_time_info = true;
                    }
                    if ($sp_hours) {
                        $tooltip_txt .= ' ' . $sp_hours . ' ' . _JLMS_RELEASED_IN_HOURS;
                        $release_time_info = true;
                    }
                    if ($sp_mins) {
                        $tooltip_txt .= ' ' . $sp_mins . ' ' . _JLMS_RELEASED_IN_MINUTES;
                        $release_time_info = true;
                    }
                    if ($release_time_info) {
                        $tooltip_txt .= ' ' . _JLMS_RELEASED_AFTER_ENROLLMENT;
                    }
                }
                $checked = mosHTML::idBox($i, $row->id);
                ?>
				<tr class="<?php 
                echo JLMSCSS::_('sectiontableentry' . $k);
                ?>
">
					<td align="center"><?php 
                echo $i + 1;
                ?>
</td>
				<?php 
                if ($JLMS_ACL->CheckPermissions('links', 'manage') || $JLMS_ACL->CheckPermissions('links', 'publish')) {
                    $show_check = true;
                    if ($JLMS_ACL->CheckPermissions('links', 'only_own_items') && $row->owner_id != $user->get('id')) {
                        $show_check = false;
                    } elseif ($JLMS_ACL->CheckPermissions('links', 'only_own_role') && $JLMS_ACL->GetRole() != $JLMS_ACL->UserSystemRole($db, $row->owner_id)) {
                        $show_check = false;
                    }
                    ?>
					<td>
					<?php 
                    echo $show_check ? $checked : '&nbsp;';
                    ?>
					</td>
				<?php 
                }
                ?>
					<td align="left">
						<?php 
                if ($is_squeezebox) {
                    $tmp_params = new JLMSParameters($row->params);
                    $x_size = 0;
                    $y_size = 0;
                    if (is_object($tmp_params) && $tmp_params->get('display_width')) {
                        $x_size = intval($tmp_params->get('display_width'));
                    } elseif (isset($tmp_params->display_width)) {
                        $x_size = intval($tmp_params->display_width);
                    }
                    if (is_object($tmp_params) && $tmp_params->get('display_height')) {
                        $y_size = intval($tmp_params->get('display_height'));
                    } elseif (isset($tmp_params->display_height)) {
                        $y_size = intval($tmp_params->display_height);
                    }
                    ?>
							<a class="jlms_modal" rel="{handler:'iframe', size:{x:<?php 
                    echo $x_size;
                    ?>
,y:<?php 
                    echo $y_size;
                    ?>
}}" href="<?php 
                    echo $link;
                    ?>
" title="<?php 
                    echo str_replace('"', '&quot;', $row->link_name);
                    ?>
">
								<?php 
                    echo $row->link_name;
                    ?>
							</a>
						<?php 
                } else {
                    ?>
							<?php 
                    if ($link) {
                        ?>
							<a <?php 
                        echo !$row->link_type ? 'target="_blank" ' : ' ';
                        ?>
href="<?php 
                        echo $link;
                        ?>
" title="<?php 
                        echo str_replace('"', '&quot;', $row->link_name);
                        ?>
">
								<?php 
                        echo $row->link_name;
                        ?>
							</a>
							<?php 
                    } else {
                        echo $row->link_name;
                    }
                    ?>
						<?php 
                }
                ?>
						<?php 
                if ($JLMS_CONFIG->get('show_links_authors', 0)) {
                    ?>
						<br />
						<span class="small"><?php 
                    echo _JLMS_HOME_AUTHOR . "&nbsp;" . $row->author_name;
                    ?>
</span>
						<?php 
                }
                ?>
					</td>
				<?php 
                if ($JLMS_ACL->CheckPermissions('links', 'publish')) {
                    ?>
					<td valign="middle">
					<?php 
                    if ($JLMS_ACL->CheckPermissions('links', 'only_own_items') && $row->owner_id != $user->get('id')) {
                        ?>
						<img class="JLMS_png" src="<?php 
                        echo $JLMS_CONFIG->get('live_site');
                        ?>
/components/com_joomla_lms/lms_images/toolbar/<?php 
                        echo $image;
                        ?>
" width="16" height="16" border="0" alt="<?php 
                        echo $alt;
                        ?>
" />
					<?php 
                    } elseif ($JLMS_ACL->CheckPermissions('links', 'only_own_role') && $JLMS_ACL->GetRole() != $JLMS_ACL->UserSystemRole($db, $row->owner_id)) {
                        ?>
						<img class="JLMS_png" src="<?php 
                        echo $JLMS_CONFIG->get('live_site');
                        ?>
/components/com_joomla_lms/lms_images/toolbar/<?php 
                        echo $image;
                        ?>
" width="16" height="16" border="0" alt="<?php 
                        echo $alt;
                        ?>
" />
					<?php 
                    } else {
                        if ($row->is_time_related) {
                            if ($row->published) {
                                $image = 'btn_publish_wait.png';
                            }
                            $tooltip_link = 'javascript:submitbutton_change2(\'change_link\',' . $state . ',' . $row->id . ')';
                            $tooltip_name = '<img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/' . $image . '" width="16" height="16" border="0" alt="' . $alt . '" />';
                            echo JLMS_toolTip($alt, $tooltip_txt, $tooltip_name, $tooltip_link);
                        } else {
                            echo '<a href="javascript:submitbutton_change2(\'change_link\',' . $state . ',' . $row->id . ')" title="' . $alt . '">';
                            echo '<img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/' . $image . '" width="16" height="16" border="0" alt="' . $alt . '" />';
                            echo '</a>';
                        }
                    }
                    ?>
					</td>
				<?php 
                }
                if ($JLMS_ACL->CheckPermissions('links', 'order')) {
                    ?>
					<td><?php 
                    echo JLMS_orderUpIcon($i, $row->id, true, 'link_orderup');
                    ?>
</td>
					<td><?php 
                    echo JLMS_orderDownIcon($i, $n, $row->id, true, 'link_orderdown');
                    ?>
</td>
				<?php 
                }
                ?>
					<td><?php 
                echo $row->link_description ? $row->link_description : '&nbsp;';
                ?>
</td>
				</tr>
				<?php 
                $k = 3 - $k;
            }
            ?>
			</table>
<?php 
            if ($there_were_squeezeboxes) {
                JLMS_initialize_SqueezeBox(false);
            }
        } else {
            echo '<div class="joomlalms_user_message">' . _JLMS_NO_ITEMS_HERE . '</div>';
        }
        ?>
			<input type="hidden" name="option" value="<?php 
        echo $option;
        ?>
" />
			<input type="hidden" name="Itemid" value="<?php 
        echo $Itemid;
        ?>
" />
			<input type="hidden" name="task" value="setup_category" />
			<input type="hidden" name="boxchecked" value="0" />
			<input type="hidden" name="id" value="<?php 
        echo $id;
        ?>
" />
			<input type="hidden" name="row_id" value="0" />
			<input type="hidden" name="state" value="0" />
			<input type="hidden" name="cid2" value="0" />
		</form>
<?php 
        JLMS_TMPL::CloseTS();
        if ($id && ($JLMS_ACL->CheckPermissions('links', 'manage') || $JLMS_ACL->CheckPermissions('links', 'publish'))) {
            $link_new = JLMSRoute::_("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=pre_create_link&amp;id={$id}");
            $controls = array();
            if ($JLMS_ACL->CheckPermissions('links', 'publish')) {
                $controls[] = array('href' => "javascript:submitbutton_change('change_link',1);", 'title' => _JLMS_SET_PUB, 'img' => 'publish');
                $controls[] = array('href' => "javascript:submitbutton_change('change_link',0);", 'title' => _JLMS_SET_UNPUB, 'img' => 'unpublish');
                if ($JLMS_ACL->CheckPermissions('links', 'manage')) {
                    $controls[] = array('href' => 'spacer');
                }
            }
            if ($JLMS_ACL->CheckPermissions('links', 'manage')) {
                $controls[] = array('href' => $link_new, 'onclick' => "", 'title' => _JLMS_LINKS_IMG_NEW_LINK, 'img' => 'add');
                $controls[] = array('href' => "javascript:submitbutton('link_delete');", 'title' => _JLMS_LINKS_IMG_DEL_LINK, 'img' => 'delete');
                $controls[] = array('href' => "javascript:submitbutton('pre_link_edit');", 'title' => _JLMS_LINKS_IMG_EDIT_LINK, 'img' => 'edit');
            }
            JLMS_TMPL::ShowControlsFooter($controls);
        }
        JLMS_TMPL::CloseMT();
    }
function JLMS_show_calendar($id, $option)
{
    $JLMS_CONFIG =& JLMSFactory::getConfig();
    $Itemid = $JLMS_CONFIG->get('Itemid');
    $db =& JFactory::getDbo();
    $user = JLMSFactory::getUser();
    $my_id = $user->get('id');
    $JLMS_ACL =& JLMSFactory::getACL();
    $assigned_groups_only = $JLMS_ACL->CheckPermissions('advanced', 'assigned_groups_only');
    $view_all_course_categories = $JLMS_ACL->CheckPermissions('advanced', 'view_all_course_categories');
    //show top menu
    JLMS_agenda_html::show_head_menu($id, $option);
    //select all events
    if ($id) {
        $course_id = array($id);
    } else {
        $course_id = JLMS_GetUserCourses_IDs($my_id);
        if (!is_array($course_id) || empty($course_id)) {
            $course_id = array(0);
        }
    }
    //opredeliaem type usera
    $mode = mosGetParam($_REQUEST, 'mode', '');
    $sort = mosGetParam($_REQUEST, 'jlms_agenda_order', 'desc');
    $filter = mosGetParam($_REQUEST, 'jlms_agenda_filter', '');
    $where = '';
    switch ($filter) {
        case 'current':
            $where .= "\n AND end_date >= '" . date('Y-m-d') . "' AND start_date <= '" . date('Y-m-d') . "'";
            break;
        case 'upcoming':
            $where .= "\n AND start_date > '" . date('Y-m-d') . "'";
            break;
    }
    $course_id = implode(',', $course_id);
    if ($mode != 'add_avent' || $mode != 'edit_event') {
        $members = "'0'";
        if ($JLMS_ACL->_role_type == 2 || $JLMS_ACL->_role_type == 3 || $JLMS_ACL->_role_type == 4) {
            if ($assigned_groups_only) {
                $groups_where_admin_manager = JLMS_ACL_HELPER::GetAssignedGroups($my_id, $id);
                $groups_where_isset_user = JLMS_ACL_HELPER::GetUserGlobalGroup($my_id, $id);
                $groups_where_admin_manager = array_merge($groups_where_admin_manager, $groups_where_isset_user);
                if (count($groups_where_admin_manager)) {
                    $where .= "\n AND (is_limited = 0 OR `groups` LIKE '%|{$groups_where_admin_manager['0']}|%'";
                    for ($i = 1; $i < count($groups_where_admin_manager); $i++) {
                        $where .= "\n OR `groups` like '%|{$groups_where_admin_manager[$i]}|%'";
                    }
                    $where .= "\n OR owner_id = '" . $my_id . "')";
                } else {
                    $where .= "\n AND (is_limited = 0 OR owner_id = '" . $my_id . "' OR agenda_id = 0) AND groups = ''";
                }
            }
        } elseif ($JLMS_ACL->_role_type < 2) {
            $query = "select a.group_id FROM #__lms_users_in_global_groups as a WHERE a.user_id = '" . $my_id . "' AND a.subgroup1_id = 0 AND a.group_id > 0";
            $db->setQuery($query);
            $temp1 = $db->loadResultArray();
            $query = "select subgroup1_id FROM #__lms_users_in_global_groups WHERE user_id = '" . $my_id . "' AND subgroup1_id > 0";
            $db->setQuery($query);
            $temp2 = $db->loadResultArray();
            $group_where_isset_user = array_merge($temp1, $temp2);
            if (count($group_where_isset_user)) {
                $where .= "\n AND (( `groups` <> '' AND `groups` IS NOT NULL AND (`groups` LIKE '%|{$group_where_isset_user['0']}|%'";
                for ($i = 1; $i < count($group_where_isset_user); $i++) {
                    $where .= "\n OR `groups` like '%|{$group_where_isset_user[$i]}|%'";
                }
                $where .= "\n )) OR (is_limited = 0 AND (`groups` = '' OR `groups` IS NULL)))";
            }
        }
        $query = "SELECT * FROM #__lms_agenda WHERE course_id IN ({$course_id})" . $where . "\n ORDER BY start_date ";
        $db->setQuery($query);
        $rows = $db->LoadObjectList();
        $lms_titles_cache =& JLMSFactory::getTitles();
        $lms_titles_cache->setArray('agenda', $rows, 'agenda_id', 'title');
        if ($JLMS_ACL->_role_type < 2) {
            $rows = filterByShowPeriod($rows);
        }
    }
    //select date (if no, select current date)
    $cal_date = false;
    if (isset($_REQUEST['cal_date']) && $_REQUEST['cal_date'] != '' && strtotime($_REQUEST['cal_date']) != -1) {
        $cal_date = $_REQUEST['cal_date'];
    } else {
        if (isset($_REQUEST['date']) && $_REQUEST['date'] != '' && strtotime($_REQUEST['date']) != -1) {
            $cal_date = $_REQUEST['date'];
        }
    }
    if ($cal_date) {
        $now_date = JLMS_dateToDB($cal_date);
        $strDate = $now_date;
        $isValid = false;
        //proverka pravilnosti date
        $dateArr = getdate(strtotime($now_date));
        $y = $dateArr['year'];
        $m = $dateArr['mon'];
        $d = $dateArr['mday'];
        $isValid = checkdate($m, $d, $y);
        if (!$isValid) {
            $now_date = date('Y-m-d');
        }
    } else {
        $now_date = date('Y-m-d');
    }
    $date = strtotime($now_date);
    if ($id && $JLMS_ACL->CheckPermissions('announce', 'view')) {
        switch ($mode) {
            case 'view_month':
                JLMS_agenda_html::show_calendar_month($id, $option, $rows, $date);
                break;
            case 'view_week':
                JLMS_agenda_html::show_calendar_week($id, $option, $rows, $date);
                break;
            case 'view_day':
                JLMS_agenda_html::show_calendar_day($id, $option, $rows, $date);
                break;
            case 'add_event':
                $JLMS_ACL =& JLMSFactory::getACL();
                global $JLMS_CONFIG;
                $id = $JLMS_CONFIG->get('course_id');
                if ($id && $JLMS_ACL->CheckPermissions('announce', 'manage')) {
                    $lists['groups'] = JLMSmultiselect(array(), true, $id);
                    if ($assigned_groups_only) {
                        $lists['is_limited'] = mosHTML::yesnoRadioList('is_limited', 'disabled="disabled" class="inputbox" ', 1);
                    } else {
                        $lists['is_limited'] = mosHTML::yesnoRadioList('is_limited', 'class="inputbox" ', 0);
                    }
                    JLMS_agenda_html::show_add_event($id, $option, $agenda_item = '', $lists);
                } else {
                    JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=agenda&id={$id}"));
                }
                break;
            case 'cancel_agenda':
                JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=agenda&id={$id}"));
                break;
            case 'event_save':
                JLMS_save_event($option);
                break;
            case 'edit':
                JLMS_edit_event($option, $id);
                break;
            case 'delete':
                JLMS_delete_event($option, $id);
                break;
            default:
                show_agenda_items($id, $option, $rows, $date, $sort);
                break;
        }
    } else {
        JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=details_course&id={$id}"));
    }
}
    function showCourseDocuments($id, $option, &$rows, &$lists, &$possibilities)
    {
        $JLMS_CONFIG =& JLMSFactory::getConfig();
        $Itemid = $JLMS_CONFIG->get('Itemid');
        $db =& JFactory::getDbo();
        $user = JLMSFactory::getUser();
        $JLMS_ACL =& JLMSFactory::getACL();
        $lms_img_path = $JLMS_CONFIG->get('live_site') . '/' . $JLMS_CONFIG->get('lms_path_to_images', 'components/com_joomla_lms/lms_images');
        $rows_c = $lists['collapsed_folders'];
        ?>
<script language="javascript" type="text/javascript">
<!--//--><![CDATA[//><!--
function submitbutton(pressbutton) {
	var form = document.adminForm;
	if ((pressbutton == 'doc_delete') && (form.boxchecked.value == '0')) {
		alert( "<?php 
        echo _JLMS_ALERT_SELECT_ITEM;
        ?>
" );
	} else if((pressbutton == 'doc_delete')){
		if(confirm('<?php 
        echo _JLMS_OUTDOCS_JS_CONFIRM_DELETE;
        ?>
')){
			form.task.value = pressbutton;
			form.submit();
		}	
	} else if ((pressbutton == 'edit_doc') && (form.boxchecked.value == '0')) {
		alert( "<?php 
        echo _JLMS_ALERT_SELECT_ITEM;
        ?>
" );
	} else {
		form.task.value = pressbutton;
		form.submit();
	}
}
function submitbutton_change(pressbutton, state) {
	var form = document.adminForm;
	if (pressbutton == 'change_doc'){
		if (form.boxchecked.value == '0') {
			alert( "<?php 
        echo _JLMS_ALERT_SELECT_ITEM;
        ?>
" );
		} else {
			form.task.value = pressbutton;
			form.state.value = state;
			form.submit();
		}
	}
}
function submitbutton_change2(pressbutton, state, cid_id) {
	var form = document.adminForm;
	if (pressbutton == 'change_doc'){
		form.task.value = pressbutton;
		form.state.value = state;
		form.cid2.value = cid_id;
		form.submit();
	}
}
function submitbutton_order(pressbutton, item_id) {
	var form = document.adminForm;
	if ((pressbutton == 'doc_orderup') || (pressbutton == 'doc_orderdown')){
		if (item_id) {
		form.task.value = pressbutton;
		form.row_id.value = item_id;
		form.submit();
		}
	}
}
function cf_saveorder(){
	var form = document.adminForm;	
	form.task.value = 'doc_saveorder';
	form.submit();
}

var TreeArray1 = new Array();
var TreeArray2 = new Array();
var Is_ex_Array = new Array();
<?php 
        $i = 1;
        foreach ($rows as $row) {
            if ($row->p_view) {
                echo "TreeArray1[" . $i . "] = " . $row->parent_id . ";";
                echo "TreeArray2[" . $i . "] = " . $row->id . ";";
                if (in_array($row->id, $rows_c)) {
                    echo "Is_ex_Array[" . $i . "] = 0;";
                } else {
                    echo "Is_ex_Array[" . $i . "] = 1;";
                }
                $i++;
            }
        }
        ?>
function Hide_Folder(fid) {
	var vis_style = 'hidden';
	var dis_style = 'none';
	var i = 1;
	while (i < TreeArray1.length) {
		if (TreeArray1[i] == fid) {
			getObj('tree_row_'+TreeArray2[i]).style.visibility = vis_style;
			getObj('tree_row_'+TreeArray2[i]).style.display = dis_style;
			Hide_Folder(TreeArray2[i])
		}
		i ++;
	}
}
function Show_Folder(fid) {
	var vis_style = 'visible';
	var dis_style = '';
	var i = 1;
	while (i < TreeArray1.length) {
		if (TreeArray1[i] == fid) {
			if (getObj('tree_row_'+TreeArray2[i])) {
				getObj('tree_row_'+TreeArray2[i]).style.display = dis_style;
				getObj('tree_row_'+TreeArray2[i]).style.visibility = vis_style;
			}
			NoChange_Folder(TreeArray2[i])
		}
		i ++;
	}
}
function NoChange_Folder(fid) {
	var vis_style = 'hidden';var dis_style = 'none';var i = 1;var j = 0;
	while (i < TreeArray2.length) {
		if ( (TreeArray2[i] == fid) && (Is_ex_Array[i] == 1) ) {
			vis_style = 'visible';
			dis_style = '';
			j = 1;
		}
		i ++;
	}
	i = 1;
	while (i < TreeArray1.length) {
		if (TreeArray1[i] == fid) {
			getObj('tree_row_'+TreeArray2[i]).style.visibility = vis_style;
			getObj('tree_row_'+TreeArray2[i]).style.display = dis_style;
			if (j == 1) { NoChange_Folder(TreeArray2[i]);
			} else { Hide_Folder(TreeArray2[i]); }
		}
		i ++;
	}
}
function Ex_Folder(fid) {
	var i = 1;
	var j = 1;
	while (i < TreeArray2.length) {
		if ( (TreeArray2[i] == fid) && (Is_ex_Array[i] == 1) ) { j = 0; }
		i ++;
	}
	if (j == 1) {
		Show_Folder(fid);
		if (getObj('tree_img_' + fid).runtimeStyle) {
			var StStr = getObj('tree_img_' + fid).runtimeStyle.filter;
			var imgStr = getObj('tree_img_' + fid).outerHTML;
			imgStr = imgStr.replace('expandall.png','collapseall.png').replace('<?php 
        echo _JLMS_DOCS_EXP_FOLDER;
        ?>
', '<?php 
        echo _JLMS_DOCS_COLL_FOLDER;
        ?>
');
			StStr = StStr.replace('expandall.png','collapseall.png');
			getObj('tree_img_' + fid).outerHTML = imgStr;
			getObj('tree_img_' + fid).runtimeStyle.filter = StStr;
		} else {
			getObj('tree_img_' + fid).src = '<?php 
        echo $JLMS_CONFIG->get('live_site');
        ?>
/components/com_joomla_lms/lms_images/docs/collapseall.png';
			getObj('tree_img_' + fid).alt = '<?php 
        echo _JLMS_DOCS_COLLAPSE;
        ?>
';
			getObj('tree_img_' + fid).title = '<?php 
        echo _JLMS_DOCS_COLL_FOLDER;
        ?>
';
		}
	} else {
		Hide_Folder(fid);
		if (getObj('tree_img_' + fid).runtimeStyle) {
			var StStr = getObj('tree_img_' + fid).runtimeStyle.filter;
			var imgStr = getObj('tree_img_' + fid).outerHTML;
			imgStr = imgStr.replace('collapseall.png','expandall.png').replace('<?php 
        echo _JLMS_DOCS_COLL_FOLDER;
        ?>
', '<?php 
        echo _JLMS_DOCS_EXP_FOLDER;
        ?>
');
			StStr = StStr.replace('collapseall.png','expandall.png');
			getObj('tree_img_' + fid).outerHTML = imgStr;
			getObj('tree_img_' + fid).runtimeStyle.filter = StStr;
		} else {
			getObj('tree_img_' + fid).src = '<?php 
        echo $JLMS_CONFIG->get('live_site');
        ?>
/components/com_joomla_lms/lms_images/docs/expandall.png';
			getObj('tree_img_' + fid).alt = '<?php 
        echo _JLMS_DOCS_EXPAND;
        ?>
';
			getObj('tree_img_' + fid).title = '<?php 
        echo _JLMS_DOCS_EXP_FOLDER;
        ?>
';
		}
	}
	i = 1;
	while (i < TreeArray2.length) {
		if ( (TreeArray2[i] == fid) ) {
			if (Is_ex_Array[i] == 1) { Is_ex_Array[i] = 0;
			} else { Is_ex_Array[i] = 1; }
		}
		i ++;
	}
}
<?php 
        if ($possibilities->manage && count($rows)) {
            ?>
var docs_save_blocked = false;
function Docs_WriteSysMsg(mes) {
	if (jlms_writetxt('joomlalms_sys_message', mes)) {
		getObj('joomlalms_sys_message_container').style.display = '';
		getObj('joomlalms_sys_message_container').style.visibility = 'visible';
	}
}
function Docs_save_view() {
	if (!docs_save_blocked) {
		var prepare_str = '';
		Docs_WriteSysMsg("<img src='<?php 
            echo $JLMS_CONFIG->get('live_site') . '/' . $JLMS_CONFIG->get('ajax_settings_small_indicator');
            ?>
' />");
		i = 1;
		var ps_pref = '';
		while (i < TreeArray2.length) {
			if (Is_ex_Array[i] == 0) {
				prepare_str = ''+ prepare_str + ps_pref + TreeArray2[i];
				ps_pref = '-';
			}
			i ++;
		}
		Docs_MakeRequest(prepare_str);
	}
}
function Docs_analize_req(http_request) {
	if (http_request.readyState == 4) {
		if ((http_request.status == 200)) {
			if(http_request.responseXML.documentElement == null){
				try {
					http_request.responseXML.loadXML(http_request.responseText)
				} catch (e) {
					/*alert("Can't load");*/
				}
			}
			response  = http_request.responseXML.documentElement;
			var mes = response.getElementsByTagName('message')[0].firstChild.data
		} else {
			var mes = "Request failed";
		}
		Docs_WriteSysMsg(mes);
		docs_save_blocked = false;
	}
}

function Docs_MakeRequest(req_str) {
	docs_save_blocked = true;
	var http_request = false;
	if (window.ActiveXObject) { // IE
		try { http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try { http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	} else if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	}
	if (!http_request) {
		return false;
	}
	http_request.onreadystatechange = function() { Docs_analize_req(http_request); };
	var lp_url_prefix2 = '';
	var post_target = '<?php 
            echo $JLMS_CONFIG->get('ajax_settings_request_safe_path');
            ?>
';
	var url = 'task=documents_view_save&id=<?php 
            echo $id;
            ?>
&folders='+req_str;
	http_request.open("POST", post_target, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", url.length);
	//http_request.setRequestHeader("Connection", "close");
	http_request.send(url);
}
<?php 
        }
        ?>
JLMS_preloadImages('<?php 
        echo $JLMS_CONFIG->get('live_site');
        ?>
/components/com_joomla_lms/lms_images/docs/expandall.png','<?php 
        echo $JLMS_CONFIG->get('live_site');
        ?>
/components/com_joomla_lms/lms_images/docs/collapseall.png'<?php 
        echo ", '" . $JLMS_CONFIG->get('live_site') . '/' . $JLMS_CONFIG->get('ajax_settings_small_indicator') . "'";
        ?>
);
//--><!]]>
</script>
<?php 
        JLMS_TMPL::OpenMT();
        $hparams = array();
        $toolbar = array();
        if ($JLMS_ACL->CheckPermissions('docs', 'manage') && count($rows)) {
            // this feature is available only for users who has 'documents' manage permission (for entire tool)
            $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:Docs_save_view();", 'btn_title' => _JLMS_DOCS_SAVE_VIEW_TITLE);
        }
        JLMS_TMPL::ShowHeader('docs', _JLMS_DOCS_COURSE_DOCS, $hparams, $toolbar);
        $max_tree_width = 0;
        if (isset($rows[0])) {
            $max_tree_width = $rows[0]->tree_max_width;
        }
        JLMS_TMPL::OpenTS();
        ?>
			<form action="<?php 
        echo $JLMS_CONFIG->get('live_site') . "/index.php?option=" . $option . "&amp;Itemid=" . $Itemid;
        ?>
" method="post" name="adminForm" enctype="multipart/form-data">
<?php 
        if (!empty($rows)) {
            ?>
				<table width="100%" cellpadding="0" cellspacing="0" border="0" id="jlms_doc_non_scr" class="<?php 
            echo JLMSCSS::_('jlmslist');
            ?>
">
					<tr>
						<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="20" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
" align="center">#</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
					<?php 
            if ($possibilities->manage || $possibilities->publish) {
                ?>
						<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 width="20" class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
"><input type="checkbox" value="0" name="fake_checkbox" style="visibility:hidden" /></<?php 
                echo JLMSCSS::tableheadertag();
                ?>
>
					<?php 
            }
            ?>
					<?php 
            for ($th_i = 0; $th_i < $max_tree_width + 1; $th_i++) {
                ?>
						<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 width="16" class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
">&nbsp;</<?php 
                echo JLMSCSS::tableheadertag();
                ?>
>
						<?php 
            }
            ?>
						<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
" width="45%"><span style="display:block; width:150px; text-align:left;"><?php 
            echo _JLMS_DOCS_TBL_DOCNAME;
            ?>
</span></<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
					<?php 
            if ($possibilities->order) {
                ?>
						<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
" colspan="2" width="1">
						<?php 
                echo JText::_(_JLMS_REORDER);
                ?>
						</<?php 
                echo JLMSCSS::tableheadertag();
                ?>
>
						<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
" width="1">
							<?php 
                echo _JLMS_ORDER;
                ?>
						</<?php 
                echo JLMSCSS::tableheadertag();
                ?>
>
						<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
" width="1">
						<a href="javascript:saveorder(<?php 
                echo count($rows) - 1;
                ?>
, 'doc_saveorder');">
							<img src="<?php 
                echo $lms_img_path;
                ?>
/toolbar/tlb_filesave.png" border="0" width="16" height="16" alt="<?php 
                echo _JLMS_SAVEORDER;
                ?>
" title="<?php 
                echo _JLMS_SAVEORDER;
                ?>
" />
						</a>
						</<?php 
                echo JLMSCSS::tableheadertag();
                ?>
>
					<?php 
            }
            ?>
					<?php 
            if ($possibilities->manage || $possibilities->publish) {
                ?>
						<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
" width="1">&nbsp;</<?php 
                echo JLMSCSS::tableheadertag();
                ?>
>
						<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
"><?php 
                echo _JLMS_DOCS_TBL_STARTING;
                ?>
</<?php 
                echo JLMSCSS::tableheadertag();
                ?>
>
						<<?php 
                echo JLMSCSS::tableheadertag();
                ?>
 class="<?php 
                echo JLMSCSS::_('sectiontableheader');
                ?>
"><?php 
                echo _JLMS_DOCS_TBL_ENDING;
                ?>
</<?php 
                echo JLMSCSS::tableheadertag();
                ?>
>
					<?php 
            }
            ?>
						<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
" width="60%"><span style="display:block; width:110px;"><?php 
            echo _JLMS_DOCS_TBL_DESCR;
            ?>
</span></<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
					</tr>
				<?php 
            $k = 1;
            $tree_modes = array();
            $visible_folder = true;
            //$next_row_is_visible = true;
            $vis_mode = 0;
            $doc_number = 1;
            for ($i = 0, $n = count($rows); $i < $n; $i++) {
                $row = $rows[$i];
                if ($row->p_view) {
                    // if user can view this item
                    $max_tree_width = $row->tree_max_width;
                    $link = '';
                    $link_title = '';
                    if ($row->folder_flag == 2) {
                        $link = sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid . "&amp;task=docs_view_zip&amp;course_id=" . $id . "&amp;id=" . $row->id);
                        $link_title = _JLMS_T_A_VIEW_ZIP_PACK;
                    } elseif ((!$row->folder_flag || $row->folder_flag == 3) && $row->file_id) {
                        $link = sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid . "&amp;task=get_document&amp;course_id=" . $id . "&amp;id=" . $row->id);
                        $link_title = _JLMS_DOCS_LINK_DOWNLOAD;
                    } elseif ((!$row->folder_flag || $row->folder_flag == 3) && !$row->file_id) {
                        $link = sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid . "&amp;task=docs_view_content&amp;course_id=" . $id . "&amp;id=" . $row->id);
                        $link_title = _JLMS_T_A_VIEW_CONTENT;
                    }
                    $time_p = $row->publish_start || $row->publish_end;
                    $alt = $row->published ? $time_p ? _JLMS_STATUS_PUB2 : _JLMS_STATUS_PUB : _JLMS_STATUS_UNPUB;
                    $image = $row->published ? $time_p ? 'btn_publish_wait.png' : 'btn_accept.png' : 'btn_cancel.png';
                    //($time_p?'btn_unpublish_wait.png':'btn_cancel.png');
                    $start_date_txt = '';
                    $end_date_txt = '';
                    $released_info_txt = '';
                    if ($row->is_time_related) {
                        $released_info_txt = _JLMS_WILL_BE_RELEASED_IN;
                        $showperiod = $row->show_period;
                        $ost1 = $showperiod % (24 * 60);
                        $sp_days = ($showperiod - $ost1) / (24 * 60);
                        $ost2 = $showperiod % 60;
                        $sp_hours = ($ost1 - $ost2) / 60;
                        $sp_mins = $ost2;
                        $released_info_time = false;
                        if ($sp_days) {
                            $released_info_txt .= ' ' . $sp_days . ' ' . _JLMS_RELEASED_IN_DAYS;
                            $released_info_time = true;
                        }
                        if ($sp_hours) {
                            $released_info_txt .= ' ' . $sp_hours . ' ' . _JLMS_RELEASED_IN_HOURS;
                            $released_info_time = true;
                        }
                        if ($sp_mins) {
                            $released_info_txt .= ' ' . $sp_mins . ' ' . _JLMS_RELEASED_IN_MINUTES;
                            $released_info_time = true;
                        }
                        if ($released_info_time) {
                            $released_info_txt .= ' ' . _JLMS_RELEASED_AFTER_ENROLLMENT;
                        }
                    }
                    if ($time_p) {
                        $is_expired = false;
                        if ($row->publish_end) {
                            $end_date_txt = _JLMS_COURSES_END_DATE . ': ' . $row->end_date;
                            $e_date = strtotime($row->end_date);
                            if ($e_date < time()) {
                                $is_expired = true;
                            }
                        }
                        if ($row->publish_start) {
                            $start_date_txt = _JLMS_COURSES_ST_DATE . ': ' . $row->start_date;
                        }
                        if ($is_expired) {
                            $alt = _JLMS_STATUS_EXPIRED;
                            $image = 'btn_expired.png';
                        } elseif ($row->publish_start && !$is_expired) {
                            $s_date = strtotime($row->start_date);
                            if ($s_date > time()) {
                                $alt = _JLMS_STATUS_UPCOMING;
                                $image = 'btn_expired.png';
                            }
                        }
                    }
                    $state = $row->published ? 0 : 1;
                    $checked = mosHTML::idBox($i, $row->id);
                    $manage_item = false;
                    $publish_item = false;
                    if ($row->p_manage) {
                        //JLMS_ACL->CheckPermissions('docs', 'manage')) {
                        $manage_item = true;
                    }
                    if ($row->p_publish) {
                        //$JLMS_ACL->CheckPermissions('docs', 'publish')) {
                        $publish_item = true;
                    }
                    if ($JLMS_ACL->CheckPermissions('docs', 'only_own_items') && $row->owner_id != $user->get('id')) {
                        $manage_item = false;
                        $publish_item = false;
                    } elseif ($JLMS_ACL->CheckPermissions('docs', 'only_own_role') && $JLMS_ACL->GetRole() != $JLMS_ACL->UserSystemRole($db, $row->owner_id)) {
                        $manage_item = false;
                        $publish_item = false;
                    }
                    if (!$publish_item && !$manage_item) {
                        $checked = '&nbsp;';
                    }
                    // Collapsed/Expanded view
                    $tree_row_style = '';
                    $visible_folder = true;
                    //$next_row_is_visible;
                    //$next_row_is_visible = true;
                    if ($vis_mode) {
                        if ($row->tree_mode_num < $vis_mode) {
                            $vis_mode = 0;
                        }
                    }
                    if (in_array($row->id, $rows_c)) {
                        //$next_row_is_visible = false;
                        if ($vis_mode) {
                            if ($row->tree_mode_num < $vis_mode) {
                                $vis_mode = $row->tree_mode_num;
                            } else {
                                $visible_folder = false;
                            }
                        } else {
                            $vis_mode = $row->tree_mode_num + 1;
                        }
                    } elseif ($vis_mode) {
                        if ($row->tree_mode_num >= $vis_mode) {
                            $visible_folder = false;
                        } else {
                            $vis_mode = 0;
                        }
                    }
                    if (!$visible_folder) {
                        $tree_row_style = ' style="visibility:hidden;display:none"';
                    }
                    ?>
					<tr id="tree_row_<?php 
                    echo $row->id;
                    ?>
" class="<?php 
                    echo JLMSCSS::_('sectiontableentry' . $k);
                    ?>
"<?php 
                    echo $tree_row_style;
                    ?>
>
						<td align="center" valign="middle"><?php 
                    echo $doc_number;
                    ?>
</td>
					<?php 
                    if ($possibilities->manage || $possibilities->publish) {
                        ?>
						<td valign="middle"><?php 
                        echo $row->p_manage || $row->p_publish ? $checked : '<input type="checkbox" value="0" name="fake_checkbox' . $row->id . '" style="visibility:hidden" />';
                        ?>
</td>
					<?php 
                    }
                    ?>
						<?php 
                    $add_img = '';
                    if ($row->tree_mode_num) {
                        $g = 0;
                        $tree_modes[$row->tree_mode_num - 1] = $row->tree_mode;
                        while ($g < $row->tree_mode_num - 1) {
                            $pref = '';
                            if (isset($tree_modes[$g]) && $tree_modes[$g] == 2) {
                                $pref = 'empty_';
                            }
                            $add_img .= "<td width='16' valign='middle'><img src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/treeview/" . $pref . "line.png\" width='16' height='16' alt='" . $pref . "line' /></td>";
                            $g++;
                        }
                        $add_img .= "<td width='16' valign='middle'><img src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/treeview/sub" . $row->tree_mode . ".png\" width='16' height='16' alt='sub" . $row->tree_mode . "' /></td>";
                        $max_tree_width = $max_tree_width - $g - 1;
                    }
                    echo $add_img;
                    ?>
						<td align="center" valign="middle" width='16'>
						<?php 
                    if ($row->folder_flag == 1) {
                        $collapse_img = 'collapseall.png';
                        $collapse_alt = _JLMS_DOCS_COLL_FOLDER;
                        if (in_array($row->id, $rows_c)) {
                            $collapse_img = 'expandall.png';
                            $collapse_alt = _JLMS_DOCS_EXP_FOLDER;
                        }
                        echo "<a class='jlms_img_link' id='tree_div_" . $row->id . "' style='alignment:center; width:16px; font-weight:bold; cursor:pointer; vertical-align:middle;' onclick='Ex_Folder(" . $row->id . "," . $row->id . ",true)' href='javascript:void(0);'><img class='JLMS_png' id='tree_img_" . $row->id . "' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/docs/{$collapse_img}\" width='13' height='13' border='0' alt='" . $collapse_alt . "' title='" . $collapse_alt . "' /></a>";
                    } else {
                        echo "<span style='alignment:center; width:16px; font-weight:bold; vertical-align:middle;'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/files/" . $row->file_icon . ".png\" width='16' height='16' alt='{$row->file_icon}' /></span>";
                    }
                    ?>
						</td>
						<td align="left" valign="middle" <?php 
                    if ($max_tree_width > 0) {
                        echo "colspan='" . ($max_tree_width + 1) . "'";
                    }
                    ?>
 width="<?php 
                    echo $row->tree_mode_num == $row->tree_max_width ? '85' : '45';
                    ?>
%">
						<span style='font-weight:bold; vertical-align:middle;'>
						<?php 
                    if ($row->folder_flag == 1) {
                        echo '&nbsp;<strong>' . $row->doc_name . '</strong>';
                    } else {
                        if (!isset($row->is_link)) {
                            ?>
							<a href="<?php 
                            echo $link;
                            ?>
" title="<?php 
                            echo str_replace('"', '&quot;', $row->doc_name);
                            ?>
">
								&nbsp;<?php 
                            echo $row->doc_name;
                            ?>
							</a>
						<?php 
                        } else {
                            echo $row->doc_name;
                        }
                    }
                    ?>
						</span>
						<?php 
                    if ($JLMS_CONFIG->get('show_docs_authors', 0) && $row->author_name) {
                        ?>
						<br />
						<span class="small"><?php 
                        echo _JLMS_HOME_AUTHOR . "&nbsp;" . $row->author_name;
                        ?>
</span>
						<?php 
                    }
                    ?>
						</td>
					<?php 
                    if ($possibilities->order) {
                        ?>
						<td valign="middle" style="vertical-align:middle "><?php 
                        if ($row->allow_up == 1 && $row->p_order) {
                            echo JLMS_orderUpIcon(1, $row->id, true, 'doc_orderup');
                        } else {
                            echo '&nbsp;';
                        }
                        ?>
</td>
						<td valign="middle" style="vertical-align:middle "><?php 
                        if ($row->allow_down == 1 && $row->p_order) {
                            echo JLMS_orderDownIcon(1, 3, $row->id, true, 'doc_orderdown');
                        } else {
                            echo '&nbsp;';
                        }
                        ?>
</td>
						<td valign="middle" align="center" style="vertical-align:middle; text-align: center; " colspan="2">
							<input type="text" name="order[]" size="5" value="<?php 
                        echo $row->ordering;
                        ?>
" class="inputbox" style="text-align: center;" />
						</td>
					<?php 
                    }
                    ?>
					<?php 
                    if ($possibilities->manage || $possibilities->publish) {
                        ?>
						<td valign="middle">
						<?php 
                        if ($publish_item) {
                            $title = $alt;
                            $content = '';
                            if ($start_date_txt) {
                                $content .= $start_date_txt . '<br />';
                            }
                            if ($end_date_txt) {
                                $content .= $end_date_txt . '<br />';
                            }
                            if ($released_info_txt) {
                                $content .= $released_info_txt . '<br />';
                            }
                            if ($row->is_time_related) {
                                if ($image == 'btn_accept.png') {
                                    $image = 'btn_publish_wait.png';
                                }
                            }
                            $name = '<img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/' . $image . '" width="16" height="16" border="0" alt="' . $alt . '" />';
                            $link = 'javascript:submitbutton_change2(\'change_doc\',' . $state . ',' . $row->id . ')';
                            echo JLMS_toolTip($title, $content, $name, $link);
                        } else {
                            echo '<img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/' . $image . '" width="16" height="16" border="0" alt="' . $alt . '" />';
                        }
                        ?>
						</td>
						<td align="center" nowrap='nowrap' valign="middle"><?php 
                        echo $row->publish_start ? JLMS_dateToDisplay($row->start_date) : '-';
                        ?>
</td>
						<td align="center" nowrap='nowrap' valign="middle"><?php 
                        echo $row->publish_end ? JLMS_dateToDisplay($row->end_date) : '-';
                        ?>
</td>
					<?php 
                    }
                    ?>
						<td><?php 
                    $doc_descr = strip_tags($row->doc_description);
                    $doc_descr = trim($doc_descr);
                    if (!$row->folder_flag && !$row->file_id) {
                        if (strlen($doc_descr) > 75) {
                            $doc_descr = substr($doc_descr, 0, 75) . "...";
                        }
                    }
                    echo $doc_descr ? $doc_descr : '&nbsp;';
                    ?>
						</td>
					</tr>
					<?php 
                    $k = 3 - $k;
                    $doc_number++;
                }
                // end "if ($row->p_view)"
            }
            ?>
				</table>
<?php 
        } else {
            echo '<div class="joomlalms_user_message">' . _JLMS_NO_ITEMS_HERE . '</div>';
        }
        ?>
				<input type="hidden" name="option" value="<?php 
        echo $option;
        ?>
" />
				<input type="hidden" name="Itemid" value="<?php 
        echo $Itemid;
        ?>
" />
				<input type="hidden" name="task" value="" />
				<input type="hidden" name="boxchecked" value="0" />
				<input type="hidden" name="id" value="<?php 
        echo $id;
        ?>
" />
				<input type="hidden" name="row_id" value="0" />
				<input type="hidden" name="state" value="0" />
				<input type="hidden" name="cid2" value="0" />
			</form>
			<noscript>
			<style type="text/css">
			 #jlms_doc_non_scr tr.sectiontableentry1, #jlms_doc_non_scr tr.sectiontableentry2 {
			 display: table-row !important;
			 visibility:visible !important;
			 }
			</style>
			<!--[if IE]>
			<style type="text/css">
			 #jlms_doc_non_scr tr.sectiontableentry1, #jlms_doc_non_scr tr.sectiontableentry2 {
				 display: block !important;
				 visibility:visible !important;
			 }
			</style>
			<![endif]-->
			</noscript>
<?php 
        JLMS_TMPL::CloseTS();
        $controls = array();
        if ($possibilities->publish) {
            $controls[] = array('href' => "javascript:submitbutton_change('change_doc',1);", 'title' => _JLMS_SET_PUB, 'img' => 'publish');
            $controls[] = array('href' => "javascript:submitbutton_change('change_doc',0);", 'title' => _JLMS_SET_UNPUB, 'img' => 'unpublish');
            if ($possibilities->manage) {
                $controls[] = array('href' => 'spacer');
            }
        }
        if ($possibilities->create) {
            $link_foldernew = ampReplace(sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=new_folder&amp;id={$id}"));
            $link_filenew = ampReplace(sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=new_document&amp;id={$id}"));
            $controls[] = array('href' => $link_foldernew, 'title' => _JLMS_DOCS_LNK_NEW_FOLDER, 'img' => 'foldernew');
            $controls[] = array('href' => $link_filenew, 'title' => _JLMS_DOCS_LNK_NEW_DOC, 'img' => 'filenew');
        }
        if ($possibilities->manage) {
            $controls[] = array('href' => "javascript:submitbutton('doc_delete');", 'title' => _JLMS_DELETE, 'img' => 'delete');
            $controls[] = array('href' => "javascript:submitbutton('edit_doc');", 'title' => _JLMS_EDIT, 'img' => 'edit');
        }
        if ($JLMS_ACL->CheckPermissions('docs', 'manage')) {
            $controls[] = array('href' => "javascript:submitbutton('add_doclink');", 'title' => _JLMS_DOCS_ADD_FROM_LIBRARY, 'img' => 'add_library');
        }
        if (count($controls)) {
            JLMS_TMPL::ShowControlsFooter($controls);
        }
        JLMS_TMPL::CloseMT();
    }
function JLMS_sreportScorm($option, $is_full = 0)
{
    global $JLMS_DB, $JLMS_CONFIG, $JLMS_SESSION, $task, $option, $my, $Itemid;
    $JLMS_ACL =& JLMSFactory::getACL();
    $view = mosGetParam($_REQUEST, 'view', '');
    if ($view == 'csv' || $view == 'xls') {
        $is_full = 1;
    }
    $limit = intval(mosGetParam($_GET, 'limit', $JLMS_SESSION->get('list_limit', $JLMS_CONFIG->get('list_limit'))));
    $JLMS_SESSION->set('list_limit', $limit);
    $limitstart = intval(mosGetParam($_GET, 'limitstart', 0));
    $filt_group = intval(mosGetParam($_REQUEST, 'filt_group', $JLMS_SESSION->get('filt_group', 0)));
    $filt_cat = intval(mosGetParam($_REQUEST, 'filt_cat', 0));
    $filt_course_id = intval(mosGetParam($_REQUEST, 'filt_course_id', 0));
    $start_date = mosGetParam($_REQUEST, 'start_date', "");
    $end_date = mosGetParam($_REQUEST, 'end_date', "");
    $s_date_db = '';
    $start_date = $start_date == "-" ? "" : $start_date;
    if ($start_date) {
        $start_date = JLMS_dateToDB($start_date);
        $s_date = explode('-', $start_date);
        $s_date_db = date("Y-m-d", mktime(0, 0, 0, $s_date[1], $s_date[2], $s_date[0]));
    }
    $e_date_db = '';
    $end_date = $end_date == "-" ? "" : $end_date;
    if ($end_date) {
        $end_date = JLMS_dateToDB($end_date);
        $e_date = explode('-', $end_date);
        $e_date_db = date("Y-m-d", mktime(23, 59, 0, $e_date[1], $e_date[2], $e_date[0]));
    }
    $lists = array();
    //FLMS multicat
    $levels = array();
    if ($JLMS_CONFIG->get('multicat_use', 0)) {
        $query = "SELECT * FROM #__lms_course_cats_config ORDER BY id";
        $JLMS_DB->setQuery($query);
        $levels = $JLMS_DB->loadObjectList();
        if (count($levels) == 0) {
            for ($i = 0; $i < 5; $i++) {
                if ($i > 0) {
                    $levels[$i]->cat_name = _JLMS_COURSES_COURSES_GROUPS;
                } else {
                    $levels[$i]->cat_name = _JLMS_COURSES_COURSES_GROUPS;
                }
            }
        }
        $level_id = array();
        for ($i = 0; $i < count($levels); $i++) {
            if ($i == 0) {
                $level_id[$i] = intval(mosGetParam($_REQUEST, 'filter_id_' . $i . '', $JLMS_SESSION->get('FLMS_filter_id_' . $i . '', 0)));
                $_REQUEST['filter_id_' . $i] = $level_id[$i];
                $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]);
            } else {
                $level_id[$i] = intval(mosGetParam($_REQUEST, 'filter_id_' . $i . '', $JLMS_SESSION->get('FLMS_filter_id_' . $i . '', 0)));
                $_REQUEST['filter_id_' . $i] = $level_id[$i];
                $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]);
            }
            if ($i == 0) {
                $parent_id[$i] = 0;
            } else {
                $parent_id[$i] = $level_id[$i - 1];
            }
            if ($i == 0 || $parent_id[$i]) {
                //(Max): extra requests
                $query = "SELECT count(id) FROM `#__lms_course_cats` WHERE parent = '" . $parent_id[$i] . "' ORDER BY c_category";
                $JLMS_DB->setQuery($query);
                $groups = $JLMS_DB->loadResult();
                if ($groups == 0) {
                    $level_id[$i] = 0;
                    $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]);
                }
            }
        }
        for ($i = 0; $i < count($levels); $i++) {
            if ($i > 0 && $level_id[$i - 1] == 0) {
                $level_id[$i] = 0;
                $_REQUEST['filter_id_' . $i] = $level_id[$i];
                $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]);
                $parent_id[$i] = 0;
            } elseif ($i == 0 && $level_id[$i] == 0) {
                $level_id[$i] = 0;
                $_REQUEST['filter_id_' . $i] = $level_id[$i];
                $JLMS_SESSION->set('FLMS_filter_id_' . $i . '', $level_id[$i]);
                $parent_id[$i] = 0;
            }
        }
        $javascript = 'onclick="javascript:read_filter();" onchange="javascript:write_filter();submitFormView(\'\');"';
        if (class_exists('JFactory')) {
            $user = JLMSFactory::getUser();
            $my->id = $user->id;
        }
        $lists['user_id'] = $my->id;
        $query1 = "SELECT group_id FROM `#__lms_users_in_global_groups` WHERE user_id = '" . $my->id . "'";
        $JLMS_DB->setQuery($query1);
        $user_group_ids = $JLMS_DB->loadResultArray();
        $categories_reporting = array();
        $name_categories_reporting = array();
        for ($i = 0; $i < count($levels); $i++) {
            if ($i == 0 || $parent_id[$i]) {
                //(Max): extra requests
                if ($parent_id[$i] == 0 && !$JLMS_ACL->CheckPermissions('lms', 'create_course')) {
                    $query = "SELECT * FROM `#__lms_course_cats` WHERE `parent` = '0'";
                    $query .= "\n AND (";
                    if (count($user_group_ids)) {
                        $query .= "( `restricted` = 1 AND ( `groups` LIKE '%|{$user_group_ids['0']}|%'";
                        for ($i1 = 1; $i1 < count($user_group_ids); $i1++) {
                            $query .= "\n OR `groups` like '%|{$user_group_ids[$i1]}|%'";
                        }
                        $query .= "\n ) ) \n OR ";
                    }
                    $query .= "(`restricted` = 0 )) ";
                    $query .= "\n ORDER BY `c_category`";
                } else {
                    $query = "SELECT * FROM `#__lms_course_cats` WHERE parent = '" . $parent_id[$i] . "' ORDER BY c_category";
                }
                $JLMS_DB->setQuery($query);
                $groups = $JLMS_DB->loadObjectList();
                if ($parent_id[$i] && $i > 0 && count($groups)) {
                    $type_level[$i][] = mosHTML::makeOption(0, ' &nbsp; ');
                    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, ' &nbsp; ');
                    foreach ($groups as $group) {
                        $type_level[$i][] = mosHTML::makeOption($group->id, $group->c_category);
                        if ($group->id == $level_id[$i]) {
                            $name_categories_reporting[] = $levels[$i]->cat_name;
                            $categories_reporting[] = $group->c_category;
                        }
                    }
                    $lists['filter_' . $i . ''] = mosHTML::selectList($type_level[$i], 'filter_id_' . $i . '', 'class="inputbox" size="1" style="width: 100%;" ' . $javascript, 'value', 'text', $level_id[$i]);
                    //onchange="document.location.href=\''. $link_multi .'\';"
                }
            }
        }
        $reporting_header['name_categories'] = $name_categories_reporting;
        $reporting_header['categories'] = $categories_reporting;
    }
    //FLMS multicat
    global $JLMS_DB, $my;
    if (class_exists('Jfactory')) {
        $user = JLMSFactory::getUser();
        $my->id = $user->id;
    }
    $is_ceo = $JLMS_ACL->isStaff();
    $courses = array();
    if ($JLMS_ACL->isTeacher()) {
        $courses = $JLMS_CONFIG->get('teacher_in_courses', array());
    } else {
        if ($is_ceo) {
            $query = "SELECT user_id FROM #__lms_user_parents WHERE parent_id = '" . $my->id . "'";
            $JLMS_DB->setQuery($query);
            $users = $JLMS_DB->loadResultArray();
            if (count($users)) {
                $query = "SELECT course_id FROM #__lms_users_in_groups WHERE user_id IN (" . implode(",", $users) . ")";
                $JLMS_DB->setQuery($query);
                $courses = $JLMS_DB->loadResultArray();
            }
        }
    }
    if (count($courses)) {
        $where = "";
        if ($JLMS_CONFIG->get('multicat_use', 0)) {
            //NEW MUSLTICATS
            //			$tmp_level = array();
            $last_catid = 0;
            $tmp_cats_filter = JLMS_getFilterMulticategories($last_catid);
            /*
            $i=0;
            foreach($_REQUEST as $key=>$item){
            	if(preg_match('#filter_id_(\d+)#', $key, $result)){
            		if($item){
            			$tmp_level[$i] = $result;
            			$last_catid = $item;
            			$i++;
            		}	
            	}	
            }
            $filt_cat = $last_catid;
            $query = "SELECT * FROM #__lms_course_cats ORDER BY id";
            $JLMS_DB->setQuery($query);
            $all_cats = $JLMS_DB->loadObjectList();
            
            $tmp_cats_filter = array();
            $children = array();
            foreach($all_cats as $cat){
            	$pt = $cat->parent;
            	$list = @$children[$pt] ? $children[$pt] : array();
            	array_push($list, $cat->id);
            	$children[$pt] = $list;
            }
            $tmp_cats_filter[0] = $last_catid;
            $i=1;
            foreach($children as $key=>$childs){
            	if($last_catid == $key){
            		foreach($children[$key] as $v){
            			if(!in_array($v, $tmp_cats_filter)){
            				$tmp_cats_filter[$i] = $v;
            				$i++;
            			}
            		}
            	}
            }
            foreach($children as $key=>$childs){
            	if(in_array($key, $tmp_cats_filter)){
            		foreach($children[$key] as $v){
            			if(!in_array($v, $tmp_cats_filter)){
            				$tmp_cats_filter[$i] = $v;
            				$i++;
            			}
            		}
            	}
            }
            $tmp_cats_filter = array_unique($tmp_cats_filter);
            */
            $catids = implode(",", $tmp_cats_filter);
            if ($last_catid && count($tmp_cats_filter)) {
                $where .= "\n AND ( cat_id IN (" . $catids . ")";
                if ($JLMS_CONFIG->get('sec_cat_use', 0)) {
                    foreach ($tmp_cats_filter as $tmp_cats_filter_one) {
                        $where .= "\n OR sec_cat LIKE '%|" . $tmp_cats_filter_one . "|%'";
                    }
                }
                $where .= "\n )";
            }
            //NEW MUSLTICATS
        }
        $courses_str = implode(",", $courses);
        $query = "SELECT id FROM #__lms_courses WHERE id IN(" . $courses_str . ")" . $where . "\n ORDER BY id";
        $JLMS_DB->setQuery($query);
        $courses = $JLMS_DB->loadResultArray();
        $javascript2 = 'onchange="javascript:submitFormView();"';
        $query = "SELECT id as value, course_name as text FROM #__lms_courses WHERE id IN (" . $courses_str . ")" . $where . "\n ORDER BY " . ($JLMS_CONFIG->get('lms_courses_sortby') ? "ordering" : "course_name");
        $JLMS_DB->setQuery($query);
        $list_courses = $JLMS_DB->loadObjectList();
        $f_courses = array();
        $f_courses[] = mosHTML::makeOption(0, '&nbsp;');
        $f_courses = array_merge($f_courses, $list_courses);
        $lists['filt_course'] = mosHTML::selectList($f_courses, 'filt_course_id', 'class="inputbox" size="1" style="width: 100%;" ' . $javascript2, 'value', 'text', $filt_course_id);
        $g_items = array();
        $g_items[] = mosHTML::makeOption(0, _JLMS_ATT_FILTER_ALL_GROUPS);
        if ($JLMS_CONFIG->get('use_global_groups', 1)) {
            if ($is_ceo) {
                $cid = $users;
            } else {
                if (!count($courses)) {
                    $courses = array(0);
                }
                $query = "SELECT user_id FROM #__lms_users_in_groups WHERE course_id IN (" . implode(',', $courses) . ")";
                $JLMS_DB->setQuery($query);
                $cid = $JLMS_DB->loadResultArray();
            }
            if (!$cid) {
                $cid = array(-1);
            }
            $query = "SELECT group_id FROM #__lms_users_in_global_groups WHERE user_id IN (" . implode(',', $cid) . ")";
            $JLMS_DB->setQuery($query);
            $gid = $JLMS_DB->loadResultArray();
            if (!$gid) {
                $gid = array(-1);
            }
            $query = "SELECT distinct id AS value, ug_name AS text FROM #__lms_usergroups WHERE id IN (" . implode(',', $gid) . ") AND course_id = 0 ORDER BY text";
            //course id check just in case))
            $JLMS_DB->setQuery($query);
            $groups = $JLMS_DB->loadObjectList();
        } else {
            if (!count($courses)) {
                $courses = array(0);
            }
            $query = "SELECT distinct a.id as value, a.ug_name as text FROM #__lms_usergroups as a, #__lms_users_in_groups as b" . "\n WHERE a.course_id IN (" . implode(',', $courses) . ") AND b.group_id = a.id ORDER BY a.ug_name";
            $JLMS_DB->SetQuery($query);
            $groups = $JLMS_DB->LoadObjectList();
        }
        $g_items = array_merge($g_items, $groups);
        $lists['filt_group'] = mosHTML::selectList($g_items, 'filt_group', 'class="inputbox" size="1" style="width: 100%;" ' . $javascript2, 'value', 'text', $filt_group);
        if ($filt_group) {
            if ($JLMS_CONFIG->get('use_global_groups', 1)) {
                $query = "SELECT user_id" . "\n FROM #__lms_users_in_global_groups ugg" . "\n WHERE 1" . "\n AND group_id = '" . $filt_group . "'";
                $JLMS_DB->setQuery($query);
                $filt_grp_users = $JLMS_DB->loadResultArray();
            } else {
                $query = "SELECT user_id" . "\n FROM #__lms_user_in_groups" . "\n WHERE 1" . "\n AND group_id = '" . $filt_group . "'";
                $JLMS_DB->setQuery($query);
                $filt_grp_users = $JLMS_DB->loadResultArray();
            }
        }
        $query = "SELECT COUNT(*)" . "\n FROM #__lms_courses as c, #__lms_users_in_groups as ug" . "\n LEFT JOIN #__lms_certificate_users as cu ON cu.course_id = ug.course_id AND cu.user_id = ug.user_id" . "\n, #__lms_learn_paths as lp, #__users as u" . "\n WHERE 1" . "\n AND c.id = ug.course_id" . "\n AND c.id = lp.course_id" . "\n AND lp.item_id <> 0" . "\n AND lp.lp_type = 1" . "\n AND lp.published = 1" . "\n AND ug.user_id = u.id" . "\n AND c.id IN (" . implode(",", $courses) . ")" . ($filt_course_id ? "\n AND c.id = '" . $filt_course_id . "'" : "") . ($filt_group ? "\n AND ug.user_id IN (" . implode(",", $filt_grp_users) . ")" : "") . ($is_ceo ? "\n AND ug.user_id IN (" . implode(",", $users) . ")" : "");
        $JLMS_DB->setQuery($query);
        $total = $JLMS_DB->loadResult();
        require_once _JOOMLMS_FRONT_HOME . DS . "includes" . DS . "classes" . DS . "lms.pagination.php";
        $pageNav = new JLMSPageNav($total, $limitstart, $limit);
        $query = "SELECT" . "\n c.id as course_id, c.course_name" . "\n, lp.id, lp.lpath_name, lp.item_id" . "\n, u.id as user_id, u.username, u.name, u.email" . "\n, cu.crt_option, cu.crt_date" . "\n FROM #__lms_courses as c, #__lms_users_in_groups as ug" . "\n LEFT JOIN #__lms_certificate_users as cu ON cu.course_id = ug.course_id AND cu.user_id = ug.user_id" . "\n, #__lms_learn_paths as lp, #__users as u" . "\n WHERE 1" . "\n AND c.id = ug.course_id" . "\n AND c.id = lp.course_id" . "\n AND lp.item_id <> 0" . "\n AND lp.lp_type = 1" . "\n AND lp.published = 1" . "\n AND ug.user_id = u.id" . "\n AND c.id IN (" . implode(",", $courses) . ")" . ($filt_course_id ? "\n AND c.id = '" . $filt_course_id . "'" : "") . ($filt_group ? "\n AND ug.user_id IN (" . implode(",", $filt_grp_users) . ")" : "") . ($is_ceo ? "\n AND ug.user_id IN (" . implode(",", $users) . ")" : "") . "\n ORDER BY " . ($JLMS_CONFIG->get('lms_courses_sortby') ? "c.ordering" : "c.course_name") . "\n, u.username, lp.lpath_name";
        if (strlen($s_date_db) || strlen($e_date_db)) {
            $JLMS_DB->setQuery($query);
        } else {
            if ($is_full) {
                $JLMS_DB->setQuery($query);
            } else {
                $JLMS_DB->setQuery($query, $limitstart, $limit);
            }
        }
        $scorm_list = $JLMS_DB->loadObjectList();
        $user_scorms = array();
        foreach ($scorm_list as $scorm) {
            $user_scorms[$scorm->user_id][] = $scorm->item_id;
        }
        require_once _JOOMLMS_FRONT_HOME . "/includes/lms_scorm.lib.php";
        $result = array();
        foreach ($user_scorms as $user_id => $scorms) {
            $uids = array();
            $uids[] = $user_id;
            $scn_ids = array();
            $scn_ids = $scorms;
            $result[$user_id]->scorm_data =& JLMS_Get_N_SCORM_userResults($uids, $scn_ids, 0);
        }
        $new_scorm_list = array();
        foreach ($scorm_list as $n => $scorm) {
            $new_scorm_list[$n] = $scorm;
            $new_scorm_list[$n]->course_status = 0;
            if (isset($scorm->crt_option) && $scorm->crt_option) {
                $new_scorm_list[$n]->course_status = 1;
            }
            if (isset($result[$scorm->user_id]->scorm_data)) {
                $tmp = $result[$scorm->user_id]->scorm_data;
                foreach ($tmp as $t) {
                    if ($t->content_id == $scorm->item_id) {
                        $scorm_data = new stdClass();
                        $scorm_data = $t;
                        $scorm_data->start = $t->at_start;
                        $scorm_data->end = $t->scn_timemodified;
                        $new_scorm_list[$n]->scorm_data = $scorm_data;
                    }
                }
            }
        }
        if (strlen($s_date_db) || strlen($e_date_db)) {
            $start = strtotime($s_date_db);
            $end = strtotime($e_date_db);
            $tmp = array();
            foreach ($new_scorm_list as $scorm) {
                $add = false;
                if ($start) {
                    $add = false;
                    if (isset($scorm->scorm_data->end) && $scorm->scorm_data->end && $start <= $scorm->scorm_data->end) {
                        $add = true;
                    }
                }
                if ($end) {
                    $add = false;
                    if (isset($scorm->scorm_data->end) && $scorm->scorm_data->end && $end >= $scorm->scorm_data->end) {
                        $add = true;
                    }
                }
                if ($add) {
                    $tmp[] = $scorm;
                }
            }
            if (count($tmp)) {
                $new_scorm_list = array();
                $new_scorm_list = $tmp;
            }
            $total = count($new_scorm_list);
            $pageNav = new JLMSPageNav($total, $limitstart, $limit);
            if (!$is_full) {
                $tmp = array();
                for ($i = $limitstart - 1; $i < $limitstart + $limit; $i++) {
                    if (isset($new_scorm_list[$i])) {
                        $tmp[] = $new_scorm_list[$i];
                    }
                }
                if (count($tmp)) {
                    $new_scorm_list = array();
                    $new_scorm_list = $tmp;
                }
            }
        }
        if (count($new_scorm_list)) {
            $rowz = $new_scorm_list;
        }
        if ($view == 'csv') {
            JLMS_REP_exportCsv(array(), array(), array(), $rowz, $pageNav, $lists, $levels, $filt_cat, $filt_group, $option, 1);
        } else {
            JLMS_reports_html::JLMS_sreportScorm($option, $rowz, $start_date, $end_date, $pageNav, $lists, $levels, $filt_cat, $filt_group, $is_full);
        }
    }
}
    function showUserGradebook($id, $option, &$rows, &$lists)
    {
        global $Itemid, $JLMS_CONFIG;
        $juser = JLMSFactory::getUser();
        $JLMS_ACL =& JLMSFactory::getACL();
        if ($JLMS_ACL->CheckPermissions('gradebook', 'manage')) {
            ?>
<script language="javascript" type="text/javascript">
<!--
function submitbutton(pressbutton) {
	var form = document.adminForm;
	form.task.value = pressbutton;
	form.submit();
}
function submitbutton_crtf(pressbutton, state, cid_id) {
	var form = document.adminForm;
	if (pressbutton == 'gb_crtA'){
		form.task.value = pressbutton;
		form.state.value = state;
		form.cid2.value = cid_id;
		form.submit();
	}
}
//-->
</script>
	<?php 
        }
        ?>

	<?php 
        echo '<table class="contentpane" id="joomlalms_usergradebook" style="width:100%" cellpadding="0" cellspacing="0" border="0">' . "\r\n";
        $hparams = array();
        $toolbar = array();
        if ($JLMS_ACL->CheckPermissions('gradebook', 'manage')) {
            if (count($lists['gb_rows'])) {
                $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton('save_grades');");
            }
            $toolbar[] = array('btn_type' => 'pdf', 'btn_js' => JLMSRoute::_("index.php?option={$option}&Itemid={$Itemid}&task=gb_user_pdf&course_id={$id}&id=" . $lists['user_id']));
            $toolbar[] = array('btn_type' => 'back', 'btn_js' => sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=gradebook&id={$id}"));
        } else {
            $toolbar[] = array('btn_type' => 'pdf', 'btn_js' => JLMSRoute::_("index.php?option={$option}&Itemid={$Itemid}&task=gb_user_pdf&course_id={$id}&id=" . $lists['user_id']));
        }
        JLMS_TMPL::ShowHeader('gradebook', _JLMS_GB_TITLE, $hparams, $toolbar);
        $userinfo = array();
        $userinfo['text'] = JLMS_outputUserInfo($rows[0]->username, $rows[0]->name, $rows[0]->email, $rows[0]->ug_name, '20%');
        $crtf_txt = array();
        $crtf_txt['text'] = '';
        $crtf_txt['attrib'] = ' nowrap="nowrap"';
        if ($JLMS_ACL->CheckPermissions('gradebook', 'manage')) {
            $crtf_txt['text'] = '<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders"><tr><td width="30%" nowrap="nowrap">' . _JLMS_COURSE_COMPLETED_ADMIN . '</td>';
            $crtf_txt['text'] .= '<td>&nbsp;&nbsp;';
            $image = $rows[0]->user_certificate ? 'btn_accept.png' : 'btn_cancel.png';
            $alt = $rows[0]->user_certificate ? _JLMS_GB_USER_HAVE_CRT : _JLMS_GB_USER_HAVE_NO_CRT;
            $state = $rows[0]->user_certificate ? 0 : 1;
            $crtf_txt['text'] .= '<a class="jlms_img_link" href="javascript:submitbutton_crtf(\'gb_crtA\',' . $state . ',' . $rows[0]->user_id . ')" title="' . $alt . '"><img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/' . $image . '" width="16" height="16" border="0" alt="' . $alt . '" /></a>';
            $crtf_txt['text'] .= '</td></tr></table>';
        } elseif ($JLMS_ACL->CheckPermissions('gradebook', 'view') && $rows[0]->user_certificate) {
            $crtf_txt['text'] = '<table width="100%" cellpadding="0" cellspacing="0" border="0" id="usergradebook_header_crtf_info" class="jlms_table_no_borders"><tr><td width="30%">' . ($juser->get('id') == $rows[0]->user_id ? _JLMS_COURSE_COMPLETED_USER : _JLMS_COURSE_COMPLETED_ADMIN) . '</td>';
            $crtf_txt['text'] .= '<td>&nbsp;&nbsp;';
            $image = $rows[0]->user_certificate ? 'btn_accept.png' : 'btn_cancel.png';
            $alt = $rows[0]->user_certificate ? _JLMS_GB_USER_HAVE_CRT : _JLMS_GB_USER_HAVE_NO_CRT;
            $state = $rows[0]->user_certificate ? 0 : 1;
            $crtf_txt['text'] .= JLMS_gradebook_html::publishIcon($rows[0]->user_id, $id, $state, 'gb_crtA', $alt, $image, $option, '');
            $crtf_txt['text'] .= '</td></tr></table>';
        }
        $params_cs = array();
        if ($JLMS_ACL->CheckPermissions('gradebook', 'manage') && !empty($lists['enrollment_answers'])) {
            JLMS_TMPL::OpenTS('', ' id="usergradebook_header"');
            echo '<table width="100%" class="jlms_table_no_borders">';
            echo '<tr><td width="50%" valign="top"><table width="100%" cellpadding="0" cellspacing="0" border="0" id="usergradebook_header_user_info" class="' . JLMSCSS::_('jlmslist') . '" style="margin:0px;padding:0px;">';
            echo '<tr><' . JLMSCSS::tableheadertag() . ' class="' . JLMSCSS::_('sectiontableheader') . '" colspan="2">' . _JLMS_GB_USER_INFORMATION . '</' . JLMSCSS::tableheadertag() . '></tr>';
            echo '<tr class="' . JLMSCSS::_('sectiontableentry1') . '"><td align="left">' . _JLMS_UI_USERNAME . '</td><td align="left">' . $rows[0]->username . '</td></tr>';
            echo '<tr class="' . JLMSCSS::_('sectiontableentry2') . '"><td align="left">' . _JLMS_UI_NAME . '</td><td align="left">' . $rows[0]->name . '</td></tr>';
            echo '<tr class="' . JLMSCSS::_('sectiontableentry1') . '"><td align="left">' . _JLMS_UI_EMAIL . '</td><td align="left">' . $rows[0]->email . '</td></tr>';
            echo '<tr class="' . JLMSCSS::_('sectiontableentry2') . '"><td align="left">' . _JLMS_UI_GROUP . '</td><td align="left">' . ($rows[0]->ug_name ? $rows[0]->ug_name : '&nbsp;') . '</td></tr>';
            echo '</table><br />';
            echo $crtf_txt['text'];
            echo '</td><td width="50%" valign="top"><table width="100%" cellpadding="0" cellspacing="0" border="0" id="usergradebook_header_reg_info" class="' . JLMSCSS::_('jlmslist') . '" style="margin:0px;padding:0px;">';
            echo '<tr><' . JLMSCSS::tableheadertag() . ' class="' . JLMSCSS::_('sectiontableheader') . '" colspan="2">' . _JLMS_GB_REG_INFORMATION . '</' . JLMSCSS::tableheadertag() . '></tr>';
            $k = 1;
            foreach ($lists['enrollment_answers'] as $ea) {
                echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td>' . $ea->course_question . '</td><td>' . ($ea->user_answer ? $ea->user_answer : '&nbsp;') . '</td></tr>';
                $k = 3 - $k;
            }
            echo '</table></td></tr>';
            echo '</table>';
            JLMS_TMPL::CloseTS();
        } else {
            $params_cs[] = $userinfo;
            $params_cs[] = $crtf_txt;
            JLMS_TMPL::ShowCustomSection($params_cs);
        }
        /**
         * Certificates MOD - 04.10.2007 (DEN)
         * We will show the list of all achieved certificates in the User Gradebook
         */
        global $JLMS_DB;
        $query = "SELECT count(*) FROM #__lms_certificates WHERE course_id = '" . $id . "' AND published = 1 AND crtf_type = 1 AND parent_id = 0";
        $JLMS_DB->SetQuery($query);
        $is_course_certificate = $JLMS_DB->loadResult();
        if (!empty($lists['user_quiz_certificates']) || isset($rows[0]->user_certificate) && $rows[0]->user_certificate && $is_course_certificate) {
            JLMS_TMPL::OpenTS('', ' id="usergradebook_certificates_title"');
            echo '<br />';
            echo JLMSCSS::h2(_JLMS_GB_CERTIFICATES);
            JLMS_TMPL::CloseTS();
            JLMS_TMPL::OpenTS();
            $old_format = $JLMS_CONFIG->get('date_format', 'Y-m-d');
            $new_format = $JLMS_CONFIG->get('gradebook_certificate_date', '');
            if ($new_format) {
                $JLMS_CONFIG->set('date_format', $new_format);
            }
            echo '<table class="' . JLMSCSS::_('jlmslist') . '" id="usergradebook_certificates" style="width:100%" cellpadding="0" cellspacing="0" border="0">' . "\r\n";
            $k = 2;
            foreach ($lists['user_quiz_certificates'] as $crtf_row) {
                echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="16"><img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/btn_certificate.png" alt="certificate" width="16" height="16" /></td><td width="30%" align="left"><strong>' . $crtf_row->quiz_name . '</strong></td>' . '<td>' . JLMS_offsetDateToDisplay($crtf_row->crtf_date) . '</td>' . '<td align=\'left\'>' . ($JLMS_ACL->CheckPermissions('gradebook', 'view') ? '<a target="_blank" href="' . ampReplace($JLMS_CONFIG->get('live_site') . "/index.php?tmpl=component&option={$option}&Itemid={$Itemid}&no_html=1&task=print_quiz_cert&course_id={$id}&stu_quiz_id={$crtf_row->stu_quiz_id}&user_unique_id={$crtf_row->user_unique_id}") . '">' . _JLMS_GB_PRINT_CERTIFICATE . '</a>' : '') . '</td></tr>';
                $k = 3 - $k;
            }
            if (isset($rows[0]->user_certificate) && $rows[0]->user_certificate && $is_course_certificate) {
                $cert_user_id = 0;
                if (isset($lists['user_id']) && $lists['user_id']) {
                    global $my;
                    if ($my->id == $lists['user_id']) {
                    } else {
                        $cert_user_id = $lists['user_id'];
                    }
                }
                $link = ampReplace(sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=gb_get_cert&amp;id={$id}" . ($cert_user_id ? "&amp;user_id={$cert_user_id}" : '')));
                echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="16"><img class="JLMS_png" src="' . $JLMS_CONFIG->get('live_site') . '/components/com_joomla_lms/lms_images/toolbar/btn_certificate.png" alt="certificate" width="16" height="16" /></td><td width="30%" align="left"><strong>' . _JLMS_GB_COURSE_CERTIFICATE . '</strong></td>' . '<td>' . JLMS_offsetDateToDisplay($rows[0]->user_certificate_date) . '</td>' . '<td align=\'left\'>' . ($JLMS_ACL->CheckPermissions('gradebook', 'view') ? '<a target="_blank" href="' . $link . '">' . _JLMS_GB_PRINT_CERTIFICATE . '</a>' : '&nbsp;') . '</td></tr>';
            }
            JLMS_TMPL::CloseMT();
            JLMS_TMPL::CloseTS();
            $JLMS_CONFIG->set('date_format', $old_format);
        }
        /* END of Certificates MOD */
        if (count($lists['sc_rows'])) {
            $k = 2;
            $is_shown = 0;
            foreach ($lists['sc_rows'] as $sc_row) {
                if ($sc_row->show_in_gradebook) {
                    $is_shown++;
                    if ($is_shown == 1) {
                        JLMS_TMPL::OpenTS('', ' id="usergradebook_scorms_title"');
                        echo '<br />';
                        echo JLMSCSS::h2(_JLMS_GB_SCORM_RESULTS);
                        JLMS_TMPL::CloseTS();
                        JLMS_TMPL::OpenTS();
                        echo '<table class="' . JLMSCSS::_('jlmslist') . '" id="usergradebook_scorms" style="width:100%" cellpadding="0" cellspacing="0" border="0">' . "\r\n";
                    }
                    $j = 0;
                    while ($j < count($rows[0]->scorm_info)) {
                        if ($rows[0]->scorm_info[$j]->gbi_id == $sc_row->item_id) {
                            if ($rows[0]->scorm_info[$j]->user_status == -1) {
                                echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="30%" align="left"><strong>' . $sc_row->lpath_name . '</strong></td>' . '<td align=\'left\' colspan="2">' . '-' . '</td></tr>';
                                $k = 3 - $k;
                            } else {
                                $image = $rows[0]->scorm_info[$j]->user_status ? 'btn_accept.png' : 'btn_cancel.png';
                                $alt = $rows[0]->scorm_info[$j]->user_status ? 'btn_accept' : 'btn_cancel';
                                $img = JLMS_gradebook_html::publishIcon(0, 0, 0, '', $alt, $image, $option, false);
                                echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="30%" align="left"><strong>' . $sc_row->lpath_name . '</strong></td>' . '<td width="16">' . $img . '</td>' . '<td align=\'left\'>' . '<b>' . $rows[0]->scorm_info[$j]->user_grade . "</b> (" . $rows[0]->scorm_info[$j]->user_pts . _JLMS_GB_POINTS . ")" . '</td></tr>';
                                $k = 3 - $k;
                            }
                        }
                        $j++;
                    }
                }
            }
            if ($is_shown) {
                JLMS_TMPL::CloseMT();
                JLMS_TMPL::CloseTS();
            }
        }
        if (count($lists['quiz_rows'])) {
            JLMS_TMPL::OpenTS('', ' id="usergradebook_quizzes_title"');
            echo '<br />';
            echo JLMSCSS::h2(_JLMS_GB_QUIZ_RESULTS);
            JLMS_TMPL::CloseTS();
            JLMS_TMPL::OpenTS();
            /*Integration Plugin Percentiles*/
            if (isset($lists['chart_percentiles']->show) && $lists['chart_percentiles']->show) {
                JLMS_TMPL::OpenTS();
                echo $lists['chart_percentiles']->chart;
                JLMS_TMPL::CloseTS();
            }
            /*Integration Plugin Percentiles*/
            echo '<table class="' . JLMSCSS::_('jlmslist') . '" id="usergradebook_quizzes" style="width:100%" cellpadding="0" cellspacing="0" border="0">' . "\r\n";
            $k = 2;
            foreach ($lists['quiz_rows'] as $quiz_row) {
                $j = 0;
                while ($j < count($rows[0]->quiz_info)) {
                    if ($rows[0]->quiz_info[$j]->gbi_id == $quiz_row->c_id) {
                        //						if ($rows[0]->quiz_info[$j]->user_status == -1) {
                        //							echo '<tr class="'.JLMSCSS::_('sectiontableentry'.$k).'"><td width="30%" align="left"><strong>'.$quiz_row->c_title.'</strong></td>'
                        //							. '<td align=\'left\' colspan="2">'
                        //							. '-'
                        //							. '</td></tr>';
                        //							$k = 3 - $k;
                        //						} else {
                        //							$image = $rows[0]->quiz_info[$j]->user_status ? 'btn_accept.png' : 'btn_cancel.png';
                        //							$alt = $rows[0]->quiz_info[$j]->user_status ? 'btn_accept' : 'btn_cancel';
                        //							$img = JLMS_gradebook_html::publishIcon(0, 0, 0, '', $alt, $image, $option, false );
                        echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="30%" align="left"><strong>' . $quiz_row->c_title . '</strong></td>';
                        //old functional
                        //							echo '<td width="16">'. $img.'</td>';
                        //							echo '<td align=\'left\'>'
                        //							. '<b>' . $rows[0]->quiz_info[$j]->user_grade . "</b> (" . $rows[0]->quiz_info[$j]->user_pts_full .")";
                        //							/*Integration Plugin Percentiles*/
                        //							if (isset($rows[0]->quiz_info[$j]->user_percentile)) {
                        //								echo ' - '.$rows[0]->quiz_info[$j]->user_percentile;
                        //							}
                        //							/*Integration Plugin Percentiles*/
                        //							echo '</td>';
                        //new functional
                        echo '<td>';
                        echo JLMS_showQuizStatus($rows[0]->quiz_info[$j]);
                        echo '</td>';
                        if (isset($rows[0]->quiz_info[$j]->user_unique_id)) {
                            $show_print = false;
                            if (isset($rows[0]->quiz_info[$j]->allow_user_pdf_print) && $rows[0]->quiz_info[$j]->allow_user_pdf_print) {
                                $show_print = true;
                            } elseif ($JLMS_ACL->CheckPermissions('gradebook', 'manage')) {
                                $show_print = true;
                            } elseif ($JLMS_ACL->isStaff()) {
                                $show_print = true;
                            }
                            if ($show_print) {
                                echo '' . '<td><a target="_blank" href="' . $JLMS_CONFIG->get('live_site') . '/index.php?tmpl=component&amp;option=com_joomla_lms&amp;Itemid=' . $Itemid . '&amp;no_html=1&amp;task=print_quiz_result&amp;course_id=' . $quiz_row->course_id . '&amp;stu_quiz_id=' . $rows[0]->quiz_info[$j]->stu_quiz_id . '&amp;user_unique_id=' . $rows[0]->quiz_info[$j]->user_unique_id . '">' . _JLMS_PRINT_RESULTS . '</a></td>';
                            } else {
                                echo '<td>';
                                echo '&nbsp;';
                                echo '</td>';
                            }
                        } else {
                            echo '<td>';
                            echo '&nbsp;';
                            echo '</td>';
                        }
                        echo '</tr>';
                        $k = 3 - $k;
                        //						}
                    }
                    $j++;
                }
            }
            JLMS_TMPL::CloseMT();
            JLMS_TMPL::CloseTS();
        }
        if (count($lists['gb_rows'])) {
            JLMS_TMPL::OpenTS('', ' id="usergradebook_grades_title"');
            echo '<br />';
            echo JLMSCSS::h2(_JLMS_GB_GBI_RESULTS);
            JLMS_TMPL::CloseTS();
            JLMS_TMPL::OpenTS();
            ?>
			<form action="<?php 
            echo sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}");
            ?>
" method="post" name="adminForm">

			<?php 
            echo '<table class="' . JLMSCSS::_('jlmslist') . '" id="usergradebook_grades" style="width:100%" cellpadding="0" cellspacing="0" border="0">' . "\r\n";
            $k = 2;
            foreach ($lists['gb_rows'] as $gb_row) {
                $j = 0;
                while ($j < count($rows[0]->grade_info)) {
                    if ($rows[0]->grade_info[$j]->gbi_id == $gb_row->id) {
                        echo '<tr class="' . JLMSCSS::_('sectiontableentry' . $k) . '"><td width="30%" align="left"><strong>' . $gb_row->gbi_name . '</strong></td>' . '<td align=\'left\' colspan="2">' . ($JLMS_ACL->CheckPermissions('gradebook', 'manage') ? JLMS_gradebook_html::Create_SelectList($id, $rows[0]->grade_info[$j]->scale_id, $gb_row->id) : $rows[0]->grade_info[$j]->user_grade);
                        echo '</td></tr>';
                        $k = 3 - $k;
                    }
                    $j++;
                }
            }
            JLMS_TMPL::CloseMT();
            ?>
				<input type="hidden" name="option" value="<?php 
            echo $option;
            ?>
" />
				<input type="hidden" name="Itemid" value="<?php 
            echo $Itemid;
            ?>
" />
				<input type="hidden" name="task" value="gradebook" />
				<input type="hidden" name="state" value="0" />
				<input type="hidden" name="cid2" value="0" />
				<input type="hidden" name="boxchecked" value="0" />
				<input type="hidden" name="id" value="<?php 
            echo $id;
            ?>
" />
				<input type="hidden" name="user_id" value="<?php 
            echo $lists['user_id'];
            ?>
" />
			</form>	
			<?php 
            JLMS_TMPL::CloseTS();
            JLMS_TMPL::CloseMT();
        } else {
            JLMS_TMPL::CloseMT();
            ?>
			<form action="<?php 
            echo sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}");
            ?>
" method="post" name="adminForm">
				<input type="hidden" name="option" value="<?php 
            echo $option;
            ?>
" />
				<input type="hidden" name="Itemid" value="<?php 
            echo $Itemid;
            ?>
" />
				<input type="hidden" name="task" value="gradebook" />
				<input type="hidden" name="state" value="0" />
				<input type="hidden" name="cid2" value="0" />
				<input type="hidden" name="boxchecked" value="0" />
				<input type="hidden" name="id" value="<?php 
            echo $id;
            ?>
" />
				<input type="hidden" name="user_id" value="<?php 
            echo $lists['user_id'];
            ?>
" />
			</form>	
			<?php 
        }
        ?>
	
<?php 
    }
function JLMS_downloadFileHW($option)
{
    $JLMS_CONFIG =& JLMSFactory::getConfig();
    $Itemid = $JLMS_CONFIG->get('Itemid');
    $course_id = intval(mosGetParam($_REQUEST, 'course_id', 0));
    $hw_id = intval(mosGetParam($_REQUEST, 'hw_id', 0));
    $file_id = intval(mosGetParam($_REQUEST, 'file_id', 0));
    $user_id = intval(mosGetParam($_REQUEST, 'user_id', 0));
    $JLMS_ACL =& JLMSFactory::getACL();
    $user = JLMSFactory::getUser();
    if ($course_id && ($JLMS_ACL->CheckPermissions('homework', 'manage') || $user_id == $user->get('id')) && ($hw_id && JLMS_GetHWCourse($hw_id) == $course_id)) {
        JLMS_downloadFile($file_id, $option);
    }
    JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=hw_view_result&course_id={$course_id}&hw_id={$hw_id}&user_id={$user_id}"));
}
Exemple #11
-1
function my_certificates($course_id, $hp_items, $user_id)
{
    $db =& JFactory::getDbo();
    $user = JLMSFactory::getUser();
    $my_courses = array();
    $my_certificates = array();
    if ($user_id) {
        $query = "SELECT a.id, a.course_name" . "\n FROM #__lms_courses as a" . "\n, #__lms_users_in_groups as b" . "\n WHERE 1" . "\n AND a.id = b.course_id" . "\n AND b.user_id = '" . $user_id . "'";
        $db->setQuery($query);
        $my_courses = $db->loadObjectList();
        $query = "SELECT cc.* FROM (\n\t\t\tSELECT a.*, c.course_name, d.uniq_id, d.crtf_id, d.quiz_id, d.role_id\n\t\t\tFROM #__lms_certificate_users as a\n\t\t\tLEFT JOIN #__lms_certificate_prints as d ON a.course_id = d.course_id AND a.user_id = d.user_id AND crtf_id \n\t\t\t,#__lms_users_in_groups as b\n\t\t\t,#__lms_courses as c\n\t\t\tWHERE 1\n\t\t\tAND a.user_id = {$user_id}\n\t\t\tAND a.user_id = b.user_id\n\t\t\tAND a.course_id = b.course_id\n\t\t\tAND b.course_id = c.id\n\t\t\tORDER BY d.role_id DESC\n\t\t) AS cc\n\t\tGROUP BY cc.user_id, cc.course_id, cc.crtf_id, cc.quiz_id\n\t\tORDER BY cc.crt_date DESC\n\t\t";
        $db->setQuery($query);
        $my_certificates = $db->loadObjectList();
    }
    $lists = array();
    $JLMS_ACL =& JLMSFactory::getACL();
    if (count($my_courses)) {
        foreach ($my_courses as $course) {
            //JLMS_GB_getUserCertificates($course->id, $user_id, $lists);
            /**
             * Certificates MOD - 04.10.2007 (DEN)
             * We will show the list of all achieved certificates in the User Gradebook
             */
            $query = "SELECT * FROM #__lms_quiz_t_quiz WHERE course_id = '" . $course->id . "' AND c_certificate <> 0 ORDER BY c_title";
            $db->SetQuery($query);
            $quiz_rows = $db->LoadObjectList();
            $p = array();
            foreach ($quiz_rows as $qrow) {
                $pp = new stdClass();
                $pp->gbi_id = $qrow->c_id;
                $pp->user_pts = 0;
                $pp->user_status = -1;
                $pp->quiz_name = '';
                $pp->crtf_id = '';
                $p[] = $pp;
            }
            $certificates = array();
            $quiz_ans = array();
            if (count($quiz_rows)) {
                $query = "SELECT a.*, b.c_full_score, b.c_title, b.c_certificate FROM #__lms_quiz_results as a, #__lms_quiz_t_quiz as b WHERE a.course_id = '" . $course->id . "'" . "\n AND a.quiz_id = b.c_id AND a.user_id = {$user_id} ORDER BY a.user_id, a.quiz_id";
                $db->SetQuery($query);
                $quiz_ans = $db->LoadObjectList();
                $j = 0;
                while ($j < count($quiz_ans)) {
                    if ($quiz_ans[$j]->user_id == $user_id) {
                        $k = 0;
                        while ($k < count($p)) {
                            if ($p[$k]->gbi_id == $quiz_ans[$j]->quiz_id) {
                                $p[$k]->user_pts = $quiz_ans[$j]->user_score;
                                $p[$k]->user_status = $quiz_ans[$j]->user_passed;
                                $p[$k]->quiz_name = $quiz_ans[$j]->c_title;
                                $p[$k]->crtf_id = $quiz_ans[$j]->c_certificate;
                            }
                            $k++;
                        }
                    }
                    $j++;
                }
                $certificates = array();
                foreach ($p as $pp) {
                    if ($pp->user_status == 1) {
                        $query = "SELECT * FROM #__lms_quiz_r_student_quiz WHERE c_quiz_id = {$pp->gbi_id} AND c_student_id = {$user_id} AND c_total_score = {$pp->user_pts} AND c_passed = 1 ORDER BY c_date_time DESC LIMIT 0,1";
                        $db->SetQuery($query);
                        $u_res = $db->LoadObject();
                        if (is_object($u_res)) {
                            $role = $JLMS_ACL->UserRole($db, $user_id, 1);
                            $query = "SELECT crtf_date as crt_date FROM #__lms_certificate_prints WHERE user_id = {$user_id} AND (role_id = {$role} OR role_id = 0)  AND course_id = {$course->id} AND quiz_id = {$pp->gbi_id} AND crtf_id = {$pp->crtf_id}" . "\n ORDER BY role_id DESC LIMIT 0,1";
                            /* !!!!!!!! Bring from DB date of printing by user role or by default role (only if userrole not found) - imenno dlya etogo tut sidit ORDER i LIMIT*/
                            $db->SetQuery($query);
                            $crtf_date = $db->LoadResult();
                            if (!$crtf_date) {
                                $crtf_date = $u_res->c_date_time;
                            }
                            $ppp = new stdClass();
                            $ppp->user_id = $user_id;
                            $ppp->stu_quiz_id = $u_res->c_id;
                            $ppp->quiz_id = $u_res->c_quiz_id;
                            $ppp->user_unique_id = $u_res->unique_id;
                            $ppp->quiz_name = $pp->quiz_name;
                            $ppp->crt_date = $crtf_date;
                            $certificates[] = $ppp;
                        }
                    }
                }
            }
            $lists['user_quiz_certificates'] =& $certificates;
            /* END of Certificates MOD */
            if (isset($lists['user_quiz_certificates']) && count($lists['user_quiz_certificates'])) {
                for ($i = 0; $i < count($lists['user_quiz_certificates']); $i++) {
                    $lists['user_quiz_certificates'][$i]->course_id = $course->id;
                    $lists['user_quiz_certificates'][$i]->course_name = $course->course_name;
                }
            }
            $my_certificates = array_merge($my_certificates, $lists['user_quiz_certificates']);
        }
    }
    //sort
    $sort_date = array();
    for ($i = 0; $i < count($my_certificates); $i++) {
        $sort_date[] = strtotime($my_certificates[$i]->crt_date);
    }
    arsort($sort_date);
    $tmp = array();
    foreach ($sort_date as $n => $item) {
        foreach ($my_certificates as $m => $crt) {
            if ($n == $m) {
                $tmp[] = $crt;
            }
        }
    }
    if (isset($tmp) && count($tmp)) {
        $my_certificates = array();
        $my_certificates = $tmp;
    }
    return $my_certificates;
}