function newsletter()
{
    //access control
    //-TP// funAdminAccess('OP');
    checkPerm('view');
    require_once _base_ . '/lib/lib.form.php';
    $out =& $GLOBALS['page'];
    $out->setWorkingZone("content");
    $lang =& DoceboLanguage::createInstance('admin_newsletter', 'framework');
    YuiLib::load();
    addJs($GLOBALS['where_framework_relative'] . '/modules/newsletter/', 'newsletter.js');
    $form = new Form();
    $out->add(getTitleArea($lang->def("_NEWSLETTER"), "newsletter"));
    $p_size = intval(ini_get('post_max_size'));
    $u_size = intval(ini_get('upload_max_filesize'));
    $max_kb = $p_size < $u_size ? $p_size : $u_size;
    $max = ' (Max. ' . $max_kb . ' Mb) ';
    $out->add('<script>' . 'var _DEL=\'' . $lang->def('_DEL') . '\';' . 'var _ATTACHMENT=\'' . $lang->def('_ATTACHMENT') . '\';' . 'var _MAX=\'' . $max . '\';' . '</script>');
    $out->add("<div class=\"std_block\">\n");
    $acl_manager = Docebo::user()->getAclManager();
    $user_info = $acl_manager->getUser(Docebo::user()->getIdSt(), false);
    $myemail = $user_info[ACL_INFO_EMAIL];
    if (isset($err) && $err != "") {
        $out->add("<b><span class=\"fontRed\">{$err}</span><br />\n");
    }
    $out->add($form->openForm("newsletter_form", "index.php?modname=public_newsletter_admin&amp;op=initsend"));
    $out->add($form->openElementSpace());
    $out->add($form->getTextfield($lang->def("_SENDER"), "fromemail", "fromemail", 255, $myemail));
    $out->add($form->getTextfield($lang->def("_SUBJECT"), "sub", "sub", 255, ""));
    $out->add($form->getTextarea($lang->def("_DESCRIPTION"), "msg", "msg", ""));
    $lang_list = Docebo::langManager()->getAllLangCode();
    //array_unshift($lang_list, $lang->def("_DEFAULT"), $lang->def("_ALL"));
    $lang_list = array(_ANY_LANG_CODE => $lang->def("_ALL")) + $lang_list;
    $out->add('<div id="file">' . $form->getHidden('file_number', 'file_number', '1') . '<div id="div_file_1">' . $form->getFilefield($lang->def('_ATTACHMENT'), 'file_1', 'file_1', '', '', '<a href="#" onclick="delFile(\'1\'); return false;"><span id="rem_span">' . $lang->def('_DEL') . '</span><a>') . '</div>' . '</div>' . '<br/><a href="#" onclick="addFile(); return false;"><span id="add_span">' . $lang->def('_ADD') . '</span></a>');
    $out->add($form->getDropdown($lang->def("_LANGUAGE"), "sel_lang", "sel_lang", $lang_list));
    $out->add($form->getRadio($lang->def("_EMAIL"), "send_type_email", "send_type", "email", true));
    $out->add($form->getRadio($lang->def("_SEND_SMS"), "send_type_sms", "send_type", "sms", false));
    $out->add($form->closeElementSpace());
    $out->add($form->openButtonSpace());
    $out->add($form->getButton('send', 'send', $lang->def('_SEND')));
    $out->add($form->closeButtonSpace());
    $out->add($form->closeForm());
    $out->add("</div>\n");
}
    function get_competences_filter()
    {
        $back_url = $this->back_url;
        $jump_url = $this->jump_url;
        $next_url = $this->next_url;
        require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
        $cmodel = new CompetencesAdm();
        $lang =& DoceboLanguage::createInstance('report', 'framework');
        YuiLib::load();
        Util::get_js(Get::rel_path('lms') . '/admin/modules/report/competences_filter.js', true, true);
        addJs($GLOBALS['where_lms_relative'] . '/admin/modules/report/', 'competences_filter.js');
        //back to columns category selection
        if (isset($_POST['undo_filter'])) {
            Util::jump_to($back_url);
        }
        if (Get::req('is_updating', DOTY_INT, 0) > 0) {
            $_SESSION['report_tempdata']['columns_filter'] = array('filters_list' => Get::req('rc_filter', DOTY_MIXED, array()), 'exclusive' => Get::req('rc_filter_exclusive', DOTY_INT, 0) > 0 ? true : false);
        } else {
            if (!isset($_SESSION['report_tempdata']['columns_filter'])) {
                $_SESSION['report_tempdata']['columns_filter'] = array('filters_list' => array(), 'exclusive' => true);
            }
        }
        $ref =& $_SESSION['report_tempdata']['columns_filter'];
        //filter setting done, go to next step
        if (isset($_POST['import_filter']) || isset($_POST['show_filter']) || isset($_POST['pre_filter'])) {
            $temp_url = $next_url;
            if (isset($_POST['pre_filter'])) {
                $temp_url .= '&show=1&nosave=1';
            }
            if (isset($_POST['show_filter'])) {
                $temp_url .= '&show=1';
            }
            Util::jump_to($temp_url);
        }
        $cats = $cmodel->getAllCategories();
        $comps = $cmodel->getAllCompetences();
        $optdata = array(array('name' => Lang::t('_COMPETENCES', 'competences'), 'rows' => array()));
        foreach ($comps as $key => $val) {
            //categories cycle
            $temp = array();
            $temp['id'] = $val->id_competence;
            $temp['name'] = $val->name;
            //str_replace("'", "\'", $value);
            $temp['type'] = $val->type;
            $temp['typology'] = $val->typology;
            //$temp['score'] = $val->score;
            $optdata[0]['rows'][] = $temp;
        }
        $prevdata = $ref['filters_list'];
        //array();
        $json = new Services_JSON();
        $js_prevdata = $json->encode($prevdata);
        $js_optdata = str_replace("'", "\\'", $json->encode($optdata));
        cout('<script type="text/javascript">' . 'optdata_JSON=\'' . $js_optdata . '\';' . 'rc_sel_opt_0=\'' . $lang->def('_COMPETENCES_DROPDOWN_NULL_SELECT') . '\';' . 'rc_remove_filter=\'' . $lang->def('_RESET') . '\';' . 'rc_initial_filters=' . $js_prevdata . ';' . 'YAHOO.util.Event.onDOMReady(rc_init);' . '</script>', 'page_head');
        $clang = $this->lang;
        $sel = $ref['exclusive'] ? 1 : 0;
        $selected = ' checked="checked"';
        $box = new ReportBox();
        $box->title = $this->lang->def('_COMPETENCESFILTER_TITLE');
        $box->description = $this->lang->def('_COMPETENCESFILTER_TITLE_DESC');
        $box->body = Form::getBreakRow() . Form::getHidden('is_updating', 'is_updating', 1) . '<div id="rc_filter_list"></div>' . '<div class="fc_filter_line filter_corr">' . '<input type="radio" id="rc_filter_exclusive_and" name="rc_filter_exclusive" value="1" ' . ($sel > 0 ? $selected : '') . ' />
				<label for="rc_filter_exclusive_and">' . $clang->def('_FILTER_ALL_CONDS') . '</label>&nbsp;' . '<input type="radio" id="rc_filter_exclusive_or" name="rc_filter_exclusive" value="0" ' . ($sel == 0 ? $selected : '') . ' />
				<label for="rc_filter_exclusive_or">' . $clang->def('_FILTER_ONE_COND') . '</label>' . '</div>' . '<div class="fc_filter_line">' . '<span class="yui-button yui-link-button" id="fc_addfilter">
					<span class="first-child">
						<a href="#" onclick="rc_addfilter();return false;">' . $clang->def('_NEW_FILTER') . '</a>
					</span>
				</span>' . '<span class="yui-button yui-link-button" id="fc_cancfilter">
					<span class="first-child">
						<a href="#" onclick="rc_resetfilters();return false;">' . $clang->def('_FILTER_RESET') . '</a>
					</span>
				</span>' . '</div>';
        cout($box->get());
        cout(Form::getBreakRow());
    }
