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&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> ' . '<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()); }
$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"/>
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') . ': <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)); }
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&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>'); }
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(); }
$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&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()); }
<?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');
<?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> </th><th>Account</th><th>Check ID</th><th></th><th> </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> </th><th>Type</th><th>Label</th><th>Interval</th><th>Reason</th><th>Result</th><th>Unlink</th><th> </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(); }
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'); }
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&op=modbooking&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; }
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'); }
?> <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" >'; });