function JLMS_viewInlineLink($id, $option)
{
    global $my, $JLMS_DB, $Itemid, $JLMS_CONFIG;
    $JLMS_ACL =& JLMSFactory::getACL();
    $course_id = $JLMS_CONFIG->get('course_id');
    if ($course_id && $JLMS_ACL->CheckPermissions('links', 'view')) {
        $query = "SELECT a.*" . "\n FROM #__lms_links as a " . "\n WHERE a.id = {$id} AND a.course_id = '" . $course_id . "'" . ($JLMS_ACL->CheckPermissions('links', 'view_all') ? '' : "\n AND a.published = 1");
        $JLMS_DB->SetQuery($query);
        $row = $JLMS_DB->LoadObject();
        if (is_object($row)) {
            $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
            $_JLMS_PLUGINS->loadBotGroup('content');
            $plugin_result_array = $_JLMS_PLUGINS->trigger('onContentProcess', array(&$row->link_href));
            $plugin_result_array = $_JLMS_PLUGINS->trigger('onContentProcess', array(&$row->link_name));
            if ($row->params) {
                $params = new JLMSParameters($row->params);
            } else {
                $params = new JLMSParameters('display_width=720' . "\n" . 'display_height=540');
            }
            JLMS_course_links_html::showInlineLink($id, $option, $row, $params);
        } else {
            JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=links&id={$course_id}"));
        }
    } else {
        JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=links&id={$course_id}"));
    }
}
Exemple #2
0
function botAssociateCEO($users_info)
{
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $dbo =& JFactory::GetDbo();
    //---->get bot info
    if (!isset($_JLMS_PLUGINS->_user_bot_params['ceoassoc'])) {
        // load mambot params info
        $query = "SELECT params" . "\n FROM #__lms_plugins" . "\n WHERE element = 'ceoassoc'" . "\n AND folder = 'user'";
        $dbo->setQuery($query);
        $bot = $dbo->loadObject();
        // save query to class variable
        $_JLMS_PLUGINS->_user_bot_params['ceoassoc'] = $bot;
    }
    // pull query data from class variable
    $bot = $_JLMS_PLUGINS->_user_bot_params['ceoassoc'];
    $botParams = new jlmsPluginParameters($bot->params);
    $botParams->def('ceo_user_id', 0);
    //<----
    if ($parent_id = $botParams->get('ceo_user_id', 0)) {
        if (is_array($users_info)) {
            foreach ($users_info as $user_info) {
                //---->check if user already associated to CEO and add associate if not
                $query = "SELECT COUNT(*) FROM #__lms_user_parents WHERE parent_id = {$parent_id} AND user_id = {$user_info->user_id}";
                $dbo->setQuery($query);
                if (!$dbo->loadResult()) {
                    $query = "INSERT INTO #__lms_user_parents (`parent_id`, `user_id`) VALUES ({$parent_id}, {$user_info->user_id})";
                    $dbo->setQuery($query);
                    $dbo->query();
                }
                //<----
            }
        } else {
            $user_info = $users_info;
            //---->check if user already associated to CEO and add associate if not
            $query = "SELECT COUNT(*) FROM #__lms_user_parents WHERE parent_id = {$parent_id} AND user_id = {$user_info->user_id}";
            $dbo->setQuery($query);
            if (!$dbo->loadResult()) {
                $query = "INSERT INTO #__lms_user_parents (`parent_id`, `user_id`) VALUES ({$parent_id}, {$user_info->user_id})";
                $dbo->setQuery($query);
                $dbo->query();
            }
            //<----
        }
    }
    return;
}
function JLMS_pluginaction()
{
    $folder = JRequest::getVar('folder', '');
    $plugin = JRequest::getVar('plugin', '');
    $db =& JFactory::getDBO();
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $query = "SELECT element, folder" . "\n FROM #__lms_plugins" . "\n WHERE 1" . "\n AND folder = '" . $folder . "'" . "\n AND element = '" . $plugin . "'" . "\n AND published = '1'";
    $db->setQuery($query);
    $plugin_in_db = $db->loadObject();
    $exist_in_db = isset($plugin_in_db->element) ? 1 : 0;
    $exist_in_dir = 0;
    if ($exist_in_db && file_exists(JPATH_SITE . DS . 'components' . DS . 'com_joomla_lms' . DS . 'includes' . DS . 'plugins' . DS . $plugin_in_db->folder . DS . $plugin_in_db->element . '.php') && file_exists(JPATH_SITE . DS . 'components' . DS . 'com_joomla_lms' . DS . 'includes' . DS . 'plugins' . DS . $plugin_in_db->folder . DS . $plugin_in_db->element . '.xml')) {
        $exist_in_dir = 1;
    }
    require_once JPATH_SITE . DS . 'components' . DS . 'com_joomla_lms' . DS . 'includes' . DS . 'plugins' . DS . $plugin_in_db->folder . DS . $plugin_in_db->element . '.php';
    $_JLMS_PLUGINS->trigger('onPluginAction');
    exit;
}
Exemple #4
0
function addToWaitingList($user_info, $course_info)
{
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $dbo =& JFactory::GetDbo();
    //---->get bot info
    if (!isset($_JLMS_PLUGINS->_course_bot_params['waitinglist'])) {
        // load mambot params info
        $query = "SELECT params" . "\n FROM #__lms_plugins" . "\n WHERE element = 'waitinglist'" . "\n AND folder = 'course'";
        $dbo->setQuery($query);
        $bot = $dbo->loadObject();
        // save query to class variable
        $_JLMS_PLUGINS->_course_bot_params['waitinglist'] = $bot;
    }
    // pull query data from class variable
    $bot = $_JLMS_PLUGINS->_course_bot_params['waitinglist'];
    $botParams = new jlmsPluginParameters($bot->params);
    //count users in course
    $query = "SELECT COUNT(DISTINCT(user_id)) FROM `#__lms_users_in_groups` WHERE course_id = {$course_info->course_id}";
    // AND role_id = 2";
    $dbo->setQuery($query);
    $current_attendees = $dbo->loadResult();
    $max_attendees = $course_info->max_attendees;
    //course not full - return true
    if (!$max_attendees || $max_attendees > $current_attendees) {
        return true;
    }
    //check if user is already in waiting list (just in case)
    $query = "SELECT COUNT(*) FROM #__lms_waiting_lists WHERE course_id = {$course_info->course_id} AND user_id = {$user_info->user_id}";
    $dbo->setQuery($query);
    if ($dbo->loadResult()) {
        return false;
    }
    //get max ordering of needed list
    $query = "SELECT MAX(ordering) FROM #__lms_waiting_lists WHERE course_id = {$course_info->course_id}";
    $dbo->setQuery($query);
    $ordering = $dbo->loadResult();
    $ordering++;
    //add user to waiting list
    $query = "INSERT INTO #__lms_waiting_lists (course_id, user_id, ordering) VALUES ({$course_info->course_id}, {$user_info->user_id}, {$ordering})";
    $dbo->setQuery($query);
    $dbo->query();
    return false;
}
function notifyCourseJoined($users_info)
{
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $JLMS_CONFIG =& JLMSFactory::getConfig();
    //---->get bot info
    $dbo =& JFactory::GetDbo();
    if (!isset($_JLMS_PLUGINS->_nontify_bot_params['coursejoinnotify'])) {
        // load mambot params info
        $query = "SELECT params" . "\n FROM #__lms_plugins" . "\n WHERE element = 'coursejoinnotify'" . "\n AND folder = 'notifications'";
        $dbo->setQuery($query);
        $bot = $dbo->loadObject();
        // save query to class variable
        $_JLMS_PLUGINS->_notify_bot_params['coursejoinnotify'] = $bot;
    }
    // pull query data from class variable
    $bot = $_JLMS_PLUGINS->_notify_bot_params['coursejoinnotify'];
    $botParams = new jlmsPluginParameters($bot->params);
    $botParams->def('mail_template', 'Hello {user_name}, You have just been added to the course {course_name} attendees list.');
    $botParams->def('mail_subject', 'Course joining notification');
    //<----
    foreach ($users_info as $info_ids) {
        $query = "SELECT c.course_name AS course_name, u.name AS user_name, u.email AS mail_address FROM #__lms_courses AS c, #__users AS u" . "\n WHERE c.id={$info_ids->course_id} AND u.id={$info_ids->user_id}";
        $dbo->setQuery($query);
        $info_text = $dbo->loadObject();
        $mail_address = $dbo->getEscaped($info_text->mail_address);
        $mail_subject = $dbo->getEscaped($botParams->get('mail_subject'));
        $mail_text = $botParams->get('mail_template');
        $mail_text = str_replace('{user_name}', $info_text->user_name, $mail_text);
        $mail_text = str_replace('{course_name}', $info_text->course_name, $mail_text);
        $mail_text = str_replace('{site_URL}', $JLMS_CONFIG->get('live_site'), $mail_text);
        $mail_text = $dbo->getEscaped($mail_text);
        $query = "INSERT INTO #__lms_notifications (assigned, mail_address, mail_subject, mail_body, sent) VALUES" . "\n ({$info_ids->teacher_id}, '{$mail_address}', '{$mail_subject}', '{$mail_text}', 0)";
        $dbo->setQuery($query);
        $dbo->query();
    }
}
<?php

// no direct access
defined('_JEXEC') or die('Restricted access');
define('_JLMS_PLUGIN_TC', 'read or write comments');
$_JLMS_PLUGINS =& JLMSFactory::getPlugins();
$_JLMS_PLUGINS->registerFunction('onBelowCourseDetailsPage', 'TopicCollapsible');
$_JLMS_PLUGINS->registerFunction('onPluginAction', 'TopicCollapsible_Action');
//ALTER TABLE `jos_lms_topics` ADD `collapsible` INT NOT NULL ;
function TopicCollapsible($course_id)
{
    $db =& JFactory::getDBO();
    $user =& JFactory::getUser();
    $document =& JFactory::getDocument();
    $cookie_name = 'u' . $user->id . 'c' . $course_id . 'topics_exp';
    $cookie_value = isset($_COOKIE[$cookie_name]) ? $_COOKIE[$cookie_name] : '';
    $topics_expand = explode(',', $cookie_value);
    $tec = $topics_expand;
    $query = "SELECT *" . "\n FROM #__lms_topics_collapsible" . "\n WHERE 1" . "\n AND user_id = '" . $user->id . "'" . "\n AND course_id = '" . $course_id . "'";
    $db->setQuery($query);
    $data = $db->loadObject();
    $data->value = isset($data->value) ? $data->value : '';
    $topics_expand = explode(',', $data->value);
    $tedb = $topics_expand;
    $topics_expand = array_merge($tec, $tedb);
    setcookie($cookie_name, '');
    ob_start();
    ?>
		<style type="text/css">
			div.btn_collapse{
				display: block;
function showSearchCommentsStandard($search_through = 0)
{
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $JLMS_CONFIG =& JLMSFactory::getConfig();
    $option = 'com_joomla_lms';
    $Itemid = $JLMS_CONFIG->get('Itemid');
    $task = JRequest::getCmd('task');
    $search_jc_text = JRequest::getVar('search_jc_text', '', 'request', 'string');
    $query_string = $_SERVER['QUERY_STRING'];
    preg_match_all('#([\\&a-zA-Z\\_]*)=([a-z\\d\\_]*)#', $query_string, $out, PREG_PATTERN_ORDER);
    $vars = $out[1];
    $available_vars = array('task', 'id', 'course_id', 'topic_id', 'short', 'Itemid');
    $inputs = array();
    foreach ($_REQUEST as $var => $value) {
        if (in_array($var, $available_vars)) {
            $inputs[$var] = $value;
        }
    }
    //	$inputs['short'] = 1;
    if (!$search_through) {
        $inputs['sall'] = 1;
    }
    $action = 'index.php?option=' . $option;
    $action .= '&task=' . $task;
    foreach ($inputs as $name => $value) {
        if (!in_array($name, array('option', 'task', 'short', 'sall', 'Itemid'))) {
            $action .= '&' . $name . '=' . $value;
        }
    }
    $action .= '&Itemid=' . $Itemid;
    ob_start();
    ?>
	<style type="text/css">
		#search_jc h4{
			background-color:inherit;
			border-bottom:1px solid #D2DADB;
			color:#555555;
			font-weight:bold;
			margin-bottom:10px;
			padding:0 0 2px;
			text-align:left;
		}
		
		#search_jc input{
			background-color:#FFFFFF;
			border:1px solid #CCCCCC;
			color:#444444;
			padding:0;
		}
		#search_jc .search_fields{
			height:1%;
			margin-left:20px;
		}
	</style>
	<div id="search_jc">
		<form action="<?php 
    echo JRoute::_($action);
    ?>
" name="searchJCFormStnd" method="post">
			<h4>
				<?php 
    echo _JLMS_PLUGIN_JC_HEAD_SEARCH;
    ?>
			</h4>
			<div class="search_fields">
				<table width="100%" cellpadding="0" cellspacing="3" border="0">
					<tr>
						<td align="center">
							<input type="text" name="search_jc_text" value="<?php 
    echo $search_jc_text;
    ?>
" class="inputbox" style="width: 98%" />
						</td>
						<td width="1%">
							<input type="button" name="btn_search" value="<?php 
    echo _JLMS_PLUGIN_JC_SEARCH;
    ?>
" onclick="document.forms.searchJCFormStnd.submit();" />
						</td>
						<td width="1%">
							<input type="button" name="btn_reset" value="<?php 
    echo _JLMS_PLUGIN_JC_RESET;
    ?>
" onclick="document.forms.searchJCFormStnd.search_jc_text.value='';document.forms.searchJCFormStnd.sall.value='0';document.forms.searchJCFormStnd.submit();" />
						</td>
					</tr>
				</table>
			</div>
			
			<input type="hidden" name="search_jc" value="1" />
			<input type="hidden" name="option" value="<?php 
    echo $option;
    ?>
