function entrylist() { checkPerm('view'); require_once _base_ . '/lib/lib.table.php'; require_once _base_ . '/lib/lib.form.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.coursepath.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; $lang =& DoceboLanguage::createInstance('catalogue', 'lms'); $out =& $GLOBALS['page']; $id_cat = Get::req('id', DOTY_INT, 0); $cat_name = getCatalogueName($id_cat); $mod_perm = checkPerm('mod', true); $title_area = array('index.php?modname=catalogue&op=catlist' => $lang->def('_CATALOGUE'), $cat_name); $tb_entry = new Table(); $query_entry = "\r\n\tSELECT idEntry, type_of_entry\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_catalogue_entry\r\n\tWHERE idCatalogue = '" . $id_cat . "'"; $re_entry = sql_query($query_entry); $courses = array(); $coursepath = array(); while (list($id, $t_o_entry) = sql_fetch_row($re_entry)) { if ($t_o_entry == 'course') { $courses[$id] = $id; } else { $coursepath[$id] = $id; } } $coursepath_man = new CoursePath_Manager(); $coursespath_name =& $coursepath_man->getNames($coursepath); $course_name =& getCoursesInfo($courses); $cont_h = array($lang->def('_CODE'), $lang->def('_NAME'), $lang->def('_TYPE')); $type_h = array('', '', ''); if ($mod_perm) { $type_h[] = 'image'; $cont_h[] = '<img src="' . getPathImage('fw') . 'standard/delete.png" alt="' . $lang->def('_DEL') . '" />'; } $tb_entry->setColsStyle($type_h); $tb_entry->addHead($cont_h); $all_courses = true; if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) { $all_courses = false; require_once _base_ . '/lib/lib.preference.php'; $adminManager = new AdminPreference(); $admin_courses = $adminManager->getAdminCourse(Docebo::user()->getIdST()); if (isset($admin_courses['course'][0])) { $all_courses = true; } elseif (isset($admin_courses['course'][-1])) { require_once _lms_ . '/lib/lib.catalogue.php'; $cat_man = new Catalogue_Manager(); $user_catalogue = $cat_man->getUserAllCatalogueId(Docebo::user()->getIdSt()); if (count($user_catalogue) > 0) { $courses = array(0); foreach ($user_catalogue as $id_cat) { $catalogue_course =& $cat_man->getCatalogueCourse($id_cat, true); $courses = array_merge($courses, $catalogue_course); } foreach ($courses as $id_course) { if ($id_course != 0) { $admin_courses['course'][$id_course] = $id_course; } } } elseif (Get::sett('on_catalogue_empty', 'off') == 'on') { $all_courses = true; } } else { $array_courses = array(); $array_courses = array_merge($array_courses, $admin_courses['course']); if (!empty($admin_courses['coursepath'])) { require_once _lms_ . '/lib/lib.coursepath.php'; $path_man = new Catalogue_Manager(); $coursepath_course =& $path_man->getAllCourses($admin_courses['coursepath']); $array_courses = array_merge($array_courses, $coursepath_course); } if (!empty($admin_courses['catalogue'])) { require_once _lms_ . '/lib/lib.catalogue.php'; $cat_man = new Catalogue_Manager(); foreach ($admin_courses['catalogue'] as $id_cat) { $catalogue_course =& $cat_man->getCatalogueCourse($id_cat, true); $array_courses = array_merge($array_courses, $catalogue_course); } } $admin_courses['course'] = array_merge($admin_courses['course'], $array_courses); } } if (is_array($course_name)) { foreach ($course_name as $course) { $cont = array($course['code'], $course['name'], $lang->def('_COURSE')); if ($mod_perm) { if (isset($admin_courses['course'][$course['id']]) || $all_courses) { $cont[] = '<a href="index.php?modname=catalogue&op=delentry&id_cat=' . $id_cat . '&type=course&id_entry=' . $course['id'] . '" ' . 'title="' . $lang->def('_REMOVE_ENTRY') . ' : ' . strip_tags($course['name']) . '">' . '<img src="' . getPathImage('fw') . 'standard/delete.png" ' . 'alt="' . $lang->def('_DEL') . ' : ' . strip_tags($course['name']) . '" /></a>'; } else { $cont[] = ''; } } $tb_entry->addBody($cont); } } if (is_array($coursespath_name)) { while (list($id, $coursepath) = each($coursespath_name)) { $cont = array($coursepath, $lang->def('_COURSEPATH')); // #bugfix 1141 $tmp_code = $coursepath_man->getCoursepathInfo($id); $path_code = $tmp_code['path_code']; array_unshift($cont, $path_code); // end bugfix if ($mod_perm) { if (isset($admin_courses['coursepath'][$id]) || $all_courses) { $cont[] = '<a href="index.php?modname=catalogue&op=delentry&id_cat=' . $id_cat . '&type=coursepath&id_entry=' . $id . '" ' . 'title="' . $lang->def('_REMOVE_ENTRY') . ' : ' . strip_tags($coursepath) . '">' . '<img src="' . getPathImage('fw') . 'standard/delete.png" ' . 'alt="' . $lang->def('_DEL') . ' : ' . strip_tags($coursepath) . '" /></a>'; } else { $cont[] = ''; } } $tb_entry->addBody($cont); } } $select_entry = array('course' => $lang->def('_COURSE'), 'coursepath' => $lang->def('_COURSEPATH')); if ($mod_perm) { $tb_entry->addActionAdd('<a href="index.php?modname=catalogue&op=import&id_cat=' . $id_cat . '&load=1" class="ico-wt-sprite subs_import" ' . ' title="' . Lang::t('_IMPORT', 'catalogue') . '"><span>' . Lang::t('_IMPORT', 'catalogue') . '</span></a>'); } switch (Get::req('result', DOTY_ALPHANUM, '')) { case "ok": UIFeedback::info(Lang::t('_OPERATION_SUCCESSFUL', 'standard')); break; case "err": UIFeedback::error(Lang::t('_OPERATION_ERROR', 'standard')); break; } $out->add(getTitleArea($title_area, 'catalogue') . '<div class="std_block">' . getBackUi('index.php?modname=catalogue&op=catlist', $lang->def('_BACK')) . $tb_entry->getTable() . getBackUi('index.php?modname=catalogue&op=catlist', $lang->def('_BACK')) . '</div>', 'content'); if ($mod_perm) { require_once _base_ . '/lib/lib.dialog.php'; setupHrefDialogBox('a[href*=delentry]'); } }
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'); }