public function show() { Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, true); $rmodel = new AdminrulesAdm(); switch (Get::req('res', DOTY_ALPHANUM, "")) { case 'ok_ins': UIFeedback::info(Lang::t('_OPERATION_SUCCESSFUL', 'standard')); break; case 'err_ins': UIFeedback::error(Lang::t('_OPERATION_FAILURE', 'standard')); break; default: if ($rmodel->totalGroup() <= 0) { UIFeedback::notice(Lang::t('_NO_PROFILE_SET', 'adminrules')); } break; } $rules_list_js = ""; if ($this->permissions['assign_profile']) { $rules = $rmodel->getGroupForDropdown(); $rules_list_js .= '['; $first = true; foreach ($rules as $idst => $label) { $rules_list_js .= ($first ? '' : ',') . '{"label":"' . $label . '","value":' . $idst . '}'; if ($first) { $first = false; } } $rules_list_js .= ']'; } $this->render('show', array('filter_text' => $this->_getSessionValue('filter', ""), 'permissions' => $this->permissions, 'rules_list_js' => $rules_list_js)); }
function setupJs($tags_id, $private_tags = '') { if (!$this->_use_tag) { return ''; } $lang =& DoceboLanguage::createInstance('tags', 'framework'); $this->tags_id = $tags_id; YuiLib::load(array('autocomplete' => 'autocomplete-min.js', 'selector' => 'selector-beta-min.js'), array('assets/skins/sam' => 'autocomplete.css')); Util::get_js(Get::rel_path('adm') . '/lib/lib.tags.js', true, true); // setup some thing that we need in the tag editor $GLOBALS['page']->add('<script type="text/javascript">' . "\n" . 'var tag_params ={ resource_type: "' . $this->resource_type . '", addr: "' . $GLOBALS['where_framework_relative'] . '/ajax.adm_server.php", query_append: "file=tags", query:"' . $tags_id . '", private_query:"' . $private_tags . '", popular_tags: "' . addslashes(implode(', ', $this->getPopularTag())) . '", user_tags: "' . addslashes(implode(', ', $this->getUserPopularTag(getLogUserId()))) . '", lang: { tags: "' . addslashes($lang->def("_TAGS")) . '", tips: "' . addslashes($lang->def("_TAGS_TIPS")) . '", popular_tags: "' . addslashes($lang->def("_POPULAR")) . '", user_tags: "' . addslashes($lang->def("_YOURS")) . '", save: "' . addslashes($lang->def("_SAVE")) . '", undo: "' . addslashes($lang->def("_UNDO")) . '", add_tags: "' . addslashes($lang->def("_ADD_TAGS")) . '", update_tags: "' . addslashes($lang->def("_MOD")) . '" } };' . "\n" . '</script>', 'scripts'); }
public function show() { Util::get_js(Get::rel_path('lms') . '/views/kb/kb.js', true, true); Util::get_js(Get::rel_path('base') . '/addons/yui/stylesheet/stylesheet-min.js', true, true); $filter_text = Get::req('filter_text', DOTY_STRING, ""); require_once _lms_ . '/lib/lib.kbres.php'; $kbres = new KbRes(); $kb_model = new KbAlms(); $initial_folders = $kbres->getKbFolders(0, 1); // 0 = root $tag_count = $kbres->getTagUseCount(); // --- set tag cloud data ------------ $min = false; $max = false; $tot = 0; $tag_cloud = array(); foreach ($tag_count as $tag_id => $tag_info) { $tot += $tag_info['use_count']; $min = $min > $tag_info['use_count'] ? $tag_info['use_count'] : $min; $max = $max < $tag_info['use_count'] ? $tag_info['use_count'] : $max; } $min_class_size = 1; $max_class_size = 7; foreach ($tag_count as $tag_id => $tag_info) { $uc = $tag_info['use_count']; $range = $max - $min + 1; $pos = $range / $uc; $class_size = round($max_class_size / $pos); $tag_cloud[$tag_id] = array('tag_name' => $tag_info['tag_name'], 'class_size' => $class_size); } $course_filter_arr[-1] = Lang::t('_FILTER', 'kb'); $course_filter_arr += $kb_model->getCoursesVisibleToUser(); $this->render('show', array('filter_text' => $filter_text, 'initial_folders' => $initial_folders, 'tag_cloud' => $tag_cloud, 'course_filter_arr' => $course_filter_arr, 'url_select_folder' => 'ajax.server.php?r=kb/selFolder&folder_id=')); }
function drawCalendar() { checkPerm('view'); $size = importVar('size', false, 'max'); $width = "90%"; if ($size == "min") { $width = "200px"; } addCss('calendar_' . $size); YuiLib::load('base,dragdrop'); Util::get_js(Get::rel_path('lms') . '/modules/calendar/calendar.js', true, true); Util::get_js(Get::rel_path('lms') . '/modules/calendar/calendar_helper.js', true, true); //permissions = permissions granted to the logged user according to his/her level and role // 2 => can create/delete/modify all events // 1 => can create/delete/modify only own events // 0 => can view only $permissions = 0; if (checkPerm('mod', true)) { $permissions = 2; } elseif (checkPerm('personal', true)) { $permissions = 1; } //mode="edit" => events can be added and edited according to given permissions //mode="view" => events can only be viewed regardless the permissions $GLOBALS['page']->add('<script type="text/javascript">' . ' setup_cal( null, ' . '\'lms\', ' . '\'lms\', ' . '\'edit\', ' . '\'' . $permissions . '\', ' . '\'' . Docebo::user()->getIdSt() . '\' ' . ');' . '</script>', 'page_head'); $GLOBALS['page']->add("\n" . getTitleArea(Lang::t('_CALENDAR', 'calendar'), 'calendar') . '<div class="std_block">' . '<div id="displayCalendar" style="clear: both; width:' . $width . '"></div>' . '<div class="nofloat"></div>' . '</div>', 'content'); }
public function show() { Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, true); Util::get_js(Get::rel_path('adm') . '/views/groupmanagement/groupmanagement.js', true, true); Util::get_js(Get::rel_path('base') . '/widget/dialog/dialog.js', true, true); $this->render('show', array('permissions' => $this->permissions, 'result_message' => "", 'filter_text' => '')); }
/** * Load css and yui file * @return null * @param $js Array[optional] * @param $css Array[optional] */ public static function load($module_list = false, $noprint = false) { $module_list = 'base,autocomplete,charts,tabview,table,treeview,colorpicker'; if (strpos($module_list, 'base') !== false) { $module_list = 'base,' . $module_list; } $list = explode(',', $module_list); $js_load = array(); $css_load = array(); foreach ($list as $k => $module) { if (isset(self::$_css_map[$module])) { $css_load = array_unique(array_merge($css_load, self::$_css_map[$module])); } if (isset(self::$_js_map[$module])) { $js_load = array_unique(array_merge($js_load, self::$_js_map[$module])); } } // remove js alredy loaded $css_load = array_diff($css_load, self::$_css_loaded); $js_load = array_diff($js_load, self::$_js_loaded); if (empty($css_load) && empty($js_load)) { return ''; } // load new css $to_load = ''; if (!empty($css_load)) { $to_load .= '<!-- yui css -->'; foreach ($css_load as $k => $filename) { $to_load .= Util::get_css(Get::tmpl_path('base') . 'yui-skin/' . $filename, true); } } // load new js if (!empty($js_load)) { $to_load .= '<!-- yui js -->'; foreach ($js_load as $k => $filename) { $to_load .= Util::get_js('/addons/yui/' . $filename); if ($filename == 'utilities/utilities.js') { $to_load .= "\n" . '<script type="text/javascript"> YAHOO.util.Connect.initHeader(\'X-Signature\',\'' . Util::getSignature() . '\'); YAHOO.util.Connect.startEvent.subscribe(function() { YAHOO.util.Connect.initHeader(\'X-Signature\',\'' . Util::getSignature() . '\'); });</script>'; } if ($filename == 'charts/charts-min.js') { $to_load .= "\n" . '<script type="text/javascript"> YAHOO.widget.Chart.SWFURL = "' . Get::rel_path('base') . '/addons/yui/charts/assets/charts.swf"; </script>'; } } if (Lang::direction() == 'rtl') { $to_load .= Util::get_js('/addons/yui/yui-rtl.js'); } } // add loaded file to the cache if (!empty($css_load)) { self::$_css_loaded = array_merge(self::$_css_loaded, $css_load); } if (!empty($js_load)) { self::$_js_loaded = array_merge(self::$_js_loaded, $js_load); } if (function_exists('cout') && !$noprint) { cout($to_load, 'page_head'); } else { return $to_load; } }
function init() { YuiLib::load(array('json' => 'json-min.js', 'container' => 'container_core-min.js', 'menu' => 'menu-min.js', 'button' => 'button-min.js', 'treeview' => 'treeview-min.js'), array('assets/skins/sam' => 'skin.css')); cout(Util::get_css('base-folder-tree.css'), 'page_head'); cout(Util::get_js('appLms/lib/category/lib.categorytree.js'), 'page_head'); Util::get_js(Get::rel_path('base') . '/lib/lib.elem_selector.js', true, true); }
public function init() { require_once _base_ . '/lib/lib.json.php'; $this->json = new Services_JSON(); Util::get_js(Get::rel_path('base') . '/lib/lib.elem_selector.js', true, true); Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, true); //$js_path = Get::rel_path('base').'/widget/competenceselector/'; //Util::get_js($js_path.'competenceselector.js', true, true); }
public function init() { YuiLib::load('container,menu,button'); Util::get_js(Get::rel_path('adm') . '/lib/user_selector/lib.common.js', true, true); Util::get_js(Get::rel_path('adm') . '/lib/user_selector/lib.dynamicuserfilter.js', true, true); if ($this->_use_other_fields) { Util::get_js(Get::rel_path('adm') . '/lib/user_selector/lib.otherfieldtypes.js', true, true); } }
public function init() { parent::init(); require_once _base_ . '/lib/lib.json.php'; $this->json = new Services_JSON(); $this->model = new DashboardAdm(); YuiLib::load('autocomplete,tabview'); Util::get_js(Get::rel_path('adm') . '/views/dashboard/dashboard.js', true, true); $this->permissions = array('view' => checkPerm('view', true, 'dashboard', 'framework'), 'view_user' => checkPerm('view', true, 'usermanagement', 'framework'), 'add_user' => checkPerm('add', true, 'usermanagement', 'framework'), 'mod_user' => checkPerm('mod', true, 'usermanagement', 'framework'), 'del_user' => checkPerm('del', true, 'usermanagement', 'framework'), 'view_course' => checkPerm('view', true, 'course', 'lms'), 'add_course' => checkPerm('add', true, 'course', 'lms'), 'mod_course' => checkPerm('mod', true, 'course', 'lms'), 'del_course' => checkPerm('del', true, 'course', 'lms'), 'view_communications' => checkPerm('view', true, 'communication', 'lms'), 'add_communications' => checkPerm('add', true, 'communication', 'lms'), 'view_games' => checkPerm('view', true, 'games', 'lms'), 'add_games' => checkPerm('add', true, 'games', 'lms'), 'subscribe' => checkPerm('subscribe', true, 'course', 'lms')); }
/** * Include the required libraries in order to have all the things ready and working */ public function initLibraries() { // load yui YuiLib::load(array('yahoo-dom-event' => 'yahoo-dom-event.js', 'connection' => 'connection-min.js', 'dragdrop' => 'dragdrop-min.js', 'element' => 'element-beta-min.js', 'animation' => 'animation-min.js', 'json' => 'json-min.js', 'container' => 'container_core-min.js', 'menu' => 'menu-min.js', 'button' => 'button-min.js', 'container' => 'container-min.js', 'button' => 'button-min.js', 'treeview' => 'treeview-min.js', 'resize' => 'resize-beta-min.js', 'selector' => 'selector-beta-min.js'), array('assets/skins/sam' => 'skin.css')); // Selector class Util::get_js(Get::rel_path('base') . '/lib/lib.elem_selector.js', true, true); // Commodities functions Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, true); // The tableview main file Util::get_js(Get::rel_path('base') . '/lib/table_view/tableview.js', true, true); // Datatable css Util::get_css('../yui-skin/datatable.css', false, true); }
public function showTask() { if (!$this->permissions['view']) { echo 'You can\'t access.'; return; } //tabview widget, used in role and group editing Yuilib::load('tabview'); Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, true); Util::get_js(Get::rel_path('adm') . '/views/functionalroles/functionalroles.js', true, true); Util::get_css('base-folder-tree.css', false, true); //render view $this->render('show', array('permissions' => $this->permissions, 'selected_group' => 0, 'filter_text' => "")); }
public function initLibraries() { YuiLib::load(array('yahoo-dom-event' => 'yahoo-dom-event.js', 'connection' => 'connection-min.js', 'dragdrop' => 'dragdrop-min.js', 'element' => 'element-beta-min.js', 'animation' => 'animation-min.js', 'json' => 'json-min.js', 'container' => 'container_core-min.js', 'menu' => 'menu-min.js', 'button' => 'button-min.js', 'container' => 'container-min.js', 'button' => 'button-min.js', 'treeview' => 'treeview-min.js', 'resize' => 'resize-beta-min.js', 'selector' => 'selector-beta-min.js'), array('assets/skins/sam' => 'skin.css')); Util::get_js(Get::rel_path('base') . '/lib/lib.elem_selector.js', true, true); Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, true); $js_path = Get::rel_path('base') . '/lib/folder_tree/'; Util::get_js($js_path . 'ddnode.js', true, true); Util::get_js($js_path . 'foldernode.js', true, true); Util::get_js($js_path . 'foldertree.js', true, true); //addCss('folder_tree', 'framework'); cout(Util::get_css('base-folder-tree.css'), 'page_head'); foreach ($this->styleSheets as $sheet) { cout(Util::get_css($sheet . '.css'), 'page_head'); } }
/** * Initialize required libraries */ public function init() { YuiLib::load('base,treeview,selector'); Util::get_js(Get::rel_path('base') . '/lib/lib.elem_selector.js', true, true); Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, true); Util::get_css('base-folder-tree.css', false, true); $js_path = Get::rel_path('base') . '/widget/tree/'; if ($this->dragDrop) { Util::get_js($js_path . 'ddnode.js', true, true); } Util::get_js($js_path . 'foldernode.js', true, true); Util::get_js($js_path . 'foldertree.js', true, true); if ($this->treeClass != "FolderTree" && $this->treeFile) { Util::get_js($this->treeFile, true, true); } }
public function __construct($id, $initFromSession = false) { parent::__construct($id); $this->jsClassName = 'CourseFolderTree'; $this->serverUrl = 'ajax.adm_server.php?plf=lms&file=category_tree&sf=folder_tree'; Util::get_js(Get::rel_path('base') . '/widget/dialog/dialog.js', true, true); require_once _base_ . '/lib/lib.dialog.php'; initDialogs(); $initialShowedNodes = array(); if ($initFromSession) { if (isset($_SESSION['course_category']['tree_status'])) { $tree_status =& $_SESSION['course_category']['tree_status']; //if (isset($tree_status['showed_nodes'])) {} } if (isset($_SESSION['course_category']['filter_status'])) { $filter_status =& $_SESSION['course_category']['filter_status']; if (isset($filter_status['c_category'])) { $this->setOption('initialSelectedNode', $filter_status['c_category']); } } } $lang =& DoceboLanguage::CreateInstance('course', 'lms'); //$this->setOption('langs', array('_ROOT'=>def('_CATEGORY', 'course', 'lms'))); $this->addLangKey('_ROOT', $lang->def('_CATEGORY')); $this->addLangKey('_YES', $lang->def('_CONFIRM')); $this->addLangKey('_NO', $lang->def('_UNDO')); $this->addLangKey('_NEW_FOLDER_NAME', $lang->def('_NEW_CATEGORY')); $this->addLangKey('_MOD', $lang->def('_MOD')); $this->addLangKey('_AREYOUSURE', $lang->def('_AREYOUSURE')); $this->addLangKey('_NAME', $lang->def('_NAME')); $this->addLangKey('_MOD', $lang->def('_MOD')); $this->addLangKey('_DEL', $lang->def('_DEL')); //$this->addLangKey('_', $lang->def('')); //$selected_node = (isset($_SESSION['course_category']['filter_status']) ? $_SESSION['course_category']['filter_status']['c_category'] : 0); //0 = root node $tree_status = $this->_getCourseTreeStatus(); //0 = root node $this->setOption('iconPath', Get::tmpl_path() . 'images/'); $this->setOption('dragdrop', true); //$this->setOption('initNodes', $initialShowedNodes); $this->setOption('useCheckboxes', false); $this->setOption('addFolderButton', 'add_folder_button'); //$this->setOption('initialTreeStatus', $tree_status); //$this->setOption('options', ''); //$this->setOption('options', ''); }
/** * Called in loadHeader method of Block class include .js files if required * * @return string the code to be include(think to directly use PageWriter->append($string, 'head')) **/ function loadHeaderHTMLEditor() { $res = ""; if (getAccessibilityStatus() === false) { $ht = Get::sett('hteditor'); } else { $ht = 'accesseditor'; } $relative_path = $GLOBALS['where_framework_relative']; $relative_path .= substr($GLOBALS['where_framework_relative'], -1) == '/' ? '' : '/'; switch ($ht) { //using tiny_mce case 'tinymce': Util::get_js(Get::rel_path('base') . '/addons/tiny_mce/tiny_mce_gzip.js', true, true); $GLOBALS['page']->add('<script type="text/javascript"> tinyMCE_GZ.init({ plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template", themes : "tinymce_simple,tinymce_complex", languages : "en", disk_cache : true, debug : false }); </script>', 'page_head'); Util::get_js(Get::rel_path('base') . '/addons/tiny_mce/forma.js', true, true); break; case 'yui': $js = array('element' => 'element-beta-min.js', 'container' => 'container_core-min.js', 'menu' => 'menu-min.js', 'button' => 'button-min.js', 'editor' => 'editor-beta-min.js'); YuiLib::load($js); $GLOBALS['page']->add('<link rel="stylesheet" type="text/css" href="' . $GLOBALS['where_framework_relative'] . '/addons/yui/assets/skins/sam/skin.css">', 'page_head'); break; //using normal textarea //using normal textarea case 'accesseditor': default: break; } if (isset($GLOBALS['page'])) { $GLOBALS['page']->add($res, 'page_head'); } else { echo $res; } }
function initAjax() { if (!isset($GLOBALS['page'])) { return; } if ($this->_alredy_init) { return; } YuiLib::load(); //addJs($GLOBALS['where_framework_relative'].'/lib/', 'ajax.user_profile.js'); Util::get_js(Get::rel_path('base') . '/lib/ajax.user_profile.js', true, true); $lang =& DoceboLanguage::createInstance($this->_user_profile->_module_name, $this->_user_profile->_platform); $GLOBALS['page']->add('<script type="text/javascript">' . "\tsetup_user_profile('" . $GLOBALS['where_framework_relative'] . "/ajax.adm_server.php?file=user_profile', " . " '" . getPathImage('fw') . "' ); " . " var user_profile_lang = {" . "_SEND : '" . addslashes($lang->def('_SEND')) . "', " . "_UNDO : '" . addslashes($lang->def('_UNDO')) . "', " . "_ASK_FRIEND_SEND : '" . addslashes($lang->def('_SEND')) . "', " . "_ASK_FRIEND_FAIL : '" . addslashes($lang->def('failed')) . "', " . "_SUBJECT : '" . addslashes($lang->def('_SUBJECT')) . "', " . "_MESSAGE_TEXT : '" . addslashes($lang->def('_MESSAGE_TEXT')) . "', " . "_OPERATION_SUCCESSFUL : '" . addslashes($lang->def('_OPERATION_SUCCESSFUL')) . "', " . "_OPERATION_FAILURE : '" . addslashes($lang->def('_OPERATION_FAILURE')) . "' " . "};" . '</script>', 'page_head'); $this->_alredy_init = true; }
function get_LO_filter() { //addCss('style_filterbox'); $back_url = $this->back_url; $jump_url = $this->jump_url; $next_url = $this->next_url; require_once _base_ . '/lib/lib.form.php'; require_once _lms_ . '/lib/lib.course.php'; $ref =& $_SESSION['report_tempdata']['columns_filter']; YuiLib::load(); Util::get_js(Get::rel_path('lms') . '/admin/modules/report/courses_filter.js', true, true); //back to columns category selection if (isset($_POST['undo_filter'])) { //go back at the previous step Util::jump_to($back_url); } //set $_POST data in $_SESSION['report_tempdata'] $selector = new Selector_Course(); if (isset($_POST['update_tempdata'])) { $selector->parseForState($_POST); $temp = array('all_courses' => $_POST['all_courses'] == 1 ? true : false, 'selected_courses' => $selector->getSelection(), 'lo_types' => isset($_POST['lo_types']) ? $_POST['lo_types'] : array(), 'lo_milestones' => isset($_POST['lo_milestones']) ? $_POST['lo_milestones'] : array(), 'showed_columns' => isset($_POST['cols']) ? $_POST['cols'] : array(), 'custom_fields' => array(), 'order_by' => Get::req('order_by', DOTY_STRING, 'userid'), 'order_dir' => Get::req('order_dir', DOTY_STRING, 'asc'), 'show_suspended' => Get::req('show_suspended', DOTY_INT, 0) > 0); foreach ($ref['custom_fields'] as $val) { $temp['custom_fields'][] = array('id' => $val['id'], 'label' => $val['label'], 'selected' => isset($_POST['custom'][$val['id']]) ? true : false); } $_SESSION['report_tempdata']['columns_filter'] = $temp; } else { //first loading of this page -> prepare $_SESSION data structure //if (isset($_SESSION['report_update']) /* && is equal to id_report */) break; //get users' custom fields require_once _adm_ . '/lib/lib.field.php'; $fman = new FieldList(); $fields = $fman->getFlatAllFields(); $custom = array(); foreach ($fields as $key => $val) { $custom[] = array('id' => $key, 'label' => $val, 'selected' => false); } if (!isset($_SESSION['report_tempdata']['columns_filter'])) { $_SESSION['report_tempdata']['columns_filter'] = array('all_courses' => false, 'selected_courses' => $selector->getSelection(), 'lo_types' => array(), 'lo_milestones' => array(), 'showed_columns' => array(), 'custom_fields' => $custom, 'order_by' => 'userid', 'order_dir' => 'asc', 'show_suspended' => 'show_suspended'); } } //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); } cout(Form::getHidden('update_tempdata', 'update_tempdata', 1), 'content'); $lang = $this->lang; //box for direct course selection $selection =& $ref['selected_courses']; $selector->parseForState($_POST); $selector->resetSelection($selection); $temp = count($selection); $box = new ReportBox('course_selector'); $box->title = Lang::t('_REPORT_COURSE_SELECTION', 'report'); $box->description = false; $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">' . $lang->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">' . $lang->def('_SEL_COURSES') . '</label>'; $box->body .= '</div>'; $box->body .= '<div id="selector_container"' . ($ref['all_courses'] ? ' style="display:none"' : '') . '>'; //$box->body .= Form::openElementSpace(); $box->body .= $selector->loadCourseSelector(true); //$box->body .= Form::closeElementSpace(); $box->body .= '<br /></div>'; $box->footer = $lang->def('_CURRENT_SELECTION') . ': <span id="csel_foot">' . ($ref['all_courses'] ? Lang::t('_ALL', 'standard') : ($temp != '' ? $temp : '0')) . '</span>'; //.'</div>'; cout($box->get(), 'content'); cout('<script type="text/javascript">courses_count=' . ($temp == '' ? '0' : $temp) . ';' . 'courses_all="' . Lang::t('_ALL', 'standard') . '";' . "\n" . 'YAHOO.util.Event.addListener(window, "load", courses_selector_init);</script>', 'page_head'); $box = new ReportBox('lo_selection'); $box->title = $lang->def('_SELECT_LO_OPTIONS'); //LO columns selection $lo_trans = $this->getLOTypesTranslations(); $box->body .= Form::getOpenFieldset(Lang::t('_RU_LO_TYPES', 'report'), 'lotypes_fieldset'); $res = sql_query("SELECT * FROM %lms_lo_types"); while ($row = mysql_fetch_assoc($res)) { $trans = isset($lo_trans[$row['objectType']]) ? $lo_trans[$row['objectType']] : ""; $box->body .= Form::getCheckBox($trans, 'lo_type_' . $row['objectType'], 'lo_types[' . $row['objectType'] . ']', $row['objectType'], in_array($row['objectType'], $ref['lo_types']) ? true : false); } $box->body .= Form::getCloseFieldset(); $box->body .= Form::getOpenFieldset($lang->def('_RU_LO_MILESTONES'), 'lomilestones_fieldset'); $box->body .= Form::getCheckBox($lang->def('_NONE'), 'lo_milestone_0', 'lo_milestones[]', _MILESTONE_NONE, in_array(_MILESTONE_NONE, $ref['lo_milestones']) ? true : false); $box->body .= Form::getCheckBox($lang->def('_START'), 'lo_milestone_1', 'lo_milestones[]', _MILESTONE_START, in_array(_MILESTONE_START, $ref['lo_milestones']) ? true : false); $box->body .= Form::getCheckBox($lang->def('_END'), 'lo_milestone_2', 'lo_milestones[]', _MILESTONE_END, in_array(_MILESTONE_END, $ref['lo_milestones']) ? true : false); $box->body .= Form::getCloseFieldset(); cout($box->get(), 'content'); function is_showed($which) { if (isset($_SESSION['report_tempdata']['columns_filter'])) { return in_array($which, $_SESSION['report_tempdata']['columns_filter']['showed_columns']); } else { return false; } } //box for columns selection $arr_fieldset = array('user' => '', 'course' => '', 'lo' => ''); $box = new ReportBox('columns_selection'); $box->title = $lang->def('_SELECT_THE_DATA_COL_NEEDED'); $box->description = false; //prepare fieldsets foreach ($this->LO_columns as $val) { if ($val['select']) { $line = Form::getCheckBox($val['label'], 'col_sel_' . $val['key'], 'cols[]', $val['key'], is_showed($val['key'])); switch ($val['group']) { case 'user': $arr_fieldset['user'] .= $line; break; case 'course': $arr_fieldset['course'] .= $line; break; case 'lo': $arr_fieldset['lo'] .= $line; break; } } else { if ($val['key'] == '_CUSTOM_FIELDS_') { //custom fields if (count($ref['custom_fields']) > 0) { foreach ($ref['custom_fields'] as $key => $val) { $arr_fieldset['user'] .= Form::getCheckBox($val['label'], 'col_custom_' . $val['id'], 'custom[' . $val['id'] . ']', $val['id'], $val['selected']); } } } } } //print fieldsets foreach ($arr_fieldset as $fid => $fieldset) { $ftitle = ''; switch ($fid) { case 'user': $ftitle = Lang::t('_USER_CUSTOM_FIELDS', 'report'); break; case 'course': $ftitle = Lang::t('_COURSE_FIELDS', 'report'); break; case 'lo': $ftitle = Lang::t('_LEARNING_OBJECTS', 'standard'); break; } $box->body .= Form::getOpenFieldset($ftitle, 'fieldset_' . $fid . '_fields'); $box->body .= $fieldset; $box->body .= Form::getCloseFieldset(); } cout($box->get(), 'content'); //other options $box = new ReportBox('other_options'); $box->title = Lang::t('_OTHER_OPTION', 'course'); $box->description = false; $sort_list = array('userid' => Lang::t('_USERID', 'standard'), 'firstname' => Lang::t('_FIRSTNAME', 'standard'), 'lastname' => Lang::t('_LASTNAME', 'standard'), 'email' => Lang::t('_EMAIL', 'standard'), 'course_code' => Lang::t('_COURSE_CODE', 'standard'), 'course_name' => Lang::t('_COURSE_NAME', 'standard'), 'object_title' => Lang::t('_LEARNING_OBJECTS', 'standard'), 'object_type' => Lang::t('_RU_LO_TYPES', 'report'), 'first_attempt' => Lang::t('_LO_COL_FIRSTATT', 'report'), 'last_attempt' => Lang::t('_LO_COL_LASTATT', 'report')); $dir_list = array('asc' => Lang::t('_ORD_ASC_TITLE', 'standard'), 'desc' => Lang::t('_ORD_DESC_TITLE', 'standard')); $sort_selected = array_key_exists($ref['order_by'], $sort_list) ? $ref['order_by'] : 'userid'; $dir_selected = array_key_exists($ref['order_dir'], $dir_list) ? $ref['order_dir'] : 'asc'; $sort_dir_dropdown = Form::getInputDropdown('', 'order_dir', 'order_dir', $dir_list, $dir_selected, ''); $box->body .= Form::getDropdown(Lang::t('_ORDER_BY', 'standard'), 'order_by', 'order_by', $sort_list, $sort_selected, $sort_dir_dropdown); $box->body .= Form::getCheckbox(Lang::t('_SHOW_SUSPENDED', 'organization_chart'), 'show_suspended', 'show_suspended', 1, (bool) $ref['show_suspended']); cout($box->get(), 'content'); }
public function init() { require_once _base_ . '/lib/lib.userselector.php'; $this->util = new UserSelectorUtil(); $this->json = new Services_JSON(); YuiLib::load('base,tabview,tree,datatable,selector'); Util::get_js(Get::rel_path('base') . '/lib/lib.elem_selector.js', true, true); Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, true); Util::get_css('base-folder-tree.css', false, true); $js_path = Get::rel_path('base') . '/widget/tree/'; Util::get_js($js_path . 'foldernode.js', true, true); Util::get_js($js_path . 'foldertree.js', true, true); Util::get_js($js_path . 'selectortree.js', true, true); $js_path = Get::rel_path('base') . '/widget/userselector/'; Util::get_js($js_path . 'userselector.js', true, true); }
function presence() { checkPerm('view'); require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.table.php'; YuiLib::load(); Util::get_js(Get::rel_path('lms') . '/admin/views/classroom/classroom.js', true, true); $id_date = Get::req('id_date', DOTY_INT, 0); $lang =& DoceboLanguage::CreateInstance('admin_date', 'lms'); $date_man = new DateManager(); $user_date = $date_man->getUserDateForCourse(getLogUserId(), $_SESSION['idCourse']); $date_info = $date_man->getDateInfoForPublicPresence($user_date); foreach ($date_info as $info_date) { $date_for_dropdown[$info_date['id_date']] = $info_date['code'] . ' - ' . $info_date['name'] . ' (' . Format::date($info_date['date_begin'], 'date') . ')'; } if ($id_date == 0) { $id_date = isset($date_info[0]['id_date']) ? $date_info[0]['id_date'] : 0; } cout(getTitleArea(Lang::t('_ATTENDANCE')) . '<div class="std_block">', 'content'); if (isset($_POST['save'])) { require_once $GLOBALS['where_lms'] . '/lib/lib.date.php'; $date_man = new DateManager(); $id_date = Get::req('id_date', DOTY_INT, 0); $score_min = Get::req('score_min', DOTY_INT, 0); $user = $date_man->getUserForPresence($id_date); $day = $date_man->getDateDay($id_date); $test_type = $date_man->getTestType($id_date); foreach ($user as $id_user => $user_info) { $user[$id_user]['score'] = Get::req('score_' . $id_user, DOTY_INT, 0); $user[$id_user]['note'] = Get::req('note_' . $id_user, DOTY_MIXED, ''); $user[$id_user]['day_presence'] = array(); for ($i = 0; $i < count($day); $i++) { $user[$id_user]['day_presence'][$day[$i]['id_day']] = Get::req('date_' . $day[$i]['id_day'] . '_' . $id_user, DOTY_INT, 0); } } if ($date_man->insDatePresence($_SESSION['id_course_date'], $id_date, $user, $day, $score_min)) { UIFeedback::info(Lang::t('_ATTENDANCE_SAVED', 'admin_date')); } else { UIFeedback::error(Lang::t('_ATTENDANCE_SAVED_ERROR', 'admin_date')); } } if ($id_date == 0) { cout(Lang::t('_NO_CONTENT', 'admin_date'), 'content'); } else { $user = $date_man->getUserForPresence($id_date); $day = $date_man->getDateDay($id_date); $test_type = $date_man->getTestType($id_date); $user_presence = $date_man->getUserPresenceForDate($id_date); $tb = new Table(0, Lang::t('_ATTENDANCE', 'admin_date'), Lang::t('_ATTENDANCE', 'admin_date')); $cont_h = array(Lang::t('_USERNAME', 'admin_date'), Lang::t('_FULLNAME', 'admin_date')); $type_h = array('', ''); foreach ($day as $id_day => $day_info) { $cont_h[] = Format::date($day_info['date_begin'], 'date') . '<br />' . '<a href="javascript:;" onClick="checkAllDay(' . $id_day . ')">' . Get::img('standard/checkall.png', Lang::t('_CHECK_ALL_DAY', 'presence') . '</a>') . ' ' . '<a href="javascript:;" onClick="unCheckAllDay(' . $id_day . ')">' . Get::img('standard/uncheckall.png', Lang::t('_UNCHECK_ALL_DAY', 'presence') . '</a>'); $type_h[] = 'align_center'; } $cont_h[] = ''; $type_h[] = 'img-cell'; if ($test_type == _DATE_TEST_TYPE_PAPER) { $cont_h[] = Lang::t('_SCORE', 'admin_date'); $type_h[] = 'align_center'; } $cont_h[] = Lang::t('_NOTES', 'admin_date'); $type_h[] = 'align_center'; $tb->setColsStyle($type_h); $tb->addHead($cont_h); cout(Form::openForm('presence_form', 'index.php?modname=presence&op=presence') . Form::openElementSpace() . Form::getDropdown(Lang::t('_SELECT_EDITION', 'admin_date'), 'id_date', 'id_date', $date_for_dropdown, $id_date) . Form::closeElementSpace() . Form::openElementSpace() . ($test_type == 1 ? Form::getTextfield(Lang::t('_MIN_SCORE', 'admin_date'), 'score_min', 'score_min', 255, '') : ''), 'content'); $array_user_id = array(); foreach ($user as $id_user => $user_info) { reset($day); $array_user_id[] = $id_user; $cont = array(); $cont[] = $user_info['userid']; $cont[] = $user_info['lastname'] . ' ' . $user_info['firstname']; foreach ($day as $id_day => $day_info) { if (isset($user_presence[$id_user][substr($day_info['date_begin'], 0, 10)]) && $user_presence[$id_user][substr($day_info['date_begin'], 0, 10)]['presence'] == 1) { $presence = true; } elseif (isset($user_presence[$id_user][substr($day_info['date_begin'], 0, 10)]) && $user_presence[$id_user][substr($day_info['date_begin'], 0, 10)]['presence'] == 0) { $presence = false; } else { $presence = false; } $cont[] = Form::getInputCheckbox('date_' . $id_day . '_' . $id_user, 'date_' . $id_day . '_' . $id_user, 1, $presence, false); } $cont[] = '<a href="javascript:;" onClick="checkAllUser(' . $id_user . ')">' . Get::img('standard/checkall.png', Lang::t('_CHECK_ALL_USER', 'presence') . '</a>') . '<br />' . '<a href="javascript:;" onClick="unCheckAllUser(' . $id_user . ')">' . Get::img('standard/uncheckall.png', Lang::t('_UNCHECK_ALL_USER', 'presence') . '</a>'); if ($test_type == _DATE_TEST_TYPE_PAPER) { if (isset($user_presence[$id_user]['0000-00-00']) && $user_presence[$id_user]['0000-00-00']['presence'] == 1) { $passed = true; } else { $passed = false; } $cont[] = Form::getTextfield('', 'score_' . $id_user, 'score_' . $id_user, 255, isset($user_presence[$id_user]['0000-00-00']['score']) ? $user_presence[$id_user]['0000-00-00']['score'] : '0'); } $cont[] = Form::getSimpleTextarea('', 'note_' . $id_user, 'note_' . $id_user, isset($user_presence[$id_user]['0000-00-00']['note']) ? $user_presence[$id_user]['0000-00-00']['note'] : '', false, false, false, 2); $tb->addBody($cont); } cout($tb->getTable() . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('save', 'save', Lang::t('_SAVE', 'admin_date')) . Form::closeElementSpace() . Form::closeForm() . '</div>', 'content'); cout('<script type="text/javascript">' . 'var _MIN_SCORE_NOT_SET = "' . Lang::t('_MIN_SCORE_NOT_SET', 'admin_date') . '";' . 'YAHOO.util.Event.addListener("save", "click", controlMinScore);' . 'YAHOO.util.Event.addListener("id_date", "change", formSubmit);' . 'function checkAllDay(id_day) { var days = YAHOO.util.Selector.query(\'input[id*=_\' + id_day + \'_]\'); var i; for(i = 0; i < days.length; i++) days[i].checked = true; } function unCheckAllDay(id_day) { var days = YAHOO.util.Selector.query(\'input[id*=_\' + id_day + \'_]\'); var i; for(i = 0; i < days.length; i++) days[i].checked = false; } function checkAllUser(id_user) { var days = YAHOO.util.Selector.query(\'input[id*=_\' + id_user + \']\'); var i; for(i = 0; i < days.length; i++) days[i].checked = true; } function unCheckAllUser(id_user) { var days = YAHOO.util.Selector.query(\'input[id*=_\' + id_user + \']\'); var i; for(i = 0; i < days.length; i++) days[i].checked = false; }' . '</script>', 'content'); } cout('</div>', 'content'); }
function play($object_test, $id_param) { if (!checkPerm('view', true, 'organization') && !checkPerm('view', true, 'storage')) { die("You can't access"); } require_once _base_ . '/lib/lib.form.php'; require_once $GLOBALS['where_lms'] . '/class.module/track.test.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.param.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.test.php'; if (!isset($_SESSION['test_date_begin'])) { $_SESSION['test_date_begin'] = date('Y-m-d H:i:s'); } $lang =& DoceboLanguage::createInstance('test'); $id_test = $object_test->getId(); $id_reference = getLoParam($id_param, 'idReference'); $url_coded = urlencode(serialize($object_test->back_url)); $id_track = retriveTrack($id_reference, $id_test, Docebo::user()->getIdst()); if ($id_track === false) { $GLOBALS['page']->add(getErrorUi($lang->def('_TEST_TRACK_FAILURE') . getBackUi(Util::str_replace_once('&', '&', $object_test->back_url), $lang->def('_BACK'))), 'content'); } $test_man = new TestManagement($id_test); $play_man = new PlayTestManagement($id_test, Docebo::user()->getIdst(), $id_track, $test_man); $test_info = $test_man->getTestAllInfo(); $track_info = $play_man->getTrackAllInfo(); // cast display to one quest at time if the time is by quest if ($test_info['time_dependent'] == 2) { $test_info['display_type'] = 1; } //number of test pages------------------------------------------- $tot_page = $test_man->getTotalPageNumber(); // find the page to display $previous_page = importVar('previous_page', false, false); if ($previous_page === false) { if (isset($_POST['page_continue']) && isset($_POST['continue'])) { $page_to_display = $_POST['page_continue']; } else { $page_to_display = 1; } } else { $page_to_display = $previous_page; if (isset($_POST['next_page'])) { ++$page_to_display; } if (isset($_POST['prev_page']) && $test_info['can_travel']) { --$page_to_display; } } if ($page_to_display < $track_info['last_page_seen'] && !$test_info['can_travel']) { //the page request is alredy displayed, but the user cannot travel trought page $GLOBALS['page']->add(getErrorUi($lang->def('_ERR_INCOERENCY_WITH_PAGE_NUMBER')) . getBackUi(Util::str_replace_once('&', '&', $object_test->back_url), $lang->def('_BACK')), 'content'); return; } if ($track_info['score_status'] != 'not_complete' && $track_info['score_status'] != 'doing') { $GLOBALS['page']->add(getErrorUi($lang->def('_ERR_INCOERENCY_WITH_PAGE_NUMBER')) . getBackUi(Util::str_replace_once('&', '&', $object_test->back_url), $lang->def('_BACK')), 'content'); return; } $new_info = array('last_page_seen' => $page_to_display, 'score_status' => 'doing'); if (isset($_POST['page_to_save'])) { if ($test_info['mod_doanswer']) { $new_info['last_page_saved'] = $_POST['page_to_save']; $play_man->storePage($_POST['page_to_save'], $test_info['mod_doanswer']); $play_man->closeTrackPageSession($_POST['page_to_save']); } else { if ($_POST['page_to_save'] > $track_info['last_page_saved']) { $new_info['last_page_saved'] = $_POST['page_to_save']; $play_man->storePage($_POST['page_to_save'], $test_info['mod_doanswer']); $play_man->closeTrackPageSession($_POST['page_to_save']); } } } $re_update = Track_Test::updateTrack($id_track, $new_info); // save page track info $play_man->updateTrackForPage($page_to_display); $quest_sequence_number = $test_man->getInitQuestSequenceNumberForPage($page_to_display); $query_question = $play_man->getQuestionsForPage($page_to_display); $time_in_test = $play_man->userTimeInTheTest(); $lock_edit = false; $time_string = ''; if ($test_info['time_dependent'] == 1 || $test_info['time_dependent'] == 2) { if ($test_info['time_dependent'] == 1) { // time is for test $start_time = $test_info['time_assigned'] - $time_in_test; if ($start_time <= 0) { showResult($object_test, $id_param); return; } } elseif ($test_info['time_dependent'] == 2) { // time is for quest $re_question = sql_query($query_question); list($idQuest, $type_quest, $type_file, $type_class, $start_time) = sql_fetch_row($re_question); $time_in_quest = $play_man->userTimeInThePage($page_to_display); $start_time = $start_time - $time_in_quest; if ($start_time <= 0) { $lock_edit = true; } } $time_string .= '<div class="test_time_left">' . $lang->def('_TIME_LEFT') . ' : ' . '<span id="time_left">' . (int) ($start_time / 60) . ' m ' . $start_time % 60 . ' s</span>' . '</div>'; // Js for time counter $time_string .= "<script type=\"text/javascript\">\r\n\t\t\t<!--\r\n\t\t\t\r\n\t\t\tvar start_count_from = " . $start_time . ";\r\n\t\t\tvar step = 1;\r\n\t\t\tvar time_elapsed = 0;\r\n\t\t\t\r\n\t\t\tvar id_interval;\r\n\t\t\tvar id_timeout;\r\n\t\t\t\r\n\t\t\tif( window.document.getElementById == null ) {\r\n\t\t\t\twindow.document.getElementById = function( id ) {\r\n\t\t\t\t\treturn document.all[id];\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tfunction counter() {\r\n\t\t\t\t\r\n\t\t\t\ttime_elapsed += step;\r\n\t\t\t\t\r\n\t\t\t\tvar display = start_count_from - time_elapsed;\r\n\t\t\t\tvar elem = document.getElementById('time_left');\r\n\t\t\t\t\r\n\t\t\t\tif(display < 0) return;\r\n\t\t\t\t\r\n\t\t\t\tvar value = display/60;\r\n\t\t\t\tvar minute = Math.floor(value).toString(10);\r\n\t\t\t\tif( minute.length <= 1 ) minute = '0' + minute;\r\n\t\t\t\tvalue = display%60;\r\n\t\t\t\tvar second = Math.floor(value).toString(10);\r\n\t\t\t\tif( second.length <= 1 ) second = '0' + second;\r\n\t\t\t\telem.innerHTML = minute + 'm ' + second + ' s';\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tfunction whenTimeElapsed() {\r\n\t\t\t\t\r\n\t\t\t\t window.clearInterval(id_interval);\r\n\t\t\t\t window.clearTimeout(id_timeout);\r\n\t\t\t\t \r\n\t\t\t\tvar submit_to_end = document.getElementById('test_play');\r\n\t\t\t\tvar time_elapsed = document.getElementById('time_elapsed');\r\n\t\t\t\ttime_elapsed.value = 1;\r\n\t\t\t\talert('" . $lang->def('_TIME_ELAPSED') . "');\r\n\t\t\t\tsubmit_to_end.submit();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tfunction activateCounter() {\r\n\t\t\t\t\r\n\t\t\t\tcounter();\r\n\t\t\t\tid_interval \t= window.setInterval(\"counter()\", step * 1000);\r\n\t\t\t\tid_timeout \t\t= window.setTimeout(\"whenTimeElapsed()\", (start_count_from - 1) * 1000);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tactivateCounter();\r\n\t\t\t// -->\r\n\t\t\t</script>"; $time_string .= Form::getHidden('time_elapsed', 'time_elapsed', '0') . '<br />'; } $GLOBALS['page']->add(getTitleArea($lang->def('_TITLE') . ' : ' . $test_info['title'], 'test', $lang->def('_TEST_INFO')) . '<div class="std_block">' . Form::openForm('test_play', 'index.php?modname=test&op=play', 'std_form', 'post', 'multipart/form-data') . Form::getHidden('next_step', 'next_step', 'play') . Form::getHidden('id_test', 'id_test', $id_test) . Form::getHidden('id_param', 'id_param', $id_param) . Form::getHidden('back_url', 'back_url', $url_coded) . Form::getHidden('idTrack', 'idTrack', $id_track) . $time_string, 'content'); if ($tot_page > 1) { $GLOBALS['page']->add('<div class="align_center">' . $lang->def('_TEST_PAGES') . ' : ' . $page_to_display . ' / ' . $tot_page . '</div><br />', 'content'); } // Page info $GLOBALS['page']->add(Form::getHidden('page_to_save', 'page_to_save', $page_to_display) . Form::getHidden('previous_page', 'previous_page', $page_to_display), 'content'); // FIX sugli ordinamenti random e le risposte a tempo if ($idQuest) { $query_question = str_replace("WHERE", "WHERE q.idQuest = " . $idQuest . " AND", $query_question); } // END FIX // Get question from database $re_question = sql_query($query_question); // Page display $GLOBALS['page']->add('<div class="test_answer_space">', 'content'); $array_answer = array(); $tot_question = 0; while (list($idQuest, $type_quest, $type_file, $type_class, $time_assigned) = sql_fetch_row($re_question)) { require_once $GLOBALS['where_lms'] . '/modules/question/' . $type_file; $quest_obj = eval("return new {$type_class}( {$idQuest} );"); $GLOBALS['page']->add($quest_obj->play($quest_sequence_number, $test_info['shuffle_answer'], $id_track, !$test_info['mod_doanswer'] && !$lock_edit), 'content'); switch ($type_quest) { case 'choice_multiple': case 'choice': case 'associate': case 'text_entry': $query = "SELECT idAnswer, is_correct" . " FROM " . $GLOBALS['prefix_lms'] . "_testquestanswer" . " WHERE idQuest = " . (int) $idQuest; $result = mysql_query($query); while (list($id_answer, $is_correct) = mysql_fetch_row($result)) { $array_answer[$idQuest][$id_answer] = $is_correct; } $array_answer[$idQuest]['type'] = $type_quest; $tot_question++; break; default: break; } // Save question visualization sequence sql_query("\r\n\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_testtrack_quest\r\n\t\t(idTrack, idQuest, page) VALUES \r\n\t\t('" . (int) $id_track . "', '" . (int) $idQuest . "', '" . $page_to_display . "')"); if ($type_quest != 'break_page' && $type_quest != 'title') { ++$quest_sequence_number; } } if ($test_info['mandatory_answer'] == 1) { YuiLib::load(); Util::get_js(Get::rel_path('lms') . '/modules/question/question.js', true, true); cout('<script type="text/javascript">', 'content'); $tot_correct_array = array(); foreach ($array_answer as $id_quest => $quest_info) { switch ($quest_info['type']) { case 'choice_multiple': $tot_correct = 0; foreach ($quest_info as $id_answer => $is_correct) { if ($id_answer !== 'type') { $tot_correct += $is_correct; } } if ($tot_correct == 0) { $tot_question--; } else { cout('YAHOO.util.Event.onDOMReady(configureMultiC, \'\', \'' . (int) $id_quest . '\');' . "\n", 'content'); $tot_correct_array[$id_quest] = $tot_correct; } break; case 'choice': cout('YAHOO.util.Event.onDOMReady(configureSingleC, \'\', \'' . (int) $id_quest . '\');' . "\n", 'content'); break; case 'text_entry': cout('YAHOO.util.Event.onDOMReady(configureTextE, \'\', \'' . (int) $id_quest . '\');' . "\n", 'content'); break; case 'associate': cout('YAHOO.util.Event.onDOMReady(configureAss, \'\', \'' . (int) $id_quest . '\');' . "\n", 'content'); break; } } $js_array = '{'; $first = true; foreach ($tot_correct_array as $id_quest => $num_correct) { if ($first) { $js_array .= '\'_' . $id_quest . '\':' . $num_correct; $first = false; } else { $js_array .= ',\'_' . $id_quest . '\':' . $num_correct; } } $js_array .= '}'; cout('var num_answer_control = ' . $js_array . ';' . "\n" . 'var tot_question = ' . (int) $tot_question . ';' . "\n" . '</script>', 'content'); } $GLOBALS['page']->add('</div>' . '<span id="answer_info" style="color:#FF0000;width:97%;float:right;margin-bottom:5px;text-align:right;padding-right:30px;' . ($tot_question > 0 && $test_info['mandatory_answer'] == 1 ? 'display:block;' : 'display:none;') . '"><b>' . $lang->def('_NEED_ANSWER') . '</b></span>' . '<div class="test_button_space">', 'content'); if ($test_info['save_keep'] == 1) { //save and exit $GLOBALS['page']->add(Form::getButton('test_save_keep', 'test_save_keep', $lang->def('_TEST_SAVE_KEEP')), 'content'); } if ($test_info['can_travel'] && $page_to_display != 1) { //back to the next page $GLOBALS['page']->add(Form::getButton('prev_page', 'prev_page', $lang->def('_TEST_PREV_PAGE')), 'content'); } if ($page_to_display != $tot_page) { //button to the next page $GLOBALS['page']->add(Form::getButton('next_page', 'next_page', $lang->def('_TEST_NEXT_PAGE'), '', $tot_question > 0 && $test_info['mandatory_answer'] == 1 ? ' disabled="disabled"' : ''), 'content'); } else { //button to the result page $GLOBALS['page']->add(Form::getButton('show_result', 'show_result', $lang->def('_TEST_END_PAGE'), '', $tot_question > 0 && $test_info['mandatory_answer'] == 1 ? ' disabled="disabled"' : ''), 'content'); } $GLOBALS['page']->add('</div>' . Form::closeForm() . '</div>', 'content'); }
function view_report_certificate() { checkPerm('view'); require_once _lms_ . '/lib/lib.certificate.php'; require_once _lms_ . '/lib/lib.course.php'; $out =& $GLOBALS['page']; $out->setWorkingZone('content'); $lang =& DoceboLanguage::createInstance('certificate', 'lms'); $deletion = importVar('deletion', true, 0); if ($deletion) { switch ($deletion) { case 1: $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); break; case 2: $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); break; case 3: $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); break; } } $certificate = new Certificate(); $id_certificate = importVar('id_certificate', true, 0); $id_course = importVar('id_course', true, 0); $selection = importVar('selection', false, array()); //all possible selected values $selected = importVar('selected', false, array()); //effectively selected values with checkbox $sel = importVar('old_selection', false, ''); //selected values from previous table pages if ($sel != '') { $total_selection = explode(',', $sel); } else { $total_selection = array(); } //update total selection foreach ($selection as $key => $val) { if (in_array($val, $selected)) { if (!in_array($val, $total_selection)) { $total_selection[] = $val; } } else { $index = array_search($val, $total_selection); if ($index !== false) { array_splice($total_selection, $index, 1); } } } $search_filter = importVar('filter', false, ''); $only_released = importVar('only_released', true, 0); //which command? if (importVar('search_button', false, false) !== false) { } if (importVar('reset_button', false, false) !== false) { $search_filter = ''; $only_released = 0; } if (importVar('print_button', false, false) !== false) { } $numtablerows = $GLOBALS['framework']['visuItem']; $tb = new Table($numtablerows, $lang->def('_CERTIFICATE_VIEW_CAPTION'), $lang->def('_CERTIFICATE_VIEW_CAPTION')); $tb->initNavBar('ini', 'button'); $ini = $tb->getSelectedElement(); $tca = $GLOBALS['prefix_lms'] . "_certificate_assign as ca"; $tcc = $GLOBALS['prefix_lms'] . "_certificate_course as cc"; $tcu = $GLOBALS['prefix_lms'] . "_courseuser as cu"; $tu = $GLOBALS['prefix_fw'] . "_user as u"; $where = ""; if ($search_filter != '') { $where .= " AND (u.userid LIKE '%" . $search_filter . "%' OR u.lastname LIKE '%" . $search_filter . "%' OR u.firstname LIKE '%" . $search_filter . "%') "; } if ($only_released > 0) { $where = " AND ca.on_date " . ($only_released == 1 ? "IS NOT" : "IS") . " NULL "; } //$where .= " AND ".$aval_status." ".($only_released==1 ? "<" : ">=")." cu.status "; list($aval_status) = sql_fetch_row(sql_query("SELECT available_for_status FROM " . $tcc . " " . " WHERE id_certificate='" . (int) $id_certificate . "' AND id_course='" . (int) $id_course . "'")); switch ($aval_status) { case AVS_ASSIGN_FOR_ALL_STATUS: $aval_status = " 1 "; break; case AVS_ASSIGN_FOR_STATUS_INCOURSE: $aval_status = " cu.status = " . _CUS_BEGIN . " "; break; case AVS_ASSIGN_FOR_STATUS_COMPLETED: $aval_status = " cu.status = " . _CUS_END . " "; break; } list($totalrows) = sql_fetch_row(sql_query("SELECT COUNT(*) " . " FROM ( " . $tu . " JOIN " . $tcu . " ON (u.idst = cu.idUser) ) LEFT JOIN " . $tca . " " . " ON ( ca.id_course = cu.idCourse AND ca.id_user=cu.idUser ) " . " WHERE (ca.id_certificate='" . (int) $id_certificate . "' OR ca.id_certificate IS NULL) AND " . $aval_status . " " . " AND cu.idCourse='" . (int) $id_course . "' " . $where)); $query = "SELECT u.userid, u.firstname, u.lastname, cu.date_complete, ca.on_date, cu.idUser as id_user, cu.status " . " FROM ( " . $tu . " JOIN " . $tcu . " ON (u.idst = cu.idUser) ) LEFT JOIN " . $tca . " " . " ON ( ca.id_course = cu.idCourse AND ca.id_user=cu.idUser ) " . " WHERE (ca.id_certificate='" . (int) $id_certificate . "' OR ca.id_certificate IS NULL) AND " . $aval_status . " " . " AND cu.idCourse='" . (int) $id_course . "' " . $where . " ORDER BY u.userid LIMIT " . $ini . ", " . $numtablerows; $res = sql_query($query); $from = Get::req('from', DOTY_MIXED, ''); $back_ui = getBackUi('index.php?r=lms/pcourse/certificate&id_course=' . (int) $id_course, $lang->def('_BACK')); $out->add(getTitleArea(array('index.php?r=lms/pcourse/certificate&id_course=' . (int) $id_course => $lang->def('_CERTIFICATE_ASSIGN_STATUS', 'course'), $lang->def('_CERTIFICATE_REPORT_COURSE_CERT')), 'certificate')); $out->add('<div class="std_block">' . $back_ui); $numrows = sql_num_rows($res); $downloadables = array(); if ($numrows > 0) { $clang =& DoceboLanguage::CreateInstance('course', 'lms'); $type_h = array('image', '', '', '', '', '', '', 'image', 'image'); $cont_h = array('', $lang->def('_USERNAME'), $lang->def('_LASTNAME'), $lang->def('_FIRSTNAME'), $clang->def('_STATUS'), $lang->def('_DATE'), $lang->def('_RELASE_DATE'), Get::img('course/certificate.png', Lang::t('_TITLE_VIEW_CERT', 'certificate')), Get::img('standard/delete.png', Lang::t('_DEL', 'certificate'))); $tb->setColsStyle($type_h); $tb->addHead($cont_h); $acl_man =& $GLOBALS['current_user']->getAclManager(); $arr_status = array(_CUS_CONFIRMED => $clang->def('_USER_STATUS_CONFIRMED'), _CUS_SUBSCRIBED => $clang->def('_USER_STATUS_SUBS'), _CUS_BEGIN => $clang->def('_USER_STATUS_BEGIN'), _CUS_END => $clang->def('_USER_STATUS_END'), _CUS_SUSPEND => $clang->def('_USER_STATUS_SUSPEND')); //foreach($report_info as $info_report) while ($info = sql_fetch_assoc($res)) { $cont = array(); $can_assign = (bool) ($info['on_date'] == ''); $input_id = $info['id_user']; $sel_cell_content = ''; $label_open = ''; $label_close = ''; if ($can_assign) { $input = '<input type="hidden" id="selection_' . $input_id . '" name="selection[' . $input_id . ']" value="' . $input_id . '"/> '; if (in_array($input_id, $total_selection)) { $checked = ' checked="checked"'; } else { $checked = ''; } $sel_cell_content .= $input . '<input type="checkbox" id="selected_' . $input_id . '" name="selected[' . $input_id . ']" value="' . $input_id . '"' . $checked . '/>'; $label_open = '<label for="selected_' . $input_id . '">'; $label_close = '</label>'; } $userid = $acl_man->relativeId($info['userid']); $cont[] = $sel_cell_content; $cont[] = $label_open . ($search_filter != '' ? highlightText($userid, $search_filter) : $userid) . $label_close; $cont[] = $label_open . ($search_filter != '' ? highlightText($info['lastname'], $search_filter) : $info['lastname']) . $label_close; $cont[] = $label_open . ($search_filter != '' ? highlightText($info['firstname'], $search_filter) : $info['firstname']) . $label_close; $cont[] = $arr_status[$info['status']]; $cont[] = $info['date_complete']; $cont[] = $info['on_date']; $url = 'index.php?modname=pcertificate&certificate_id=' . $id_certificate . '&course_id=' . $id_course . '&user_id=' . $info['id_user']; $dl_url = $url . "&op=send_certificate"; if ($can_assign) { $downloadables[] = 'dl_single_' . $input_id; } $cont[] = '<a href="' . ($can_assign ? "javascript:;" : $dl_url) . '" id="dl_single_' . $input_id . '">' . Get::img('course/certificate.png', Lang::t('_TITLE_VIEW_CERT', 'certificate')) . ($can_assign ? $lang->def('_GENERATE') : $lang->def('_DOWNLOAD')) . '</a>'; $cont[] = $can_assign ? "" : '<a href="' . $url . '&op=del_report_certificate">' . Get::img('standard/delete.png', Lang::t('_DEL', 'certificate')) . '</a>'; $tb->addBody($cont); } require_once _base_ . '/lib/lib.dialog.php'; setupHrefDialogBox('a[href*=del_report_certificate]'); $form = new Form(); $form_url = "index.php?modname=pcertificate&op=view_report_certificate&id_certificate=" . (int) $id_certificate . "&id_course=" . (int) $id_course; $out->add($form->openForm("certificates_emission", $form_url)); $out->add($form->getHidden('old_selection', 'old_selection', implode(',', $total_selection))); //search filter ... $release_options = array($lang->def('_ALL') => 0, $lang->def('_ONLY_RELEASED') => 1, $lang->def('_ONLY_TO_RELEASE') => 2); /* $out->add($form->getOpenFieldset($lang->def('_SEARCH_FILTER'))); $out->add($form->getTextfield($lang->def('_FILTER'), "filter", "filter", 255, $search_filter)); $out->add($form->getRadioSet($lang->def('_RELEASE_OPTIONS'), 'only_released', 'only_released', $release_options, $only_released).'<div class="no_float"></div>'); $out->add($form->openButtonSpace()); $out->add($form->getButton("search_button", "search_button", $lang->def('_SEARCH'))); $out->add($form->getButton("reset_button", "reset_button", $lang->def('_UNDO'))); $out->add($form->closeButtonSpace()); $out->add($form->getCloseFieldset()); */ $print_button_1 = '<div><a id="print_selected_button_1" href="javascript:;">' . Get::img('course/certificate.png', Lang::t('_GENERATE_ALL_SELECTED', 'certificate')) . Lang::t('_GENERATE_ALL_SELECTED', 'certificate') . '</a></div>'; $print_button_2 = '<div><a id="print_selected_button_2" href="javascript:;">' . Get::img('course/certificate.png', Lang::t('_GENERATE_ALL_SELECTED', 'certificate')) . Lang::t('_GENERATE_ALL_SELECTED', 'certificate') . '</a></div>'; cout('<div class="quick_search_form">' . Form::getInputTextfield("_FILTER", "filter", "filter", $search_filter, '', 255, '') . Form::getButton("search_button", "search_button", Lang::t('_SEARCH', 'standard'), "search_b") . Form::getButton("reset_button", "reset_button", Lang::t('_RESET', 'standard'), "reset_b") . '<br />' . '<br />' . $lang->def('_RELEASE_OPTIONS') . ': ' . Form::getInputRadio('only_released_0', 'only_released', '0', $only_released == 0, '') . ' <label class="label_normal" for="only_released_0">' . Lang::t('_ALL', 'certificate') . '</label>' . ' ' . Form::getInputRadio('only_released_1', 'only_released', '1', $only_released == 1, '') . ' <label class="label_normal" for="only_released_1">' . Lang::t('_ONLY_RELEASED', 'certificate') . '</label>' . ' ' . Form::getInputRadio('only_released_2', 'only_released', '2', $only_released == 2, '') . ' <label class="label_normal" for="only_released_2">' . Lang::t('_ONLY_TO_RELEASE', 'certificate') . '</label>' . Form::closeForm() . '</div>', 'content'); $navbar = $tb->getNavBar($ini, $totalrows); $out->add($print_button_1 . '<br />' . $navbar . $tb->getTable() . $navbar . '<br />' . $print_button_2); $out->add($form->closeForm()); } else { $out->add($lang->def('_NO_USER_FOR_CERTIFICATE')); } $out->add($back_ui . '</div>'); addCss('style_menu', 'lms'); Util::get_js(Get::rel_path('lms') . '/modules/pcertificate/pcertificate.js', true, true); $script = 'var ajax_url="ajax.server.php?plf=lms&mn=pcertificate"; var _STOP="' . $lang->def('_STOP') . '"; ' . 'var glob_id_certificate = ' . (int) $id_certificate . ', glob_id_course = ' . (int) $id_course . ';' . 'var single_list = [' . (count($downloadables) ? '"' . implode('","', $downloadables) . '"' : '') . ']; ' . 'var reload_url = "' . str_replace('&', '&', isset($form_url) ? $form_url : '') . '", _ERROR_PARSE = "' . $lang->def('_OPERATION_FAILURE') . '", _SUCCESS = "' . $lang->def('_OPERATION_SUCCESSFUL') . '";'; $out->add('<script type="text/javascript">' . $script . '</script>', 'page_head'); }
/** * Include the required libraries in order to have all the things ready and working */ public function init() { Util::get_js(Get::rel_path('base') . '/addons/yui/logger/logger-min.js', true, true); Util::get_css(Get::rel_path('base') . '/templates/standard/yui-skin/logger.css', true, true); }
public function loadJs() { Util::get_js(Get::rel_path('lms') . '/modules/test/assessment_rule.js', true, true); }
function modAssignmentAssignMetaCertificate() { checkPerm('mod'); require_once _base_ . '/lib/lib.form.php'; require_once $GLOBALS['where_framework'] . '/lib/lib.directory.php'; require_once _base_ . '/lib/lib.userselector.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.course_managment.php'; $lang =& DoceboLanguage::createInstance('certificate', 'lms'); $id_certificate = importVar('id_certificate', true, 0); $id_meta = Get::req('idmeta', DOTY_INT, 0); $step = Get::req('step', DOTY_INT, 0); $out =& $GLOBALS['page']; $out->setWorkingZone('content'); $acl_man =& Docebo::user()->getAclManager(); $aclManager = new DoceboACLManager(); $user_select = new UserSelector(); $form = new Form(); $sel = new Course_Manager(); $course_man = new Man_Course(); if (isset($_POST['okselector'])) { $user_selected = $user_select->getSelection($_POST); $_SESSION['meta_certificate']['users'] = $user_selected; $step++; } if (isset($_POST['import_filter'])) { $_SESSION['meta_certificate']['course'] = $sel->getCourseSelection($_POST); $step++; } if (isset($_POST['insert'])) { $step++; } if ($step == 3) { $array_user =& $aclManager->getAllUsersFromIdst($_SESSION['meta_certificate']['users']); $array_user = array_unique($array_user); $res = true; $user_reset = array(); $course_reset = array(); $reasign = array(); //array reasign $query = "SELECT idUser, idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'"; $result = sql_query($query); while (list($id_user, $id_course) = sql_fetch_row($result)) { $reasign[$id_user][$id_course] = 1; } //array user_reset $query = "SELECT DISTINCT idUser" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'"; $result = sql_query($query); while (list($id_user) = sql_fetch_row($result)) { $user_reset[$id_user] = $id_user; } //array course_reset $query = "SELECT DISTINCT idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'"; $result = sql_query($query); while (list($id_course) = sql_fetch_row($result)) { $course_reset[$id_course] = $id_course; } //finish array initialization $query_course = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_certificate_meta_course (idMetaCertificate, idUser, idCourse)" . " VALUES "; $first = true; $array_user_flipped = array_flip($array_user); foreach ($user_reset as $id_user) { if (!isset($array_user_flipped[$id_user])) { $query = "DELETE FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idUser = '******'" . " AND idMetaCertificate = '" . $id_meta . "'"; if (!sql_query($query)) { $res = false; } } } if (!$res) { Util::jump_to('index.php?modname=meta_certificate&op=assign&id_certificate=' . $id_certificate . '&res=error_mod_assign'); } foreach ($course_reset as $id_course) { if (!isset($_SESSION['meta_certificate']['course'][$id_course])) { $query = "DELETE FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idCourse = '" . $id_course . "'" . " AND idMetaCertificate = '" . $id_meta . "'"; if (!sql_query($query)) { $res = false; } } } if (!$res) { Util::jump_to('index.php?modname=meta_certificate&op=assign&id_certificate=' . $id_certificate . '&res=error_mod_assign'); } reset($_SESSION['meta_certificate']['course']); foreach ($array_user as $id_user) { foreach ($_SESSION['meta_certificate']['course'] as $id_course) { if (isset($_POST['_' . $id_user . '_' . $id_course . '_'])) { if (!isset($reasign[$id_user][$id_course])) { if ($first) { $query_course .= "('" . $id_meta . "', '" . $id_user . "', '" . $id_course . "')"; $first = false; } else { $query_course .= ", ('" . $id_meta . "', '" . $id_user . "', '" . $id_course . "')"; } } } else { if (isset($reasign[$id_user][$id_course])) { $query = "DELETE FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idUser = '******'" . " AND idCourse = '" . $id_course . "'" . " AND idMetaCertificate = '" . $id_meta . "'"; if (!sql_query($query)) { $res = false; } } } } } if (!$res) { Util::jump_to('index.php?modname=meta_certificate&op=assign&id_certificate=' . $id_certificate . '&res=error_mod_assign'); } $res = sql_query($query_course); if ($res) { Util::jump_to('index.php?modname=meta_certificate&op=assign&id_certificate=' . $id_certificate . '&res=ok'); } else { Util::jump_to('index.php?modname=meta_certificate&op=assign&id_certificate=' . $id_certificate . '&res=error_mod_assign'); } } elseif ($step == 2) { YuiLib::load(); Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, true); $tb = new Table(0, $lang->def('_META_CERTIFICATE_NEW_ASSIGN_CAPTION'), $lang->def('_META_CERTIFICATE_NEW_ASSIGN_SUMMARY')); $tb->setLink('index.php?modname=meta_certificate&op=modassignment'); $out->add(getTitleArea($lang->def('_TITLE_META_CERTIFICATE_ASSIGN'), 'certificate') . '<div class="std_block">' . $form->openForm('new_assign_step_2', 'index.php?modname=meta_certificate&op=modassignment') . $form->getHidden('id_certificate', 'id_certificate', $id_certificate) . $form->getHidden('idmeta', 'idmeta', $id_meta) . $form->getHidden('step', 'step', 2) . $form->getHidden('reasign', 'reasign', 1)); $reasign = array(); if (!isset($_POST['reasign'])) { $query = "SELECT idUser, idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'"; $result = sql_query($query); while (list($id_user, $id_course) = sql_fetch_row($result)) { $reasign[$id_user][$id_course] = 1; } } $form_name = 'new_assign_step_2'; $type_h = array('', ''); $cont_h = array($lang->def('_FULLNAME'), $lang->def('_USERNAME')); foreach ($_SESSION['meta_certificate']['course'] as $id_course) { $type_h[] = 'align_center'; $course_info = $course_man->getCourseInfo($id_course); $cont_h[] = $course_info['code'] . ' - ' . $course_info['name']; } $type_h[] = 'image'; $cont_h[] = $lang->def('_CHECKALL'); $type_h[] = 'image'; $cont_h[] = $lang->def('_UNCHECKALL'); $tb->setColsStyle($type_h); $tb->addHead($cont_h); reset($_SESSION['meta_certificate']['course']); $array_user =& $aclManager->getAllUsersFromIdst($_SESSION['meta_certificate']['users']); $array_user = array_unique($array_user); $query = "SELECT idst" . " FROM " . $GLOBALS['prefix_fw'] . "_user" . " WHERE idst IN (" . implode(',', $array_user) . ")" . " ORDER BY userid"; $result = sql_query($query); $array_user = array(); while (list($id_user) = sql_fetch_row($result)) { $array_user[] = $id_user; } foreach ($array_user as $id_user) { $cont = array(); $user_info = $acl_man->getUser($id_user, false); $cont[] = $user_info[ACL_INFO_LASTNAME] . ' ' . $user_info[ACL_INFO_FIRSTNAME]; $cont[] = $acl_man->relativeId($user_info[ACL_INFO_USERID]); foreach ($_SESSION['meta_certificate']['course'] as $id_course) { if (isset($_POST['_' . $id_user . '_' . $id_course . '_']) || isset($_POST['select_all']) || isset($reasign[$id_user][$id_course])) { $checked = true; } else { $checked = false; } $cont[] = $form->getCheckbox('', '_' . $id_user . '_' . $id_course . '_', '_' . $id_user . '_' . $id_course . '_', 1, $checked); } $cont[] = '<a href="javascript:;" onclick="checkall_fromback_meta(\'' . $form_name . '\', \'' . $id_user . '\', true); return false;">' . $lang->def('_CHECKALL') . '</a>'; $cont[] = '<a href="javascript:;" onclick="checkall_fromback_meta(\'' . $form_name . '\', \'' . $id_user . '\', false); return false;">' . $lang->def('_UNCHECKALL') . '</a>'; $tb->addBody($cont); } reset($_SESSION['meta_certificate']['course']); $cont = array(); $cont[] = ''; $cont[] = ''; foreach ($_SESSION['meta_certificate']['course'] as $id_course) { $cont[] = '<a href="javascript:;" onclick="checkall_meta(\'' . $form_name . '\', \'' . $id_course . '\', true); return false;">' . $lang->def('_CHECKALL') . '</a><br/>' . '<a href="javascript:;" onclick="checkall_meta(\'' . $form_name . '\', \'' . $id_course . '\', false); return false;">' . $lang->def('_UNCHECKALL') . '</a>'; } $cont[] = ''; $cont[] = ''; $tb->addBody($cont); $out->add($form->openElementSpace() . $tb->getTable() . $form->closeElementSpace() . $form->openButtonSpace() . $form->getButton('select_all', 'select_all', $lang->def('_SELECT_ALL')) . $form->getButton('insert', 'insert', $lang->def('_INSERT')) . $form->getButton('undo_assign', 'undo_assign', $lang->def('_UNDO')) . $form->closeButtonSpace() . $form->closeForm()); } elseif ($step == 1) { $sel->setLink('index.php?modname=meta_certificate&op=modassignment'); $out->add(getTitleArea($lang->def('_TITLE_META_CERTIFICATE_ASSIGN'), 'certificate') . '<div class="std_block">' . $form->openForm('new_assign_step_1', 'index.php?modname=meta_certificate&op=modassignment') . $form->getHidden('id_certificate', 'id_certificate', $id_certificate) . $form->getHidden('idmeta', 'idmeta', $id_meta) . $form->getHidden('step', 'step', 1) . $form->getHidden('course_reload', 'course_reload', 1)); if (!isset($_POST['course_reload'])) { $query = "SELECT DISTINCT idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'"; $result = sql_query($query); $course_reset = array(); while (list($id_course) = sql_fetch_row($result)) { $course_reset[$id_course] = $id_course; } $sel->resetCourseSelection($course_reset); } $sel->loadSelector(); $out->add(Form::getHidden('update_tempdata', 'update_tempdata', 1) . Form::openButtonSpace() . Form::getBreakRow() . Form::getButton('ok_filter', 'import_filter', $lang->def('_NEXT')) . Form::getButton('undo_filter', 'undo_filter', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm() . '</div>'); } else { $user_select->show_orgchart_simple_selector = FALSE; $user_select->multi_choice = TRUE; $user_select->addFormInfo($form->getHidden('step', 'step', 0) . $form->getHidden('id_certificate', 'id_certificate', $id_certificate) . $form->getHidden('idmeta', 'idmeta', $id_meta) . $form->getHidden('user_reload', 'user_reload', 1)); $user_select->setPageTitle(getTitleArea($lang->def('_TITLE_META_CERTIFICATE_ASSIGN'), 'certificate') . '<div class="std_block">'); if (!isset($_POST['user_reload'])) { $query = "SELECT DISTINCT idUser" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'"; $result = sql_query($query); $user_reset = array(); while (list($id_user) = sql_fetch_row($result)) { $user_reset[$id_user] = $id_user; } $user_select->resetSelection($user_reset); } $user_select->loadSelector('index.php?modname=meta_certificate&op=modassignment', false, $lang->def('_USER_FOR_META_CERTIFICATE_ASSIGN'), true); } }
function modtestgui($object_test) { checkPerm('view', false, 'storage'); $lang =& DoceboLanguage::createInstance('test'); YuiLib::load('table'); Util::get_js(_folder_lms_ . '/modules/quest_bank/ajax.quest_bank.js', true, true); // ---------------------------------------------------------------------------------------- if (!is_a($object_test, 'Learning_Test')) { $_SESSION['last_error'] = $lang->def('_OPERATION_FAILURE'); Util::jump_to('' . $object_test->back_url . '&create_result=0'); } require_once _base_ . '/lib/lib.table.php'; require_once _base_ . '/lib/lib.form.php'; $url_encode = htmlentities(urlencode($object_test->back_url)); list($test_title) = sql_fetch_row(sql_query("\r\n\tSELECT title \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_test \r\n\tWHERE idTest = '" . $object_test->getId() . "'")); $re_quest = sql_query("\r\n\tSELECT idQuest, type_quest, title_quest, sequence, page \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_testquest \r\n\tWHERE idTest = '" . $object_test->getId() . "'\r\n\tORDER BY sequence"); $num_quest = mysql_num_rows($re_quest); list($num_page) = sql_fetch_row(sql_query("\r\n\tSELECT MAX(page) \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_testquest \r\n\tWHERE idTest = '" . $object_test->getId() . "'")); $num_page = (int) $num_page; $GLOBALS['page']->add(getTitleArea($lang->def('_TEST_SECTION'), 'test') . '<div class="std_block yui-skin-docebo yui-skin-sam">' . getBackUi(Util::str_replace_once('&', '&', $object_test->back_url), $lang->def('_BACK')), 'content'); if (isset($_GET['mod_operation'])) { if ($_GET['mod_operation']) { $GLOBALS['page']->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL')), 'content'); } else { $GLOBALS['page']->add(getResultUi($lang->def('_QUEST_ERR_MODIFY')), 'content'); } } //other areas $GLOBALS['page']->add('<b>' . $lang->def('_TITLE') . ' :</b> ' . '<a href="index.php?modname=test&op=modtest&idTest=' . $object_test->getId() . '&back_url=' . $url_encode . '"' . ' class="ico-wt-sprite subs_mod" title="' . $lang->def('_MOD_TITLE', 'standard') . '"><span>' . $test_title . '</span></a><br /><br />', 'content'); $GLOBALS['page']->add('<ul class="link_list_inline"> <li>' . '<a href="index.php?modname=test&op=defmodality&idTest=' . $object_test->getId() . '&back_url=' . $url_encode . '" title="' . $lang->def('_TEST_MODALITY') . '">' . $lang->def('_TEST_MODALITY') . '</a>' . '</li> <li>' . '<a href="index.php?modname=test&op=deftime&idTest=' . $object_test->getId() . '&back_url=' . $url_encode . '" title="' . $lang->def('_TEST_COMPILE_TIME') . '">' . $lang->def('_TEST_COMPILE_TIME') . '</a>' . '</li> <li>' . '<a href="index.php?modname=test&op=defpoint&idTest=' . $object_test->getId() . '&back_url=' . $url_encode . '" title="' . $lang->def('_TEST_POINT_ASSIGNEMENT') . '">' . $lang->def('_TEST_POINT_ASSIGNEMENT') . '</a>' . '</li> <li>' . '<a href="index.php?modname=test&op=feedbackman&idTest=' . $object_test->getId() . '&back_url=' . $url_encode . '" title="' . $lang->def('_FEEDBACK_MANAGEMENT') . '">' . $lang->def('_FEEDBACK_MANAGEMENT') . '</a>' . '</li> </ul>', 'content'); $caption = str_replace('%tot_page%', $num_page, str_replace('%tot_element%', $num_quest, $lang->def('_TEST_CAPTION'))); $tab = new Table(0, $caption, $lang->def('_TEST_SUMMARY')); $tab->setColsStyle(array('image', 'image', '', 'image', 'image', 'image', 'image', 'image')); $tab->addHead(array($lang->def('_QUEST'), $lang->def('_TYPE'), $lang->def('_QUESTION'), $lang->def('_TEST_QUEST_ORDER'), '<img src="' . getPathImage() . 'standard/down.png" alt="' . $lang->def('_DOWN') . '" longdesc="' . $lang->def('_MOVE_DOWN') . '" />', '<img src="' . getPathImage() . 'standard/up.png" alt="' . $lang->def('_UP') . '" longdesc="' . $lang->def('_MOVE_UP') . '" />', '<img src="' . getPathImage() . 'standard/edit.png" alt="' . $lang->def('_MOD') . '" />', '<img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL') . '" />')); $i = 0; $correct_sequence = 1; $seq_error_detected = false; $quest_num = 1; $title_num = 1; $last_type = ''; $uri_back = '&back_url=' . $url_encode; while (list($id_quest, $type, $title, $sequence, $page) = sql_fetch_row($re_quest)) { $last_type = $type; $content = array($type != 'break_page' && $type != 'title' ? '<span class="text_bold">' . $quest_num++ . '</span>' : '', $lang->def('_QUEST_ACRN_' . strtoupper($type)), $title, $sequence, $i != $num_quest - 1 ? '<a href="index.php?modname=test&op=movedown&idQuest=' . $id_quest . $uri_back . '" title="' . $lang->def('_MOVE_DOWN') . '">' . '<img src="' . getPathImage() . 'standard/down.png" alt="' . $lang->def('_DOWN') . ' : ' . $lang->def('_ROW') . ' ' . ($i + 1) . '" /></a>' : '', $i != 0 ? '<a href="index.php?modname=test&op=moveup&idQuest=' . $id_quest . $uri_back . '" title="' . $lang->def('_MOVE_UP') . '">' . '<img src="' . getPathImage() . 'standard/up.png" alt="' . $lang->def('_UP') . ' : ' . $lang->def('_ROW') . ' ' . ($i + 1) . '" /></a>' : '', $type != 'break_page' ? '<a href="index.php?modname=test&op=modquest&idQuest=' . $id_quest . $uri_back . '" title="' . $lang->def('_MOD') . '">' . '<img src="' . getPathImage() . 'standard/edit.png" alt="' . $lang->def('_MOD') . ' : ' . $lang->def('_ROW') . ' ' . ($i + 1) . '" /></a>' : '', '<a href="index.php?modname=test&op=delquest&idQuest=' . $id_quest . $uri_back . '" title="' . $lang->def('_DEL') . '">' . '<img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL') . ' : ' . $lang->def('_ROW') . ' ' . ($i + 1) . '" /></a>'); $tab->addBody($content); if ($sequence != $correct_sequence) { $seq_error_detected = true; } $correct_sequence++; ++$i; } //------------------------------------------------------------------ $move_quest = ""; if ($num_quest > 1) { $move_quest = '<form class="align_right" method="post" action="index.php?modname=test&op=movequest">' . '<div>' . '<input type="hidden" id="authentic_request_test" name="authentic_request" value="' . Util::getSignature() . '" />' . '<input type="hidden" name="back_url" value="' . $url_encode . '" />' . '<input type="hidden" name="idTest" value="' . $object_test->getId() . '" />'; $move_quest .= '<label class="text_bold" for="source_quest">' . $lang->def('_MOVE') . '</label> ' . '<select id="source_quest" name="source_quest">'; for ($opt = 1; $opt <= $i; $opt++) { $move_quest .= '<option value="' . $opt . '"' . ($opt == 1 ? ' selected="selected"' : '') . '>' . $lang->def('_TEST_MOVEQUEST') . ' ' . $opt . '</option>'; } $move_quest .= '</select>'; $move_quest .= '<label class="text_bold" for="dest_quest"> ' . $lang->def('_TO') . '</label> ' . '<select id="dest_quest" name="dest_quest">' . '<option value="1" selected="selected">' . $lang->def('_TEST_FIRST_QUEST') . '</option>'; for ($opt = 1; $opt < $i; $opt++) { $move_quest .= '<option value="' . ($opt + 1) . '">' . $lang->def('_TEST_AFTER_QUEST') . ' ' . $opt . '</option>'; } $move_quest .= '<option value="' . ($i + 1) . '">' . $lang->def('_TEST_LAST_QUEST') . '</option>'; $move_quest .= '</select>'; $move_quest .= ' <input class="button_nowh" type="submit" id="move_quest" name="move_quest" value="' . $lang->def('_MOVE') . '" />' . '</div>' . '</form>'; //$tab->addActionAdd( $move_quest ); } //------------------------------------------------------------------ /* $re_type = sql_query(" SELECT type_quest FROM ".$GLOBALS['prefix_lms']."_quest_type ORDER BY sequence"); $add_quest = '<form method="post" action="index.php?modname=test&op=addquest">' .'<div>' .'<input type="hidden" id="authentic_request_test" name="authentic_request" value="'.Util::getSignature().'" />' .'<input type="hidden" name="back_url" value="'.$url_encode.'" />' .'<input type="hidden" name="idTest" value="'.$object_test->getId().'" />'; $add_quest .= '<label class="text_bold" for="add_test_quest">'.$lang->def('_TEST_ADDQUEST').'</label> ' .'<select id="add_test_quest" name="add_test_quest">'; while(list($type_quest) = sql_fetch_row($re_type)) { $add_quest .= '<option value="'.$type_quest.'"' .( $last_type == $type_quest ? ' selected="selected"' : '' ).'>' .$lang->def('_QUEST_ACRN_'.strtoupper($type_quest)).' - '.$lang->def('_QUEST_'.strtoupper($type_quest)).'</option>'; } $add_quest .= '</select>'; $add_quest .= ' <input class="button_nowh" type="submit" name="add_quest" value="'.$lang->def('_ADD').'" />' .'</div>' .'</form>';*/ $re_type = sql_query("\r\n\tSELECT type_quest \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_quest_type\r\n\tORDER BY sequence"); $add_quest = '<form method="post" action="index.php?modname=test&op=addquest">' . '<input type="hidden" id="authentic_request_test" name="authentic_request" value="' . Util::getSignature() . '" />' . '<input type="hidden" name="back_url" value="' . $url_encode . '" />' . '<input type="hidden" name="idTest" value="' . $object_test->getId() . '" />' . '<input type="submit" id="add_quest" name="add_quest" value="' . $lang->def('_TEST_ADDQUEST') . '"> <select id="add_test_quest" name="add_test_quest">'; while (list($type_quest) = sql_fetch_row($re_type)) { $add_quest .= '<option value="' . $type_quest . '">' . $lang->def('_QUEST_ACRN_' . strtoupper($type_quest)) . ' - ' . $lang->def('_QUEST_' . strtoupper($type_quest)) . '</option>'; } $add_quest .= '</select>' . '</form>'; //------------------------------------------------------------------ //$tab->addActionAdd( $add_quest, '' ); $GLOBALS['page']->add($tab->getTable() . '<div class="table-container-below">' . $move_quest . '</div>' . $add_quest . getBackUi(Util::str_replace_once('&', '&', $object_test->back_url), $lang->def('_BACK')), 'content'); /* $GLOBALS['page']->add( Form::openForm('add_question', 'index.php?modname=test&op=importquest', false, false, 'multipart/form-data') .Form::openElementSpace() .Form::getOpenFieldset($lang->def('_IMPORT_FROM_XML')) .Form::getHidden('back_url', 'back_url', $url_encode) .Form::getHidden('idTest', 'idTest', $object_test->getId()) .Form::getFilefield($lang->def('_FILE'), 'xml_file', 'xml_file') .Form::getCloseFieldset() .Form::closeElementSpace() .Form::openButtonSpace() .form::getButton('import', 'import', $lang->def('_IMPORT')) .Form::closeButtonSpace() .Form::closeForm() , 'content'); */ if ($seq_error_detected) { $GLOBALS['page']->add(' <a href="index.php?modname=test&op=fixsequence&idTest=' . $object_test->getId() . $uri_back . '" title="' . $lang->def('_FIX_SEQUENCE') . '">' . $lang->def('_FIX_SEQUENCE') . '</a>', 'content'); } require_once $GLOBALS['where_lms'] . '/lib/lib.quest_bank.php'; $qb_man = new QuestBankMan(); $supported_format = $qb_man->supported_format(); $GLOBALS['page']->add('<form method="post" action="index.php?modname=test&op=modtestgui">' . '<input type="hidden" id="authentic_request_test" name="authentic_request" value="' . Util::getSignature() . '" />' . '<input type="hidden" name="back_url" value="' . $url_encode . '" />' . '<input type="hidden" name="idTest" value="' . $object_test->getId() . '" />' . '<div class="align_right"> <input type="submit" id="export_quest" name="export_quest" value="' . $lang->def('_EXPORT') . '"> <select id="export_quest_select" name="export_quest_select">', 'content'); foreach ($supported_format as $id_exp => $def) { cout('<option value="' . $id_exp . '">' . $def . '</option>', 'content'); } cout('<option value="5">' . Lang::t('_QUEST_BANK', 'menu_course') . '</option>', 'content'); cout('</select>' . Form::getButton('import_quest', 'import_quest', $lang->def('_IMPORT')) . '</div>' . '</form>', 'content'); $GLOBALS['page']->add(' <script type="text/javascript"> YAHOO.util.Event.addListener(window, "load", function() { var oSplitExport = new YAHOO.widget.Button("export_quest", { type: "menu", menu: "export_quest_select" }); //var oPushImport = new YAHOO.widget.Button("import_quest"); var oMoveQuest = new YAHOO.widget.Button("move_quest"); var oSplitAddQuest = new YAHOO.widget.Button("add_quest", { type: "menu", menu: "add_test_quest" }); }); </script>', 'content'); $GLOBALS['page']->add('</div>', 'content'); //fixPageSequence($object_test->getId()); }
public function getContent() { $out = ''; if (Docebo::user()->getUserLevelId() == ADMIN_GROUP_USER) { return $out; } if (empty($this->_contentOut) && $this->print_if_empty === false) { return $out; } $out .= Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, false) . Util::get_js(Get::rel_path('base') . '/widget/dialog/dialog.js', true, false) . '<div id="def_lang" class="def_lang">' . "\n" . implode($this->_startOut) . '<div id="link_container">' . implode($this->_contentOut) . '</div>' . '<a id="command" href="#" onclick="YAHOO.Animation.BlindToggle(\'link_container\');" >' . Lang::t('_NOT_TRANSLATED', 'standard', 'framework') . ' (' . count($this->_contentOut) . ')' . '</a>' . '<script type="text/javascript">' . 'YAHOO.util.Dom.get(\'link_container\').style.display = \'none\';' . '</script>' . '<script type="text/javascript"> var translation = { module: "", key: "" } YAHOO.util.Event.onDOMReady(function() { var dialogEvent = function(e) { var oConfig = { modal: true, close: true, visible: false, fixedcenter: true, constraintoviewport: true, draggable: true, hideaftersubmit: false, isDynamic: true, ajaxUrl: "ajax.adm_server.php?r=adm/lang/translatemask", confirmOnly: false, directSubmit: false }; oConfig.renderEvent = function() { new YAHOO.widget.TabView("translation_tab"); YAHOO.util.Event.onAvailable(\'lang_module\', function() { YAHOO.util.Dom.get(\'lang_module\').value = translation.module; YAHOO.util.Dom.get(\'lang_key\').value = translation.key; }, this); }; oConfig.callback = function() { this.destroy(); }; var info = this.id.split("-"); translation.module = info[1]; translation.key = info[2]; CreateDialog("translation_add", oConfig).call(this, e); } YAHOO.util.Event.addListener(YAHOO.util.Selector.query(\'a[id^=totranslate]\'), "click", dialogEvent); }); </script>' . implode($this->_endOut) . '</div>' . "\n"; //ob_clean(); $out = fillSiteBaseUrlTag($out); return $out; }
function get_schedulations_table($idrep = false) { checkPerm('view'); $can_mod = checkPerm('mod', true); require_once _base_ . '/lib/lib.table.php'; Util::get_js(Get::rel_path('base') . '/widget/dialog/dialog.js', true, true); YuiLib::load('selector'); $acl_man =& Docebo::user()->getACLManager(); $level = Docebo::user()->getUserLevelId(getLogUserId()); $admin_cond = ''; switch ($level) { case ADMIN_GROUP_GODADMIN: case ADMIN_GROUP_ADMIN: break; case ADMIN_GROUP_PUBLICADMIN: case ADMIN_GROUP_USER: default: $admin_cond .= " AND t1.id_creator=" . getLogUserId(); break; } $query = "SELECT t1.*, t3.userid as report_owner, t2.filter_name as report_name, " . "COUNT(t4.id_user) as num_users FROM " . $GLOBALS['prefix_lms'] . "_report_schedule as t1, " . $GLOBALS['prefix_lms'] . "_report_filter as t2, " . $GLOBALS['prefix_fw'] . "_user as t3, " . $GLOBALS['prefix_lms'] . "_report_schedule_recipient as t4 " . "WHERE t1.id_report_filter=t2.id_filter AND t3.idst=t1.id_creator " . "AND t4.id_report_schedule=t1.id_report_schedule " . $admin_cond . " " . ($idrep ? "AND t1.id_report_filter={$idrep} " : '') . "GROUP BY t1.id_report_schedule"; $lang =& DoceboLanguage::createInstance('report', 'framework'); $output = ''; $tb = new Table(Get::sett('visu_course')); $tb->initNavBar('ini', 'button'); $col_type = array('align_center', 'align_center', 'align_center', 'align_center', 'align_center', 'align_center'); //,'image','image'); $col_content = array($lang->def('_NAME'), $lang->def('_TAB_REP_CREATOR'), $lang->def('_CREATION_DATE'), $lang->def('_SEND'), $lang->def('_RECIPIENTS'), $lang->def('_ACTIVE')); if ($can_mod) { $col_type[] = 'image'; $col_type[] = 'image'; $col_content[] = '<img src="' . getPathImage() . 'standard/edit.png" alt="' . $lang->def('_MOD', 'standard') . '" title="' . $lang->def('_MOD') . '" />'; $col_content[] = '<img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL', 'standard') . '" title="' . $lang->def('_DEL') . '" />'; } $tb->setColsStyle($col_type); $tb->addHead($col_content); $res = sql_query($query); if ($res) { while ($row = mysql_fetch_assoc($res)) { $id = $row['id_report_schedule']; $recipients_link = "ajax.adm_server.php?mn=report&plf=lms&op=show_recipients_window&idsched=" . $id; $mod_link = '<a href="index.php?modname=report&op=sched_mod&id_sched=' . $id . '&idrep=' . $idrep . '" ' . ' title="' . $lang->def('_MOD') . '">' . '<img src="' . getPathImage() . 'standard/edit.png" alt="' . $lang->def('_MOD') . '" />' . '</a>'; $rem_link = '<a href="index.php?modname=report&op=schedulelist&idrep=' . $idrep . '&action=sched_rem&id_sched=' . $id . '" ' . ' title="' . $lang->def('_DEL') . '">' . '<img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL') . '" />' . '</a>'; $enabled = '<image class="handover" src="' . getPathImage('lms') . 'standard/' . ($row['enabled'] == 1 ? 'publish.png' : 'unpublish.png') . '" ' . 'onclick="enable_schedulation(this, ' . $row['id_report_schedule'] . ');" />' . '<input type="hidden" id="enable_value_' . $row['id_report_schedule'] . '" ' . 'value="' . ($row['enabled'] == 1 ? '0' : '1') . '" />'; $num_users = '<a href="' . $recipients_link . '" title="' . $lang->def('_RECIPIENTS') . '" ' . 'class="" id="show_recipients_' . $id . '">' . $row['num_users'] . '</a>'; $tb_content = array(_SCHED_KEY_NAME => $row['name'], _SCHED_KEY_CREATOR => $acl_man->relativeId($row['report_owner']), _SCHED_KEY_CREATION => Format::date($row['creation_date']), _SCHED_KEY_PERIOD => get_period_text($row['period']), _SCHED_KEY_NUMUSER => $num_users, _SCHED_KEY_ENABLED => $enabled); if ($can_mod) { $tb_content[_SCHED_KEY_MOD] = $mod_link; $tb_content[_SCHED_KEY_REM] = $rem_link; } $tb->addBody($tb_content); } } $tb->addActionAdd(' <a href="index.php?modname=report&op=report_schedule&idrep=' . $idrep . '">' . '<img src="' . getPathImage() . 'standard/add.png" ' . 'title="' . $lang->def('_ADD') . '" /> ' . $lang->def('_ADD') . '</a>'); $output .= $tb->getTable(); $output .= '<script type="text/javascript"> YAHOO.util.Event.onDOMReady(function() { var links = YAHOO.util.Selector.query("a[id^=show_recipients_]"); YAHOO.util.Event.addListener(links, "click", function(e) { CreateDialog("show_recipients_dialog", { width: "600px", modal: true, close: true, visible: false, fixedcenter: false, constraintoviewport: false, draggable: true, hideaftersubmit: true, isDynamic: true, confirmOnly: true, ajaxUrl: this.href }).call(this, e); }); }); </script>'; return $output; }
<?php YuiLib::load(array('animation' => 'my_animation', 'container' => 'container-min', 'container' => 'container_core-min')); cout(Util::get_js(Get::rel_path('lms') . '/views/catalog/catalog.js', true), 'page_head'); require_once _lms_ . '/lib/lib.middlearea.php'; $ma = new Man_MiddleArea(); ?> <script type="text/javascript"> YAHOO.util.Event.onDOMReady(function() { initialize("<?php echo Lang::t('_UNDO', 'standard'); ?> "); }); </script> <div id="global_conf" class="yui-navset yui-navset-top"> <ul class="yui-nav"> <li class="<?php echo $active_tab == 'all' ? 'selected' : ''; ?> first"> <a href="index.php?r=catalog/allCourse"> <em><?php echo Lang::t('_ALL_COURSES', 'catalogue'); ?> </em> </a> </li> <li class="<?php echo $active_tab == 'new' ? 'selected' : ''; ?>
function course() { checkPerm('view'); require_once _base_ . '/lib/lib.form.php'; //require_once(_i18n_.'/lib.lang.php'); require_once _base_ . '/lib/lib.table.php'; require_once _lms_ . '/lib/lib.course.php'; $GLOBALS['page']->setWorkingZone('content'); $lang =& DoceboLanguage::CreateInstance('course', 'lms'); $db =& DbConn::getInstance(); Util::get_js(Get::rel_path('base') . '/widget/dialog/dialog.js', true, true); // Setup the tree viewer class ---------------------------------------------- require_once _lms_ . '/lib/folder_tree/class.category_tree.php'; $treeView = new CategoryFolderTree('courses_categories', true); $treeView->useDOMReady = true; //to change $treeView->isGlobalVariable = true; //just for debug purpose $treeView->initLibraries(); $print_tree = $treeView->get(); // Setup the course table --------------------------------------------------- //$man_course = new Man_Course(); //$course_list = $man_course->getCoursesRequest($table_status['startIndex'], Get::sett('visuItem'), $table_status['sort'], $table_status['dir']); //$db->num_rows($course_list), //$man_course->getCoursesCountFiltered(), if (!isset($_SESSION['course_category']['filter_status'])) { $_SESSION['course_category']['filter_status'] = array('c_category' => 0, 'c_filter' => '', 'c_flatview' => false, 'c_waiting' => false); } $filter_status =& $_SESSION['course_category']['filter_status']; if (isset($filter_status['c_flatview']) || isset($filter_status['c_waiting'])) { $open = true; } else { $open = false; } if (!isset($_SESSION['course_category']['table_status'])) { $_SESSION['course_category']['table_status'] = array('startIndex' => 0, 'sort' => 'name', 'dir' => 'asc'); } $table_status =& $_SESSION['course_category']['table_status']; // Setup the course table --------------------------------------------------- $table_config = array('startIndex' => $table_status['startIndex'], 'results' => Get::sett('visuItem'), 'sort' => $table_status['sort'], 'dir' => $table_status['dir'], 'pageSize' => 0, 'totalRecords' => 0, 'recordsReturned' => array()); require_once _lms_ . '/lib/table_view/class.coursetableview.php'; $tableView = new CourseTableView("courses_list"); $tableView->useDOMReady = true; //to change $tableView->isGlobalVariable = true; //just for debug purpose $tableView->initLibraries(); $tableView->setInitialData($table_config); $print_table = $tableView->get(); //Script for saving data from inline editor cout("\n" . '<script type="text/javascript"> function saveData(callback, newData) { var new_value = newData; var col = this.getColumn().key; var old_value = this.value; var datatable = this.getDataTable(); var idCourse = this.getRecord().getData("idCourse"); var myCallback = { success: function(o) { var r = YAHOO.lang.JSON.parse(o.responseText); if (r.success) { callback(true, stripSlashes(r.new_value)); } else { callback(true, stripSlashes(r.old_value)); } }, failure: { } } var post = "idCourse=" + idCourse +"&col=" + col +"&new_value=" + new_value +"&old_value=" + old_value; var url = "ajax.adm_server.php?plf=lms&file=coursetableview&sf=table_view&command=updateField&"; YAHOO.util.Connect.asyncRequest("POST", url, myCallback, post); } </script>'); // Js needed for this page in order to work cout("\n" . '<script type="text/javascript"> //<!-- course_tree_options = ' . $print_tree['options'] . '; --> </script>', 'scripts'); cout("\n" . '<script type="text/javascript"> //<!-- course_table_options = ' . $print_table['options'] . '; --></script>', 'scripts'); cout("\n" . '<script type="text/javascript" src="' . Get::rel_path('lms') . '/admin/modules/course/course.js"></script>', 'scripts'); cout(getTitleArea($lang->def('_COURSES'), 'course') . '<div class="std_block">' . (isset($_GET['result']) ? guiResultStatus($lang, $_GET['result']) : ''), 'content'); // Show tree cout('<h2>' . $lang->def('_CATEGORY') . '</h2>' . $print_tree['html'] . '<div class="folder_action_space">' . '<a id="add_folder_button" class="ico-wt-sprite subs_add" href="#"><span>' . $lang->def('_NEW_CATEGORY') . '</span></a>' . '</div>', 'content'); // Show filter cout('<div class="quick_search_form">' . '<div class="common_options">' . Form::getInputCheckbox('c_flatview', 'c_flatview', '1', $filter_status['c_flatview'] ? true : false, '') . ' <label class="label_normal" for="c_flatview">' . Lang::t('_DIRECTORY_FILTER_FLATMODE', 'admin_directory') . '</label>' . ' ' . Form::getInputCheckbox('c_waiting', 'c_waiting', '1', $filter_status['c_waiting'] ? true : false, '') . ' <label class="label_normal" for="c_waiting">' . Lang::t('_WAITING_USERS', 'organization_chart') . '</label>' . '</div>' . '<br />' . '<div>' . Form::openForm('course_filters', 'index.php?modname=course&op=course_list') . Form::getInputTextfield("search_t", "c_filter", "c_filter", $filter_status['c_filter'], '', 255, '') . Form::getButton("c_filter_set", "c_filter_set", Lang::t('_SEARCH', 'standard'), "search_b") . Form::getButton("c_filter_reset", "c_filter_reset", Lang::t('_RESET', 'standard'), "reset_b") . Form::closeForm() . '</div>' . '</div>', 'content'); // show course table cout('' . '<div class="table-container-over">' . (checkPerm('add', true, 'course', 'lms') ? '<a class="ico-wt-sprite subs_add" href="index.php?modname=course&op=new_course"><span>' . $lang->def('_NEW_COURSE') . '</span></a>' : '') . (checkPerm('subscribe', true, 'course', 'lms') ? ' <a class="ico-wt-sprite subs_users" href="index.php?r=alms/subscription/multiplesubscription&load=1"><span>' . Lang::t('_MULTIPLE_SUBSCRIPTION', 'course') . '</span></a>' : '') . '</div>' . $print_table['html'] . '<div class="table-container-below">' . (checkPerm('add', true, 'course', 'lms') ? '<a class="ico-wt-sprite subs_add" href="index.php?modname=course&op=new_course"><span>' . $lang->def('_NEW_COURSE') . '</span></a>' : '') . (checkPerm('subscribe', true, 'course', 'lms') ? ' <a class="ico-wt-sprite subs_users" href="index.php?r=alms/subscription/multiplesubscription&load=1"><span>' . Lang::t('_MULTIPLE_SUBSCRIPTION', 'course') . '</span></a>' : '') . '</div>', 'content'); //set event listeners to filter elements cout('<script type="text/javascript">$E=YAHOO.util.Event; $E.onDOMReady( function(e) { $E.addListener("c_filter_set", "click", filterEvent); $E.addListener("c_filter_reset", "click", function() { YAHOO.util.Dom.get("c_filter").value=""; filterEvent; }); $E.addListener("c_flatview", "click", filterEvent); $E.addListener("c_waiting", "click", filterEvent); $E.addListener("course_filters", "submit", function(ev) { filterEvent(ev); YAHOO.util.Event.preventDefault(ev); }); });</script>', 'scripts'); cout('</div>', 'content'); }