" />
			<?php 
    foreach ($inputs as $name => $value) {
        ?>
				<input type="hidden" name="<?php 
        echo trim($name);
        ?>
" value="<?php 
        echo $value;
        ?>
" />
				<?php 
    }
    ?>
		</form>
	</div>
	<?php 
    $ret = ob_get_contents();
    ob_end_clean();
    return $ret;
}
function JLMS_saveDropBox($option)
{
    $JLMS_CONFIG =& JLMSFactory::getConfig();
    $Itemid = $JLMS_CONFIG->get('Itemid');
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $db =& JFactory::getDbo();
    $user = JLMSFactory::getUser();
    $course_id = intval(mosGetParam($_REQUEST, 'course_id', 0));
    //	if ($user->get('id') && $course_id && JLMS_GetUserType($user->get('id'), $course_id) ) {
    $JLMS_ACL =& JLMSFactory::getACL();
    if ($user->get('id') && $course_id && $JLMS_ACL->CheckPermissions('dropbox', 'view')) {
        $recv_id = intval(mosGetParam($_REQUEST, 'recv_id', 0));
        $recv_id = mosGetParam($_POST, 'recv_id', array(0));
        if (!is_array($recv_id)) {
            $recv_id = array(0);
        }
        if (isset($recv_id[0]) && !$recv_id[0] || !count($recv_id)) {
            //fix one user (ticket  [QDHZ-1096])
            $msg = _JLMS_DROP_ERROR_NO_SEND_TO;
            JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}"), $msg);
        }
        //convert array of receiver's to numeric values
        $i = 0;
        while ($i < count($recv_id)) {
            $recv_id[$i] = intval($recv_id[$i]);
            $i++;
        }
        $recv_ids = implode(',', $recv_id);
        $do_continue = false;
        /*
        New permissions (Max)
        */
        $query = "SELECT count(user_id) FROM #__lms_user_courses" . "\n WHERE course_id = '" . $course_id . "' AND user_id IN ( {$recv_ids} )";
        $db->setQuery($query);
        $count_users = $db->LoadResult();
        if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_teachers')) {
            if ($count_users) {
                $do_continue = true;
            } else {
                $query = "SELECT count(c.user_id) FROM #__lms_users_in_groups as c" . "\n WHERE c.course_id = '" . $course_id . "' AND c.user_id IN ( {$recv_ids} )";
                $db->setQuery($query);
                $count_users = $db->LoadResult();
                if ($count_users) {
                    $do_continue = true;
                }
            }
        }
        if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_learners')) {
            if ($count_users) {
                $do_continue = true;
            }
        }
        /*
        Old part
        */
        /*
        if (JLMS_GetUserType($user->get('id'), $course_id) == 1) {
        	$query = "SELECT count(user_id) FROM #__lms_user_courses"
        	. "\n WHERE course_id = '".$course_id."' AND (role_id = 1 OR role_id = 4) AND user_id IN ( $recv_ids )";
        	$db->setQuery($query);
        	$count_users = $db->LoadResult();
        	
        	if ($count_users) {
        		$do_continue = true;
        	} else {
        		$query = "SELECT count(c.user_id) FROM #__lms_users_in_groups as c"
        		. "\n WHERE c.course_id = '".$course_id."' AND c.user_id IN ( $recv_ids )";
        		$db->setQuery($query);
        		$count_users = $db->LoadResult();
        		if ($count_users) {
        			$do_continue = true;
        		}
        	}
        } elseif (JLMS_GetUserType($user->get('id'), $course_id) == 2) {
        	$query = "SELECT count(user_id) FROM #__lms_user_courses"
        	. "\n WHERE course_id = '".$course_id."' AND (role_id = 1 OR role_id = 4) AND user_id IN ( $recv_ids )";
        	$db->setQuery($query);
        	$count_users = $db->LoadResult();
        	if ($count_users) {
        		$do_continue = true;
        	}
        }
        */
        // (TIPS)
        // sender: teacher - RECEIVER must be teacher of this course or student of this course
        // sender: student - RECEIVER must be teacher of this course
        $flag = false;
        if ($do_continue) {
            if ($_FILES['userfile']['name'] == '') {
                $file_id = 0;
                $flag = true;
            } else {
                $file_id = JLMS_uploadFile($course_id);
                if ($file_id) {
                    $flag = true;
                }
            }
            $_POST['drp_type'] = 1;
            if (intval(mosGetParam($_REQUEST, 'file_id', 0))) {
                $file_id = intval(mosGetParam($_REQUEST, 'file_id', 0));
                $_POST['drp_type'] = 2;
            }
            if ($flag) {
                $row = new mos_Joomla_LMS_DropBox($db);
                if (!$row->bind($_POST)) {
                    echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
                    exit;
                }
                $row->file_id = $file_id;
                $row->owner_id = $user->get('id');
                $row->drp_mark = 1;
                /*$query = "SELECT file_name FROM #__lms_files WHERE id = '".$file_id."'";
                				$db->SetQuery( $query );
                
                				$row->drp_name = $db->LoadResult();*/
                //$row->drp_name = strval(mosGetParam($_FILES['userfile'], 'name', 'dropbox_file'));
                if ($file_id > 0) {
                    if ($row->drp_type == 1) {
                        $drp_name = isset($_FILES['userfile']['name']) ? strval($_FILES['userfile']['name']) : 'dropbox_file';
                    } else {
                        if ($row->drp_type == 2) {
                            $drp_name = strval(mosGetParam($_REQUEST, 'dropbox_name', 'dropbox_file_(' . time() . ')'));
                        }
                    }
                } else {
                    $drp_name = mosGetParam($_REQUEST, 'dropbox_name');
                }
                $drp_name = get_magic_quotes_gpc() ? stripslashes($drp_name) : $drp_name;
                $row->drp_name = ampReplace(strip_tags($drp_name));
                $row->drp_description = strval(JLMS_getParam_LowFilter($_POST, 'drp_description', ''));
                //$row->drp_description = JLMS_ProcessText_LowFilter($row->drp_description);
                //				if (JLMS_GetUserType($user->get('id'), $course_id ) == 1) {
                if ($JLMS_ACL->CheckPermissions('dropbox', 'mark_as_corrected')) {
                    $drp_corr = intval(mosGetParam($_REQUEST, 'drp_corrected', 0));
                    if ($drp_corr != 1) {
                        $drp_corr = 0;
                    }
                    $row->drp_corrected = $drp_corr;
                } else {
                    $row->drp_corrected = 0;
                }
                $row->drp_time = date('Y-m-d H:i:s');
                //Replace old function JLMS_GetUserType //tmp
                $users_teachers = array();
                $users_learners = array();
                if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_teachers')) {
                    $query = "SELECT a.* FROM #__users as a, #__lms_user_courses as c" . "\n WHERE a.id = c.user_id AND c.course_id = '" . $course_id . "' AND a.id <> '" . $user->id . "'" . "\n ORDER BY a.username";
                    $db->SetQuery($query);
                    $users_teachers = $db->LoadObjectList();
                    $i = 0;
                    while ($i < count($users_teachers)) {
                        $users_teachers[$i]->username = _JLMS_ROLE_TEACHER . ' - ' . $users_teachers[$i]->name . ' (' . $users_teachers[$i]->username . ')';
                        $i++;
                    }
                }
                if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_learners')) {
                    $users_learners = JLMS_getCourseStudentsList($course_id);
                }
                $tmp = array();
                foreach ($users_teachers as $n => $ut) {
                    $tmp[$n] = $ut->id;
                }
                if (count($tmp)) {
                    $users_teachers = $tmp;
                }
                $tmp = array();
                foreach ($users_learners as $n => $ul) {
                    $tmp[$n] = $ul->id;
                }
                if (count($tmp)) {
                    $users_learners = $tmp;
                }
                //Replace old function JLMS_GetUserType //tmp
                foreach ($recv_id as $recv) {
                    $check_recv = false;
                    //Replace old function JLMS_GetUserType //tmp
                    if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_teachers') && in_array($recv, $users_teachers)) {
                        $check_recv = true;
                    }
                    if ($JLMS_ACL->CheckPermissions('dropbox', 'send_to_learners') && in_array($recv, $users_learners)) {
                        $check_recv = true;
                    }
                    //Replace old function JLMS_GetUserType //tmp
                    //					if ($recv && ($recv != $user->get('id')) && ((JLMS_GetUserType($user->get('id'), $course_id) == 1 && JLMS_GetUserType($recv, $course_id)) || ((JLMS_GetUserType($user->get('id'), $course_id) == 2) && (JLMS_GetUserType($recv, $course_id, true) == 1))) || ((JLMS_GetUserType($user->get('id'), $course_id) == 2) && (JLMS_GetUserType($recv, $course_id, true) == 2)) ) { //old
                    if ($recv && $recv != $user->get('id') && $check_recv) {
                        $row->id = 0;
                        $row->recv_id = $recv;
                        if (!$row->check()) {
                            echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
                            exit;
                        }
                        if (!$row->store()) {
                            echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
                            exit;
                        }
                        //*** send email notification
                        $e_course = new stdClass();
                        $e_course->course_alias = '';
                        $e_course->course_name = '';
                        $query = "SELECT course_name, name_alias FROM #__lms_courses WHERE id = '" . $course_id . "'";
                        $db->setQuery($query);
                        $e_course = $db->loadObject();
                        $e_user = new stdClass();
                        $e_user->name = '';
                        $e_user->email = '';
                        $e_user->username = '';
                        $query = "SELECT email, name, username FROM #__users WHERE id = '" . $recv . "'";
                        $db->setQuery($query);
                        $e_user = $db->loadObject();
                        $e_params['user_id'] = $recv;
                        $e_params['course_id'] = $course_id;
                        $e_params['markers']['{email}'] = $e_user->email;
                        $e_params['markers']['{name}'] = $e_user->name;
                        $e_params['markers']['{username}'] = $e_user->username;
                        $e_params['markers']['{coursename}'] = $e_course->course_name;
                        //( $e_course->course_alias )?$e_course->course_alias:$e_course->course_name;
                        $e_params['markers']['{filename}'] = $row->drp_name;
                        $e_params['markers']['{courselink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}&task=details_course&id={$course_id}");
                        $e_params['markers_nohtml']['{courselink}'] = $e_params['markers']['{courselink}'];
                        $e_params['markers']['{courselink}'] = '<a href="' . $e_params['markers']['{courselink}'] . '">' . $e_params['markers']['{courselink}'] . '</a>';
                        $e_params['markers']['{lmslink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}");
                        $e_params['markers_nohtml']['{lmslink}'] = $e_params['markers']['{lmslink}'];
                        $e_params['markers']['{lmslink}'] = '<a href="' . $e_params['markers']['{lmslink}'] . '">' . $e_params['markers']['{lmslink}'] . '</a>';
                        $e_params['action_name'] = 'OnNewDropboxFile';
                        $_JLMS_PLUGINS->loadBotGroup('emails');
                        $plugin_result_array = $_JLMS_PLUGINS->trigger('OnNewDropboxFile', array(&$e_params));
                        //*** end of emails
                    }
                }
                JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}"));
            } else {
                mosErrorAlert("Upload of " . $userfile_name . " failed");
            }
        } else {
            JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}"));
        }
    } else {
        JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=dropbox&id={$course_id}"));
    }
}
Exemple #9
0
function JLMS_ShowToolbar($toolbar, $href_link = true, $align = 'right', $cellpad = 0, $cellspac = 0)
{
    global $Itemid, $JLMS_CONFIG;
    //b Events JLMS Plugins
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $_JLMS_PLUGINS->loadBotGroup('system');
    $args = array();
    $args[] =& $toolbar;
    $_JLMS_PLUGINS->trigger('onShowToolbar', $args);
    //e Events JLMS Plugins
    $extra_style = '';
    if ($align == 'center') {
        $extra_style .= 'margin: 0 auto;';
    }
    $toolbar_thml = '';
    if (count($toolbar)) {
        $toolbar_thml .= "<table class='jlms_toolbar_buttons' align='{$align}' style='text-align: {$align}; width:auto; {$extra_style}' cellpadding='{$cellpad}' cellspacing='{$cellspac}' border='0'><tr>";
        foreach ($toolbar as $toolbar_btn) {
            $toolbar_thml .= "<td>";
            $btn_w = "32";
            $btn_h = "32";
            switch ($toolbar_btn['btn_type']) {
                case 'send':
                    $btn_str = _JLMS_SEND_ALT_TITLE;
                    $btn_img = 'buttons/btn_send.png';
                    break;
                case 'addtocart':
                    $btn_str = _JLMS_ADD_TO_CART;
                    $btn_img = 'buttons/btn_addtocart.png';
                    break;
                case 'checkout':
                    $btn_str = _JLMS_CHECKOUT_ITEMS;
                    $btn_img = 'buttons/btn_checkout.png';
                    break;
                case 'viewcart':
                    $btn_str = _JLMS_VIEW_CART;
                    $btn_img = 'buttons/btn_viewcart.png';
                    break;
                case 'edit':
                    $btn_str = _JLMS_EDIT;
                    $btn_img = 'buttons/btn_edit.png';
                    break;
                case 'save':
                    $btn_str = _JLMS_SAVE_ALT_TITLE;
                    $btn_img = 'buttons/btn_save.png';
                    break;
                case 'preview':
                    $btn_str = _JLMS_PREVIEW_ALT_TITLE;
                    $btn_img = 'buttons/btn_preview.png';
                    break;
                case 'back':
                    $btn_str = _JLMS_BACK_ALT_TITLE;
                    $btn_img = 'buttons/btn_back.png';
                    break;
                case 'import':
                    $btn_str = _JLMS_IMPORT_ALT_TITLE;
                    $btn_img = 'buttons/btn_upload.png';
                    break;
                case 'cancel':
                    $btn_str = _JLMS_CANCEL_ALT_TITLE;
                    $btn_img = 'buttons/btn_cancel.png';
                    break;
                    //homework
                //homework
                case 'complete':
                    $btn_str = _JLMS_COMPLETE_ALT_TITLE;
                    $btn_img = 'buttons/btn_complete.png';
                    break;
                case 'yes':
                    $btn_str = _JLMS_YES_ALT_TITLE;
                    $btn_img = 'buttons/btn_complete.png';
                    break;
                case 'newtopic':
                    $btn_str = _JLMS_YES_ALT_TITLE;
                    $btn_img = 'buttons/btn_newtopic.png';
                    break;
                    //quiz
                //quiz
                case 'quiz_ok':
                    $btn_str = _JLMS_OK_ALT_TITLE;
                    $btn_img = 'buttons/btn_complete.png';
                    break;
                    //'show_lpath' section
                //'show_lpath' section
                case 'start':
                    $btn_str = _JLMS_START_ALT_TITLE;
                    $btn_img = 'buttons/btn_start.png';
                    break;
                case 'resume':
                    $btn_str = _JLMS_RESUME_ALT_TITLE;
                    $btn_img = 'buttons/btn_start.png';
                    break;
                case 'next':
                    $btn_str = _JLMS_NEXT_ALT_TITLE;
                    $btn_img = 'buttons/btn_start.png';
                    break;
                case 'continue':
                    $btn_str = _JLMS_CONTINUE_ALT_TITLE;
                    $btn_img = 'buttons/btn_start.png';
                    break;
                case 'prev':
                    $btn_str = _JLMS_PREV_ALT_TITLE;
                    $btn_img = 'buttons/btn_back.png';
                    break;
                case 'contents':
                    $btn_str = _JLMS_CONTENTS_ALT_TITLE;
                    $btn_img = 'buttons/btn_contents.png';
                    break;
                case 'restart':
                    $btn_str = _JLMS_RESTART_ALT_TITLE;
                    $btn_img = 'buttons/btn_restart.png';
                    break;
                case 'export':
                    $btn_str = _JLMS_EXPORT_ALT_TITLE;
                    $btn_img = 'buttons/btn_export.png';
                    break;
                case 'clear':
                    $btn_str = _JLMS_CLEAR_ALT_TITLE;
                    $btn_img = 'buttons/btn_clear.png';
                    break;
                case 'settings':
                    $btn_str = _JLMS_SETTINGS_ALT_TITLE;
                    $btn_img = 'buttons/btn_configure.png';
                    break;
                case 'archive':
                    $btn_str = _JLMS_ARCHIVE_ALT_TITLE;
                    $btn_img = 'buttons/btn_archive.png';
                    break;
                case 'booking':
                    $btn_str = 'Booking';
                    $btn_img = 'buttons/schedule.png';
                    break;
                    //---messages--///
                //---messages--///
                case 'mail_inbox':
                    $btn_str = _JLMS_INBOX_ALT_TITLE;
                    $btn_img = 'buttons/btn_inbox.png';
                    break;
                case 'mail_outbox':
                    $btn_str = _JLMS_OUTBOX_ALT_TITLE;
                    $btn_img = 'buttons/btn_outbox.png';
                    break;
                case 'mail_send':
                    $btn_str = _JLMS_COMPOSE_ALT_TITLE;
                    $btn_img = 'buttons/btn_compose.png';
                    break;
                    //Max 6.10.08 Quiz Skip mod
                //Max 6.10.08 Quiz Skip mod
                case 'skip':
                    $btn_str = 'Skip';
                    $btn_img = 'buttons/btn_next.png';
                    break;
                    //Max 26.03.08 Quiz
                //Max 26.03.08 Quiz
                case 'certificate_fbar':
                    $btn_str = _JLMS_q_quiz_fin_btn_certificate;
                    $btn_img = 'buttons/btn_certificate_fbar.png';
                    break;
                case 'print_fbar':
                    $btn_str = _JLMS_q_quiz_fin_btn_print;
                    $btn_img = 'buttons/btn_print_fbar.png';
                    break;
                case 'email_to_fbar':
                    $btn_str = _JLMS_q_quiz_fin_btn_email;
                    $btn_img = 'buttons/btn_email_to_fbar.png';
                    break;
                case 'review_fbar':
                    $btn_str = _JLMS_q_quiz_fin_btn_review;
                    $btn_img = 'buttons/btn_review_fbar.png';
                    break;
                    //Max 10.04.08 Booking Timetable
                //Max 10.04.08 Booking Timetable
                case 'new':
                    $btn_str = 'New';
                    $btn_img = 'buttons/btn_new.png';
                    break;
                case 'edit':
                    $btn_str = _JLMS_EDIT;
                    $btn_img = 'buttons/btn_edit.png';
                    break;
                case 'delete':
                    $btn_str = _JLMS_DELETE;
                    $btn_img = 'buttons/btn_trash.png';
                    break;
                case 'apply':
                    $btn_str = 'Apply';
                    $btn_img = 'buttons/btn_complete.png';
                    break;
                case 'save':
                    $btn_str = _JLMS_SAVE_ALT_TITLE;
                    $btn_img = 'buttons/btn_save.png';
                    break;
                case 'cancel':
                    $btn_str = _JLMS_CANCEL_ALT_TITLE;
                    $btn_img = 'buttons/btn_cancel.png';
                    break;
                case 'pdf':
                    $btn_str = 'PDF';
                    $btn_img = 'buttons/btn_pdf.png';
                    break;
                default:
                    $btn_str = _JLMS_SAVE_ALT_TITLE;
                    $btn_img = 'buttons/btn_save.png';
                    break;
            }
            if (isset($toolbar_btn['btn_str'])) {
                $btn_str = $toolbar_btn['btn_str'];
            }
            $btn_str_link = $btn_str;
            if (isset($toolbar_btn['btn_title'])) {
                $btn_str = $toolbar_btn['btn_title'];
            }
            $target = '';
            if (isset($toolbar_btn['btn_target']) && $toolbar_btn['btn_target']) {
                $target = " target='" . $toolbar_btn['btn_target'] . "'";
            }
            if ($href_link) {
                $toolbar_thml .= "<a" . $target . " class=\"jlms_img_link\" href=\"" . $toolbar_btn['btn_js'] . "\" title=\"" . $btn_str . "\" onmouseover=\"jlms_WStatus('" . addslashes($btn_str) . "');return true;\" onmouseout=\"jlms_WStatus('');return true;\">";
            } else {
                $toolbar_thml .= "<a" . $target . " class=\"jlms_img_link\" style=\"cursor:pointer\" onclick=\"" . $toolbar_btn['btn_js'] . "\" title=\"" . $btn_str . "\" onmouseover=\"jlms_WStatus('" . addslashes($btn_str) . "');return true;\" onmouseout=\"jlms_WStatus('');return true;\">";
            }
            if (substr($btn_img, 0, 5) == 'http:' || substr($btn_img, 0, 6) == 'https:') {
                $toolbar_thml .= "<img class='JLMS_png' src=\"" . $btn_img . "\" width='" . $btn_w . "' height='" . $btn_h . "' border='0' alt=\"" . $btn_str . "\" title=\"" . $btn_str . "\" />";
            } else {
                $toolbar_thml .= "<img class='JLMS_png' src=\"" . $JLMS_CONFIG->getCfg('live_site') . '/' . $JLMS_CONFIG->get('lms_path_to_images') . "/" . $btn_img . "\" width='" . $btn_w . "' height='" . $btn_h . "' border='0' alt=\"" . $btn_str . "\" title=\"" . $btn_str . "\" />";
            }
            $toolbar_thml .= "</a>";
            $toolbar_thml .= "</td>";
            $toolbar_thml .= "<td valign='middle' style='vertical-align:middle'>";
            if ($href_link) {
                $toolbar_thml .= "<a" . $target . " href=\"" . $toolbar_btn['btn_js'] . "\" title=\"" . $btn_str . "\" onmouseover=\"jlms_WStatus('" . addslashes($btn_str) . "');return true;\" onmouseout=\"jlms_WStatus('');return true;\">";
            } else {
                $toolbar_thml .= "<a" . $target . " style=\"cursor:pointer\" onclick=\"" . $toolbar_btn['btn_js'] . "\" title=\"" . $btn_str . "\" onmouseover=\"jlms_WStatus('" . addslashes($btn_str) . "');return true;\" onmouseout=\"jlms_WStatus('');return true;\">";
            }
            $toolbar_thml .= "&nbsp;" . $btn_str_link . "&nbsp;&nbsp;";
            $toolbar_thml .= "</a>";
            $toolbar_thml .= "</td>";
        }
        $toolbar_thml .= "</tr></table>";
    }
    return $toolbar_thml;
}
    function addItemToLPath($lpath_id, $course_id, $option, &$my_documents, &$my_links, &$my_quizzes, &$my_scorms, &$lists, $parent)
    {
        global $Itemid, $JLMS_CONFIG;
        ?>
<script language="javascript" type="text/javascript">
<!--
function jlms_get_kol_selected(fff) {
	var kol_sel=0;
	selItem=fff['cid[]'];
	var rrr='';
	if (selItem) {
		if (selItem.length) { var i;
			for (i = 0; i<selItem.length; i++) {
				if (selItem[i].checked) { kol_sel++; }
			}
		} else if (selItem.checked) { kol_sel++; }
	}
	return kol_sel;
}
function submitbutton_doc(pressbutton) {
	var form = document.docForm;
	var kol_docs = jlms_get_kol_selected(form);
	if ( (pressbutton == 'lpath_add_doc') && (kol_docs == 0) ) {
		alert( "<?php 
        echo _JLMS_LPATH_SELECT_DOCS;
        ?>
" );
	} else {
		form.task.value = pressbutton;
		form.submit();
	}
}
function submitbutton_link(pressbutton) {
	var form = document.linkForm;
	var kol_links = jlms_get_kol_selected(form);
	if ( (pressbutton == 'lpath_add_link') && (kol_links == 0) ) {
		alert( "<?php 
        echo _JLMS_LPATH_SELECT_LINKS;
        ?>
" );
	} else {
		form.task.value = pressbutton;
		form.submit();
	}
}
function submitbutton_quiz(pressbutton) {
	var form = document.quizForm;
	var kol_quizzes = jlms_get_kol_selected(form);
	if ( (pressbutton == 'lpath_add_quiz') && (kol_quizzes == 0) ) {
		alert( "<?php 
        echo _JLMS_LPATH_SELECT_QUIZZES;
        ?>
" );
	} else {
		form.task.value = pressbutton;
		form.submit();
	}
}
function submitbutton_scorm(pressbutton) {
	var form = document.scormForm;
	var kol_scorms = jlms_get_kol_selected(form);
	if ( (pressbutton == 'lpath_add_scorm') && (kol_scorms == 0) ) {
		alert( "<?php 
        echo _JLMS_LPATH_SELECT_SCORMS;
        ?>
" );
	} else {
		form.task.value = pressbutton;
		form.submit();
	}
}

function submitbutton_chap(pressbutton) {
	var form = document.chapForm;
	if ( (pressbutton == 'lpath_add_chapter') && (form.step_name.value == '') ) {
		alert( "<?php 
        echo _JLMS_LPATH_ENTER_CHAP_NAME;
        ?>
" );
	} else {
		form.task.value = pressbutton;
		form.submit();
	}
}
function submitbutton_content(pressbutton) {
	var form = document.contentForm;
	try {
		form.onsubmit();
	} catch(e) {
		//alert(e);
	}
	if ( (pressbutton == 'lpath_add_content') && (form.step_name.value == '') ) {
		alert( "<?php 
        echo _JLMS_LPATH_ENTER_CONTENT_NAME;
        ?>
" );
	} else {
		form.task.value = pressbutton;
		form.submit();
	}
}
//-->
</script>
<?php 
        JLMS_TMPL::OpenMT();
        $hparams = array();
        JLMS_TMPL::ShowHeader('lpath', '', $hparams);
        JLMS_TMPL::OpenTS();
        ?>
		<form action="<?php 
        echo sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid);
        ?>
" method="post" name="swapParent">
			<input name="parent" type="hidden" value="<?php 
        echo $parent;
        ?>
" />
			<input type="hidden" name="option" value="<?php 
        echo $option;
        ?>
" />
			<input type="hidden" name="Itemid" value="<?php 
        echo $Itemid;
        ?>
" />
			<input type="hidden" name="task" value="add_lpath_step" />
			<input type="hidden" name="id" value="<?php 
        echo $lpath_id;
        ?>
" />
			<input type="hidden" name="lpath_id" value="<?php 
        echo $lpath_id;
        ?>
" />
			<input type="hidden" name="course_id" value="<?php 
        echo $course_id;
        ?>
" />
		</form>
	<?php 
        echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_ITEMS);
        $tabs = new JLMSTabs(0);
        echo $tabs->startPane("JLMS");
        echo $tabs->startTab(_JLMS_LPATH_CONTENT, "jlmstab6");
        echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_CONTENT);
        ?>
	<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders">
		<tr>
			<td align="right">
			<?php 
        $toolbar = array();
        $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_content('lpath_add_content');");
        $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_content('cancel_lpath_step');");
        echo JLMS_ShowToolbar($toolbar);
        ?>
			</td>
		</tr>
	</table>
				<form action="<?php 
        echo sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid);
        ?>
" method="post" name="contentForm" onsubmit="setgood();">
					<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties">
						<tr>
							<td width="15%"><br /><?php 
        echo _JLMS_ENTER_NAME;
        ?>
</td>
							<td>
								<br /><input type="text" name="step_name" style="width:260px" value="" />
							</td>
						</tr>
						<tr>
							<td width="15%"><br /><?php 
        echo _JLMS_PLACE_IN;
        ?>
</td>
							<td><br /><?php 
        echo $lists['lpath_chaps1'];
        ?>
</td>
						</tr>
						<tr>
							<td><br /><?php 
        echo _JLMS_ORDERING;
        ?>
</td>
							<td colspan="2"><br /><?php 
        echo $lists['lpath_order'];
        ?>
</td>
						</tr>
						<tr>
							<td align="left" valign="top" style="vertical-align:top "><br /><?php 
        echo _JLMS_SHORT_DESCRIPTION;
        ?>
</td>
							<td colspan="2"><br /><textarea class="inputbox" name="step_shortdescription" cols="50" rows="3"></textarea></td>
						</tr>
						<tr>
							<td colspan="3" align="left" style="text-align:left "><br /><?php 
        echo _JLMS_DESCRIPTION;
        ?>
</td>
						</tr>
						<tr>
							<td colspan="3">
							<?php 
        JLMS_editorArea('editor1', '', 'step_description', '100%', '250', '40', '20');
        ?>
							</td>
						</tr>
					</table>
					<input type="hidden" name="option" value="<?php 
        echo $option;
        ?>
" />
					<input type="hidden" name="Itemid" value="<?php 
        echo $Itemid;
        ?>
" />
					<input type="hidden" name="task" value="lpath_add_content" />
					<input type="hidden" name="id" value="<?php 
        echo $lpath_id;
        ?>
" />
					<input type="hidden" name="lpath_id" value="<?php 
        echo $lpath_id;
        ?>
" />
					<input type="hidden" name="course_id" value="<?php 
        echo $course_id;
        ?>
" />
					</form>
<?php 
        echo $tabs->endTab();
        echo $tabs->startTab(_JLMS_LPATH_CHAPTER, "jlmstab5");
        echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_CHAP);
        ?>
	<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders">
		<tr>
			<td align="right">
			<?php 
        $toolbar = array();
        $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_chap('lpath_add_chapter');");
        $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_chap('cancel_lpath_step');");
        echo JLMS_ShowToolbar($toolbar);
        ?>
			</td>
		</tr>
	</table>
					<form action="<?php 
        echo sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid);
        ?>
" method="post" name="chapForm">
					<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties">
						<tr>
							<td width="15%"><br /><?php 
        echo _JLMS_ENTER_NAME;
        ?>
</td>
							<td>
								<br /><input type="text" name="step_name" style="width:260px" value="" />
							</td>
						</tr>
						<tr>
							<td width="15%"><br /><?php 
        echo _JLMS_PLACE_IN;
        ?>
</td>
							<td><br /><?php 
        echo $lists['lpath_chaps1'];
        ?>
</td>
						</tr>
						<tr>
							<td><br /><?php 
        echo _JLMS_ORDERING;
        ?>
</td>
							<td><br /><?php 
        echo $lists['lpath_order'];
        ?>
</td>
						</tr>
					</table>
					<input type="hidden" name="option" value="<?php 
        echo $option;
        ?>
" />
					<input type="hidden" name="Itemid" value="<?php 
        echo $Itemid;
        ?>
" />
					<input type="hidden" name="task" value="lpath_add_chapter" />
					<input type="hidden" name="id" value="<?php 
        echo $lpath_id;
        ?>
" />
					<input type="hidden" name="lpath_id" value="<?php 
        echo $lpath_id;
        ?>
" />
					<input type="hidden" name="course_id" value="<?php 
        echo $course_id;
        ?>
" />
					</form>
<?php 
        echo $tabs->endTab();
        if (!empty($my_documents)) {
            echo $tabs->startTab(_JLMS_HEAD_DOCS_STR, "jlmstab1");
            echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_DOCS);
            ?>
	<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders">
		<tr>
			<td align="right">
			<?php 
            $toolbar = array();
            $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_doc('lpath_add_doc');");
            $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_doc('cancel_lpath_step');");
            echo JLMS_ShowToolbar($toolbar);
            ?>
			</td>
		</tr>
	</table>
				<form action="<?php 
            echo sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid);
            ?>