Example #3
0
    $scategory = $article->scategory;
    $sauthor = $article->sauthor;
    $shits = $article->shits;
    $sdate = $article->sdate;
    $srate = $article->srate;
    $stag = $article->stag;
    $tags = $article->tags;
    $voter = $article->voter;
    $rate = $article->rate;
    $editable = "class=title";
    $editable2 = null;
    if ($_SESSION['USER_LEVEL'] <= 3 or !empty($_SESSION['USER_EMAIL']) and $_SESSION['USER_EMAIL'] == $autmail) {
        $editable = ' class="title editordb" title="Click to edit"';
        $editable2 = ' class="editordb"  id="article-main" title="Click to edit"';
        addJs(FUrl . "plugins/plg_ckeditor/ckeditor.js");
        addJs(FUrl . "apps/app_article/theme/js/scrollfixed.js");
        $_SESSION["ARTICLE_EDITOR_{$id}"] = "{$text}";
        ?>
				
		<div>
			<input type="hidden" value="<?php 
        echo $id;
        ?>
" id="article-id" />
			<input type="hidden" value="<?php 
        echo $_SESSION["ARTICLE_EDITOR_{$id}"];
        ?>
" id="article-revert" />
		</div>
		<div id="editor-panel"> 
			<input type="submit" value="Save" class="save editor-button" title="Save"/>	
Example #4
0
function userCourseList(&$url, $use_tab = true, $page_add = true)
{
    YuiLib::load(array('animation' => 'animation-min.js', 'dragdrop' => 'dragdrop-min.js', 'button' => 'button-min.js', 'container' => 'container-min.js', 'my_window' => 'windows.js'), array('container/assets/skins/sam' => 'container.css', 'button/assets/skins/sam' => 'button.css'));
    if ($page_add) {
        addJs($GLOBALS['where_lms_relative'] . '/modules/coursecatalogue/', 'ajax.coursecatalogue.js');
    }
    require_once _base_ . '/lib/lib.form.php';
    require_once _base_ . '/lib/lib.user_profile.php';
    require_once _base_ . '/lib/lib.navbar.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.preassessment.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.catalogue.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.coursereport.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.coursepath.php';
    require_once $GLOBALS["where_framework"] . "/lib/lib.ajax_comment.php";
    require_once $GLOBALS['where_lms'] . '/lib/lib.classroom.php';
    // pre-loading coursepath ------------------------------------------------------------------
    $path_man = new CoursePath_Manager();
    // search for the coursepath ----------------------------------------------------------
    $user_coursepath = $path_man->getUserSubscriptionsInfo(getLogUserId(), true);
    $coursepath = $path_man->getCoursepathAllInfo(array_keys($user_coursepath));
    if (!empty($coursepath)) {
        // find structures of the course path ---------------------------------------------
        $path_courses = $path_man->getPathStructure(array_keys($coursepath));
        $cp_info = $path_man->getAllCoursesInfo($path_courses['all_paths']);
        /*echo "<pre>\n\n";
        		print_r($cp_info);
        		echo "\n\n</pre>";*/
    }
    // ------------------------------------------------------------------------
    $course_stats = array('total' => 0, 'u_can_enter' => 0, 'with_status' => array(CST_AVAILABLE => 0, CST_EFFECTIVE => 0, CST_CONCLUDED => 0, CST_CANCELLED => 0), 'with_ustatus' => array(_CUS_SUBSCRIBED => 0, _CUS_BEGIN => 0, _CUS_END => 0, _CUS_SUSPEND => 0), 'with_wstatus' => array(_CUS_RESERVED => 0, _CUS_WAITING_LIST => 0), 'with_ulevel' => array(), 'expiring' => 0, 'cert_relesable' => 0);
    // ------------------------------------------------------------------------
    $filter = importVar('filter', false, 'total');
    if ($filter == 'level') {
        $filter_level = importVar('filter_on', true, 0);
    }
    $current_tab = importVar('current_tab', false, 'lo_plan');
    if ($use_tab && $page_add) {
        addCss('style_tab');
        $lo_plan = importVar('lo_plan', false, 0);
        $lo_history = importVar('lo_history', false, 0);
        if ($lo_plan != 0) {
            $current_tab = 'lo_plan';
        }
        if ($lo_history != 0) {
            $current_tab = 'lo_history';
        }
    }
    if ($use_tab && $page_add) {
        addCss('style_tab');
        $lo_plan = importVar('lo_plan', false, 0);
        $lo_history = importVar('lo_history', false, 0);
        if ($lo_plan != 0) {
            $current_tab = 'lo_plan';
        }
        if ($lo_history != 0) {
            $current_tab = 'lo_history';
        }
    }
    require_once $GLOBALS['where_lms'] . '/lib/lib.certificate.php';
    $cert = new Certificate();
    $released = $cert->certificateReleased(getLogUserId());
    $available_cert = $cert->certificateForCourses(false, false);
    // cahce classroom -----------------------------------------------------------------
    $classroom_man = new ClassroomManager();
    $classrooms = $classroom_man->getClassroomNameList();
    $lang =& DoceboLanguage::createInstance('catalogue');
    $lang_c =& DoceboLanguage::createInstance('course');
    $man_course = new Man_Course();
    $subcourse_list = sql_query("" . " SELECT u.idCourse, u.edition_id, level, u.date_inscr, u.date_first_access, " . "\t\tu.date_complete, u.status AS user_status, u.waiting, u.edition_id " . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser AS u" . " WHERE idUser = '******'");
    $subscription = array();
    while ($cinfo = mysql_fetch_assoc($subcourse_list)) {
        $subscription['course'][$cinfo['idCourse']] = $cinfo;
        if ($cinfo['edition_id'] != 0) {
            $subscription['edition'][$cinfo['idCourse']][$cinfo['edition_id']] = $cinfo;
        }
    }
    // searching courses ---------------------------------------------------------------
    $select_course = "" . " SELECT c.idCourse, c.course_type, c.idCategory, c.code, c.name, c.description, c.lang_code, c.difficult, " . "\tc.subscribe_method, c.date_begin, c.date_end, c.max_num_subscribe, " . "\tc.selling, c.prize, c.create_date, c.status AS course_status, c.course_edition, " . "\tc.classrooms, c.img_othermaterial, c.course_demo, c.course_vote, " . "\tc.can_subscribe, c.sub_start_date, c.sub_end_date, c.valid_time, c.userStatusOp, c.show_result, u.status AS user_status, u.level " . ", c.use_logo_in_courselist, c.img_course, c.direct_play ";
    $from_course = " FROM " . $GLOBALS['prefix_lms'] . "_course AS c " . "\t JOIN " . $GLOBALS['prefix_lms'] . "_courseuser AS u ";
    $where_course = " c.idCourse = u.idCourse " . " AND u.idUser = '******' " . " AND ( c.status <> '" . CST_PREPARATION . "' OR u.level > 3 )" . " AND c.course_type <> 'assessment' ";
    $selected_year = 0;
    $selected_search = '';
    if (isset($_POST['apply_filter'])) {
        if ($_POST['year']) {
            $where_course .= " AND c.create_date BETWEEN '" . $_POST['year'] . "-01-01 00:00:00' AND '" . $_POST['year'] . "-12-31 23:59:59'";
            $selected_year = $_POST['year'];
        }
        if ($_POST['search'] !== '') {
            $where_course .= " AND c.name LIKE '%" . $_POST['search'] . "%'";
            $selected_search = $_POST['search'];
        }
    }
    $group_by_course = " GROUP BY c.idCourse ";
    $order_course = " ORDER BY ";
    $tablist = Get::sett('tablist_mycourses', '');
    if ($tablist != '') {
        $arr_order_course = explode(',', $tablist);
        $arr_temp = array();
        foreach ($arr_order_course as $key => $value) {
            switch ($value) {
                case 'status':
                    $arr_temp[] = ' u.status ';
                    break;
                case 'code':
                    $arr_temp[] = ' c.code ';
                    break;
                case 'name':
                    $arr_temp[] = ' c.name ';
                    break;
            }
        }
        $order_course = $order_course . implode(', ', $arr_temp);
    }
    if ($order_course == " ORDER BY ") {
        //default without parameter
        $order_course .= " u.status, c.name ";
    }
    // apply search filter --------------------------------------------------------------
    $all_lang = Docebo::langManager()->getAllLangCode();
    $re_course = sql_query($select_course . $from_course . " WHERE " . $where_course . $group_by_course . $order_course);
    // retrive editions ----------------------------------------------------------------
    $select_edition = " SELECT e.* ";
    $from_edition = " FROM " . $GLOBALS["prefix_lms"] . "_course_editions AS e " . " JOIN " . $GLOBALS["prefix_lms"] . "_courseuser AS u ";
    $where_edition = " WHERE e.status <> '" . CST_PREPARATION . "' AND e.id_edition = u.edition_id ";
    $re_edition = sql_query($select_edition . $from_edition . $where_edition);
    // --------------------------------------------------------------------------------
    $editions = array();
    if ($re_edition) {
        while ($edition_elem = mysql_fetch_assoc($re_edition)) {
            $edition_elem['classrooms'] = isset($classrooms[$edition_elem['classrooms']]) ? $classrooms[$edition_elem['classrooms']] : '';
            $editions[$edition_elem["id_course"]][$edition_elem["id_course"]] = $edition_elem;
        }
    }
    $man_courseuser = new Man_CourseUser();
    $ax_comm = new AjaxComment('course', 'lms');
    $comment_count = $ax_comm->getResourceCommentCount();
    $user_score = $man_courseuser->getUserCourseScored(getLogUserId());
    // -----------------------------------------------------------------------------
    $needed_info_for = array();
    if (!empty($subscription['course'])) {
        $id_course_list = array_keys($subscription['course']);
        // find last access to the courses ---------------------------------------------------------------------
        require_once $GLOBALS['where_lms'] . '/lib/lib.track_user.php';
        $last_access_courses = TrackUser::getLastAccessToCourse(getLogUserId());
        // retrive unreaded advice -----------------------------------------------------------------------------
        require_once $GLOBALS['where_lms'] . '/lib/lib.advice.php';
        $advices = Man_Advice::getCountUnreaded(getLogUserId(), $id_course_list, $last_access_courses);
        // retrive unreaded forum messages ---------------------------------------------------------------------
        require_once $GLOBALS['where_lms'] . '/lib/lib.forum.php';
        $forums = Man_Forum::getCountUnreaded(getLogUserId(), $id_course_list, $last_access_courses);
        // retrive new lesson ----------------------------------------------------------------------------------
        require_once $GLOBALS['where_lms'] . '/lib/lib.orgchart.php';
        $org_chart = OrganizationManagement::getCountUnreaded(getLogUserId(), $id_course_list, $last_access_courses);
        if (!empty($path_courses['all_items'])) {
            $needed_info_for = array_diff($path_courses['all_items'], $id_course_list);
        }
        $first_is_scorm = OrganizationManagement::objectFilter($id_course_list, 'scormorg');
        $enroll_list = sql_query("" . " SELECT u.idCourse, u.edition_id, COUNT(*) as number " . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser AS u" . " WHERE u.idCourse IN (" . implode($id_course_list, ',') . ") " . " AND u.level = '3'" . " AND u.status IN ('" . _CUS_CONFIRMED . "', '" . _CUS_SUBSCRIBED . "', '" . _CUS_BEGIN . "', '" . _CUS_END . "', '" . _CUS_SUSPEND . "', '" . _CUS_WAITING_LIST . "')" . " AND u.absent = '0'" . " GROUP BY u.idCourse, u.edition_id ");
        $enrolled = array();
        while ($cinfo = mysql_fetch_assoc($enroll_list)) {
            $enrolled[$cinfo['idCourse']][$cinfo['edition_id']] = $cinfo['number'];
        }
    }
    // search pre-assessment -----------------------------------------------------------
    $select_assess = "" . " SELECT c.idCourse, c.course_type, c.idCategory, c.code, c.name, c.description, c.lang_code, c.difficult, " . "\tc.subscribe_method, c.date_begin, c.date_end, c.max_num_subscribe, " . "\tc.selling, c.prize, c.create_date, c.status AS course_status, c.course_edition, " . "\tc.classrooms, c.img_othermaterial, c.course_demo, c.course_vote, " . "\tc.can_subscribe, c.sub_start_date, c.sub_end_date, c.valid_time, c.userStatusOp, " . "\tu.level, u.date_inscr, u.date_first_access, u.date_complete, u.status AS user_status, u.waiting, c.advance, u.waiting ";
    $from_assess = " FROM " . $GLOBALS['prefix_lms'] . "_course AS c " . "\t JOIN " . $GLOBALS['prefix_lms'] . "_courseuser AS u ";
    $where_assess = " c.idCourse = u.idCourse " . " AND u.idUser = '******' " . " AND c.course_type = 'assessment' " . " AND  ( c.status <> '" . CST_PREPARATION . "' OR u.level > 3 ) " . ($filter == 'level' ? " AND level = '" . $filter_level . "'" : "");
    //." AND ( u.status <> '"._CUS_END."' OR u.level > 3 ) ";
    $preass_list = sql_query($select_assess . $from_assess . " WHERE " . $where_assess . " ORDER BY c.name ");
    // pre assessment list ---------------------------------------------------------------------------------------
    $i = 0;
    if (mysql_num_rows($preass_list) && $current_tab == 'lo_plan') {
        if ($page_add) {
            $GLOBALS['page']->add('<div id="mycourse_asses">' . '<h1>' . $lang_c->def('_ASSESSMENT_LIST') . '</h1>', 'content');
        }
        while ($cinfo = mysql_fetch_assoc($preass_list)) {
            $cinfo['user_score'] = isset($user_score[$cinfo['idCourse']]) ? $user_score[$cinfo['idCourse']] : NULL;
            if (isset($comment_count[$cinfo['idCourse']])) {
                $cinfo['comment_count'] = $comment_count[$cinfo['idCourse']];
            }
            if ($page_add) {
                $GLOBALS['page']->add(dashmyassess($url, $lang_c, $cinfo, $i++), 'content');
            }
        }
        if ($page_add) {
            $GLOBALS['page']->add('</div>', 'content');
        }
    }
    // page intest ------------------------------------------------------------
    require_once $GLOBALS['where_lms'] . '/lib/lib.levels.php';
    $lvl = CourseLevel::getLevels();
    $title = $lang->def('_COURSE_LIST');
    switch ($filter) {
        case "access":
            $title = $lang->def('_COURSE_YOU_CAN_ACCESS');
            break;
        case "expiring":
            $title = $lang->def('_COURSE_EXPIRING');
            break;
        case "subscribed":
            $title = $lang->def('_COURSE_SUBSCRIBED');
            break;
        case "begin":
            $title = $lang->def('_COURSE_BEGIN');
            break;
        case "end":
            $title = $lang->def('_COURSE_END');
            break;
        case "level":
            $title = str_replace('[level]', $lvl[$_GET['filter_on']], $lang->def('_COURSE_AS'));
            break;
    }
    if ($page_add) {
        $GLOBALS['page']->add('<div id="mycourse_list">' . '<h1>' . $title . '</h1>', 'content');
    }
    $i = 0;
    $direct_play = false;
    while ($cinfo = mysql_fetch_assoc($re_course)) {
        $access = Man_Course::canEnterCourse($cinfo);
        if ($cinfo['direct_play'] == 1) {
            $direct_play = true;
        }
        $course_stats['total']++;
        if ($cinfo['user_status'] == _CUS_RESERVED || $cinfo['user_status'] == _CUS_WAITING_LIST) {
            $course_stats['with_wstatus'][$cinfo['user_status']]++;
        } elseif ($access['can']) {
            $course_stats['u_can_enter']++;
        }
        if (isset($course_stats['with_ustatus'][$cinfo['user_status']])) {
            $course_stats['with_ustatus'][$cinfo['user_status']]++;
        } else {
            $course_stats['with_ustatus'][$cinfo['user_status']] = 1;
        }
        if (!isset($course_stats['with_ulevel'][$cinfo['level']])) {
            $course_stats['with_ulevel'][$cinfo['level']] = 1;
        } else {
            $course_stats['with_ulevel'][$cinfo['level']]++;
        }
        if (isset($available_cert[$cinfo['idCourse']])) {
            while (list($id_cert, $certificate) = each($available_cert[$cinfo['idCourse']])) {
                if (!isset($released[$id_cert]) && $cert->canRelease($certificate[CERT_AV_STATUS], $cinfo['user_status'])) {
                    $course_stats['cert_relesable']++;
                }
            }
        }
    }
    if (mysql_num_rows($re_course)) {
        mysql_data_seek($re_course, 0);
    }
    while ($cinfo = mysql_fetch_assoc($re_course)) {
        $cinfo['edition_list'] = isset($editions[$cinfo['idCourse']]) ? $editions[$cinfo['idCourse']] : array();
        $cinfo['user_score'] = isset($user_score[$cinfo['idCourse']]) ? $user_score[$cinfo['idCourse']] : NULL;
        $cinfo['enrolled'] = isset($enrolled[$cinfo['idCourse']]) ? $enrolled[$cinfo['idCourse']] : false;
        if (isset($comment_count[$cinfo['idCourse']])) {
            $cinfo['comment_count'] = $comment_count[$cinfo['idCourse']];
        }
        $cinfo['classrooms'] = isset($classrooms[$cinfo['classrooms']]) ? $classrooms[$cinfo['classrooms']] : '';
        // advertising --------------------------------------------------------------------------------------------
        $cinfo['to_read']['advice'] = isset($advices[$cinfo['idCourse']]) ? $advices[$cinfo['idCourse']] : 0;
        $cinfo['to_read']['forum'] = isset($forums[$cinfo['idCourse']]) ? $forums[$cinfo['idCourse']] : 0;
        $cinfo['to_read']['lobj'] = isset($org_chart[$cinfo['idCourse']]) ? $org_chart[$cinfo['idCourse']] : 0;
        // 10 days in the future
        $range = time() + 10 * 24 * 60 * 60;
        $expiring = false;
        if ($cinfo['date_end'] != '0000-00-00') {
            $time_end = fromDatetimeToTimestamp($cinfo['date_end']);
            if ($range > $time_end) {
                $expiring = true;
                $course_stats['expiring']++;
            }
        }
        if ($cinfo['valid_time'] != '0' && $cinfo['valid_time'] != '' && $cinfo['date_first_access'] != '') {
            $time_first_access = fromDatetimeToTimestamp($cinfo['date_first_access']);
            if ($range > $time_first_access + $cinfo['valid_time'] * 24 * 3600) {
                $expiring = true;
                $course_stats['expiring']++;
            }
        }
        if (isset($first_is_scorm[$cinfo['idCourse']])) {
            $cinfo['first_is_scorm'] = $first_is_scorm[$cinfo['idCourse']];
        } else {
            $cinfo['first_is_scorm'] = false;
        }
        $access = Man_Course::canEnterCourse($cinfo);
        // --------------------------------------------------------------------
        if (!isset($path_courses['all_items'][$cinfo['idCourse']])) {
            // the course is not related with a coursepath, so i can print it --------------
            if ($filter == 'level') {
                if ($subscription['course'][$cinfo['idCourse']]['level'] == $filter_level) {
                    $dash = dashmycourse($url, $lang_c, $subscription, $cinfo, $i++);
                } else {
                    $dash = '';
                }
            } else {
                $dash = dashmycourse($url, $lang_c, $subscription, $cinfo, $i++);
            }
            if ($use_tab == true) {
                if ($course_stats['with_ustatus'][_CUS_END] == $course_stats['total']) {
                    $current_tab = 'lo_history';
                }
                if ($current_tab == 'lo_history') {
                    if ($cinfo['user_status'] == _CUS_END && $page_add) {
                        $GLOBALS['page']->add($dash, 'content');
                    }
                } else {
                    if (($cinfo['user_status'] != _CUS_END || $cinfo['level'] >= 4) && $page_add) {
                        $GLOBALS['page']->add($dash, 'content');
                    }
                }
            } else {
                switch ($filter) {
                    case "access":
                        if ($access['can'] && $page_add) {
                            $GLOBALS['page']->add($dash, 'content');
                        }
                        break;
                    case "expiring":
                        if ($expiring && $page_add) {
                            $GLOBALS['page']->add($dash, 'content');
                        }
                        break;
                    case "subscribed":
                        if ($cinfo['user_status'] == _CUS_SUBSCRIBED && $page_add) {
                            $GLOBALS['page']->add($dash, 'content');
                        }
                        break;
                    case "begin":
                        if ($cinfo['user_status'] == _CUS_BEGIN && $page_add) {
                            $GLOBALS['page']->add($dash, 'content');
                        }
                        break;
                    case "end":
                        if ($cinfo['user_status'] == _CUS_END && $page_add) {
                            $GLOBALS['page']->add($dash, 'content');
                        }
                        break;
                    case "level":
                        if ($_GET['filter_on'] == $cinfo['level'] && $page_add) {
                            $GLOBALS['page']->add($dash, 'content');
                        }
                        break;
                    default:
                        if ($page_add) {
                            $GLOBALS['page']->add($dash, 'content');
                        }
                }
            }
        } else {
            // the course is related with a coursepath, so i must wait to print it ----------
            //$cinfo['prerequisites'] = $path_courses['all_items'][$cinfo['idCourse']]; // <- useless?
            //$courses =array($cinfo['idCourse']=>$cinfo);
            $prere = $cp_info[$cinfo['idCourse']]["prerequisites"];
            if ($path_man->checkPrerequisites($prere, $subscription)) {
                $cinfo['prerequisites_satisfied'] = true;
            } else {
                $cinfo['prerequisites_satisfied'] = false;
            }
            if ($filter == 'level') {
                if ($subscription['course'][$cinfo['idCourse']]['level'] == $filter_level) {
                    $course_cache[$cinfo['idCourse']] = dashmycourse($url, $lang_c, $subscription, $cinfo, 1, true, 4);
                } else {
                    $course_cache[$cinfo['idCourse']] = '';
                }
            } else {
                $course_cache[$cinfo['idCourse']] = dashmycourse($url, $lang_c, $subscription, $cinfo, 1, true, 4);
            }
        }
        // end else-if -------------------------------------------------------
    }
    //  end while ------------------------------------------------------------
    if ($direct_play && $page_add) {
        $GLOBALS['page']->add('' . '	<link href="' . getPathTemplate() . '/style/shadowbox.css" rel="stylesheet" type="text/css" />' . '<script type="text/javascript" src="' . $GLOBALS['where_framework_relative'] . '/addons/shadowbox/shadowbox-yui.js"></script>' . "\n" . '<script type="text/javascript" src="' . $GLOBALS['where_framework_relative'] . '/addons/shadowbox/shadowbox.js"></script>' . "\n", 'page_head');
        $GLOBALS['page']->add('<script type="text/javascript">
	
		YAHOO.util.Event.onDOMReady(function() {
			var options = { listenOverlay:false, overlayOpacity:"0.8", 
				loadingImage:"' . getPathImage('lms') . 'standard/loading.gif", overlayBgImage:"' . getPathImage('lms') . 'standard/overlay-85.png", 
				text: {close: "' . Lang::t('_CLOSE') . '", cancel: "' . Lang::t('_UNDO') . '", loading:"' . Lang::t('_LOADING') . '" },
				onOpen: function (gallery) { window.onbeforeunload = function() { return "' . Lang::t('_CONFIRM_EXIT', 'organization', 'lms') . '"; } }
		    }; 
			Shadowbox.init(options); 
			Shadowbox.close = function() { 
				window.frames[\'shadowbox_content\'].uiPlayer.closePlayer(true, window);
			}
		});
		</script>');
    }
    if ($course_stats['total'] == 0 && $page_add) {
        $GLOBALS['page']->add('' . '<b>' . $lang->def('_NO_COURSE') . '</b> ' . '<br />', 'content');
    }
    if ($page_add) {
        $GLOBALS['page']->add('</div>', 'content');
    }
    // Coursepath --------------------------------------------------------------
    if (!empty($coursepath)) {
        // find structures of the course path ----------------------------------
        $path_slot = $path_man->getPathSlot(array_keys($coursepath));
        // coursepath list -----------------------------------------------------
        if ($page_add) {
            $GLOBALS['page']->add('<div id="mycoursepath_list">' . '<h1>' . $lang->def('_COURSEPATH_LIST') . '</h1>', 'content');
        }
        $i = 0;
        // find course basilar information -------------------------------------
        if (!empty($needed_info_for)) {
            $course_info = $man_course->getAllCourses(false, false, $needed_info_for);
        } else {
            $course_info = array();
        }
        while (list($id_path, $path) = each($coursepath)) {
            $html = '<div class="coursepath_container coursepath_container_simple">';
            $html .= '<h2>' . ($path[COURSEPATH_CODE] != '' ? '[' . $path[COURSEPATH_CODE] . '] ' : '') . $path[COURSEPATH_NAME] . '</h2>';
            if (!isset($path_courses[$id_path]) || empty($path_courses[$id_path])) {
                $html .= $lang->def('_NO_COURSE_ASSIGNED_TO_COURSEPATH') . '<br />';
            } else {
                // display the slots
                foreach ($path_slot[$id_path] as $id_slot => $slot_info) {
                    if ($id_slot == 0) {
                        $html .= '<h3>' . $lang->def('_MANDATORY') . '</h3>';
                        if (!empty($path_courses[$id_path][$id_slot])) {
                            $html .= '<ul class="coursepath_mainslot">';
                        }
                    } else {
                        if ($slot_info['min_selection'] > 0 && $slot_info['max_selection'] > 0) {
                            $title = str_replace(array('[min_selection]', '[max_selection]'), array($slot_info['min_selection'], $slot_info['max_selection']), $lang->def('_COURSE_PATH_SLOT_MIN_MAX'));
                        } elseif ($slot_info['max_selection'] > 0) {
                            $title = str_replace('[max_selection]', $slot_info['max_selection'], $lang->def('_COURSE_PATH_SLOT_MAX'));
                        } else {
                            $title = $lang->def('_COURSE_PATH_SLOT');
                        }
                        $html .= '<h3>' . $title . '</h3>';
                        if (!empty($path_courses[$id_path][$id_slot])) {
                            $html .= '<ul class="coursepath_otherslot">';
                        }
                    }
                    while (list($id) = each($path_courses[$id_path][$id_slot])) {
                        if (isset($course_cache[$id])) {
                            $html .= '<li>' . $course_cache[$id] . '</li>';
                        } else {
                            $html .= '<li>' . dashAcourse($id, 4) . '</li>';
                        }
                    }
                    if (!empty($path_courses[$id_path][$id_slot])) {
                        $html .= '</ul>';
                    }
                }
            }
            $html .= '</div>';
            if ($page_add) {
                $GLOBALS['page']->add($html, 'content');
            }
        }
        if ($page_add) {
            $GLOBALS['page']->add('</div>', 'content');
        }
    }
    if ($course_stats['cert_relesable'] < 0) {
        $course_stats['cert_relesable'] = 0;
    }
    return $course_stats;
}
 function get_courses_filter()
 {
     $back_url = $this->back_url;
     $jump_url = $this->jump_url;
     $next_url = $this->next_url;
     require_once _base_ . '/lib/lib.form.php';
     require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
     require_once $GLOBALS['where_lms'] . '/lib/lib.course_managment.php';
     $lang =& DoceboLanguage::createInstance('report', 'framework');
     //$sel = new Course_Manager();
     //$sel->setLink('index.php?modname=report&op=report_rows_filter');
     if (isset($_POST['undo_filter'])) {
         Util::jump_to($back_url);
     }
     //set $_POST data in $_SESSION['report_tempdata']
     $selector = new Selector_Course();
     if (!isset($_SESSION['report_tempdata']['columns_filter'])) {
         $_SESSION['report_tempdata']['columns_filter'] = array('all_courses' => true, 'selected_courses' => array(), 'showed_columns' => array('completed' => true, 'initinere' => true, 'notstarted' => true, 'show_percentages' => true));
     }
     $ref =& $_SESSION['report_tempdata']['columns_filter'];
     if (isset($_POST['update_tempdata'])) {
         $selector->parseForState($_POST);
         $temp = $selector->getSelection($_POST);
         $ref['selected_courses'] = $temp;
         $ref['all_courses'] = Get::req('all_courses', DOTY_INT, 1) == 1 ? true : false;
         $ref['showed_columns'] = array('completed' => Get::req('cols_completed', DOTY_INT, 0) > 0 ? true : false, 'initinere' => Get::req('cols_initinere', DOTY_INT, 0) > 0 ? true : false, 'notstarted' => Get::req('cols_notstarted', DOTY_INT, 0) > 0 ? true : false, 'show_percentages' => Get::req('cols_show_percentages', DOTY_INT, 0) > 0 ? true : false);
     } else {
         $selector->resetSelection($ref['selected_courses']);
     }
     //back to columns category selection
     if (isset($_POST['undo_filter'])) {
         Util::jump_to($back_url);
     }
     //filter setting done, go to next step
     if (isset($_POST['import_filter']) || isset($_POST['show_filter']) || isset($_POST['pre_filter'])) {
         $temp_url = $next_url;
         if (isset($_POST['pre_filter'])) {
             $temp_url .= '&show=1&nosave=1';
         }
         if (isset($_POST['show_filter'])) {
             $temp_url .= '&show=1';
         }
         Util::jump_to($temp_url);
     }
     $temp = count($ref['selected_courses']);
     $box = new ReportBox('courses_selector');
     $box->title = $this->lang->def('_COURSES_SELECTION_TITLE');
     $box->description = false;
     $boxlang =& DoceboLanguage::createInstance('report', 'framework');
     $box->body .= '<div class="fc_filter_line filter_corr">';
     $box->body .= '<input id="all_courses" name="all_courses" type="radio" value="1" ' . ($ref['all_courses'] ? 'checked="checked"' : '') . ' />';
     $box->body .= ' <label for="all_courses">' . $boxlang->def('_ALL_COURSES') . '</label>';
     $box->body .= ' <input id="sel_courses" name="all_courses" type="radio" value="0" ' . ($ref['all_courses'] ? '' : 'checked="checked"') . ' />';
     $box->body .= ' <label for="sel_courses">' . $boxlang->def('_SEL_COURSES') . '</label>';
     $box->body .= '</div>';
     $box->body .= '<div id="selector_container"' . ($ref['all_courses'] ? ' style="display:none"' : '') . '>';
     $box->body .= $selector->loadCourseSelector(true) . '</div>';
     $box->footer = $boxlang->def('_CURRENT_SELECTION') . ':&nbsp;<span id="csel_foot">' . ($ref['all_courses'] ? $boxlang->def('_ALL') : ($temp != '' ? $temp : '0')) . '</span>';
     YuiLib::load(array('yahoo' => 'yahoo-min.js', 'yahoo-dom-event' => 'yahoo-dom-event.js', 'element' => 'element-beta-min.js', 'datasource' => 'datasource-beta-min.js', 'connection' => 'connection-min.js', 'event' => 'event-min.js', 'json' => 'json-beta-min.js'), array('/assets/skins/sam' => 'skin.css'));
     addJs($GLOBALS['where_lms_relative'] . '/admin/modules/report/', 'courses_filter.js');
     cout('<script type="text/javascript"> ' . "\n" . 'var courses_count="' . ($temp != '' ? $temp : '0') . '";' . "\n" . 'var courses_all="' . $boxlang->def('_ALL') . '";' . "\n" . 'YAHOO.util.Event.addListener(window, "load", function(e){ courses_selector_init(); });' . "\n" . '</script>', 'page_head');
     //columns selection
     $col_box = new ReportBox('columns_selection');
     $col_box->title = $this->lang->def('_REPORT_SEL_COLUMNS');
     $col_box->description = $this->lang->def('_SELECT_THE_DATA_COL_NEEDED');
     $col_box->body .= Form::getOpenFieldSet($this->lang->def('_STATUS'));
     $col_box->body .= Form::getCheckBox(Lang::t('_USER_STATUS_SUBS', 'course'), 'cols_notstarted', 'cols_notstarted', 1, $ref['showed_columns']['notstarted']);
     $col_box->body .= Form::getCheckBox(Lang::t('_USER_STATUS_BEGIN', 'course'), 'cols_initinere', 'cols_initinere', 1, $ref['showed_columns']['initinere']);
     $col_box->body .= Form::getCheckBox(Lang::t('_USER_STATUS_END', 'course'), 'cols_completed', 'cols_completed', 1, $ref['showed_columns']['completed']);
     $col_box->body .= Form::getCheckBox(Lang::t('_PERCENTAGE', 'course'), 'cols_show_percentages', 'cols_show_percentages', 1, $ref['showed_columns']['show_percentages']);
     $col_box->body .= Form::getCloseFieldSet();
     cout(Form::openForm('first_step_user_filter', $jump_url, false, 'post') . $box->get() . $col_box->get() . Form::getHidden('update_tempdata', 'update_tempdata', 1));
 }
Example #6
0
function testQuestion()
{
    checkPerm('view');
    YuiLib::load(array('animation' => 'my_animation.js'));
    addJs($GLOBALS['where_lms_relative'] . '/modules/coursereport/', 'ajax.coursereport.js');
    require_once _base_ . '/lib/lib.table.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.test.php';
    $lang =& DoceboLanguage::createInstance('coursereport', 'lms');
    $out =& $GLOBALS['page'];
    $out->setWorkingZone('content');
    $out->add('<script type="text/javascript">' . ' setup_coursereport(\'' . $GLOBALS['where_lms_relative'] . '/ajax.server.php?plf=lms&mn=coursereport&\'); ' . '</script>', 'page_head');
    $id_test = importVar('id_test', true, 0);
    $test_man = new GroupTestManagement();
    $lev = FALSE;
    if (isset($_GET['type_filter']) && $_GET['type_filter'] != null) {
        $lev = $_GET['type_filter'];
    }
    $students = getSubscribed((int) $_SESSION['idCourse'], FALSE, $lev, TRUE, false, false, true);
    $id_students = array_keys($students);
    $quests = array();
    $answers = array();
    $tracks = array();
    $test_info = $test_man->getTestInfo(array($id_test));
    $page_title = array('index.php?modname=coursereport&amp;op=coursereport' => $lang->def('_COURSEREPORT', 'menu_course'), $test_info[$id_test]['title']);
    $out->add(getTitleArea($page_title, 'coursereport') . '<div class="std_block">');
    $query_test = "SELECT title" . " FROM " . $GLOBALS['prefix_lms'] . "_test" . " WHERE idTest = '" . $id_test . "'";
    list($titolo_test) = sql_fetch_row(sql_query($query_test));
    $query_quest = "SELECT idQuest, type_quest, title_quest" . " FROM " . $GLOBALS['prefix_lms'] . "_testquest" . " WHERE idTest = '" . $id_test . "'" . " ORDER BY sequence";
    $result_quest = sql_query($query_quest);
    while (list($id_quest, $type_quest, $title_quest) = sql_fetch_row($result_quest)) {
        $quests[$id_quest]['idQuest'] = $id_quest;
        $quests[$id_quest]['type_quest'] = $type_quest;
        $quests[$id_quest]['title_quest'] = $title_quest;
        //		$query_answer =	"SELECT idAnswer, is_correct, answer"
        //						." FROM ".$GLOBALS['prefix_lms']."_testquestanswer"
        //						." WHERE idQuest = '".$id_quest."'"
        //						." ORDER BY sequence";
        $query_answer = "SELECT tqa.idAnswer, tqa.is_correct, tqa.answer" . " FROM " . $GLOBALS['prefix_lms'] . "_testquestanswer AS tqa" . " LEFT JOIN" . " " . $GLOBALS['prefix_lms'] . "_testtrack_answer tta ON tqa.idAnswer = tta.idAnswer" . " LEFT JOIN" . " " . $GLOBALS['prefix_lms'] . "_testtrack tt ON tt.idTrack = tta.idTrack" . " WHERE tqa.idQuest = '" . $id_quest . "'";
        $query_answer .= " and tt.idUser in (" . implode(",", $id_students) . ")";
        $query_answer .= " ORDER BY tqa.sequence";
        $result_answer = sql_query($query_answer);
        while (list($id_answer, $is_correct, $answer) = sql_fetch_row($result_answer)) {
            $answers[$id_quest][$id_answer]['idAnswer'] = $id_answer;
            $answers[$id_quest][$id_answer]['is_correct'] = $is_correct;
            $answers[$id_quest][$id_answer]['answer'] = $answer;
        }
        if ($type_quest == 'choice_multiple' || $type_quest == 'choice' || $type_quest == 'inline_choice') {
            $answers[$id_quest][0]['idAnswer'] = 0;
            $answers[$id_quest][0]['is_correct'] = 0;
            $answers[$id_quest][0]['answer'] = $lang->def('_NO_ANSWER');
        }
    }
    $query_track = "SELECT idTrack" . " FROM " . $GLOBALS['prefix_lms'] . "_testtrack" . " WHERE idTest = '" . $id_test . "'" . " AND score_status = 'valid'" . " AND idUser in (" . implode(",", $id_students) . ")";
    $result_track = sql_query($query_track);
    while (list($id_track) = sql_fetch_row($result_track)) {
        $query_track_answer = "SELECT idQuest, idAnswer, more_info" . " FROM " . $GLOBALS['prefix_lms'] . "_testtrack_answer" . " WHERE idTrack = '" . $id_track . "'";
        // COMMENTATO MA NON E' CHIARO COME MAI C'E'????
        //." AND user_answer = 1";
        //print_r($query_track_answer.'<br />');
        $result_track_answer = sql_query($query_track_answer);
        //echo $query_track_answer."<br>";
        while (list($id_quest, $id_answer, $more_info) = sql_fetch_row($result_track_answer)) {
            $tracks[$id_track][$id_quest][$id_answer]['more_info'] = $more_info;
            //echo " -> ".$id_quest." - ".$id_answer." - ".$more_info."<br>";
        }
    }
    $query_total_play = "SELECT COUNT(*)" . " FROM " . $GLOBALS['prefix_lms'] . "_testtrack" . " WHERE idTest = '" . $id_test . "'" . " AND score_status = 'valid'" . " AND idUser in (" . implode(",", $id_students) . ")";
    list($total_play) = sql_fetch_row(sql_query($query_total_play));
    /*if ($total_play == 0) {
                    $query_total_play =     "SELECT COUNT(*)"
                                                    ." FROM ".$GLOBALS['prefix_lms']."_testtrack"
                                                    ." WHERE idTest = '".$id_test."' AND score_status = 'not_checked'";
                    list($total_play2) = mysql_fetch_row(mysql_query($query_total_play));
    $total_play += $total_play2;
    
            }*/
    //print_r($tracks);
    foreach ($quests as $quest) {
        switch ($quest['type_quest']) {
            case "inline_choice":
            case "hot_text":
            case "choice_multiple":
            case "choice":
                $cont_h = array($lang->def('_ANSWER'), $lang->def('_PERCENTAGE'));
                $type_h = array('', 'image nowrap');
                $tb = new Table(0, str_replace('[title]', $quest['title_quest'], $lang->def('_TABLE_QUEST')));
                $tb->setColsStyle($type_h);
                $tb->addHead($cont_h);
                foreach ($answers[$quest['idQuest']] as $answer) {
                    $cont = array();
                    if ($answer['is_correct']) {
                        $txt = '<img src="' . getPathImage('lms') . 'standard/publish.png" alt="' . $lang->def('_ANSWER_CORRECT') . '" title="' . $lang->def('_ANSWER_CORRECT') . '" align="left" /> ';
                    } else {
                        $txt = '';
                    }
                    $cont[] = '<p>' . $txt . ' ' . $answer['answer'] . '</p>';
                    $answer_given = 0;
                    reset($tracks);
                    $i = 0;
                    foreach ($tracks as $track) {
                        $i++;
                        if (isset($track[$quest['idQuest']][$answer['idAnswer']])) {
                            $answer_given++;
                        } elseif (!isset($track[$quest['idQuest']]) && $answer['idAnswer'] == 0) {
                            $answer_given++;
                        }
                    }
                    if ($answer['idAnswer'] == 0 && $i < $total_play) {
                        //			if ($i < $total_play) {
                        $answer_given = $answer_given + ($total_play - $i);
                    }
                    if ($total_play > 0) {
                        $percentage = $answer_given / $total_play * 100;
                    } else {
                        $percentage = 0;
                    }
                    $percentage = number_format($percentage, 2);
                    $cont[] = Util::draw_progress_bar($percentage, true, false, false, false, false);
                    $tb->addBody($cont);
                }
                $out->add($tb->getTable() . '<br/>');
                break;
            case "upload":
            case "extended_text":
                $out->add('<div>');
                $out->add('<p><a href="#" onclick="getQuestDetail(' . $quest['idQuest'] . ', ' . $id_test . ', \'' . $quest['type_quest'] . '\'); return false;" id="more_quest_' . $quest['idQuest'] . '"><img src="' . getPathImage('fw') . 'standard/more.gif" alt="' . $lang->def('_MORE_INFO') . '" />' . str_replace('[title]', $quest['title_quest'], $lang->def('_TABLE_QUEST_LIST')) . '</a></p>');
                $out->add('<p><a href="#" onclick="closeQuestDetail(' . $quest['idQuest'] . '); return false;" id="less_quest_' . $quest['idQuest'] . '" style="display:none"><img src="' . getPathImage('fw') . 'standard/less.gif" alt="' . $lang->def('_CLOSE') . '" />' . str_replace('[title]', $quest['title_quest'], $lang->def('_TABLE_QUEST_LIST')) . '</a></p>');
                $out->add('</div>');
                $out->add('<div id="quest_' . $quest['idQuest'] . '">');
                $out->add('</div>');
                break;
            case "text_entry":
                $cont_h = array($lang->def('_PERCENTAGE_CORRECT'));
                $type_h = array('align-center');
                $tb = new Table(0, str_replace('[title]', $quest['title_quest'], $lang->def('_TABLE_QUEST_CORRECT_TXT')));
                $tb->setColsStyle($type_h);
                $tb->addHead($cont_h);
                foreach ($answers[$quest['idQuest']] as $answer) {
                    $cont = array();
                    $answer_correct = 0;
                    foreach ($tracks as $track) {
                        if ($track[$quest['idQuest']][$answer['idAnswer']]['more_info'] === $answer['answer']) {
                            $answer_correct++;
                        }
                    }
                    $percentage = $answer_correct / $total_play * 100;
                    $percentage = number_format($percentage, 2);
                    $cont[] = Util::draw_progress_bar($percentage, true, false, false, false, false);
                    $tb->addBody($cont);
                }
                $out->add($tb->getTable() . '<br/>');
                break;
            case "associate":
                $cont_h = array($lang->def('_ANSWER'), $lang->def('_PERCENTAGE_CORRECT'));
                $type_h = array('', 'align-center');
                $tb = new Table(0, str_replace('[title]', $quest['title_quest'], $lang->def('_TABLE_QUEST_CORRECT_ASS')));
                $tb->setColsStyle($type_h);
                $tb->addHead($cont_h);
                foreach ($answers[$quest['idQuest']] as $answer) {
                    $cont = array();
                    $cont[] = $answer['answer'];
                    $answer_correct = 0;
                    foreach ($tracks as $track) {
                        if ($track[$quest['idQuest']][$answer['idAnswer']]['more_info'] === $answer['is_correct']) {
                            $answer_correct++;
                        }
                    }
                    $percentage = $answer_correct / $total_play * 100;
                    echo "risp corrette: " . $answer_correct . " totale: " . $total_play;
                    $percentage = number_format($percentage, 2);
                    $cont[] = Util::draw_progress_bar($percentage, true, false, false, false, false);
                    $tb->addBody($cont);
                }
                $out->add($tb->getTable() . '<br/>');
                break;
        }
        reset($answers);
        reset($tracks);
    }
    $out->add('</div>');
}
Example #7
0
function renderIPNewNetForm()
{
    global $pageno;
    if ($pageno == 'ipv6space') {
        $realm = 'ipv6net';
        $regexp = '^[a-fA-F0-9:]*:[a-fA-F0-9:\\.]*/\\d{1,3}$';
    } else {
        $realm = 'ipv4net';
        $regexp = '^(\\d{1,3}\\.){3}\\d{1,3}/\\d{1,2}$';
    }
    // IP prefix validator
    addJs('js/live_validation.js');
    $regexp = addslashes($regexp);
    addJs(<<<END
\$(document).ready(function () {
\tdocument.add_new_range.range.setAttribute('match', '{$regexp}');
\tValidate.init();
});
END
, TRUE);
    startPortlet('Add new');
    echo '<table border=0 cellpadding=10 align=center>';
    // This form requires a name, so JavaScript validator can find it.
    // No printOpFormIntro() hence
    echo "<form method=post name='add_new_range' action='" . makeHrefProcess() . "'>\n";
    echo "<input type=hidden name=op value=add>\n";
    // tags column
    echo '<tr><td rowspan=5><h3>assign tags</h3>';
    renderNewEntityTags($realm);
    echo '</td>';
    // inputs column
    $prefix_value = empty($_REQUEST['set-prefix']) ? '' : $_REQUEST['set-prefix'];
    echo "<th class=tdright>prefix</th><td class=tdleft><input type=text name='range' size=36 class='live-validate' tabindex=1 value='{$prefix_value}'></td>";
    echo '<tr><th class=tdright>VLAN</th><td class=tdleft>';
    echo getOptionTree('vlan_ck', getAllVLANOptions(), array('select_class' => 'vertical', 'tabindex' => 2)) . '</td></tr>';
    echo "<tr><th class=tdright>name</th><td class=tdleft><input type=text name='name' size='20' tabindex=3></td></tr>";
    echo '<tr><td class=tdright><input type=checkbox name="is_connected" tabindex=4></td><th class=tdleft>reserve subnet-router anycast address</th></tr>';
    echo "<tr><td colspan=2>";
    printImageHREF('CREATE', 'Add a new network', TRUE, 5);
    echo '</td></tr>';
    echo "</form></table><br><br>\n";
    finishPortlet();
}
Example #8
0
             $seconds = '0' . $seconds;
         }
         $tot_time = ($hours != 0 ? $hours . 'h ' : '') . $minutes . 'm ';
         //.$seconds.'s ';
         Util::get_js(Get::rel_path('lms') . '/lib/lib.track_user.js', true, true);
         $GLOBALS['page']->add('<script type="text/javascript">' . '	userCounterStart(' . (int) $partial_time_sec . ', ' . (int) $tot_time_sec . ');' . '</script>' . "\n", 'page_head');
         $user_stats['head'][0] = Lang::t('_PARTIAL_TIME', 'course');
         $user_stats['body'][0] = '<span id="partial_time">' . $partial_time . '</span>';
         $user_stats['head'][1] = Lang::t('_TOTAL_TIME', 'course');
         $user_stats['body'][1] = '<span id="total_time">' . $tot_time . '</span>';
     }
 }
 if (Docebo::course()->getValue('show_who_online') == _SHOW_INSTMSG) {
     addCss('instmsg');
     addJs('addons/yui/my_window/', 'windows.js');
     addJs($GLOBALS['where_lms_relative'] . '/modules/instmsg/', 'instmsg.js');
     $GLOBALS['page']->add('<script type="text/javascript">' . " setup_instmsg( '" . Docebo::user()->getIdSt() . "', " . "'" . $userid . "', " . "'" . getPathImage('fw') . "' ); " . '</script>' . "\n", 'page_head');
     $user_stats['head'][2] = Lang::t('_WHOIS_ONLINE', 'course');
     $user_stats['body'][2] = '<b id="user_online_n">' . '<a id="open_users_list" href="javascript:void(0)">' . TrackUser::getWhoIsOnline($_SESSION['idCourse']) . '</a></b>';
 } elseif (Docebo::course()->getValue('show_who_online') == _SHOW_COUNT) {
     $user_stats['head'][2] = Lang::t('_WHOIS_ONLINE', 'course');
     $user_stats['body'][2] = '<b id="user_online_n">' . TrackUser::getWhoIsOnline($_SESSION['idCourse']) . '</b>';
 }
 $all_stats = '<div id="accordion"><h3>';
 $all_stats .= '<span class="tempo">' . Lang::t('_TOTAL_TIME', 'course') . ': ' . $tot_time . ' ';
 // get status count value
 if (Docebo::course()->getValue('show_progress') == 1) {
     require_once $GLOBALS['where_lms'] . '/lib/lib.stats.php';
     $total = getNumCourseItems($_SESSION['idCourse'], FALSE, getLogUserId(), FALSE);
     $tot_complete = getStatStatusCount(getLogUserId(), $_SESSION['idCourse'], array('completed', 'passed'));
     $tot_incomplete = $total - $tot_complete;
 function getModUi($room_info)
 {
     require_once _base_ . '/lib/lib.form.php';
     addJs($GLOBALS['where_lms_relative'] . '/modules/conference/', 'ajax_conference.js');
     $lang =& DoceboLanguage::createInstance('conference', 'lms');
     cout(Form::openForm('create_conference', 'index.php?modname=conference&amp;op=modconf&id=' . $room_info['id']) . Form::openElementSpace() . Form::getTextfield($lang->def('_VIDEOCONFERENCE'), 'conference_name', 'conference_name', 255, $room_info['name']) . Form::getDatefield($lang->def('_START_DATE'), 'start_date', 'start_date', Format::date(date('Y-m-d', $room_info['starttime']), 'date')) . Form::getLineBox($lang->def('_AT_HOUR'), Form::getInputDropdown('', 'start_time_hour', 'start_time[hour]', range(0, 23), importVar('start_time_hour', false, date("H", $room_info['starttime'])), '') . ' : ' . Form::getInputDropdown('', 'start_time_minute', 'start_time[minute]', range(0, 59), importVar('start_time_hour', false, date("i", $room_info['starttime'])), '')) . Form::getLineBox($lang->def('_MEETING_HOURS'), Form::getInputDropdown('', 'meetinghours', 'meetinghours', range(0, 5), $room_info['meetinghours'], '')) . Form::getTextfield($lang->def('_MAX_PARTICIPANTS'), 'maxparticipants', 'maxparticipants', 6, $room_info['maxparticipants']) . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('update_conf', 'update_conf', $lang->def('_UPDATE')) . Form::getButton('undo', 'undo', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm());
 }
Example #10
0
<?php

/**
* @version		2.0
* @package		Fiyo CMS
* @copyright	Copyright (C) 2014 Fiyo CMS.
* @license		GNU/GPL, see LICENSE.
**/
session_start();
if (isset($_SESSION['USER_LEVEL']) and $_SESSION['USER_LEVEL'] < 3 and isset($_GET['access'])) {
    define('_FINDEX_', 1);
    require '../../../system/jscore.php';
    addJs('../plugins/plg_jquery_ui/datatables.js');
    ?>
<script type="text/javascript">
$(document).ready(function() {
	$(".ctselect").click(function() {
		$("#selectArticle").modal('hide');
        var id = $(this).attr('rel');	
        var name = $(this).attr('name');	
		$("#link").val("?app=article&view=item&id="+id);
		$("#pg").val(name);
	});
	oTable = $('.data').dataTable({
			"bJQueryUI": true,
			"sPaginationType": "full_numbers", "bLengthChange": false
		});
		if ($.isFunction($.fn.chosen) ) {
			$("select").chosen({disable_search_threshold: 10});
		}
		$("input").addClass('form-control');
Example #11
0
<?php

/**
* @version		2.0
* @package		Fiyo CMS
* @copyright	Copyright (C) 2014 Fiyo CMS.
* @license		GNU/GPL, see LICENSE.txt
* @description	
**/
defined('_FINDEX_') or die('Access Denied');
$id = app_param('id');
$contact = new Contact() or die;
$contact->item($id, Page_ID);
$contact->send(@$_POST['name'], @$_POST['email'], @$_POST['text'], @$_POST['send'], @$_POST['to']);
addJs(FUrl . 'plugins/plg_jquery_ui/ui.validate.js');
if (isset($contact->name)) {
    ?>
	<div>
		<?php 
    if (!empty($contact->photo) and $contact->photo != '') {
        ?>
	
		<div class="contact-photo">
			<?php 
        echo $contact->photo;
        ?>
		</div>
		<?php 
    }
    ?>
	
function renderNodePingChecks($object_id)
{
    $accounts = getNodePingAccounts();
    $account_options = array();
    foreach ($accounts as $account) {
        $account_options[$account['id']] = $account['name'];
    }
    startPortlet('Add new check');
    echo "<table cellspacing=0 cellpadding=5 align='center'>\n";
    echo "<tr><th>&nbsp;</th><th>Account</th><th>Check ID</th><th></th><th>&nbsp;</th></tr>\n";
    printOpFormIntro('add');
    echo '<tr><td>';
    printImageHREF('add', 'add check', TRUE);
    echo '</td><td>' . getSelect($account_options, array('name' => 'account_id'));
    echo '</td><td><input type=text size=25 name=np_check_id tabindex=101></td><td>';
    printImageHREF('add', 'add check', TRUE);
    echo "</td></tr></form></table>\n";
    finishPortlet();
    $checks = getUnlinkedNodePingChecks($object_id);
    if (count($checks) > 0) {
        $check_options = array();
        foreach ($checks as $check) {
            $check_options[$check['id']] = sprintf("%s - %s", $check['label'], $check['type']);
        }
        startPortlet('Link existing check (' . count($checks) . ')');
        echo "<table cellspacing=0 cellpadding=5 align='center'>\n";
        printOpFormIntro('link');
        echo '<tr><td>' . getSelect($check_options, array('name' => 'check_id'));
        echo '</td><td class=tdleft>';
        printImageHREF('ATTACH', 'Link check', TRUE);
        echo "</td></tr></form></table>\n";
        finishPortlet();
    }
    addJs(<<<END
function toggleVisibility(tbodyId) {
\t\$("#" + tbodyId).toggle();
}
END
, TRUE);
    $checks = getNodePingChecks($object_id);
    startPortlet('NodePing checks (' . count($checks) . ')');
    if (count($checks)) {
        echo "<table cellspacing=0 cellpadding=5 align=center class=widetable>\n";
        echo "<tr><th>&nbsp;</th><th>Type</th><th>Label</th><th>Interval</th><th>Reason</th><th>Result</th><th>Unlink</th><th>&nbsp;</th></tr>\n";
        $token = '';
        foreach ($checks as $check) {
            printOpFormIntro('upd', array('check_id' => $check['check_id']));
            echo '<tr><td><a href="' . makeHrefProcess(array('op' => 'del', 'check_id' => $check['check_id'])) . '">';
            echo getImageHREF('delete', 'Unlink and delete this check') . '</a></td>';
            echo "<td><a href=\"#\" onclick=\"toggleVisibility('{$check['check_id']}');\">{$check['type']}</a></td>";
            echo "<td>{$check['label']}</td>";
            echo "<td>{$check['check_interval']}</td>";
            // re-use a nodeping object if it already exists and is using the same token as this check
            if ($check['token'] != $token) {
                $nodeping = new NodePingClient(array('token' => $check['token']));
            }
            $token = $check['token'];
            $np_result_raw = $nodeping->result->get(array('id' => $check['np_check_id'], 'limit' => 5, 'clean' => true));
            if (isset($np_result_raw['error'])) {
                echo "<td colspan=5>Error: {$check_status_raw['error']}</td>";
            } else {
                $np_result = $np_result_raw[0];
                if ($np_result['su']) {
                    $reason = '';
                    $result_str = 'PASS';
                    $result_class = 'msg_success';
                } else {
                    $reason = $np_result['sc'];
                    $result_str = 'FAIL';
                    $result_class = 'msg_error';
                }
                echo "<td>{$reason}</td>";
                echo "<td><span class='{$result_class}'>{$result_str}</span></td>";
            }
            echo '<td class=center><a href="' . makeHrefProcess(array('op' => 'unlink', 'link_id' => $check['link_id'])) . '">';
            echo getImageHREF('cut', 'Unlink this check') . '</a></td>';
            echo '<td class=tdleft>';
            printImageHREF('save', 'Save changes', TRUE);
            echo "</td></tr>\n";
            echo "<tbody id='{$check['check_id']}' style='display:none;'><tr><td colspan=8>";
            echo '<table cellspacing=0 cellpadding=5 align=left>';
            // override the td styling so it doesn't have a border
            echo '<tr><th>Account</th><td align=left style="border-top: 0px;">' . getSelect($account_options, array('name' => 'account_id'), $check['account_id']) . '</td></tr>';
            echo '<tr><th>Check ID</th><td align=left style="border-top: 0px;"><input type=text size=25 name=np_check_id value="' . $check['np_check_id'] . '"></td></tr>';
            echo "<tr><th>Target</th><td align=left style=\"border-top:0px; word-wrap:break-word; max-width:250px;\">{$check['target']}</td></tr>";
            echo '</table></form>';
            echo '<table cellspacing=0 cellpadding=5 align=right>';
            echo '<tr><th colspan=5>Last 5 Results</th></tr>';
            echo '<tr><th>Time</th><th>Loc</th><th>Run Time</th><th>Response</th><th>Result</th></tr>';
            foreach ($np_result_raw as $np_row) {
                // time is reported in miliseconds, so trim off the last 3 digits
                printf('<tr><td>%s</td>', date('H:i:s A', substr($np_row['s'], 0, -3)));
                printf('<td>%s</td>', strtoupper($np_row['l'][$np_row['s']]));
                if ($np_row['su']) {
                    $result_str = 'PASS';
                    $result_class = 'msg_success';
                } else {
                    $result_str = 'FAIL';
                    $result_class = 'msg_error';
                }
                echo "<td>{$np_row['rt']}</td>";
                echo "<td>{$np_row['sc']}</td>";
                echo "<td><span class='{$result_class}'>{$result_str}</span></td></tr>";
            }
            echo '</table>';
            echo "</td></tr></tbody>\n";
        }
        echo "</table>\n";
    }
    finishPortlet();
}
Example #13
0
function modrule(&$url)
{
    checkPerm('mod');
    YuiLib::load(array('animation' => 'animation-min.js', 'dragdrop' => 'dragdrop-min.js', 'button' => 'button-min.js', 'container' => 'container-min.js', 'my_window' => 'windows.js'), array('container/assets/skins/sam' => 'container.css', 'button/assets/skins/sam' => 'button.css'));
    addJs($GLOBALS['where_lms_relative'] . '/admin/modules/preassessment/', 'ajax.preassessment.js');
    $id_assessment = importVar('id_assess', true, 0);
    require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
    $course_man = new Man_Course();
    require_once $GLOBALS['where_lms'] . '/lib/lib.coursepath.php';
    $coursepath_man = new CoursePath_Manager();
    require_once $GLOBALS['where_lms'] . '/lib/lib.preassessment.php';
    $assess_man = new AssessmentList();
    $rule_man = new AssessmentRule();
    $lang =& DoceboLanguage::createInstance('preassessment');
    // recover assessment
    $assessment = $assess_man->getAssessment($id_assessment);
    $rule_list = $rule_man->getAllRule($id_assessment);
    // recover new type one
    require_once _base_ . '/lib/lib.table.php';
    $tb = new Table(0, $lang->def('_CAPTION_PREASSESSMENT_RULE'), $lang->def('_SUMMARY_PREASSESSMENT_RULE'));
    // table header --------------------------------------------------------------------------------------------
    $cont_h = array($lang->def('_RULE_TEXT'), $lang->def('_RULE_ACTION'), '<img src="' . getPathImage('lms') . 'standard/modelem.png" alt="' . $lang->def('_ALT_ADD_EFFECT') . '" />', '<img src="' . getPathImage('lms') . 'standard/edit.png" alt="' . $lang->def('_MOD') . '" />', '<img src="' . getPathImage('lms') . 'standard/delete.png" alt="' . $lang->def('_DEL') . '" />');
    $type_h = array('nowrap', '', 'image', 'image', 'image');
    $usedef = 1;
    $tb->addHead($cont_h, $type_h);
    while ($rule = $rule_man->fetch_row($rule_list)) {
        $id = $rule[RULE_ID];
        if ($rule[RULE_TYPE] == RULE_DEFAULT) {
            $usedef = 0;
        }
        $rule_name = $rule_man->resolveRuleTypePhrase($lang, $rule);
        $cont = array($rule_name);
        $effect = '';
        $effects = $rule_man->parseEffects($rule[RULE_EFFECT]);
        if (count($effects['course']) > 0) {
            $effect .= $lang->def('_COURSES') . ': ' . $course_man->listCourseName($effects['course']);
        }
        if (count($effects['coursepath']) > 0) {
            if (count($effects['course']) > 0) {
                $effect .= '<br/>';
            }
            $path_list =& $coursepath_man->getNames($effects['coursepath']);
            $effect .= $lang->def('_COURSEPATH') . ': ' . implode(', ', $path_list);
        }
        if (count($effects['course']) == 0 && count($effects['coursepath']) == 0) {
            $effect = $lang->def('_DO_NOTHING');
        }
        $cont[] = $effect;
        $cont[] = '<a href="' . $url->getUrl('op=assignrule&id_rule=' . $id . '&load=1') . '" title=""' . $lang->def('_ADD_EFFECT') . '">' . '<img src="' . getPathImage('lms') . 'standard/modelem.png" alt="' . $lang->def('_ALT_ADD_EFFECT') . '" />' . '</a>';
        $cont[] = '<a href="' . $url->getUrl('op=modrulet&id_rule=' . $id) . '" title="' . $lang->def('_MOD_TITLE') . '"' . '" onclick="mod_rule_mask(\'' . $id_assessment . '\', \'' . $id . '\'); return false;"' . '>' . '<img src="' . getPathImage('lms') . 'standard/edit.png" alt="' . $lang->def('_MOD') . '" />' . '</a>';
        $cont[] = '<a href="' . $url->getUrl('op=delrule&id_rule=' . $id) . '" title="' . $lang->def('_DEL') . ': ' . $rule_name . '"' . '	onclick="del_assessment_rule(\'' . $id . '\', \'' . strip_tags($rule_name) . '\'); return false;"' . '>' . '<img src="' . getPathImage('lms') . 'standard/delete.png" alt="' . $lang->def('_DEL') . '" />' . '</a>';
        $tb->addBody($cont);
    }
    require_once _base_ . '/lib/lib.dialog.php';
    setupHrefDialogBox('a[href*=delrule]');
    $tb->addActionAdd('<a class="new_element_link" ' . ' 	onclick="add_rule_mask(\'' . $id_assessment . '\', \'' . $usedef . '\'); return false;"' . ' id="add_rule" ' . 'href="#" ' . '>' . $lang->def('_ADD_RULE') . '</a>');
    $GLOBALS['page']->add('<script type="text/javascript">' . 'YAHOO.util.Event.onDOMReady( function(e) {' . ' setup_assessment(); ' . ' YAHOO.util.Event.addListener("add_rule", "click", function(e) { add_rule_mask(\'' . $id_assessment . '\', \'' . $usedef . '\'); });' . '});' . '</script>', 'page_head');
    $GLOBALS['page']->add(getTitleArea(array($url->getUrl() => $lang->def('_ASSESSMENT'), $lang->def('_RULES') . ': ' . $assessment['name']), 'preassessment') . '<div class="std_block">' . getInfoUi($lang->def('_RULE_OVERLAPPED')), 'content');
    if (isset($_GET['result'])) {
        $GLOBALS['page']->add(guiResultStatus($lang, $_GET['result']), 'content');
    }
    $GLOBALS['page']->add($tb->getTable(), 'content');
    $GLOBALS['page']->add(getBackUi($url->getUrl(), $lang->def('_BACK')) . '</div>', 'content');
}
Example #14
0
function modBooking()
{
    require_once $GLOBALS['where_scs'] . '/lib/lib.booking.php';
    require_once _base_ . '/lib/lib.form.php';
    require_once _base_ . '/lib/lib.table.php';
    YuiLib::load(array('selector' => 'selector-beta-min.js'));
    $lang =& DoceboLanguage::createInstance('conference', 'lms');
    $room_id = Get::req('id', DOTY_INT, 0);
    $booking = new RoomBooking();
    $acl_man =& Docebo::user()->getAclManager();
    $user_booked = $booking->getRoomSubscriptions($room_id);
    if (isset($_POST['confirm'])) {
        foreach ($user_booked as $user) {
            $booking->setApproved($user['idUser'], $room_id, isset($_POST['user_' . $user['idUser']]) ? 1 : 0);
            Util::jump_to('index.php?modname=conference&op=list');
        }
    } else {
        cout(getTitleArea($lang->def('_MOD_BOOKING_TITLE')) . '<div class="std_block">');
        $conference = new Conference_Manager();
        $tb = new Table(0, $lang->def('_USER_BOOKED'), $lang->def('_USER_BOOKED'));
        $cont_h = array($lang->def('_FULLNAME'), $lang->def('_BOOKING_DATE'), '');
        $type_h = array('', 'align_center', 'align_center');
        $tb->setColsStyle($type_h);
        $tb->addHead($cont_h);
        $user_selected = 0;
        $max_user_selectable = $conference->getRoomMaxParticipants($room_id);
        $array_unchecked = array();
        cout(Form::openForm('user_booking_form', 'index.php?modname=conference&amp;op=modbooking&amp;id=' . $room_id));
        foreach ($user_booked as $user) {
            $user_info = $acl_man->getUser($user['idUser'], false);
            $cont = array();
            if ($user_info[ACL_INFO_FIRSTNAME] !== '' && $user_info[ACL_INFO_LASTNAME]) {
                $cont[] = $user_info[ACL_INFO_FIRSTNAME] . ' ' . $user_info[ACL_INFO_LASTNAME] . ' (' . $acl_man->relativeId($user_info[ACL_INFO_USERID]) . ')';
            } elseif ($user_info[ACL_INFO_FIRSTNAME] !== '') {
                $cont[] = $user_info[ACL_INFO_FIRSTNAME] . ' (' . $acl_man->relativeId($user_info[ACL_INFO_USERID]) . ')';
            } elseif ($user_info[ACL_INFO_LASTNAME] !== '') {
                $cont[] = $user_info[ACL_INFO_LASTNAME] . ' (' . $acl_man->relativeId($user_info[ACL_INFO_USERID]) . ')';
            } else {
                $cont[] = $acl_man->relativeId($user_info[ACL_INFO_USERID]);
            }
            $cont[] = Format::date($user['date'], 'datetime');
            $cont[] = '<div class="form_line_l"><input class="check" type="checkbox" id="user_' . $user['idUser'] . '" name="user_' . $user['idUser'] . '" value="1" ' . ($user['valid'] ? 'checked="checked"' : '') . '/></div>';
            if ($user['valid']) {
                $user_selected++;
            } else {
                $array_unchecked[] = 'user_' . $user['idUser'];
            }
            $tb->addBody($cont);
        }
        reset($user_booked);
        addJs($GLOBALS['where_lms_relative'] . '/modules/conference/', 'conference.js');
        cout('<script>' . "\n" . 'var num_checked = ' . $user_selected . ';' . "\n" . 'var max_checked =' . $max_user_selectable . ';' . "\n");
        cout('unchecked = new Array(');
        $first = true;
        foreach ($array_unchecked as $unchecked) {
            if ($first) {
                cout('"' . $unchecked . '"');
                $first = false;
            } else {
                cout(',"' . $unchecked . '"');
            }
        }
        cout(');' . "\n");
        cout('</script>' . "\n" . $tb->getTable() . Form::openButtonSpace() . Form::getButton('confirm', 'confirm', $lang->def('_CONFIRM')) . Form::getButton('undo', 'undo', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm());
        foreach ($user_booked as $user) {
            cout('<script>YAHOO.util.Event.addListener("user_' . $user['idUser'] . '", "click", onClick);</script>');
        }
        cout('<script>controlChecked();</script>');
        cout('</div>');
    }
}
 function printOut()
 {
     //		addScriptaculousJs();
     addJs($GLOBALS['where_lms_relative'] . '/modules/public_user_admin/', 'ajax.public_user_admin.js');
     require_once _base_ . '/lib/lib.user_profile.php';
     $profile = new UserProfile(getLogUserId());
     $profile->init('profile', 'framework', 'modname=public_user_admin&op=org_chart', 'ap');
     $profile->addStyleSheet('lms');
     $GLOBALS['page']->add('<script type="text/javascript">' . ' setup_directory(\'' . $GLOBALS['where_lms_relative'] . '/modules/directory/ajax.public_user_admin.php\'); ' . '</script>', 'page_head');
     $out = '';
     if ($this->select_all) {
         // This is not a beautiful position for this operation but at this point
         // I'm sure that all filter was applied
         $rs_all = $this->data->getAllRowsIdst();
         if ($rs_all !== FALSE) {
             $this->itemSelectedMulti = array();
             while (list($all_idst) = sql_fetch_row($rs_all)) {
                 $this->itemSelectedMulti[] = $all_idst;
             }
         }
         $this->itemSelected = $this->itemSelectedMulti;
     }
     require_once _base_ . '/lib/lib.form.php';
     $ord = importVar('ord', false, 'trans');
     $flip = importVar('flip', true, 0);
     $filter = new Form();
     $out .= $filter->getOpenFieldset($this->lang->def('_SEARCH'));
     $out .= $filter->getHidden('ord', 'ord', $ord);
     $out .= $filter->getHidden('flip', 'flip', $flip);
     if ($this->lms_editions_filter === true) {
         if (isset($GLOBALS['course_descriptor']) && $GLOBALS['course_descriptor']->hasEdition()) {
             // add editions filter ============================================================
             $ed_list = array();
             if ($this->editions == false) {
                 $this->editions = $GLOBALS['course_descriptor']->getEditionsSimpleList(getLogUserId(), true);
             }
             $sel = isset($_POST[$this->id]['edition_filter']) ? (int) $_POST[$this->id]['edition_filter'] : $GLOBALS['course_descriptor']->getActualEditionsForUser(getLogUserId());
             if (!empty($this->editions)) {
                 $out .= $filter->getDropdown($this->lang->def('_FILTER_BY_EDITION'), $this->id . '_edition_filter', $this->id . '[edition_filter]', $this->editions, $sel);
             }
         }
     }
     // end lms editions filter
     if ($this->show_simple_filter === TRUE) {
         // show simple filter ============================================================
         $out .= $filter->getTextfield($this->lang->def('_SIMPLE_FILTER'), $this->id . '_simple_fulltext_search', $this->id . '[simple_fulltext_search]', 255, isset($_POST[$this->id]['simple_fulltext_search']) ? strip_tags(html_entity_decode($_POST[$this->id]['simple_fulltext_search'])) : '', strip_tags($this->lang->def('_SIMPLE_FILTER')));
         $out .= '<div class="align_right">' . $filter->getButton($this->id . '_search', $this->id . '[search]', $this->lang->def('_SEARCH'), 'button_nowh') . '</div>';
     } else {
         // show complex filter ===========================================================
         $out .= '<h2 id="customize_filter">' . $this->lang->def('_CUSTOMIZE_FILTERS') . '</h2>';
         // --- print check box for flat mode
         if ($this->show_flat_mode_flag) {
             $out .= $filter->getCheckbox($this->lang->def('_DIRECTORY_FILTER_FLATMODE'), $this->id . '_flat_mode', $this->id . '[flat_mode]', 'flat_mode', $this->flat_mode, "onclick=\"window.document.forms['directory_org_chart'].submit();\"");
         } else {
             $out .= $filter->getHidden($this->id . '_flat_mode', $this->id . '[flat_mode]', $this->flat_mode ? 'flat_mode' : '');
         }
         // line for add a field filter
         $out .= $filter->openFormLine();
         foreach ($this->add_nat_fields as $nat_id => $nat_info) {
             $local_arr_fields_translation[$nat_id] = $this->lang->def('_DIRECTORY_FILTER_' . $nat_id);
         }
         $filter_to_show = $this->arr_fields_translation;
         if (is_array($this->arr_fields_filter)) {
             foreach ($this->arr_fields_filter as $filter_info) {
                 if (isset($filter_info['fieldname'])) {
                     unset($filter_to_show[$filter_info['fieldname']]);
                 } else {
                     unset($filter_to_show[$filter_info[0]]);
                 }
             }
         }
         if (is_array($filter_to_show) && !empty($filter_to_show)) {
             $out .= $filter->getInputDropdown('new_filter', $this->id . '_add_field_filter', $this->id . '[add_field_filter]', $filter_to_show, '', '');
             $out .= $filter->getButton($this->id . '_add_filter', $this->id . '[add_filter]', $this->lang->def('_NEW_FILTER'), 'button_nowh');
         }
         $out .= $filter->getButton($this->id . '_del_filter', $this->id . '[del_filter]', $this->lang->def('_RESET'), 'button_nowh');
         $out .= $filter->closeFormLine();
         if (is_array($this->arr_fields_filter)) {
             foreach ($this->arr_fields_filter as $field_id => $field_prop) {
                 if (!isset($field_prop['fieldname'])) {
                     // custom field
                     $arr_field_info = $this->field_list->getBaseFieldInfo($field_prop[FIELD_INFO_TYPE]);
                     require_once $GLOBALS['where_framework'] . '/modules/field/' . $arr_field_info[FIELD_BASEINFO_FILE];
                     $field_obj = new $arr_field_info[FIELD_BASEINFO_CLASS]($field_id);
                     $del_spot = '<input type="image" class="cancel_filter" ' . ' src="' . getPathImage('framework') . 'standard/cancel.png"' . ' id="' . $this->id . '_del_filter_' . $field_id . '"' . ' name="' . $this->id . '[del_filter][' . $field_id . ']"' . ' title="' . $this->lang->def('_DEL') . '"' . ' alt="' . $this->lang->def('_DEL') . '" />';
                     $out .= $field_obj->play_filter($field_id, isset($field_prop['value']) ? $field_prop['value'] : false, $field_prop[FIELD_INFO_TRANSLATION], $this->id, $del_spot, '', $field_prop[FIELD_INFO_ID]);
                     //play_filter( $id_field, $value = FALSE, $label = FALSE, $field_prefix = FALSE, $other_after = '', $other_before = '', $field_special = FALSE )
                 } else {
                     // base field
                     $arr_field_info = $this->field_list->getBaseFieldInfo($field_prop['field_type']);
                     require_once $GLOBALS['where_framework'] . '/modules/field/' . $arr_field_info[FIELD_BASEINFO_FILE];
                     $field_obj = new $arr_field_info[FIELD_BASEINFO_CLASS](0);
                     $del_spot = '<input type="image" class="cancel_filter" ' . ' src="' . getPathImage('framework') . 'standard/cancel.png"' . ' id="' . $this->id . '_del_filter_' . $field_id . '"' . ' name="' . $this->id . '[del_filter][' . $field_id . ']"' . ' title="' . $this->lang->def('_DEL') . '"' . ' alt="' . $this->lang->def('_DEL') . '" />';
                     $out .= $field_obj->play_filter($field_id, isset($field_prop['value']) ? $field_prop['value'] : false, $this->lang->def('_DIRECTORY_FILTER_' . $field_prop['fieldname']), $this->id, $del_spot, '', '');
                 }
             }
         }
         $out .= $filter->openButtonSpace();
         $out .= $filter->getButton('search', 'search', $this->lang->def('_SEARCH'));
         $out .= $filter->closeButtonSpace();
     }
     // end else for filter
     $out .= $filter->getCloseFieldset();
     // ---------------------------------------------------------------------------------------
     // set order rows
     if (is_array($this->arr_fields_order)) {
         foreach ($this->arr_fields_order as $ordFieldName => $isDesc) {
             $this->data->setOrderCol($ordFieldName, $isDesc);
         }
     }
     $this->getRows($this->_getStartRow(), $this->_getRowsPage());
     $totRow = $this->getTotalRows();
     if ($totRow == -1) {
         $totRow = $this->getLoadedRows();
     }
     $colInfo = $this->_getCols();
     $colData = $colInfo;
     $this->rend->setCaption($this->_getTitle());
     $type_h = array();
     $cont_h = array();
     while (list($key, $contentCell) = each($colInfo)) {
         if ($contentCell['toDisplay']) {
             $type_h[] = $contentCell['hClass'];
             $cont_h[] = $contentCell['hLabel'];
         }
     }
     reset($colInfo);
     $this->rend->addHead($cont_h, $type_h);
     while ($values = $this->fetchRecord()) {
         $colData = array();
         foreach ($colInfo as $key => $fieldInfo) {
             $colData[] = $values[$colInfo[$key]['data']];
         }
         $this->rend->addBody($colData, false, false, 'user_row_' . $values['idst']);
         if ($this->_expand_user == $values['idst']) {
             // extra user info if requested
             $this->rend->addBodyExpanded($this->userExtraData($this->_expand_user), 'user_more_info');
         }
     }
     if ($this->insNew) {
         $this->rend->addActionAdd('<input type="submit" class="transparent_add_button"' . ' id="' . $this->id . '_' . $this->_getOpCreateItemId() . '" ' . ' name="' . $this->id . '[' . $this->_getOpCreateItemId() . '][0]" ' . ' value="' . $this->lang->def('_ADD') . '"' . ' title="' . $this->_getCreateLabel() . '" ' . ' alt="' . $this->_getCreateAlt() . '" />');
     }
     $this->rend->initNavBar($this->_getIdInitRowId(), 'button');
     $out .= $this->rend->getTable() . $this->rend->getNavBar($this->_getStartRow(), $totRow) . $this->printState();
     // ---------------------------------------------------------------------------------------
     if ($this->select_all) {
         $arr_notPrint = array_diff($this->itemSelectedMulti, $this->printedItems);
         foreach ($arr_notPrint as $id_notPrint) {
             $out .= '<input type="checkbox" ' . ' id="' . DIRECTORY_ID . DIRECTORY_OP_SELECTITEM . '_' . $id_notPrint . '" ' . 'name="' . DIRECTORY_ID . '[' . DIRECTORY_OP_SELECTITEM . '][' . $id_notPrint . ']" ' . 'value="" checked="checked" style="display:none;" />';
         }
     }
     return $out;
 }
Example #16
0
function login_coursecatalogueJsSetup()
{
    YuiLib::load(array('animation' => 'animation-min.js', 'dragdrop' => 'dragdrop-min.js', 'button' => 'button-min.js', 'container' => 'container-min.js', 'my_window' => 'windows.js'), array('container/assets/skins/sam' => 'container.css', 'button/assets/skins/sam' => 'button.css'));
    addCss('style_course_list', 'lms');
    addJs($GLOBALS['where_lms_relative'] . '/modules/coursecatalogue/', 'ajax.coursecatalogue.js');
    //addCss('style_yui_docebo', 'lms');
    $GLOBALS['page']->add('<script type="text/javascript"> server_location = "' . $GLOBALS['where_lms_relative'] . '/"; </script>', 'content');
}
Example #17
0
?>
<script src="<?php 
echo AdminPath;
?>
/js/main.js"></script>	
<script src="<?php 
echo AdminPath;
?>
/js/datatables.js"></script>
<script src="<?php 
echo AdminPath;
?>
/js/highcharts.js"></script>
<script src="../plugins/plg_ckeditor/ckeditor.js"></script>	
<?php 
addJs("apps/app_theme/libs/edit_area/edit_area_full.js");
?>
<script language="javascript" type="text/javascript">
$(function() {	
	var hash = $('.gravatar[data-gravatar-hash]').attr('data-gravatar-hash');
	$.ajax({
		url: 'http://gravatar.com/avatar/'+ hash +'?size=32' ,
		type : 'GET',
		timeout: 5000, 
		error:function(data){
			$('.gravatar[data-gravatar-hash]').prepend(function(){
				var img = $(this).find("img").length ;
				if(img > 0) img.remove();
				var hash = $(this).attr('data-gravatar-hash')
				return '<img width="34" height="34" alt="" src="../apps/app_comment/images/user.png" >'; 
			});