" method="post" name="docForm">
					<?php 
            $max_tree_width = 0;
            $max_tree_width1 = 0;
            if (isset($my_documents[0])) {
                $max_tree_width = $my_documents[0]->tree_max_width;
            }
            $max_tree_width1 = $max_tree_width;
            ?>
					<table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php 
            echo JLMSCSS::_('jlmslist');
            ?>
">
						<tr>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="1%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
" align="center">#</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="1%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
">&nbsp;</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="<?php 
            echo $max_tree_width + 1;
            ?>
%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
" colspan="<?php 
            echo $max_tree_width + 1;
            ?>
">&nbsp;</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="50%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
"><?php 
            echo _JLMS_LPATH_TBL_HEAD_NAME_DOCS;
            ?>
</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="<?php 
            echo 48 - ($max_tree_width + 1);
            ?>
%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
"><span style="display:block; width:150px"><?php 
            echo _JLMS_LPATH_TBL_HEAD_DESCR_DOCS;
            ?>
</span></<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
						</tr>
					<?php 
            $k = 1;
            $tree_modes = array();
            for ($i = 0, $n = count($my_documents); $i < $n; $i++) {
                $row = $my_documents[$i];
                $max_tree_width = $row->tree_max_width;
                $link = "index.php?option=" . $option . "&amp;Itemid=" . $Itemid . "&amp;task=get_document&amp;course_id=" . $course_id . "&amp;id=" . $row->id;
                $checked = '<input type="checkbox" name="cid[]" value="' . $row->id . '" />';
                ?>
						<tr class="<?php 
                echo JLMSCSS::_('sectiontableentry' . $k);
                ?>
">
							<td align="center"><?php 
                echo $i + 1;
                ?>
</td>
							<td align="center" valign="middle"><?php 
                if (!$row->folder_flag || $row->folder_flag == 2 || $row->folder_flag == 3) {
                    echo $checked;
                } else {
                    echo '&nbsp;';
                }
                ?>
</td>
							<?php 
                $add_img = '';
                if ($row->tree_mode_num) {
                    $g = 0;
                    $tree_modes[$row->tree_mode_num - 1] = $row->tree_mode;
                    while ($g < $row->tree_mode_num - 1) {
                        $pref = '';
                        if (isset($tree_modes[$g]) && $tree_modes[$g] == 2) {
                            $pref = 'empty_';
                        }
                        $add_img .= "<td width='16' valign='middle'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/treeview/" . $pref . "line.png\" width='16' height='16' /></td>";
                        $g++;
                    }
                    $add_img .= "<td width='16' valign='middle'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/treeview/sub" . $row->tree_mode . ".png\" width='16' height='16' /></td>";
                    $max_tree_width = $max_tree_width - $g - 1;
                }
                echo $add_img;
                ?>
							<td align="center" valign="middle" style="vertical-align:middle " width='16'>
							<?php 
                if ($row->folder_flag == 1) {
                    echo "<span style='text-align:center; font-weight:bold; vertical-align:middle;'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/folder.png\" width='16' height='16' alt='" . _JLMS_LPATH_DOC_ALT_FOLDER . "' /></span>";
                } else {
                    echo "<span style='text-align:center;font-weight:bold; vertical-align:middle;'><img class='JLMS_png' src=\"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/files/" . $row->file_icon . ".png\" width='16' height='16' alt='" . _JLMS_LPATH_DOC_ALT_FILE . "' /></span>";
                }
                ?>
							</td>
							<td align="left" valign="middle" <?php 
                if ($max_tree_width > 0) {
                    echo "colspan='" . ($max_tree_width + 1) . "'";
                }
                ?>
 width="35%">
							<?php 
                if ($row->folder_flag || !$row->folder_flag && !$row->file_id) {
                    echo '<strong>' . $row->doc_name . '</strong>';
                } else {
                    ?>
								<?php 
                    /*<a href="<?php echo sefRelToAbs($link);?>" title="<?php echo _JLMS_LPATH_LINK_DOC_DOWNLOAD;?>"> */
                    echo $row->doc_name;
                    /* </a> */
                }
                ?>
							</td>
							<td><?php 
                $doc_descr = trim(strip_tags($row->doc_description));
                if (strlen($doc_descr) > 75) {
                    $doc_descr = substr($doc_descr, 0, 75) . "...";
                }
                echo $doc_descr ? $doc_descr : '&nbsp;';
                ?>
							</td>
						</tr>
						<?php 
                $k = 3 - $k;
            }
            ?>
					</table>
					<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties">
						<tr>
							<td width="15%"><?php 
            echo _JLMS_PLACE_IN;
            ?>
</td>
							<td><?php 
            echo $lists['lpath_chaps1'];
            ?>
</td>
						</tr>
						<tr>
							<td><br /><?php 
            echo _JLMS_ORDERING;
            ?>
</td>
							<td><br /><?php 
            echo $lists['lpath_order'];
            ?>
</td>
						</tr>
					</table>
					<input type="hidden" name="option" value="<?php 
            echo $option;
            ?>
" />
					<input type="hidden" name="Itemid" value="<?php 
            echo $Itemid;
            ?>
" />
					<input type="hidden" name="task" value="lpath_add_doc" />
					<input type="hidden" name="id" value="<?php 
            echo $lpath_id;
            ?>
" />
					<input type="hidden" name="lpath_id" value="<?php 
            echo $lpath_id;
            ?>
" />
					<input type="hidden" name="course_id" value="<?php 
            echo $course_id;
            ?>
" />
					</form>
<?php 
            echo $tabs->endTab();
        }
        if (!empty($my_links)) {
            echo $tabs->startTab(_JLMS_HEAD_LINK_STR, "jlmstab2");
            echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_LINKS);
            ?>
	<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders">
		<tr>
			<td align="right">
			<?php 
            $toolbar = array();
            $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_link('lpath_add_link');");
            $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_link('cancel_lpath_step');");
            echo JLMS_ShowToolbar($toolbar);
            ?>
			</td>
		</tr>
	</table>
					<form action="<?php 
            echo sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid);
            ?>
" method="post" name="linkForm">
					<table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php 
            echo JLMSCSS::_('jlmslist');
            ?>
">
						<tr>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="1%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
">#</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="1%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
">&nbsp;</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="50%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
"><?php 
            echo _JLMS_LPATH_TBL_HEAD_NAME_LINKS;
            ?>
</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="48%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
"><span style="display:block; width:150px"><?php 
            echo _JLMS_LPATH_TBL_HEAD_DESCR_LINKS;
            ?>
</span></<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
						</tr>
					<?php 
            $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
            $_JLMS_PLUGINS->loadBotGroup('content');
            for ($i = 0, $n = count($my_links); $i < $n; $i++) {
                $plugin_result_array = $_JLMS_PLUGINS->trigger('onContentProcess', array(&$my_links[$i]->link_href));
                $plugin_result_array = $_JLMS_PLUGINS->trigger('onContentProcess', array(&$my_links[$i]->link_name));
            }
            $k = 1;
            for ($i = 0, $n = count($my_links); $i < $n; $i++) {
                $row = $my_links[$i];
                $link = $row->link_href;
                //'javascript:void(0);';//"index.php?option=".$option."&Itemid=".$Itemid."&task=get_file&id=".$row->file_id;
                $checked = '<input type="checkbox" name="cid[]" value="' . $row->id . '" />';
                ?>
						<tr class="<?php 
                echo JLMSCSS::_('sectiontableentry' . $k);
                ?>
">
							<td align="center"><?php 
                echo $i + 1;
                ?>
</td>
							<td><?php 
                echo $checked;
                ?>
</td>
							<td>
								<a target="_blank" href="<?php 
                echo sefRelToAbs($link);
                ?>
" title="<?php 
                echo _JLMS_LPATH_VIEW_LINK;
                ?>
">
									<?php 
                echo $row->link_name;
                ?>
								</a>
							</td>
							<td><?php 
                echo trim($row->link_description) ? $row->link_description : '&nbsp;';
                ?>
</td>
						</tr>
						<?php 
                $k = 3 - $k;
            }
            ?>
					</table>
					<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties">
						<tr>
							<td width="15%"><?php 
            echo _JLMS_PLACE_IN;
            ?>
</td>
							<td><?php 
            echo $lists['lpath_chaps1'];
            ?>
</td>
						</tr>
						<tr>
							<td><br /><?php 
            echo _JLMS_ORDERING;
            ?>
</td>
							<td><br /><?php 
            echo $lists['lpath_order'];
            ?>
</td>
						</tr>
					</table>
					<input type="hidden" name="option" value="<?php 
            echo $option;
            ?>
" />
					<input type="hidden" name="Itemid" value="<?php 
            echo $Itemid;
            ?>
" />
					<input type="hidden" name="task" value="lpath_add_link" />
					<input type="hidden" name="id" value="<?php 
            echo $lpath_id;
            ?>
" />
					<input type="hidden" name="lpath_id" value="<?php 
            echo $lpath_id;
            ?>
" />
					<input type="hidden" name="course_id" value="<?php 
            echo $course_id;
            ?>
" />
					</form>
<?php 
            echo $tabs->endTab();
        }
        if (!empty($my_quizzes)) {
            echo $tabs->startTab(_JLMS_HEAD_QUIZ_STR, "jlmstab3");
            echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_QUIZZES);
            ?>
	<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders">
		<tr>
			<td align="right">
			<?php 
            $toolbar = array();
            $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_quiz('lpath_add_quiz');");
            $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_quiz('cancel_lpath_step');");
            echo JLMS_ShowToolbar($toolbar);
            ?>
			</td>
		</tr>
	</table>
					<form action="<?php 
            echo sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid);
            ?>
" method="post" name="quizForm">
					<table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php 
            echo JLMSCSS::_('jlmslist');
            ?>
">
						<tr>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="1%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
">#</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="1%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
">&nbsp;</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="50%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
"><?php 
            echo _JLMS_LPATH_TBL_HEAD_NAME_QUIZ;
            ?>
</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="48%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
"><span style="display:block; width:150px"><?php 
            echo _JLMS_LPATH_TBL_HEAD_CAT_QUIZ;
            ?>
</span></<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
						</tr>
					<?php 
            $k = 1;
            for ($i = 0, $n = count($my_quizzes); $i < $n; $i++) {
                $row = $my_quizzes[$i];
                // (WARNING) if link will be changed, don't forgot to change target of <a> element
                $link = 'javascript:void(0);';
                //$row->link_href;//"index.php?option=".$option."&Itemid=".$Itemid."&task=get_file&id=".$row->file_id;
                $checked = '<input type="checkbox" name="cid[]" value="' . $row->c_id . '" />';
                ?>
						<tr class="<?php 
                echo JLMSCSS::_('sectiontableentry' . $k);
                ?>
">
							<td align="center"><?php 
                echo $i + 1;
                ?>
</td>
							<td><?php 
                echo $checked;
                ?>
</td>
							<td>
								<a href="<?php 
                echo sefRelToAbs($link);
                ?>
">
									<?php 
                echo $row->c_title;
                ?>
								</a>
							</td>
							<td><?php 
                echo trim($row->c_category) ? $row->c_category : '&nbsp;';
                ?>
</td>
						</tr>
						<?php 
                $k = 3 - $k;
            }
            ?>
					</table>
					<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties">
						<tr>
							<td width="15%"><?php 
            echo _JLMS_PLACE_IN;
            ?>
</td>
							<td><?php 
            echo $lists['lpath_chaps1'];
            ?>
</td>
						</tr>
						<tr>
							<td><br /><?php 
            echo _JLMS_ORDERING;
            ?>
</td>
							<td><br /><?php 
            echo $lists['lpath_order'];
            ?>
</td>
						</tr>
					</table>
					<input type="hidden" name="option" value="<?php 
            echo $option;
            ?>
" />
					<input type="hidden" name="Itemid" value="<?php 
            echo $Itemid;
            ?>
" />
					<input type="hidden" name="task" value="lpath_add_quiz" />
					<input type="hidden" name="id" value="<?php 
            echo $lpath_id;
            ?>
" />
					<input type="hidden" name="lpath_id" value="<?php 
            echo $lpath_id;
            ?>
" />
					<input type="hidden" name="course_id" value="<?php 
            echo $course_id;
            ?>
" />
					</form>
<?php 
            echo $tabs->endTab();
        }
        if (!empty($my_scorms)) {
            echo $tabs->startTab(_JLMS_LPATH_SCORM_OBJECTS, "jlmstab4");
            echo JLMSCSS::h2(_JLMS_LPATH_TITLE_ADD_SCORMS);
            ?>
	<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_table_no_borders">
		<tr>
			<td align="right">
			<?php 
            $toolbar = array();
            $toolbar[] = array('btn_type' => 'save', 'btn_js' => "javascript:submitbutton_scorm('lpath_add_scorm');");
            $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => "javascript:submitbutton_scorm('cancel_lpath_step');");
            echo JLMS_ShowToolbar($toolbar);
            ?>
			</td>
		</tr>
	</table>
					<form action="<?php 
            echo sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid);
            ?>
" method="post" name="scormForm">
					<table width="100%" cellpadding="0" cellspacing="0" border="0" class="<?php 
            echo JLMSCSS::_('jlmslist');
            ?>
">
						<tr>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="1%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
">#</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="1%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
">&nbsp;</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
							<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 width="98%" class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
"><?php 
            echo _JLMS_LPATH_SCORM_OBJECT;
            ?>
</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
>
						</tr>
					<?php 
            $k = 1;
            for ($i = 0, $n = count($my_scorms); $i < $n; $i++) {
                $row = $my_scorms[$i];
                // (WARNING) if link will be changed, don't forgot to change target of <a> element
                $link = 'javascript:void(0);';
                //$row->link_href;//"index.php?option=".$option."&Itemid=".$Itemid."&task=get_file&id=".$row->file_id;
                $checked = '<input type="checkbox" name="cid[]" value="' . $row->id . '" />';
                ?>
						<tr class="<?php 
                echo JLMSCSS::_('sectiontableentry' . $k);
                ?>
">
							<td align="center"><?php 
                echo $i + 1;
                ?>
</td>
							<td><?php 
                if (!isset($row->is_link)) {
                    echo $checked;
                }
                ?>
</td>
							<td>
							
							<?php 
                if (!isset($row->is_link)) {
                    ?>
								<a href="<?php 
                    echo sefRelToAbs($link);
                    ?>
">
							<?php 
                }
                ?>
	
									<?php 
                echo $row->lpath_name;
                ?>
									
							<?php 
                if (!isset($row->is_link)) {
                    ?>
		
								</a>
							<?php 
                }
                ?>
	
							</td>
						</tr>
						<?php 
                $k = 3 - $k;
            }
            ?>
					</table>
					<table width="100%" cellpadding="0" cellspacing="0" border="0" class="jlms_item_properties">
						<tr>
							<td width="15%"><?php 
            echo _JLMS_PLACE_IN;
            ?>
</td>
							<td><?php 
            echo $lists['lpath_chaps1'];
            ?>
</td>
						</tr>
						<tr>
							<td><br /><?php 
            echo _JLMS_ORDERING;
            ?>
</td>
							<td><br /><?php 
            echo $lists['lpath_order'];
            ?>
</td>
						</tr>
					</table>
					<input type="hidden" name="option" value="<?php 
            echo $option;
            ?>
" />
					<input type="hidden" name="Itemid" value="<?php 
            echo $Itemid;
            ?>
" />
					<input type="hidden" name="task" value="lpath_add_scorm" />
					<input type="hidden" name="id" value="<?php 
            echo $lpath_id;
            ?>
" />
					<input type="hidden" name="lpath_id" value="<?php 
            echo $lpath_id;
            ?>
" />
					<input type="hidden" name="course_id" value="<?php 
            echo $course_id;
            ?>
" />
					</form>
<?php 
            echo $tabs->endTab();
        }
        echo $tabs->endPane();
        JLMS_TMPL::CloseTS();
        JLMS_TMPL::CloseMT();
    }
    function showCourseDetails($id, &$row, &$params, $option, &$lists, $view_type = 'view')
    {
        $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
        global $Itemid, $my, $JLMS_CONFIG, $JLMS_SESSION;
        $count_modules = 0;
        $JLMS_ACL =& JLMSFactory::getACL();
        if ($JLMS_ACL->GetRole() && !$JLMS_ACL->isStaff()) {
            if ($params->get('homework_view') && $JLMS_CONFIG->get('course_homework')) {
                $count_modules++;
            }
            if ($params->get('agenda_view')) {
                $count_modules++;
            }
            if ($params->get('dropbox_view')) {
                $count_modules++;
            }
            if ($params->get('mailbox_view')) {
                $count_modules++;
            }
            if ($params->get('certificates_view')) {
                $count_modules++;
            }
            if ($params->get('latest_forum_posts_view')) {
                $count_modules++;
            }
            if ($count_modules) {
                ?>
		
		<?php 
            }
        }
        JLMS_TMPL::OpenMT();
        $hparams = array();
        if ($view_type == 'view') {
            $hparams['simple_menu'] = true;
            $hparams['sys_msg'] = _JLMS_MESSAGE_SHORT_COURSE_INFO;
        }
        if ($view_type == 'offerWL') {
            $hparams['sys_msg'] = _JLMS_MESSAGE_OFFER_JOIN_WAITING_LIST;
        } elseif ($view_type == 'inWL') {
            $hparams['sys_msg'] = _JLMS_MESSAGE_ALREADY_IN_WATING_LIST;
            $JLMS_CONFIG->set('enableterms', 0);
        }
        if ($JLMS_SESSION->get('joomlalms_just_joined', 0)) {
            if (isset($hparams['sys_msg'])) {
                $hparams['sys_msg'] = $JLMS_SESSION->get('joomlalms_sys_message', '') . '<br />' . $hparams['sys_msg'];
            } else {
                $hparams['sys_msg'] = $JLMS_SESSION->get('joomlalms_sys_message', '');
            }
            $JLMS_SESSION->clear('joomlalms_just_joined');
        }
        $toolbar = array();
        $JLMS_ACL =& JLMSFactory::getACL();
        if ($JLMS_ACL->CheckPermissions('course', 'manage_settings')) {
            $toolbar[] = array('btn_type' => 'newtopic', 'btn_js' => "index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=add_topic&amp;id={$id}", 'btn_str' => _JLMS_TOPIC_T_ADD);
            $toolbar[] = array('btn_type' => 'settings', 'btn_js' => sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=settings&amp;id={$id}"));
            $toolbar[] = array('btn_type' => 'edit', 'btn_js' => ampReplace(sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=edit_course&amp;id={$id}&amp;is_inside=1")));
        } elseif ($view_type == 'view' || $view_type == 'offerWL' || $view_type == 'inWL') {
            $hparams['simple_menu'] = true;
            if ($my->id && $row->self_reg && JLMS_checkCourseGID($my->id, $row->gid)) {
                //check that enrollment is available and user gid is allowed
                if ($row->paid) {
                    if ($view_type != 'inWL') {
                        $toolbar[] = array('btn_type' => 'yes', 'btn_str' => _JLMS_SUBSCRIBE, 'btn_js' => "javascript:submitbutton('subscription','');");
                    }
                } else {
                    if ($view_type != 'inWL') {
                        $toolbar[] = array('btn_type' => 'yes', 'btn_str' => _JLMS_SUBSCRIBE, 'btn_js' => "javascript:submitbutton('course_subscribe','');");
                    }
                }
                if ($view_type != 'inWL') {
                    $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=courses"));
                } else {
                    $toolbar[] = array('btn_type' => 'back', 'btn_js' => sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=courses"));
                }
                $hparams['toolbar_position'] = 'center';
                $html_code_before_toolbar = "\n\t\t\t\t<form action='" . sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}") . "' method='post' name='adminForm_enroll'>\n\t\t\t\t<script language='javascript' type='text/javascript'>\n\t\t\t\t\t<!--\n\n\t\t\t\t\tfunction submitbutton(pressbutton) {\n\t\t\t\t\t\tvar form = document.adminForm_enroll;";
                if ($JLMS_CONFIG->get('enableterms') && !$row->paid) {
                    $html_code_before_toolbar .= "\n\t\t\t\t\t\tif( (pressbutton == 'course_subscribe') && (document.getElementById('jlms_agreement').checked == false) ){\n\t\t\t\t\t\t\talert( '" . addslashes(_JLMS_AGREEMENT) . "' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tform.task.value = pressbutton;\n\t\t\t\t\t\t\tform.submit();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t";
                } else {
                    $html_code_before_toolbar .= "\n\t\t\t\t\t\t\tform.task.value = pressbutton;\n\t\t\t\t\t\t\tform.submit();\n\t\t\t\t\t";
                }
                $html_code_before_toolbar .= "\n\t\t\t\t\t\t\t}\n\t\t\t\t\t//-->\n\t\t\t\t\t</script>\n\t\t\t\t\t";
                if ($JLMS_CONFIG->get('enableterms') && !$row->paid) {
                    $html_code_before_toolbar .= "\n\t\t\t\t\t<table align='center' class='jlms_table_no_borders'><tr><td width='20'>\n\t\t\t\t\t\t<input type='checkbox' name='agreement' id='jlms_agreement' />\n\t\t\t\t\t</td><td style='text-align:left'>\n\t\t\t\t\t\t<label for='jlms_agreement'>" . $JLMS_CONFIG->get('jlms_terms') . "</label>\n\t\t\t\t\t</td></tr></table>\n\t\t\t\t\t";
                }
                if ($row->paid) {
                    $html_code_before_toolbar .= "\n\t\t\t\t\t\t<input type='hidden' name='option' value='" . $option . "' />\n\t\t\t\t\t\t<input type='hidden' name='Itemid' value='" . $Itemid . "' />\n\t\t\t\t\t\t<input type='hidden' name='task' value='subscription' />\n\t\t\t\t\t\t<input type='hidden' name='cid[]' value='" . $row->id . "' />\n\t\t\t\t\t\t<input type='hidden' name='state' value='0' />\n\t\t\t\t\t\t</form>\n\t\t\t\t\t";
                } else {
                    $html_code_before_toolbar .= "\n\t\t\t\t\t\t<input type='hidden' name='option' value='" . $option . "' />\n\t\t\t\t\t\t<input type='hidden' name='Itemid' value='" . $Itemid . "' />\n\t\t\t\t\t\t<input type='hidden' name='task' value='courses' />\n\t\t\t\t\t\t<input type='hidden' name='id' value='" . $row->id . "' />\n\t\t\t\t\t\t<input type='hidden' name='state' value='0' />\n\t\t\t\t\t\t</form>\n\t\t\t\t\t";
                }
                $hparams['html_code_before_toolbar'] = $html_code_before_toolbar;
            } else {
                $toolbar[] = array('btn_type' => 'back', 'btn_js' => sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=courses"));
            }
        } elseif ($view_type == 'future_course') {
            $hparams['simple_menu'] = true;
            if ($row->publish_start) {
                $hparams['sys_msg'] = str_replace('{date}', JLMS_dateToDisplay($row->start_date), _JLMS_COURSE_IS_PENDING_MSG);
            } else {
                $query = "SELECT start_date FROM #__lms_users_in_groups WHERE course_id = " . $row->id . " AND user_id = " . $my->id;
                global $JLMS_DB;
                $JLMS_DB->SetQuery($query);
                $user_start = $JLMS_DB->LoadResult();
                $hparams['sys_msg'] = str_replace('{date}', JLMS_dateToDisplay($user_start), _JLMS_COURSE_USER_IS_PENDING);
            }
        }
        JLMS_TMPL::ShowHeader('course', _JLMS_COURSES_DETAILS, $hparams, $toolbar);
        $_JLMS_PLUGINS->loadBotGroup('system');
        $plugin_args = array();
        $plugin_args[] = $id;
        $_JLMS_PLUGINS->trigger('onAboveCourseDetailsPage', $plugin_args);
        if ($JLMS_ACL->GetRole() && !$JLMS_ACL->isStaff() && $count_modules) {
            $custom_sections = array();
            if ($JLMS_CONFIG->get('course_homework') && $params->get('homework_view')) {
                $txt = JLMS_showMyHomeWork($option, $Itemid, $lists['my_hw']);
                $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"');
            }
            if ($params->get('agenda_view')) {
                $txt = JLMS_showMyAgenda($option, $Itemid, $lists['my_announcements']);
                $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"');
            }
            if ($params->get('dropbox_view')) {
                $txt = JLMS_showMyDropBox($option, $Itemid, $lists['my_dropbox'], $lists);
                $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"');
            }
            if ($params->get('mailbox_view')) {
                $txt = JLMS_showMyMailBox($option, $Itemid, $lists['my_mailbox'], $lists);
                $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"');
            }
            if ($params->get('certificates_view')) {
                $txt = JLMS_showMyCertificates($option, $Itemid, $lists['my_certificates'], $lists);
                $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"');
            }
            if ($JLMS_CONFIG->get('plugin_forum') && $params->get('latest_forum_posts_view')) {
                $txt = JLMS_showLatestForumPosts($option, $Itemid, $lists['latest_forum_posts'], $lists);
                $custom_sections[] = array('text' => $txt, 'attrib' => ' valign="top"');
            }
            JLMS_TMPL::ShowCustomSection($custom_sections, 1, 1);
        }
        $show_description = true;
        if ($JLMS_ACL->GetRole() && !$JLMS_ACL->isStaff()) {
            if (!$params->get('show_description', 1)) {
                $show_description = false;
            }
        }
        if ($show_description) {
            $text = JLMS_ShowText_WithFeatures($row->course_description);
            JLMS_TMPL::ShowSection($text);
        }
        //$_JLMS_PLUGINS->loadBotGroup('system');
        $plugin_args = array();
        $plugin_args[] = $id;
        $_JLMS_PLUGINS->trigger('onBelowCourseDescription', $plugin_args);
        /*Fix short course description + all comments*/
        if (isset($lists['short']) && !$lists['short']) {
            if ($JLMS_ACL->GetRole() && !$JLMS_ACL->isStaff()) {
                //show topics of the course
                global $JLMS_DB;
                $query = "SELECT count(*) FROM #__lms_topics WHERE course_id = {$id}";
                $JLMS_DB->SetQuery($query);
                $is_any_topic = $JLMS_DB->LoadResult();
                if ($is_any_topic) {
                    JLMS_TMPL::OpenTS();
                    $course = new JLMS_Course_HomePage($id);
                    $course->listTopics();
                    JLMS_TMPL::CloseTS();
                }
            }
        }
        //$_JLMS_PLUGINS->loadBotGroup('system');
        $plugin_args = array();
        $plugin_args[] = $id;
        $_JLMS_PLUGINS->trigger('onBelowCourseDetailsPage', $plugin_args);
        JLMS_TMPL::CloseMT();
    }
function JQ_PrintResultForPDF($sid)
{
    global $JLMS_DB;
    $str = "";
    $query = "SELECT sq.*, q.*, u.* FROM #__lms_quiz_r_student_quiz AS sq, #__lms_quiz_t_quiz AS q, #__users AS u" . "\n WHERE sq.c_id = '" . $sid . "' AND sq.c_quiz_id = q.c_id AND sq.c_student_id = u.id";
    $JLMS_DB->SetQuery($query);
    $info = $JLMS_DB->LoadAssocList();
    $info = $info[0];
    $quiz_id = $info['c_quiz_id'];
    $query = "SELECT quest_id FROM #__lms_quiz_r_student_quiz_pool WHERE start_id = " . $sid;
    $JLMS_DB->SetQuery($query);
    $stu_quests = $JLMS_DB->loadResultArray();
    if (count($stu_quests)) {
        $stu_quests_str = implode(',', $stu_quests);
        $query = "SELECT sum(c_point) AS total_score FROM #__lms_quiz_t_question WHERE c_id IN ({$stu_quests_str})";
        $JLMS_DB->SetQuery($query);
        $total = $JLMS_DB->LoadResult();
    } else {
        $query = "SELECT sum(c_point) AS total_score FROM #__lms_quiz_t_question WHERE c_quiz_id = '" . $quiz_id . "'";
        $JLMS_DB->SetQuery($query);
        $total = $JLMS_DB->LoadResult();
    }
    $passing_score_suffix = '';
    if (isset($info['c_passing_score']) && $info['c_passing_score']) {
        $pass_score = $info['c_passing_score'] * $total / 100;
        $pass_score_ceiled = ceil($pass_score);
        //TODO: add new language variable for 'point/points' ; 'ochko/ochka/ochkov'
        $points_str = 'points';
        $passing_score_suffix = ' (' . $pass_score_ceiled . ' ' . $points_str . ')';
    }
    $str .= "<strong>Quiz Title: </strong>" . $info['c_title'] . "<br>";
    $str .= "<strong>User Name: </strong>" . $info['username'] . "<br>";
    $str .= "<strong>Name: </strong>" . $info['name'] . "<br>";
    $str .= "<strong>User Email: </strong>" . $info['email'] . '<br>';
    $str .= "<strong>User Score: </strong>" . $info['c_total_score'] . "<br>";
    $str .= "<strong>Total Score: </strong>" . $total . "<br>";
    $str .= "<strong>Passing Score: </strong>" . $info['c_passing_score'] . "%" . $passing_score_suffix . "<br>";
    $tot_min = floor($info['c_total_time'] / 60);
    $tot_sec = $info['c_total_time'] - $tot_min * 60;
    $str .= "The user spent <strong>" . str_pad($tot_min, 2, "0", STR_PAD_LEFT) . ":" . str_pad($tot_sec, 2, "0", STR_PAD_LEFT) . "</strong> time taking the quiz <br>";
    if ($info['c_passed'] == 1) {
        $str .= $info['name'] . " has <strong>passed</strong> the quiz<br>";
    } else {
        $str .= $info['name'] . " has <strong>not passed</strong> the quiz<br>";
    }
    /*Integration Plugin Percentiles*/
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $_JLMS_PLUGINS->loadBotGroup('system');
    $data = new stdClass();
    $data->course_id = $info['course_id'];
    $data->quiz_id = $info['c_quiz_id'];
    $data->user_id = $info['c_student_id'];
    if ($out_plugin = $_JLMS_PLUGINS->trigger('onQuizFinish', array($data))) {
        if (count($out_plugin)) {
            $percentiles = $out_plugin[0];
            $percent = $percentiles->percent . '%';
            $str .= "<strong>Percentiles: </strong>" . $percent . "<br>";
        }
    }
    /*Integration Plugin Percentiles*/
    $query = "SELECT lqrsq.c_id FROM #__lms_quiz_r_student_question as lqrsq, #__lms_quiz_t_question as lqtq" . "\n WHERE 1" . "\n AND lqrsq.c_stu_quiz_id = '" . $sid . "'" . "\n AND lqtq.c_id = lqrsq.c_question_id" . "\n ORDER BY lqtq.ordering";
    $JLMS_DB->SetQuery($query);
    $info = $JLMS_DB->LoadObjectList();
    $total = count($info);
    $tr = array();
    $i = 0;
    for ($k1 = 0; $k1 < $total; $k1++) {
        $data = JQ_GetResults($info[$k1]->c_id);
        if (isset($data['c_question'])) {
            $tr[$i] = array();
            //$as = $tr[$i];
            $tr[$i]['#'] = $i + 1;
            $tr[$i]['Questions'] = trim(strip_tags(JLMS_ShowText_WithFeatures($data['c_question'])));
            //."[".$data['c_score'].'/'.$data['c_point']."]";
            $type = $data['c_type'];
            $answer = '';
            $text_answer = '';
            if ($type == 1 || $type == 2 || $type == 3 || $type == 12 || $type == 13) {
                for ($j = 0, $k = 'a'; $j < count($data['c_choice']); $j++, $k++) {
                    if ($data['c_choice'][$j]['c_choice_id']) {
                        $answer .= $k;
                    }
                    $text_answer .= "<strong>{$k})</strong> " . $data['c_choice'][$j]['c_choice'] . "<br />";
                }
                $text_answer .= '<br />Answer: ' . $answer;
            } elseif ($type == 4 || $type == 5) {
                for ($j = 0, $k = 'a'; $j < count($data['c_matching']); $j++, $k++) {
                    $text_answer .= "<strong>{$k})</strong> " . $data['c_matching'][$j]['c_left_text'] . " ";
                    $text_answer .= "&nbsp;&nbsp;" . $data['c_matching'][$j]['c_sel_text'] . "<br />";
                }
            } elseif ($type == 6) {
                $text_answer .= $data['c_blank']['c_answer'];
            } elseif ($type == 7) {
                if ($data['c_score']) {
                    $answer = 'right';
                } else {
                    $answer = 'wrong';
                }
                $text_answer .= $answer;
            } elseif ($type == 8) {
                $text_answer .= $data['c_survey']['c_answer'];
            } elseif ($type == 9) {
                for ($j = 0; $j < count($data['c_scale']); $j++) {
                    $mpz = $data['c_scale'][$j];
                    $text_answer .= "<strong>" . $mpz->fq . "</strong> - ";
                    $text_answer .= $mpz->fa . '<br>';
                }
            } elseif ($type == 10) {
            } elseif ($type == 11) {
                for ($j = 0, $k = 'a'; $j < count($data['c_matching']); $j++, $k++) {
                    $text_answer .= "<strong>{$k})</strong>&nbsp;" . $data['c_matching'][$j]['c_left_text'] . "";
                    $text_answer .= "&nbsp;&nbsp;" . $data['c_matching'][$j]['c_sel_text'] . "<br />";
                }
            }
            $tr[$i]['Answers'] = $text_answer;
            $tr[$i]['Points'] = $data['c_score'] . ' / ' . $data['c_point'];
            $i++;
        }
    }
    $str .= "";
    /*
    // convert UTF symbols to ISO (Joomla 1.5.x only)
    if (class_exists('JFactory')) {
    	global $JLMS_CONFIG;
    	$cur_lang = strtolower($JLMS_CONFIG->get('default_language', 'english'));
    	$sup_iso_languages_pre = array('english', 'danish', 'french', 'german', 'italian', 'norwegian', 'spanish', 'dutch');
    	$sup_iso_languages = $JLMS_CONFIG->get('iso88591_compat_languages', $sup_iso_languages_pre);
    	if (in_array($cur_lang, $sup_iso_languages) || $cur_lang ==  "english" ) {
    		if (function_exists('utf8_decode')) {
    			$do_utf = true;
    			$utf_method = 'utf8_encode';
    			$str = utf8_decode($str);
    			for ($ii = 0; $ii <= $i; $ii ++ ) {
    				if (isset($tr[$ii]['Answers'])) {
    					$tr[$ii]['Answers'] = utf8_decode($tr[$ii]['Answers']);
    				}
    				if (isset($tr[$ii]['Questions'])) {
    					$tr[$ii]['Questions'] = utf8_decode($tr[$ii]['Questions']);
    				}
    			}
    		}
    	}
    }
    */
    $str_arr->header = $str;
    $str_arr->table = $tr;
    $str_arr->colsWidths = array('#' => 10, 'Answers' => 40, 'Questions' => 40, 'Points' => 10);
    //	echo '<pre>';
    //	print_r($str_arr);
    //	echo '</pre>';
    //	die;
    return $str_arr;
}
    function showCourseGuest($id, &$row, $option, $enrollment)
    {
        $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
        $JLMS_CONFIG =& JLMSFactory::getConfig();
        $Itemid = $JLMS_CONFIG->get('Itemid');
        JLMS_TMPL::OpenMT();
        $params = array('show_menu' => true, 'simple_menu' => true);
        $toolbar = array();
        $show_down_back = true;
        if ($enrollment) {
            if ($row->self_reg && !$row->gid) {
                $params['sys_msg'] = _JLMS_COURSES_ENROLL_MSG;
                $toolbar[] = array('btn_type' => 'yes', 'btn_str' => _JLMS_SUBSCRIBE, 'btn_js' => "javascript:submitbutton('subscription','');");
                $toolbar[] = array('btn_type' => 'cancel', 'btn_js' => sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=courses"));
                $params['toolbar_position'] = 'center';
                $show_down_back = false;
                $html_code_before_toolbar = "\n\t\t\t\t<form action='" . sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}") . "' method='post' name='adminForm_enroll'>\n\t\t\t\t<script language='javascript' type='text/javascript'>\n\t\t\t\t\t<!--\n\t\t\t\t\t\n\t\t\t\t\tfunction submitbutton(pressbutton) {\n\t\t\t\t\t\tvar form = document.adminForm_enroll;\n\t\t\t\t\t\tform.task.value = pressbutton;\n\t\t\t\t\t\tform.submit();\n\t\t\t\t\t}\n\t\t\t\t\t//-->\n\t\t\t\t</script>\n\t\t\t\t";
                /*if ($row->paid) {
                			$html_code_before_toolbar .= "
                				<input type='hidden' name='option' value='".$option."' />
                				<input type='hidden' name='Itemid' value='".$Itemid."' />
                				<input type='hidden' name='task' value='subscription' />
                				<input type='hidden' name='cid[]' value='".$row->id."' />
                				<input type='hidden' name='state' value='0' />
                				</form>
                			";
                		} else {*/
                $html_code_before_toolbar .= "\n\t\t\t\t\t\t<input type='hidden' name='option' value='" . $option . "' />\n\t\t\t\t\t\t<input type='hidden' name='Itemid' value='" . $Itemid . "' />\n\t\t\t\t\t\t<input type='hidden' name='task' value='courses' />\n\t\t\t\t\t\t<input type='hidden' name='id' value='" . $row->id . "' />\n\t\t\t\t\t\t<input type='hidden' name='cid[]' value='" . $row->id . "' />\n\t\t\t\t\t\t<input type='hidden' name='state' value='0' />\n\t\t\t\t\t\t</form>\n\t\t\t\t\t";
                //}
                $params['html_code_before_toolbar'] = $html_code_before_toolbar;
            }
        }
        JLMS_TMPL::ShowHeader('course', $row->course_name, $params, $toolbar);
        JLMS_TMPL::OpenTS('', ' width="100%"');
        ?>
				<table cellpadding="0" cellspacing="0" border="0" width="100%" id="jlms_course_desc_guest">
					<?php 
        $_JLMS_PLUGINS->loadBotGroup('system');
        $plugin_args = array();
        $plugin_args[] = $id;
        $_JLMS_PLUGINS->trigger('onAboveCourseDetailsPage', $plugin_args);
        ?>
					<tr>
						<td>
						<?php 
        echo JLMS_ShowText_WithFeatures($row->course_description);
        ?>
						</td>
					</tr>
					<?php 
        //$_JLMS_PLUGINS->loadBotGroup('system');
        $plugin_args = array();
        $plugin_args[] = $id;
        $_JLMS_PLUGINS->trigger('onBelowCourseDetailsPage', $plugin_args);
        ?>
				</table>
		<?php 
        JLMS_TMPL::CloseTS();
        if ($show_down_back) {
            JLMS_TMPL::OpenTS('', ' style="text-align:center"');
            ?>
			<br /><br /><a class="back_button" href="<?php 
            echo sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}");
            ?>
"><?php 
            echo _JLMS_TXT_BACK;
            ?>
</a>
		<?php 
            JLMS_TMPL::CloseTS();
        }
        JLMS_TMPL::CloseMT();
    }
function JLMS_tchangeHW($course_id, $option)
{
    $JLMS_CONFIG =& JLMSFactory::getConfig();
    $Itemid = $JLMS_CONFIG->get('Itemid');
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $db =& JFactory::getDbo();
    $user_id = intval(mosGetParam($_REQUEST, 'user_id', 0));
    $JLMS_ACL =& JLMSFactory::getACL();
    if ($course_id && $user_id && $JLMS_ACL->CheckPermissions('homework', 'manage')) {
        $state = intval(mosGetParam($_REQUEST, 'state', 0));
        if ($state != 1) {
            $state = 0;
        }
        //$state = 1;
        $cid = mosGetParam($_REQUEST, 'cid', array(0));
        $cid2 = intval(mosGetParam($_REQUEST, 'cid2', 0));
        if ($cid2) {
            $cid = array();
            $cid[] = $cid2;
        }
        if (!is_array($cid)) {
            $cid = array(0);
        }
        if (!is_array($cid) || count($cid) < 1) {
            $action = 1 ? 'Publish' : 'Unpublish';
            echo "<script> alert('Select an item to {$action}'); window.history.go(-1);</script>\n";
            exit;
        }
        $cid1 = array();
        $cid1[] = $cid[0];
        $cids = implode(',', $cid1);
        //$now = date( 'Y-m-d', time() );
        //check rights to change id's
        $query = "SELECT id FROM #__lms_homework WHERE course_id = '" . $course_id . "'" . "\n AND id IN ( {$cids} )";
        $db->SetQuery($query);
        $cid = $db->LoadResultArray();
        if (!is_array($cid)) {
            $cid = array(0);
        }
        $cids = implode(',', $cid);
        $query = "SELECT hw_id FROM #__lms_homework_results WHERE course_id = '" . $course_id . "' AND user_id = '" . $user_id . "' AND hw_id IN ( {$cids} )";
        $db->SetQuery($query);
        $pre_cids = $db->LoadResultArray();
        if (!count($pre_cids)) {
            $pre_cids = array(0);
        }
        $upd_cid = array_intersect($cid, $pre_cids);
        $ins_cid = array_diff($cid, $pre_cids);
        $now = date('Y-m-d H:i:s');
        if (!$state) {
            $now = '';
        }
        $hw_id_notify = 0;
        if (count($upd_cid)) {
            $cids = implode(',', $upd_cid);
            if (isset($upd_cid[0]) && $upd_cid[0]) {
                $hw_id_notify = $upd_cid[0];
            }
            $query = "UPDATE #__lms_homework_results" . "\n SET hw_status = {$state}, hw_date = '" . $now . "'" . "\n WHERE hw_id IN ( {$cids} ) AND course_id = {$course_id} AND user_id = '" . $user_id . "'";
            $db->setQuery($query);
            if (!$db->query()) {
                echo "<script> alert('" . $db->getErrorMsg() . "'); window.history.go(-1); </script>\n";
                exit;
            }
        }
        if (count($ins_cid)) {
            if (isset($ins_cid[0]) && $ins_cid[0]) {
                $hw_id_notify = $ins_cid[0];
            }
            $query = "INSERT INTO #__lms_homework_results (course_id, user_id, hw_id, hw_status, hw_date) VALUES ";
            $t = 0;
            foreach ($ins_cid as $ins_id) {
                $query .= "\n ({$course_id}, " . $user_id . ", " . $ins_id . ", {$state}, '" . $now . "')" . ($t < count($ins_cid) - 1 ? ',' : '');
                $t++;
            }
            $db->setQuery($query);
            if (!$db->query()) {
                echo "<script> alert('" . $db->getErrorMsg() . "'); window.history.go(-1); </script>\n";
                exit;
            }
        }
        if ($state && $hw_id_notify) {
            //*** email notification about new homework submission
            $e_course = new stdClass();
            $e_course->course_alias = '';
            $e_course->course_name = '';
            $query = "SELECT course_name, name_alias FROM #__lms_courses WHERE id = '" . $course_id . "'";
            $db->setQuery($query);
            $e_course = $db->loadObject();
            $query = "SELECT hw_name FROM #__lms_homework WHERE id = '" . $hw_id_notify . "'";
            $db->setQuery($query);
            $e_hw_name = $db->loadResult();
            $e_user = new stdClass();
            $e_user->name = '';
            $e_user->email = '';
            $e_user->username = '';
            $query = "SELECT email, name, username FROM #__users WHERE id = '" . $user_id . "'";
            $db->setQuery($query);
            $e_user = $db->loadObject();
            $e_params['user_id'] = $user_id;
            $e_params['course_id'] = $course_id;
            $e_params['markers']['{email}'] = $e_user->email;
            $e_params['markers']['{name}'] = $e_user->name;
            $e_params['markers']['{username}'] = $e_user->username;
            $e_params['markers']['{coursename}'] = $e_course->course_name;
            //( $e_course->course_alias )?$e_course->course_alias:$e_course->course_name;
            $e_params['markers']['{homeworkname}'] = $e_hw_name;
            $e_params['markers']['{courselink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}&task=details_course&id={$course_id}");
            $e_params['markers_nohtml']['{courselink}'] = $e_params['markers']['{courselink}'];
            $e_params['markers']['{courselink}'] = '<a href="' . $e_params['markers']['{courselink}'] . '">' . $e_params['markers']['{courselink}'] . '</a>';
            $e_params['markers']['{lmslink}'] = 'OnCSVImportUser';
            $e_params['markers']['{lmslink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}");
            $e_params['markers_nohtml']['{lmslink}'] = $e_params['markers']['{lmslink}'];
            $e_params['markers']['{lmslink}'] = '<a href="' . $e_params['markers']['{lmslink}'] . '">' . $e_params['markers']['{lmslink}'] . '</a>';
            $e_params['action_name'] = 'OnHomeworkReview';
            $_JLMS_PLUGINS->loadBotGroup('emails');
            $plugin_result_array = $_JLMS_PLUGINS->trigger('OnHomeworkReview', array(&$e_params));
            //*** end of emails
        }
    }
    JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=hw_stats&course_id={$course_id}&id={$cid[0]}"));
}
    function showTopic($course_id, $topic_id, $row, $lists)
    {
        global $option, $Itemid, $JLMS_CONFIG;
        JLMS_TMPL::OpenMT();
        $hparams = array();
        $toolbar = array();
        $title = isset($row->id) ? $row->name : '';
        $toolbar[] = array('btn_type' => 'back', 'btn_js' => "javascript:submitbutton('cancel_topic');");
        JLMS_TMPL::ShowHeader('doc', $title, $hparams, $toolbar);
        JLMS_TMPL::OpenTS();
        ?>
		<form action="<?php 
        echo sefRelToAbs("index.php?option=" . $option . "&amp;Itemid=" . $Itemid);
        ?>
" method="post" name="adminForm" enctype="multipart/form-data">
			<input type="hidden" name="option" value="<?php 
        echo $option;
        ?>
" />
			<input type="hidden" name="Itemid" value="<?php 
        echo $Itemid;
        ?>
" />
			<input type="hidden" name="task" value="details_course" />
			<input type="hidden" name="boxchecked" value="0" />
			<input type="hidden" name="weekly" value="0" />
			<input type="hidden" name="course_id" value="<?php 
        echo $course_id;
        ?>
" />
			<input type="hidden" name="id" value="<?php 
        echo $row->id;
        ?>
" />
		</form>
		<?php 
        echo JLMS_ShowText_WithFeatures($row->description);
        ?>
		<?php 
        JLMS_TMPL::CloseTS();
        $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
        $_JLMS_PLUGINS->loadBotGroup('system');
        $plugin_args = array();
        $plugin_args[] = $row->id;
        $_JLMS_PLUGINS->trigger('onBelowTopicPage', $plugin_args);
        JLMS_TMPL::CloseMT();
    }
 function JQ_FinishQuiz_nojs()
 {
     global $JLMS_DB, $my, $Itemid, $option, $Itemid;
     $ret_str = '';
     $quiz_id = intval(mosGetParam($_REQUEST, 'quiz', 0));
     $id = intval(mosGetParam($_REQUEST, 'id', 0));
     $query = "SELECT * FROM #__lms_quiz_t_quiz WHERE c_id = '" . $quiz_id . "'";
     $JLMS_DB->SetQuery($query);
     $quiz = $JLMS_DB->LoadObjectList();
     if (count($quiz)) {
         $quiz = $quiz[0];
     } else {
         return $ret_str;
     }
     $quiz_params = new JLMSParameters($quiz->params);
     $inside_lp = intval(mosGetParam($_REQUEST, 'inside_lp', 0));
     $QA = new JLMS_quiz_API($quiz_id, $inside_lp);
     if (!$QA->quiz_valid()) {
         return '';
     }
     //		$toolbar_no_a = $QA->quiz_Get_NoAtToolbar();
     $stu_quiz_id = intval(mosGetParam($_REQUEST, 'stu_quiz_id', 0));
     $user_unique_id = strval(mosGetParam($_REQUEST, 'user_unique_id', ''));
     $QA->set('stu_quiz_id', $stu_quiz_id);
     $QA->set('user_unique_id', $user_unique_id);
     $QA->quiz_ProcessStartData();
     if ($QA->start_valid() && $quiz_id) {
         // temporary fo compatibility
         // (25 April 2007 commented) $quiz = $QA->quiz_data;
         //print_r($stu_quiz_id);
         $query = "SELECT SUM(c_score) FROM #__lms_quiz_r_student_question WHERE c_stu_quiz_id = '" . $stu_quiz_id . "'";
         $JLMS_DB->SetQuery($query);
         $user_score = $JLMS_DB->LoadResult();
         if (!$user_score) {
             $user_score = 0;
         }
         /*$query = "SELECT SUM(c_point) FROM #__lms_quiz_t_question WHERE c_quiz_id = '".$quiz_id."'";
         		$JLMS_DB->SetQuery( $query );
         		$max_score = $JLMS_DB->LoadResult();*/
         $max_score = $QA->quiz_Get_MaxScore();
         $nugno_score = $QA->get_qvar('c_passing_score', 0) * $max_score / 100;
         $user_passed = 0;
         if ($user_score >= $nugno_score) {
             $user_passed = 1;
         }
         $user_time = 0;
         $quiz_time1 = time() - date('Z');
         $query = "SELECT c_date_time FROM #__lms_quiz_r_student_quiz WHERE c_id = '" . $stu_quiz_id . "'";
         $JLMS_DB->SetQuery($query);
         $quiz_time2 = $JLMS_DB->LoadResult();
         $quiz_time2a = strtotime($quiz_time2);
         $user_time = $quiz_time1 - $quiz_time2a;
         $query = "UPDATE #__lms_quiz_r_student_quiz SET c_total_score = '" . $user_score . "', c_passed = '" . $user_passed . "', c_total_time = '" . $user_time . "'" . "\n WHERE c_id = '" . $stu_quiz_id . "' and c_quiz_id = '" . $quiz_id . "' and c_student_id = '" . $my->id . "'";
         $JLMS_DB->SetQuery($query);
         $JLMS_DB->query();
         // update lms results
         $lms_course = $QA->get_qvar('course_id', 0);
         $lms_quiz = $quiz_id;
         $lms_user = $my->id;
         $lms_score = $user_score;
         $lms_time = $user_time;
         $lms_date = date('Y-m-d H:i:s', time() - date('Z'));
         $lms_passed = $user_passed;
         global $JLMS_CONFIG;
         if ($lms_course && $JLMS_CONFIG->get('course_id') == $lms_course) {
             $course_params = $JLMS_CONFIG->get('course_params');
             $params = new JLMSParameters($course_params);
             $do_insert_new_res = false;
             if ($params->get('track_type', 0) == 1) {
                 $query = "SELECT * FROM #__lms_quiz_results WHERE course_id = '" . $lms_course . "' AND quiz_id = '" . $lms_quiz . "' AND user_id = '" . $lms_user . "'";
                 $JLMS_DB->SetQuery($query);
                 $old_user_results = $JLMS_DB->LoadObject();
                 if (is_object($old_user_results)) {
                     if (!$lms_passed && !$old_user_results->user_passed && $lms_score > $old_user_results->user_score) {
                         $do_insert_new_res = true;
                     } elseif ($lms_passed && !$old_user_results->user_passed) {
                         $do_insert_new_res = true;
                     } elseif ($lms_passed && $old_user_results->user_passed && $lms_score > $old_user_results->user_score) {
                         $do_insert_new_res = true;
                     } elseif ($lms_passed && $old_user_results->user_passed && $lms_score == $old_user_results->user_score && $lms_time < $old_user_results->user_time) {
                         $do_insert_new_res = true;
                     }
                 } else {
                     $do_insert_new_res = true;
                 }
             } else {
                 $do_insert_new_res = true;
             }
             if ($do_insert_new_res) {
                 $query = "DELETE FROM #__lms_quiz_results WHERE course_id = '" . $lms_course . "' AND quiz_id = '" . $lms_quiz . "' AND user_id = '" . $lms_user . "'";
                 $JLMS_DB->SetQuery($query);
                 $JLMS_DB->query();
                 $query = "INSERT INTO #__lms_quiz_results (course_id, quiz_id, user_id, user_score, quiz_max_score, user_time, quiz_date, user_passed)" . "\n VALUES ('" . $lms_course . "', '" . $lms_quiz . "', '" . $lms_user . "', '" . $lms_score . "', " . intval($max_score) . ", '" . $lms_time . "', '" . $lms_date . "', '" . $lms_passed . "')";
                 $JLMS_DB->SetQuery($query);
                 $JLMS_DB->query();
                 if ($lms_passed) {
                     $db =& JFactory::getDbo();
                     $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
                     //*** send email notifications
                     $JLMS_CONFIG =& JLMSFactory::getConfig();
                     $Itemid = $JLMS_CONFIG->get('Itemid');
                     $e_course = new stdClass();
                     $e_course->course_alias = '';
                     $e_course->course_name = '';
                     $query = "SELECT course_name, name_alias FROM #__lms_courses WHERE id = '" . $lms_course . "'";
                     $db->setQuery($query);
                     $e_course = $db->loadObject();
                     $query = "SELECT c_title FROM #__lms_quiz_t_quiz WHERE c_id = '" . $lms_quiz . "'";
                     $db->setQuery($query);
                     $e_quiz_name = $db->loadResult();
                     $e_user = new stdClass();
                     $e_user->name = '';
                     $e_user->email = '';
                     $e_user->username = '';
                     $query = "SELECT email, name, username FROM #__users WHERE id = '" . $lms_user . "'";
                     $db->setQuery($query);
                     $e_user = $db->loadObject();
                     $e_params['user_id'] = $lms_user;
                     $e_params['course_id'] = $lms_course;
                     $e_params['markers']['{email}'] = $e_user->email;
                     $e_params['markers']['{name}'] = $e_user->name;
                     $e_params['markers']['{username}'] = $e_user->username;
                     $e_params['markers']['{coursename}'] = $e_course->course_name;
                     $e_params['markers']['{quizname}'] = $e_quiz_name;
                     $e_params['markers']['{courselink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}&task=details_course&id={$lms_course}");
                     $e_params['markers_nohtml']['{courselink}'] = $e_params['markers']['{courselink}'];
                     $e_params['markers']['{courselink}'] = '<a href="' . $e_params['markers']['{courselink}'] . '">' . $e_params['markers']['{courselink}'] . '</a>';
                     $e_params['markers']['{lmslink}'] = JLMSEmailRoute("index.php?option=com_joomla_lms&Itemid={$Itemid}");
                     $e_params['markers_nohtml']['{lmslink}'] = $e_params['markers']['{lmslink}'];
                     $e_params['markers']['{lmslink}'] = '<a href="' . $e_params['markers']['{lmslink}'] . '">' . $e_params['markers']['{lmslink}'] . '</a>';
                     $e_params['action_name'] = 'OnQuizCompletion';
                     $_JLMS_PLUGINS->loadBotGroup('emails');
                     $plugin_result_array = $_JLMS_PLUGINS->trigger('OnQuizCompletion', array(&$e_params));
                     //*** end of emails
                 }
             }
         }
         // end of lms results section
     }
     //redirect
     JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=quiz_action&id={$id}&quiz={$quiz_id}&stu_quiz_id={$stu_quiz_id}&user_unique_id={$user_unique_id}&atask=review_stop"));
 }
function JLMS_ShowText_WithFeatures($text, $force_compatibility = false, $process_js_separately = false)
{
    // Black list of mambots:
    $banned_bots = array();
    if ($process_js_separately) {
        $force_compatibility = true;
    }
    if ($force_compatibility) {
        /* Fix of the excellent :) "EOLAS - no click to activate" plugin */
        // 26.02.2007 - function "writethis(jsval);" generates opening of new window during processing DATA within LP Ajax procedures (document.write() fails)
        $banned_bots[] = strtolower('botgznoclicktoactivate');
        /* Ban the Joomla email cloack mambot */
        // 06.12.2007 - this mambot generates document.write() js code
        $banned_bots[] = strtolower('botMosEmailCloak');
        $banned_bots[] = strtolower('plgContentEmailCloak');
        $banned_bots[] = strtolower('plgEmailCloak');
        if (class_exists('JURI')) {
            // Joomla 1.5.x
            $base = JURI::base(true) . '/';
            $protocols = '[a-zA-Z0-9]+:';
            //To check for all unknown protocols (a protocol must contain at least one alpahnumeric fillowed by :
            $regex = '#(src|href)="(?!/|' . $protocols . '|\\#|\')([^"]*)"#m';
            $text = preg_replace($regex, "\$1=\"{$base}\$2\"", $text);
            // Background image
            $regex = '#style\\s*=\\s*[\'\\"](.*):\\s*url\\s*\\([\'\\"]?(?!/|' . $protocols . '|\\#)([^\\)\'\\"]+)[\'\\"]?\\)#m';
            $text = preg_replace($regex, 'style="$1: url(\'' . $base . '$2$3\')', $text);
            // OBJECT <param name="xx", value="yy"> -- fix it only inside the <param> tag
            $regex = '#(<param\\s+)name\\s*=\\s*"(movie|src|url)"[^>]\\s*value\\s*=\\s*"(?!/|' . $protocols . '|\\#|\')([^"]*)"#m';
            $text = preg_replace($regex, '$1name="$2" value="' . $base . '$3"', $text);
            // OBJECT <param value="xx", name="yy"> -- fix it only inside the <param> tag
            $regex = '#(<param\\s+[^>]*)value\\s*=\\s*"(?!/|' . $protocols . '|\\#|\')([^"]*)"\\s*name\\s*=\\s*"(movie|src|url)"#m';
            $text = preg_replace($regex, '<param value="' . $base . '$2" name="$3"', $text);
            // OBJECT data="xx" attribute -- fix it only in the object tag
            $regex = '#(<object\\s+[^>]*)data\\s*=\\s*"(?!/|' . $protocols . '|\\#|\')([^"]*)"#m';
            $text = preg_replace($regex, '$1data="' . $base . '$2"$3', $text);
        }
    }
    $known_bots = array();
    /* strtolower fix for PHP4 */
    if ($process_js_separately) {
        $known_bots[] = strtolower('botmgmediabot210');
        $known_bots[] = strtolower('botJCEUtilities');
        $known_bots[] = strtolower('botJceUtilities');
        $known_bots[] = strtolower('plgSystemJCEUtilities');
        $known_bots[] = strtolower('plgContentAvreloaded');
        // J1.5 native plugin
        $known_bots[] = strtolower('plgContentjlmsSqueezeBox');
        // J1.5 native plugin
        $known_bots[] = strtolower('plgContentjlmsCoursesContentLoader');
        // J1.5 native plugin
        $known_bots[] = strtolower('botLLschedule1');
        $known_bots[] = strtolower('botLLschedule');
        $known_bots[] = strtolower('plgContentRokbox');
        $known_bots[] = strtolower('plgSystemRokBox');
        $known_bots[] = strtolower('plgContentJw_allvideos');
        #$known_bots[] =  strtolower('plgContentjlmsSqueezeBox');
    }
    $is_avreloaded = false;
    $js_separately_processed_mambots = false;
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $_JLMS_PLUGINS->loadBotGroup('system');
    $arg_params = array();
    $arg_params[] =& $text;
    $_JLMS_PLUGINS->trigger('onPreparePageText', $arg_params);
    $row = new stdclass();
    $row->text = $text;
    $row->introtext = '';
    $params = new JLMSParameters('');
    $new_text = $text;
    JPluginHelper::importPlugin('content');
    $dispatcher = JDispatcher::getInstance();
    if ($force_compatibility) {
        $proceed_force_compat = true;
        if (method_exists($dispatcher, 'getObservers')) {
            $onPrepareContent_bots = $dispatcher->getObservers();
            //$_MAMBOTS->_events['onPrepareContent'];
        } elseif (is_array($dispatcher->get('_observers')) && $dispatcher->get('_observers')) {
            $onPrepareContent_bots = $dispatcher->get('_observers');
        } else {
            $proceed_force_compat = false;
        }
        if ($proceed_force_compat) {
            $onPrepareContent_bots_allowed = array();
            foreach ($onPrepareContent_bots as $oPCb) {
                if (is_array($oPCb) && isset($oPCb['event']) && $oPCb['event'] == 'onPrepareContent' && isset($oPCb['handler']) && in_array(strtolower($oPCb['handler']), $banned_bots)) {
                    if (method_exists($dispatcher, 'detach')) {
                        $dispatcher->detach($oPCb);
                    }
                } else {
                    if (is_array($oPCb) && isset($oPCb['event']) && $oPCb['event'] == 'onPrepareContent' && isset($oPCb['handler']) && in_array(strtolower($oPCb['handler']), $known_bots)) {
                        $js_separately_processed_mambots = true;
                    } elseif (is_object($oPCb) && in_array(strtolower(get_class($oPCb)), $known_bots)) {
                        $js_separately_processed_mambots = true;
                        if (strtolower(get_class($oPCb)) == strtolower('plgContentAvreloaded')) {
                            $is_avreloaded = true;
                        }
                    }
                    $onPrepareContent_bots_allowed[] = $oPCb;
                }
            }
            if (method_exists($dispatcher, 'attach')) {
                //$dispatcher->attach( $onPrepareContent_bots_allowed );
            }
        }
    }
    $results = $dispatcher->trigger('onPrepareContent', array(&$row, &$params, 0));
    $new_text = $row->text;
    //echo '<pre>';
    //print_r($new_text);
    //echo '</pre>';
    if ($process_js_separately) {
        //ajax pages...
        //trigger on AfterDispatch in order for system plugins to add required js/css into document head
        // ... we will parse head later (below in this function) to extract required things from there
        $app =& JFactory::getApplication();
        $app->triggerEvent('onAfterDispatch');
    }
    /**
     * JLMS topic readmore replacing
     */
    global $JLMS_CONFIG, $JLMS_topic_readmore_closeTag, $JLMS_replace_step, $JLMS_count_begin_tags, $JLMS_count_end_tags, $JLMS_topic_readmore_js;
    $JLMS_topic_readmore_closeTag = 0;
    $JLMS_replace_step = 0;
    $JLMS_count_begin_tags = 0;
    $JLMS_count_end_tags = 0;
    $doc =& JFactory::getDocument();
    $js_readmore = "";
    $js_readmore .= "\n\t\t\tfunction toogleReadmore(){\n\t\t\t\tvar toogle_readmore = \$\$('.toogle_readmore');\n\t\t\t\ttoogle_readmore.removeEvents('click');\n\t\t\t\ttoogle_readmore.addEvents({\n\t\t\t\t\t'click': function(){\n\t\t\t\t\t\tvar next = this.getNext();\n\t\t\t\t\t\tif((next.tagName == 'DIV' || next.tagName == 'SPAN') && next.hasClass('topic_readmore')){\n\t\t\t\t\t\t";
    if (JLMS_mootools12()) {
        $js_readmore .= "\n\t\t\t\t\t\t\tvar next_Fx_show = new Fx.Morph(next, {\n\t\t\t\t\t\t\t\tduration: 500, \n\t\t\t\t\t\t\t\ttransition: Fx.Transitions.Sine.easeInOut,\n\t\t\t\t\t\t\t\tonStart: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'block', 'opacity': 0});\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonComplete: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'block'});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t\tvar next_Fx_hide = new Fx.Morph(next, {\n\t\t\t\t\t\t\t\tduration: 500, \n\t\t\t\t\t\t\t\ttransition: Fx.Transitions.Sine.easeInOut,\n\t\t\t\t\t\t\t\tonComplete: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'none'});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t\tif(next.getStyle('display') == 'block'){\n\t\t\t\t\t\t\t\thideReadmore(next, next_Fx_hide);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tshowReadmore(next, next_Fx_show);\n\t\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\t";
    } else {
        $js_readmore .= "\n\t\t\t\t\t\t\tvar next_Fx_show = next.effects({\n\t\t\t\t\t\t\t\tduration: 500, \n\t\t\t\t\t\t\t\ttransition: Fx.Transitions.Sine.easeInOut,\n\t\t\t\t\t\t\t\tonStart: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'block', 'opacity': 0});\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonComplete: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'block'});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t\tvar next_Fx_hide = next.effects({\n\t\t\t\t\t\t\t\tduration: 500, \n\t\t\t\t\t\t\t\ttransition: Fx.Transitions.Sine.easeInOut,\n\t\t\t\t\t\t\t\tonComplete: function(){\n\t\t\t\t\t\t\t\t\tthis.element.setStyles({'display': 'none'});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t\tif(next.getStyle('display') == 'block'){\n\t\t\t\t\t\t\t\thideReadmore(next, next_Fx_hide);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tshowReadmore(next, next_Fx_show);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t";
    }
    $js_readmore .= "\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tfunction showReadmore(el, Fx){\n\t\t\t\tFx.start({\n\t\t\t\t\t'opacity': [0, 1]\n\t\t\t\t});\t\n\t\t\t}\n\t\t\tfunction hideReadmore(el, Fx){\n\t\t\t\tFx.start({\n\t\t\t\t\t'opacity': [1, 0]\n\t\t\t\t});\n\t\t\t}\n\t\t\twindow.addEvent('domready', function(){\n\t\t\t\ttoogleReadmore();\n\t\t\t});\n\t\t";
    $domready = "";
    //$domready .= $js_readmore;
    $domready .= "\n\t\t\ttoogleReadmore();\n\t\t";
    if (!isset($JLMS_topic_readmore_js) || !$JLMS_topic_readmore_js) {
        $doc->addScriptDeclaration($js_readmore);
        //$JLMS_CONFIG->set('web20_domready_code', $JLMS_CONFIG->get('web20_domready_code','').$domready);
        $JLMS_topic_readmore_js = true;
    }
    if (preg_match_all('#\\{readmore([^}]*)\\}#', $new_text, $out)) {
        $js_separately_processed_mambots = true;
        $count_begin = count($out[0]);
        $JLMS_count_begin_tags = $count_begin;
        $JLMS_topic_readmore_closeTag = 1;
        $new_text = preg_replace_callback('#\\{readmore([^}]*)\\}#', 'callbackFnBegin', $new_text);
    }
    if (preg_match_all('#\\{\\/readmore\\}#', $new_text, $out)) {
        $count_end = count($out[0]);
        $JLMS_count_end_tags = $count_end;
        if ($count_begin >= $count_end) {
            $JLMS_topic_readmore_closeTag = 1;
            $replace = '<div class="clr"><!-- --></div></div>' . "\n";
            $new_text = str_replace('{/readmore}', $replace, $new_text);
        } else {
            if ($count_begin < $count_end) {
                $JLMS_topic_readmore_closeTag = 0;
                $new_text = preg_replace_callback('#\\{\\/readmore\\}#', 'callbackFnEnd', $new_text);
            }
        }
    }
    /**
     * JLMS topic readmore replacing
     */
    /*
     *	17.12.2007 (DEN)
     *	Processing of MGMediabot2 JS's in IE.
     *	We should extract all javascripts from content and execute them separately.
     */
    //b Events JLMS Plugins
    $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
    $_JLMS_PLUGINS->loadBotGroup('system');
    $_JLMS_PLUGINS->trigger('onTextProcess', array(&$new_text));
    //e Events JLMS Plugins
    /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     * 03.01.2007:
     * BAD-IDEA (we don't know the list of used mambots and their syntax) - idea: Before starting lpath, we should analize list of available mambots and preload their JS libs at the lpath starting page!
     *
     */
    if ($process_js_separately) {
        $document =& JFactory::getDocument();
        $document->addScriptDeclaration($JLMS_CONFIG->get('web20_domready_code'));
        if ($js_separately_processed_mambots) {
            $nn = '';
            //if (!$is_avreloaded) { // ignore included libraries if avreloaded is used (to avoid reloading of swfobject)
            $document =& JFactory::getDocument();
            $scripts = $document->_scripts;
            foreach ($document->_scripts as $strSrc => $strType) {
                /*if (strpos($strSrc, 'swfobject.js') === false) {
                			//this is not swfobject.js library
                		} elseif (strpos($strSrc, 'mootools.js') === false) {
                			//this is not mootools library
                		} else {
                			$nn .= '<script type="'.$strType.'" src="'.$strSrc.'"></script>';
                		}*/
                //fix for !J1.7
                if (is_array($strType) && isset($strType['mime'])) {
                    $strType = $strType['mime'];
                }
                $known_lib = false;
                if (strpos($strSrc, 'swfobject.js') !== false) {
                    //do not include this lib ! (in order to avoid issues with avreloaded)
                } elseif (strpos($strSrc, 'mootools.js') !== false) {
                    //do not include this lib !
                } elseif (strpos($strSrc, 'rokbox') !== false) {
                    //roxbox plugins (system + content ) - provide a possibility to open links in 'lightbox' similar way
                    $known_lib = true;
                } elseif (strpos($strSrc, 'jwplayer.js') || strpos($strSrc, 'silverlight.js') || strpos($strSrc, 'wmvplayer.js') || strpos($strSrc, 'AC_QuickTime.js')) {
                    $known_lib = true;
                }
                if ($known_lib) {
                    $nn .= '<script type="' . $strType . '" src="' . $strSrc . '"></script>';
                }
            }
            foreach ($document->_script as $strType => $strSrc) {
                $nn .= '<script type="' . $strType . '">' . $strSrc . '</script>';
            }
            //}
            $new_text = $nn . $new_text;
            $js = '';
            $tags = array('`<script[^>]*>(.*)</script>`isU');
            # <script ...>...</script> areas
            $replacements = array();
            # Storage for the elements found to be processed
            foreach (array_keys($tags) as $idx) {
                # Handle all kings of tag areas and tags, one by one
                $tmptags = array();
                # Storage for the found occurrences
                preg_match_all($tags[$idx], $new_text, $tmptags);
                # And here they are
                $js1 = '';
                $js1_count = 0;
                $js2 = '';
                $js2_count = 0;
                if ($tmptags) {
                    # Found some?
                    if (isset($tmptags[0])) {
                        $tmptags = $tmptags[0];
                        foreach ($tmptags as $tmptag) {
                            preg_match('`<script type="text/javascript" src="(.*)"></script>`isU', $tmptag, $matches2);
                            # <script...src="(#our_content#)"...></script> areas
                            if (isset($matches2[1])) {
                                $js1_count++;
                                $js1 .= "\r\n" . "dhtmlLoadScript(\"" . $matches2[1] . "\");" . "\r\n";
                            } else {
                                preg_match('`<script[^>]*>(.*)</script>`isU', $tmptag, $matches2);
                                # <script...>(#our_content#)</script> areas
                                if (isset($matches2[1])) {
                                    $js2_count++;
                                    if (false) {
                                        //} && preg_match_all('#\/\/jlms_exec_js_start\/\/([^<]*)\/\/jlms_exec_js_end\/\/#m', $matches2[1], $out, PREG_PATTERN_ORDER)>0){
                                        $js2 .= $out[1][0];
                                    } else {
                                        $new_js = $matches2[1];
                                        $new_js = str_replace('jQuery(document).ready(', 'jQuery.isReady = true; jQuery(document).ready(', $new_js);
                                        if (strpos($new_js, "addEvent('domready'")) {
                                            $rnd = "" . rand(1, 1000) . time();
                                            $new_js = str_replace("addEvent('domready'", "addEvent('domready_jlms_ajax" . $rnd . "'", $new_js);
                                            $new_js .= "\r\n" . "window.fireEvent('domready_jlms_ajax" . $rnd . "');window.removeEvents('domready_jlms_ajax" . $rnd . "');";
                                        }
                                        $js2 .= "\r\n" . $new_js . "\r\n";
                                    }
                                }
                            }
                            $new_text = str_replace($tmptag, '', $new_text);
                        }
                    }
                }
                if ($js1_count) {
                    $js .= "\r\n" . "function OtherScriptsShouldBeExecuted(){" . "\r\n\t" . "scripts_already_loaded ++;" . "\r\n\t" . "if (scripts_already_loaded > ({$js1_count} - 1) ){" . "\r\n\t\t" . "if(!other_scripts_executed){" . "\r\n\t\t\t" . "other_scripts_executed = 1;" . "\r\n\t\t\t" . $js2 . "\r\n\t\t" . "}" . "\r\n\t" . "}" . "\r\n" . "}" . "\r\n";
                    $js .= "\r\n" . 'function dhtmlLoadScript(url) {' . "\r\n\t" . 'var e = document.createElement("script");' . "\r\n\t" . 'e.src = url;e.type="text/javascript";' . "\r\n\t" . 'e.onreadystatechange= function () {' . "\r\n\t\t" . 'if (this.readyState == "loaded") {' . "\r\n\t\t\t" . 'OtherScriptsShouldBeExecuted();' . "\r\n\t\t" . '}' . "\r\n\t" . '}' . "\r\n\t" . 'e.onload = OtherScriptsShouldBeExecuted;document.getElementsByTagName("head")[0].appendChild(e);' . "\r\n" . '}' . "\r\n";
                    $js .= "var scripts_already_loaded = 0;" . "\r\n" . "other_scripts_executed = 0;" . "\r\n" . "setTimeout(function(){scripts_already_loaded = {$js1_count};OtherScriptsShouldBeExecuted();}, 1000);" . "\r\n";
                    $js .= $js1;
                } else {
                    $js .= $js2;
                }
                unset($tmptags);
                # A bit of dirty work
            }
            $js = str_replace('<![CDATA[', '<!--', $js);
            $js = str_replace(']]>', '-->', $js);
            $new_text = str_replace('<![CDATA[', '<!--', $new_text);
            $new_text = str_replace(']]>', '-->', $new_text);
            $ret_ar = array();
            $ret_ar['new_text'] =& $new_text;
            $ret_ar['js'] =& $js;
            return $ret_ar;
        } else {
            $new_text = str_replace('<![CDATA[', '<!--', $new_text);
            $new_text = str_replace(']]>', '-->', $new_text);
        }
        $ret_ar = array();
        $ret_ar['new_text'] =& $new_text;
        $ret_ar['js'] = '';
        //$js;
        return $ret_ar;
    } else {
        return $new_text;
    }
    return $new_text;
}
Exemple #18
0
function JLMS_GB_getUsersGrades($id, $uids, &$rows, &$lists, $cycle = 0)
{
    $db =& JFactory::getDbo();
    $JLMS_ACL =& JLMSFactory::getACL();
    $is_teacher = $JLMS_ACL->isTeacher();
    $uids_str = implode(',', $uids);
    if (count($uids)) {
        $query = "SELECT a.*, b.scale_name FROM #__lms_gradebook as a LEFT JOIN #__lms_gradebook_scale as b ON a.gb_points=b.id AND b.course_id = {$id} WHERE a.course_id = '" . $id . "' AND a.user_id IN ({$uids_str})";
        $db->SetQuery($query);
        $gb_rows = $db->LoadObjectList();
        $query = "SELECT * FROM #__lms_certificate_users WHERE course_id = '" . $id . "' AND user_id IN ({$uids_str})";
        $db->SetQuery($query);
        $crt_rows = $db->LoadObjectList();
    } else {
        $crt_rows = array();
        $gb_rows = array();
    }
    $query = "SELECT * FROM #__lms_gradebook_scale WHERE course_id = {$id} ORDER BY ordering, scale_name";
    $db->SetQuery($query);
    $scale_rows = $db->LoadObjectList();
    if (count($uids) == 1) {
        if (count($crt_rows) > 1) {
            $del_ids_tmp = array();
            $del_ids = array();
            foreach ($crt_rows as $crt_row) {
                if ($crt_row->crt_date == '0000-00-00 00:00:00') {
                    $del_ids_tmp[] = $crt_row->id;
                }
            }
            if (count($del_ids) == count($crt_rows)) {
                $del_ii = 1;
                while ($del_ii < count($del_ids_tmp)) {
                    $del_ids[] = $del_ids_tmp[$del_ii];
                    $del_ii++;
                }
            } else {
                $del_ids = $del_ids_tmp;
            }
            $del_ids_str = implode(',', $del_ids);
            $query = "DELETE FROM #__lms_certificate_users WHERE id IN ({$del_ids_str}) AND course_id = '" . $id . "' AND user_id IN ({$uids_str}) AND crt_date = '0000-00-00 00:00:00'";
            $db->SetQuery($query);
            $db->query();
        }
    }
    $query = "SELECT * FROM #__lms_gradebook_items WHERE course_id = '" . $id . "' ORDER BY ordering, gbi_name";
    $db->SetQuery($query);
    $irows = $db->LoadObjectList();
    $query = "SELECT * FROM #__lms_learn_paths WHERE course_id = '" . $id . "' AND item_id <> '0' AND item_id <> '' AND published = '1' ORDER BY ordering";
    $db->SetQuery($query);
    $scorm_rows = $db->LoadObjectList();
    $scorm_ans = array();
    $scorm_n_ans = array();
    if (count($scorm_rows)) {
        $scids = array();
        $scn_ids = array();
        $scrows_i = 0;
        foreach ($scorm_rows as $scorm_row) {
            $tmp_params = new JLMSParameters($scorm_row->lp_params);
            if ($tmp_params->get('show_in_gradebook', 1)) {
                if ($scorm_row->lp_type == 1 || $scorm_row->lp_type == 2) {
                    $scn_ids[] = $scorm_row->item_id;
                } else {
                    $scids[] = $scorm_row->item_id;
                }
            }
            $scorm_rows[$scrows_i]->show_in_gradebook = $tmp_params->get('show_in_gradebook', 1);
            $scrows_i++;
        }
        if ($cycle) {
            $query = "SELECT params FROM #__lms_courses WHERE id = '" . $id . "'";
            //Atention!
            $db->setQuery($query);
            //Atention!
            $course_params = $db->loadResult();
            //Atention!
        } else {
            global $JLMS_CONFIG;
            $course_params = $JLMS_CONFIG->get('course_params');
        }
        $params = new JLMSParameters($course_params);
        if (count($scids) || count($scn_ids)) {
            require_once _JOOMLMS_FRONT_HOME . "/includes/lms_scorm.lib.php";
            if (count($scids)) {
                //nothing here
                $scorm_ans =& JLMS_GetSCORM_userResults($uids, $scids);
            }
            if (count($scn_ids)) {
                $scorm_n_ans = array();
                $uids_groups = array();
                $uids_group = array();
                //group user IDs by 5
                $uid_i = 1;
                foreach ($uids as $uid) {
                    $uids_group[] = $uid;
                    $uid_i++;
                    if ($uid_i > 5) {
                        $uids_groups[] = $uids_group;
                        $uids_group = array();
                        $uid_i = 1;
                    }
                }
                if (count($uids_group)) {
                    $uids_groups[] = $uids_group;
                }
                foreach ($uids_groups as $uids5) {
                    foreach ($scn_ids as $scn_id) {
                        $scn_ids_new_array = array();
                        $scn_ids_new_array[] = $scn_id;
                        $scorm_n_ans1 =& JLMS_Get_N_SCORM_userResults($uids5, $scn_ids_new_array, $params->get('track_type', 0));
                        $scorm_n_ans = array_merge($scorm_n_ans, $scorm_n_ans1);
                    }
                }
            }
        }
    }
    $query = "SELECT * FROM #__lms_quiz_t_quiz WHERE course_id = '" . $id . "' AND c_gradebook = 1 ORDER BY c_title";
    $db->SetQuery($query);
    $quiz_rows = $db->LoadObjectList();
    $quiz_ans = array();
    if (count($quiz_rows)) {
        if (count($uids)) {
            $query = "SELECT a.*, b.c_full_score FROM #__lms_quiz_results as a, #__lms_quiz_t_quiz as b WHERE a.course_id = '" . $id . "'" . "\n AND a.quiz_id = b.c_id AND a.user_id IN ( {$uids_str} ) ORDER BY a.user_id, a.quiz_id";
            $db->SetQuery($query);
            $quiz_ans = $db->LoadObjectList();
        } else {
            $quiz_ans = array();
        }
    }
    $i = 0;
    while ($i < count($rows)) {
        $p = array();
        foreach ($irows as $irow) {
            $pp = new stdClass();
            $pp->gbi_id = $irow->id;
            $pp->gbi_type = 1;
            // 1 - gb_item, 2 - scorm; 3 - quiz;
            $pp->user_grade = '-';
            $pp->scale_id = 0;
            $p[] = $pp;
        }
        $j = 0;
        while ($j < count($gb_rows)) {
            if ($gb_rows[$j]->user_id == $rows[$i]->user_id) {
                $k = 0;
                while ($k < count($p)) {
                    if ($p[$k]->gbi_id == $gb_rows[$j]->gbi_id && $p[$k]->gbi_type == 1) {
                        $p[$k]->user_grade = $gb_rows[$j]->scale_name ? $gb_rows[$j]->scale_name : '-';
                        //$gb_rows[$j]->gb_points;
                        $p[$k]->scale_id = $gb_rows[$j]->gb_points ? $gb_rows[$j]->gb_points : '-';
                    }
                    $k++;
                }
            }
            $j++;
        }
        $rows[$i]->user_certificate = 0;
        $rows[$i]->user_certificate_date = '';
        $j = 0;
        while ($j < count($crt_rows)) {
            if ($crt_rows[$j]->user_id == $rows[$i]->user_id) {
                $rows[$i]->user_certificate = $crt_rows[$j]->crt_option;
                $rows[$i]->user_certificate_date = $crt_rows[$j]->crt_date;
            }
            $j++;
        }
        $rows[$i]->grade_info = $p;
        //scorm
        $p = array();
        foreach ($scorm_rows as $srow) {
            $pp = new stdClass();
            $pp->gbi_id = $srow->item_id;
            $pp->lp_type = $srow->lp_type;
            $pp->gbi_type = 2;
            // 1 - gb_item, 2 - scorm; 3 - quiz;
            $pp->user_grade = '-';
            $pp->user_pts = 0;
            $pp->user_status = -1;
            $p[] = $pp;
        }
        $j = 0;
        while ($j < count($scorm_ans)) {
            if ($scorm_ans[$j]->user_id == $rows[$i]->user_id) {
                $k = 0;
                while ($k < count($p)) {
                    if ($p[$k]->gbi_id == $scorm_ans[$j]->content_id && $p[$k]->gbi_type == 2 && !$p[$k]->lp_type) {
                        /*$p[$k]->user_grade = $scorm_ans[$j]->score;
                        		$p[$k]->user_status = $scorm_ans[$j]->status;*/
                        $user_per = $scorm_ans[$j]->score > 100 ? 100 : $scorm_ans[$j]->score;
                        $sc_i = count($scale_rows) - 1;
                        while ($sc_i >= 0) {
                            if ($scale_rows[$sc_i]->min_val <= $user_per && $scale_rows[$sc_i]->max_val >= $user_per) {
                                $p[$k]->user_grade = $scale_rows[$sc_i]->scale_name;
                                break;
                            }
                            $sc_i--;
                        }
                        $p[$k]->user_pts = $scorm_ans[$j]->score;
                        $p[$k]->user_status = $scorm_ans[$j]->status;
                    }
                    $k++;
                }
            }
            $j++;
        }
        $j = 0;
        while ($j < count($scorm_n_ans)) {
            if ($scorm_n_ans[$j]->user_id == $rows[$i]->user_id) {
                $k = 0;
                while ($k < count($p)) {
                    if ($p[$k]->gbi_id == $scorm_n_ans[$j]->content_id && $p[$k]->gbi_type == 2 && ($p[$k]->lp_type == 1 || $p[$k]->lp_type == 2)) {
                        /*$p[$k]->user_grade = $scorm_n_ans[$j]->score;
                        		$p[$k]->user_status = $scorm_n_ans[$j]->status;*/
                        $user_per = $scorm_n_ans[$j]->score > 100 ? 100 : $scorm_n_ans[$j]->score;
                        //$user_per = intval($quiz_ans[$j]->user_score * 100 / $quiz_ans[$j]->c_full_score);
                        $sc_i = count($scale_rows) - 1;
                        while ($sc_i >= 0) {
                            if ($scale_rows[$sc_i]->min_val <= $user_per && $scale_rows[$sc_i]->max_val >= $user_per) {
                                $p[$k]->user_grade = $scale_rows[$sc_i]->scale_name;
                                break;
                            }
                            $sc_i--;
                        }
                        $p[$k]->user_pts = $scorm_n_ans[$j]->score;
                        $p[$k]->user_status = $scorm_n_ans[$j]->status;
                    }
                    $k++;
                }
            }
            $j++;
        }
        $rows[$i]->scorm_info = $p;
        //quizzes
        $p = array();
        foreach ($quiz_rows as $qrow) {
            $pp = new stdClass();
            $pp->gbi_id = $qrow->c_id;
            $pp->allow_user_pdf_print = $qrow->c_enable_print;
            $pp->gbi_type = 3;
            // 1 - gb_item, 2 - scorm; 3 - quiz;
            $pp->user_grade = '-';
            $pp->user_pts = 0;
            $pp->user_pts_full = '0';
            $pp->user_status = -1;
            $pp->user_passed = -1;
            $pp->user_score = 0;
            $pp->quiz_max_score = 0;
            /*Integration Plugin Percentiles*/
            $_JLMS_PLUGINS =& JLMSFactory::getPlugins();
            $_JLMS_PLUGINS->loadBotGroup('system');
            $data_plugin = new stdClass();
            $data_plugin->course_id = $rows[$i]->course_id;
            $data_plugin->quiz_id = $qrow->c_id;
            $data_plugin->user_id = $rows[$i]->user_id;
            if ($out_plugin = $_JLMS_PLUGINS->trigger('onQuizFinish', array($data_plugin))) {
                if (count($out_plugin)) {
                    $percentiles = $out_plugin[0];
                    if ($percentiles->percent >= 0) {
                        $percent = $percentiles->percent . '%';
                        $pp->user_percentile = $percent;
                    }
                }
            }
            /*Integration Plugin Percentiles*/
            $p[] = $pp;
        }
        $j = 0;
        while ($j < count($quiz_ans)) {
            if ($quiz_ans[$j]->user_id == $rows[$i]->user_id) {
                $k = 0;
                while ($k < count($p)) {
                    if ($p[$k]->gbi_id == $quiz_ans[$j]->quiz_id && $p[$k]->gbi_type == 3) {
                        if ($quiz_ans[$j]->quiz_max_score) {
                            $user_per = intval($quiz_ans[$j]->user_score * 100 / $quiz_ans[$j]->quiz_max_score);
                        } elseif ($quiz_ans[$j]->c_full_score) {
                            $user_per = intval($quiz_ans[$j]->user_score * 100 / $quiz_ans[$j]->c_full_score);
                        } else {
                            if ($quiz_ans[$j]->user_score) {
                                // ...strange ... HOW?
                                $user_per = 100;
                            } else {
                                $user_per = 0;
                            }
                        }
                        $sc_i = count($scale_rows) - 1;
                        while ($sc_i >= 0) {
                            if ($scale_rows[$sc_i]->min_val <= $user_per && $scale_rows[$sc_i]->max_val >= $user_per) {
                                $p[$k]->user_grade = $scale_rows[$sc_i]->scale_name;
                                break;
                            }
                            $sc_i--;
                        }
                        $p[$k]->user_pts = $quiz_ans[$j]->user_score;
                        $p[$k]->user_pts_full = $quiz_ans[$j]->user_score . '/' . $quiz_ans[$j]->quiz_max_score;
                        $p[$k]->user_status = $quiz_ans[$j]->user_passed;
                        $p[$k]->user_passed = $quiz_ans[$j]->user_passed;
                        $p[$k]->user_score = $quiz_ans[$j]->user_score;
                        $p[$k]->quiz_max_score = $quiz_ans[$j]->quiz_max_score;
                    }
                    $k++;
                }
            }
            $j++;
        }
        $rows[$i]->quiz_info = $p;
        $i++;
    }
    global $my;
    //--------------------------
    for ($i = 0; $i < count($scorm_rows); $i++) {
        if ($scorm_rows[$i]->lp_type == 2) {
            $query = "SELECT scorm_package FROM #__lms_n_scorm WHERE id = '" . $scorm_rows[$i]->item_id . "'";
            $db->SetQuery($query);
            $scorm_package = $db->LoadResult();
            $query = "SELECT id FROM #__lms_n_scorm WHERE scorm_package = '" . $scorm_package . "' AND course_id = 0";
            $db->SetQuery($query);
            $scorm_lib_id = $db->LoadResult();
            $outer_doc = null;
            $query = "SELECT outdoc_share, owner_id, allow_link FROM #__lms_outer_documents WHERE file_id = '" . $scorm_lib_id . "' AND folder_flag = 3";
            $db->SetQuery($query);
            $outer_doc = $db->LoadObject();
            if (is_object($outer_doc) && isset($outer_doc->allow_link) && $outer_doc->allow_link == 1) {
            } else {
                unset($scorm_rows[$i]);
            }
        }
    }
    $mas = array();
    foreach ($scorm_rows as $k => $v) {
        $mas[] = $scorm_rows[$k];
    }
    unset($scorm_rows);
    $scorm_rows = $mas;
    //---------------------------------
    if ($cycle) {
        $lists['gb_rows'][] = $irows;
        $lists['sc_rows'][] = $scorm_rows;
        $lists['quiz_rows'][] = $quiz_rows;
    } else {
        $lists['gb_rows'] = $irows;
        $lists['sc_rows'] = $scorm_rows;
        $lists['quiz_rows'] = $quiz_rows;
    }
}