function edithtml() { checkPerm('mod'); require_once _base_ . '/lib/lib.form.php'; $query = "\r\n\tSELECT textof\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_htmlfront \r\n\tWHERE id_course = '" . $_SESSION['idCourse'] . "'"; $re_htmlfront = sql_query($query); $error = false; if (isset($_POST['save'])) { if (mysql_num_rows($re_htmlfront) > 0) { $upd_query = "\r\n\t\t\tUPDATE " . $GLOBALS['prefix_lms'] . "_htmlfront \r\n\t\t\tSET textof = '" . $_POST['description'] . "'\r\n\t\t\tWHERE id_course = '" . $_SESSION['idCourse'] . "'"; $re = sql_query($upd_query); } else { $ins_query = "\r\n\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_htmlfront \r\n\t\t\t( id_course, textof) VALUES \r\n\t\t\t( \t'" . $_SESSION['idCourse'] . "',\r\n\t\t\t\t'" . $_POST['description'] . "' )"; $re = sql_query($ins_query); } if ($re) { Util::jump_to('index.php?modname=htmlfront&op=showhtml&saveok=1'); } else { $error = true; } } $lang =& DoceboLanguage::createInstance('htmlfront', 'lms'); list($textof) = sql_fetch_row($re_htmlfront); $title_page = array('index.php?modname=htmlfront&op=showhtml' => $lang->def('_HTMLFRONT'), $lang->def('_MOD')); $GLOBALS['page']->add(getTitleArea($title_page, 'htmlfront') . '<div class="std_block">' . getBackUi('index.php?modname=htmlfront&op=showhtml', $lang->def('_BACK')) . ($error ? getErrorUi($lang->def('_ERROR_IN_SAVE')) : '') . Form::openForm('formnotes', 'index.php?modname=htmlfront&op=edithtml') . Form::openElementSpace() . Form::getTextarea($lang->def('_TEXTOF'), 'description', 'description', importVar('description', false, $textof)) . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('save', 'save', $lang->def('_SAVE')) . Form::getButton('undo', 'undo', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm() . '</div>', 'content'); }
function adminConf() { require_once _base_ . '/lib/lib.form.php'; $lang =& DoceboLanguage::createInstance('admin_config', 'scs'); $out =& $GLOBALS['page']; $out->setWorkingZone('content'); $out->add(getTitleArea($lang->def('_ADMIN_CONF'), 'admin_conf') . '<div class="std_block">'); if (isset($_POST['save'])) { $query_update = "UPDATE " . $GLOBALS['prefix_scs'] . "_rules_admin SET "; if (isset($_POST['rules'])) { while (list($var_name, $new_value) = each($_POST['rules'])) { $query_update .= " {$var_name} = '" . $new_value . "',"; } $re = sql_query(substr($query_update, 0, -1)); } if ($re) { $out->add(getResultUi($lang->def('_MOD_OK'))); } else { $out->add(getErrorUi($lang->def('_MOD_ERR'))); } } $query_rules_admin = "\r\n\tSELECT server_status, \r\n\t\tenable_recording_function, enable_advice_insert, enable_write, enable_chat_recording, \r\n\t\tenable_private_subroom, enable_public_subroom, \r\n\t\tenable_drawboard_watch, enable_drawboard_write, \r\n\t\tenable_audio, enable_webcam, enable_stream_watch, enable_strem_write, enable_remote_desktop \r\n\tFROM " . $GLOBALS['prefix_scs'] . "_rules_admin"; $re_rules_admin = sql_query($query_rules_admin); $rules = mysql_fetch_array($re_rules_admin); $out->add(Form::openForm('rules_admin', 'index.php?modname=admin_configuration&op=conf') . Form::openElementSpace() . Form::getOpenCombo($lang->def('_SERVER_STATUS')) . Form::getInputRadio('rules_server_status_yes', 'rules[server_status]', 'yes', $rules['server_status'] == 'yes', '') . ' ' . Form::getLabel('', $lang->def('_YES'), 'label_padded') . ' ' . Form::getInputRadio('rules_server_status_no', 'rules[server_status]', 'no', $rules['server_status'] == 'no', '') . ' ' . Form::getLabel('', $lang->def('_NO'), 'label_padded') . ' ' . Form::getCloseCombo() . maskMultiple('enable_recording_function', $rules['enable_recording_function']) . maskMultiple('enable_advice_insert', $rules['enable_advice_insert']) . maskMultiple('enable_write', $rules['enable_write']) . maskMultiple('enable_chat_recording', $rules['enable_chat_recording']) . maskMultiple('enable_private_subroom', $rules['enable_private_subroom']) . maskMultiple('enable_public_subroom', $rules['enable_public_subroom']) . maskMultiple('enable_drawboard_watch', $rules['enable_drawboard_watch']) . maskMultiple('enable_drawboard_write', $rules['enable_drawboard_write']) . maskMultiple('enable_audio', $rules['enable_audio']) . maskMultiple('enable_webcam', $rules['enable_webcam']) . maskMultiple('enable_stream_watch', $rules['enable_stream_watch']) . maskMultiple('enable_strem_write', $rules['enable_strem_write']) . maskMultiple('enable_remote_desktop', $rules['enable_remote_desktop']) . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('save', 'save', $lang->def('_SAVE')) . Form::getButton('undo', 'undo', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm()); $out->add('</div>'); }
function loadBody() { require_once $GLOBALS['where_framework'] . '/modules/' . $this->module_name . '/' . $this->module_name . '.php'; $out =& $this->get_out(); $lang =& $this->get_lang(); if (isset($_GET['addconnector']) && !isset($_POST['cancel'])) { require_once $GLOBALS['where_framework'] . '/lib/lib.iotask.php'; $connMgr =& $this->get_connMgr(); $filename = key($_POST['file']); if ($connMgr->add_connector($filename)) { $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); } else { $out->add(getErrorUi($lang->def('_OPERATION_FAILURE')) . $connMgr->get_last_error()); } } if (isset($_GET['addconnectionok']) && !isset($_POST['cancel'])) { $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); } if (isset($_GET['addtaskok']) && !isset($_POST['cancel'])) { $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); } if (isset($_GET['deleteconnectionok']) && !isset($_POST['cancel'])) { $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); } elseif (isset($_GET['deleteconnectionerror']) && !isset($_POST['cancel'])) { $out->add(getErrorUi($lang->def('_ERR_FAIL_DELETE_CONNECTOR'))); } if (isset($_GET['deletetaskok']) && !isset($_POST['cancel'])) { $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); } elseif (isset($_GET['deletetakserror']) && !isset($_POST['cancel'])) { $out->add(getErrorUi($lang->def('_ERR_FAIL_DELETE_TASK'))); } if (isset($_POST['action'])) { switch (key($_POST['action'])) { case 'new_connector': ioTask_UIConnectorNew($this); break; case 'run_task': ioTask_UITaskRun($this, current($_POST['action']), key($_POST['action'])); break; case 'new_task': case 'edit_task': ioTask_UITaskNew($this, current($_POST['action']), key($_POST['action'])); break; case 'delete_task': ioTask_UITaskDelete($this, current($_POST['action']), key($_POST['action'])); break; case 'new_connection': case 'edit_connection': ioTask_UIConnectionNew($this, current($_POST['action']), key($_POST['action'])); break; case 'delete_connection': ioTask_UIConnectionDelete($this, current($_POST['action']), key($_POST['action'])); break; } } elseif (isset($_GET['addconnection']) && !isset($_POST['cancel'])) { ioTask_UIConnectionNew($this, '', ''); } else { ioTask_UITab($this, $GLOBALS['op']); } }
function notes() { checkPerm('view'); require_once _base_ . '/lib/lib.table.php'; $lang =& DoceboLanguage::createInstance('notes', 'lms'); $nav_bar = new NavBar('ini', Get::sett('visuItem'), 0); $ini = $nav_bar->getSelectedElement(); $ord = importVar('ord'); $inv = importVar('inv'); switch ($ord) { case "tit": $ord = $order = 'title'; if ($inv != 'y') { $a_down = '&inv=y'; } else { $order .= ' DESC'; $a_down = ''; } break; default: $ord = $order = 'data'; if ($inv == 'y') { $a_down = ''; } else { $order .= ' DESC'; $a_down = '&inv=y'; } } $reNotes = sql_query("\r\n\tSELECT idNotes, data, title \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_notes \r\n\tWHERE owner ='" . getLogUserId() . "' AND idCourse='" . $_SESSION['idCourse'] . "' \r\n\tORDER BY {$order} \r\n\tLIMIT {$ini}," . Get::sett('visuItem')); list($num_notes) = sql_fetch_row(sql_query("SELECT COUNT(*) \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_notes \r\n\tWHERE owner ='" . getLogUserId() . "' AND idCourse='" . $_SESSION['idCourse'] . "' ")); $nav_bar->setElementTotal($num_notes); $img_up = '<img class="valing-middle" src="' . getPathImage() . 'standard/up_arrow.png" alt="' . $lang->def('_UP') . '"/>'; $img_down = '<img class="valing-middle" src="' . getPathImage() . 'standard/down_arrow.png" alt="' . $lang->def('_DOWN') . '"/>'; $tb = new Table(Get::sett('visuItem'), $lang->def('_NOTES'), $lang->def('_NOTES')); $contentH = array(($ord == 'data' ? $inv == 'y' ? $img_up : $img_down : '') . '<a href="index.php?modname=notes&op=notes' . $a_down . '"> ' . $lang->def('_DATE') . '</a>', ($ord == 'title' ? $inv == 'y' ? $img_up : $img_down : '') . '<a href="index.php?modname=notes&op=notes&ord=tit' . $a_down . '">' . $lang->def('_TITLE') . '</a>', '<img src="' . getPathImage() . 'standard/edit.png" title="' . $lang->def('_MOD') . '" alt="' . $lang->def('_MOD') . '" />', '<img src="' . getPathImage() . 'standard/delete.png" title="' . $lang->def('_DEL') . '" alt="' . $lang->def('_DEL') . '" />'); $typeH = array('min-cell', '', 'image', 'image'); $tb->setColsStyle($typeH); $tb->addHead($contentH); while (list($idNotes, $data, $title) = sql_fetch_row($reNotes)) { $content = array(Format::date($data), '<a href="index.php?modname=notes&op=displaynotes&idNotes=' . $idNotes . '" title="' . $lang->def('_MORET') . '">' . $title . '</a>', '<a href="index.php?modname=notes&op=modnotes&idNotes=' . $idNotes . '"> <img src="' . getPathImage() . 'standard/edit.png" title="' . $lang->def('_MOD') . '" alt="' . $lang->def('_MOD') . '" /></a>', '<a id="delnotes_' . $idNotes . '"' . ' href="index.php?modname=notes&op=delnotes&idNotes=' . $idNotes . '"' . ' title="' . $lang->def('_TITLE') . ' : ' . strip_tags(str_replace(array('"', "'"), '', $title)) . '"> <img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL') . '" /></a>'); $tb->addBody($content); } $tb->addActionAdd('<a href="index.php?modname=notes&op=addnotes">' . '<img src="' . getPathImage() . 'standard/add.png" title="' . $lang->def('_ADD') . '" alt="' . $lang->def('_ADD') . '" /> ' . $lang->def('_ADD_NOTES') . '</a>'); $GLOBALS['page']->add(getTitleArea(array($lang->def('_NOTES')), 'notes') . '<div class="std_block">', 'content'); if (isset($_POST['result'])) { switch ($_POST['result']) { case "ok": $GLOBALS['page']->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL')), 'content'); case "err": $GLOBALS['page']->add(getErrorUi($lang->def('_OPERATION_FAILURE')), 'content'); } } $GLOBALS['page']->add($tb->getTable() . $nav_bar->getNavBar($ini), 'content'); require_once _base_ . '/lib/lib.dialog.php'; setupHrefDialogBox('a[href*=delnotes]'); $GLOBALS['page']->add('</div>', 'content'); }
/** * function create() * * @param $back_url the url where the function retutn at the end of the operation * @return nothing */ function create($id_poll, $back_poll) { $lang =& DoceboLanguage::createInstance('poll'); require_once _base_ . '/lib/lib.form.php'; $url_encode = htmlentities(urlencode($back_poll)); if (isset($_POST['add_question'])) { if (!sql_query("\r\n\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_pollquest \r\n\t\t\t( id_poll, type_quest, title_quest, sequence, page ) VALUES \r\n\t\t\t( \t'" . $id_poll . "', \r\n\t\t\t\t'" . $this->getQuestionType() . "', \r\n\t\t\t\t'" . $_POST['title_quest'] . "',\r\n\t\t\t\t'" . $this->_getNextSequence($id_poll) . "', \r\n\t\t\t\t'" . $this->_getPageNumber($id_poll) . "' ) ")) { $GLOBALS['page']->out(getErrorUi($lang->def('_POLL_ERR_INS_QUEST') . getBackUi('index.php?modname=question_poll&op=create&type_quest=' . $this->getQuestionType() . '&id_poll=' . $id_poll . '&back_poll=' . $url_encode, $lang->def('_BACK'))), 'content'); } Util::jump_to('' . $back_poll); } $GLOBALS['page']->add(getTitleArea($lang->def('_POLL_SECTION'), 'poll') . '<div class="std_block">' . getBackUi(Util::str_replace_once('&', '&', $back_poll), $lang->def('_BACK')) . '<div class="title_big">' . $lang->def('_QUEST_ACRN_' . strtoupper($this->getQuestionType())) . ' - ' . $lang->def('_QUEST_' . strtoupper($this->getQuestionType())) . '</div><br />' . Form::openForm('form_add_quest', 'index.php?modname=question_poll&op=create') . Form::openElementSpace() . Form::getHidden('type_quest', 'type_quest', $this->getQuestionType()) . Form::getHidden('id_poll', 'id_poll', $id_poll) . Form::getHidden('back_poll', 'back_poll', $url_encode) . Form::getTextarea($lang->def('_POLL_QUEST_TITLE'), 'title_quest', 'title_quest') . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('add_question', 'add_question', $lang->def('_INSERT')) . Form::closeButtonSpace() . Form::closeForm() . '</div>', 'content'); }
function config() { checkPerm('view'); require_once _base_ . '/lib/lib.tab.php'; require_once _base_ . '/lib/lib.form.php'; require_once _adm_ . '/class/class.conf.php'; $lang =& DoceboLanguage::createInstance('configuration', 'framework'); $active_tab = importVar('active_tab', false, 1); //instance class------------------------------------------- $conf = new Config_Framework(); $groups = $conf->getRegroupUnit(); cout(getTitleArea($lang->def('_CONFIGURATION')) . '<div class="std_block">'); //save page if require if (isset($_POST['save_config'])) { if ($conf->saveElement($active_tab)) { cout(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); } else { cout(getErrorUi($lang->def('_ERROR_IN_SAVE'))); } } cout('<div id="global_conf" class="yui-navset">' . '<ul class="yui-nav">'); while (list($id, $name) = each($groups)) { // print the tab list cout('<li' . ($id == $active_tab ? ' class="selected"' : '') . '><a href="#tab_g_' . $id . '"><em>' . $name['name'] . '</em></a></li>'); } reset($groups); cout('</ul>' . '<div class="yui-content">'); while (list($id, $name) = each($groups)) { // print the tab content cout('<div id="tab_g_' . $id . '">' . '<h2>' . $name['name'] . '</h2>' . '<p style="padding:4px">' . $name['descr'] . '</p>' . Form::openForm('conf_option_' . $id, 'index.php?modname=configuration&op=config') . Form::openElementSpace() . Form::getHidden('active_tab_' . $id, 'active_tab', $id)); switch ($id) { case SMS_GROUP: cout(show_sms_panel($lang) . '<br />'); break; default: cout('<br />'); } cout('' . $conf->getPageWithElement($id) . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('save_config_' . $id, 'save_config', $lang->def('_SAVE')) . Form::getButton('undo_' . $id, 'undo', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::CloseForm() . '<br />' . '</div>'); } cout('<script type="text/javascript"> var targets = YAHOO.util.Selector.query("span[id^=tt_target]"); new YAHOO.widget.Tooltip("tooltip_info", { context:targets, effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.20} }); </script>', 'scripts'); reset($groups); cout('</div>' . '<div style="clear:left"> </div>' . '</div>' . '</div>'); cout('<script type="text/javascript">' . "\tnew YAHOO.widget.TabView('global_conf', {orientation:'left'});" . '</script>', 'scripts'); }
function news() { checkPerm('view'); require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.table.php'; require_once _base_ . '/lib/lib.navbar.php'; $mod_perm = checkPerm('mod', true); $lang =& DoceboLanguage::createInstance('admin_news', 'lms'); $out =& $GLOBALS['page']; $out->setWorkingZone('content'); $tb = new Table(Get::sett('visuItem'), $lang->def('_NEWS'), $lang->def('_NEWS_SUMMARY')); $nav_bar = new NavBar('ini', Get::sett('visuItem'), 0, 'link'); $ini = $nav_bar->getSelectedElement(); //search query $query_news = "\r\n\tSELECT idNews, publish_date, title, short_desc, important\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_news_internal\r\n\tORDER BY important DESC, publish_date DESC\r\n\tLIMIT {$ini}," . Get::sett('visuItem'); $query_news_tot = "\r\n\tSELECT COUNT(*)\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_news_internal "; $re_news = sql_query($query_news); list($tot_news) = sql_fetch_row(sql_query($query_news_tot)); $nav_bar->setElementTotal($tot_news); $impo_gif = '<img src="' . getPathImage('lms') . 'standard/important.png" ' . 'title="' . $lang->def('_TITLE_IMPORTANT') . '" ' . 'alt="' . $lang->def('_IMPORTANT') . '" />'; $type_h = array('image', '', '', 'news_short_td'); $cont_h = array($impo_gif, $lang->def('_DATE'), $lang->def('_TITLE'), $lang->def('_SHORTDESC')); if ($mod_perm) { $cont_h[] = '<img src="' . getPathImage() . 'standard/moduser.png" title="' . $lang->def('_RECIPIENTS') . '" ' . 'alt="' . $lang->def('_RECIPIENTS') . '" />'; $type_h[] = 'image'; $cont_h[] = '<img src="' . getPathImage() . 'standard/edit.png" title="' . $lang->def('_MOD') . '" ' . 'alt="' . $lang->def('_MOD') . '" />'; $type_h[] = 'image'; $cont_h[] = '<img src="' . getPathImage() . 'standard/delete.png" title="' . $lang->def('_DEL') . '" ' . 'alt="' . $lang->def('_DEL') . '"" />'; $type_h[] = 'image'; } $tb->setColsStyle($type_h); $tb->addHead($cont_h); while (list($id_news, $publish_date, $title, $short_desc, $impo) = sql_fetch_row($re_news)) { $cont = array($impo ? $impo_gif : '', Format::date($publish_date), $title, Util::cut($short_desc)); if ($mod_perm) { $cont[] = '<a href="index.php?modname=internal_news&op=editviewer&load=1&id_news=' . $id_news . '" ' . 'title="' . $lang->def('_RECIPIENTS') . ' : ' . $title . '">' . '<img src="' . getPathImage() . 'standard/moduser.png" alt="' . $lang->def('_RECIPIENTS') . ' : ' . $title . '" /></a>'; $cont[] = '<a href="index.php?modname=internal_news&op=modnews&id_news=' . $id_news . '" ' . 'title="' . $lang->def('_MOD') . ' : ' . $title . '">' . '<img src="' . getPathImage() . 'standard/edit.png" alt="' . $lang->def('_MOD') . ' : ' . $title . '" /></a>'; $cont[] = '<a href="index.php?modname=internal_news&op=delnews&id_news=' . $id_news . '" ' . 'title="' . $lang->def('_DEL') . ' : ' . $title . '">' . '<img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL') . ' : ' . $title . '" /></a>'; } $tb->addBody($cont); } require_once _base_ . '/lib/lib.dialog.php'; setupHrefDialogBox('a[href*=delnews]'); if ($mod_perm) { $tb->addActionAdd('<a href="index.php?modname=internal_news&op=addnews" title="' . $lang->def('_NEW') . '">' . '<img src="' . getPathImage() . 'standard/add.png" alt="' . $lang->def('_ADD') . '" />' . $lang->def('_NEW') . '</a>'); } $out->add(getTitleArea($lang->def('_NEWS'), 'news') . '<div class="std_block">'); if (isset($_GET['result'])) { switch ($_GET['result']) { case "ok": $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); break; case "err": $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); break; case "err_del": $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); break; } } if ($mod_perm) { $form = new Form(); $how_much = Get::sett('visuNewsHomePage'); if (isset($_POST['save_homepage'])) { $query_how_news = "\r\n\t\t\tUPDATE " . $GLOBALS['prefix_lms'] . "_setting\r\n\t\t\tSET param_value = '" . abs((int) $_POST['howmuch']) . "'\r\n\t\t\tWHERE param_name = 'visuNewsHomePage'"; if (sql_query($query_how_news)) { $how_much = abs((int) $_POST['howmuch']); } } } $out->add($tb->getTable() . $nav_bar->getNavBar($ini) . '</div>'); }
function classroom() { checkPerm('view'); require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.table.php'; $mod_perm = true; // create a language istance for module admin_classroom $lang =& DoceboLanguage::createInstance('admin_classroom', 'lms'); $out =& $GLOBALS['page']; $out->setWorkingZone('content'); $tb = new Table(Get::sett('visuItem'), $lang->def('_CLASSROOM_CAPTION'), $lang->def('_CLASSROOM_SUMMARY')); $tb->initNavBar('ini', 'link'); $tb->setLink('index.php?modname=reservation&op=classroom&id_course=' . $_SESSION['idCourse']); $ini = $tb->getSelectedElement(); //search query of classrooms $query_classroom = "\r\n\t\tSELECT idClassroom, name, description\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_classroom\r\n\t\tORDER BY name\r\n\t\tLIMIT {$ini}," . Get::sett('visuItem'); $query_classroom_tot = "\r\n\t\tSELECT COUNT(*)\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_classroom"; $re_classroom = sql_query($query_classroom); list($tot_classroom) = sql_fetch_row(sql_query($query_classroom_tot)); $type_h = array('', 'news_short_td', "image", "image"); $cont_h = array($lang->def('_NAME'), $lang->def('_DESCRIPTION')); if ($mod_perm) { $cont_h[] = '<img src="' . getPathImage() . 'standard/edit.png" title="' . $lang->def('_TITLE_MOD_CLASSROOM') . '" ' . 'alt="' . $lang->def('_MOD') . '" />'; $type_h[] = 'image'; $cont_h[] = '<img src="' . getPathImage() . 'standard/delete.png" title="' . $lang->def('_DEL') . '" ' . 'alt="' . $lang->def('_DEL') . '"" />'; $type_h[] = 'image'; } $tb->setColsStyle($type_h); $tb->addHead($cont_h); while (list($idClassroom, $name, $descr) = sql_fetch_row($re_classroom)) { $cont = array($name, $descr); if ($mod_perm) { $cont[] = '<a href="index.php?modname=reservation&op=modclassroom&idClassroom=' . $idClassroom . '" ' . 'title="' . $lang->def('_TITLE_MOD_CLASSROOM') . ' : ' . $name . '">' . '<img src="' . getPathImage() . 'standard/edit.png" alt="' . $lang->def('_MOD') . ' : ' . $name . '" /></a>'; $cont[] = '<a href="index.php?modname=reservation&op=delclassroom&idClassroom=' . $idClassroom . '" ' . 'title="' . $lang->def('_DEL') . ' : ' . $name . '">' . '<img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL') . ' : ' . $name . '" /></a>'; } $tb->addBody($cont); } if ($mod_perm) { $tb->addActionAdd('<a href="index.php?modname=reservation&op=addclassroom" title="' . $lang->def('_TITLE_NEW_CLASSROOM') . '">' . '<img src="' . getPathImage() . 'standard/add.png" alt="' . $lang->def('_ADD') . '" />' . $lang->def('_NEW_CLASSROOM') . '</a>'); } $out->add(getTitleArea($lang->def('_TITLE_CLASSROOM'), 'classroom', $lang->def('_ALT_TITLE_CLASSROOM')) . '<div class="std_block">'); if (isset($_GET['result'])) { switch ($_GET['result']) { case "ok": $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); break; case "err": $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); break; case "err_del": $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); break; } } $out->add(getBackUi('index.php?modname=reservation&op=reservation&active_tab=subscribed_user', $lang->def('_BACK'))); $out->add($tb->getTable() . $tb->getNavBar($ini, $tot_classroom) . '</div>'); }
function create_report_name() { checkPerm('mod'); require_once $GLOBALS['where_lms'] . '/admin/modules/report/class.report.php'; //reportbox class require_once $GLOBALS['where_lms'] . '/lib/lib.report.php'; require_once _base_ . '/lib/lib.form.php'; load_categories(); $lang =& DoceboLanguage::createInstance('report'); $step_index = 0; //$GLOBALS['page']->add( get_page_title($step_index) ); $_SESSION['report_tempdata'] = array(); $page_title = getTitleArea(array('index.php?modname=public_report_admin&op=reportlist' => $lang->def('_REPORT'), $lang->def('_NEW')), 'report'); $GLOBALS['page']->add($page_title . '<div class="std_block">', 'content'); $error = Get::req('err', DOTY_STRING, false); switch ($error) { case 'noname': $GLOBALS['page']->add(getErrorUi($lang->def('_REPORT_NONAME'))); break; } $temp = array(); foreach ($GLOBALS['report_categories'] as $key => $value) { $temp[$key] = $lang->def($value); } $GLOBALS['page']->add(Form::openForm('repcat_form', 'index.php?modname=public_report_admin&op=create_rows') . Form::getHidden('set_category', 'set_category', 1) . Form::getTextField($lang->def('_NAME'), 'report_name', 'report_name', '200') . Form::getDropDown($lang->def('_SELECT_REPORT_CATEGORY'), '', 'id_report', $temp) . Form::openButtonSpace() . Form::getButton('', 'cat_forward', $lang->def('_NEXT'), false) . Form::getButton('', 'cat_undo', $lang->def('_UNDO'), false) . Form::closeButtonSpace() . Form::closeForm(), 'content'); /*$lang->def('_REPORT_SCHEDMAN');$lang->def('_REPORT_SCHEDMAN_DESC');*/ $GLOBALS['page']->add('</div>', 'content'); }
function savesel() { checkPerm('view'); require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; require_once _base_ . '/lib/lib.form.php'; $lang =& DoceboLanguage::createInstance('register', 'lms'); $mand_sym = '<span class="mandatory">*</span>'; $extra_field = new FieldList(); $GLOBALS['page']->add(getTitleArea($lang->def('_MYGROUP'), 'mygroup') . '<div class="std_block">', 'content'); $selected = array(); if (isset($_POST['group_sel'])) { $selected = $_POST['group_sel']; } elseif (isset($_POST['group_sel_implode'])) { $selected = explode(',', $_POST['group_sel_implode']); } $play_field = $extra_field->playFieldsForUser(getLogUserId(), $selected, false, false, array('readonly')); if (isset($_POST['save_field']) || $play_field === false || $play_field == '') { $re_filled = $extra_field->isFilledFieldsForUser(getLogUserId(), $selected); if (!$re_filled) { $GLOBALS['page']->add(getErrorUi($lang->def('_SOME_MANDATORY_EMPTY')), 'content'); } else { $acl =& Docebo::user()->getAcl(); $acl_man =& Docebo::user()->getAclManager(); $groups =& $acl_man->getAllGroupsId(array('free', 'moderate')); $groups_id = array_keys($groups); $user_group = $acl->getSTGroupsST(getLogUserId()); $add_groups = array_diff($selected, $user_group); $del_groups = array_diff($groups_id, $selected); $moderate_add = false; if (!empty($add_groups)) { while (list(, $idst) = each($add_groups)) { if ($groups[$idst]['type'] == 'free') { $acl_man->addToGroup($idst, getLogUserId()); } elseif ($groups[$idst]['type'] == 'moderate') { $acl_man->addToWaitingGroup($idst, getLogUserId()); $moderate_add = true; } } } if ($moderate_add === true) { require_once _base_ . '/lib/lib.eventmanager.php'; // message to user that is odified $msg_composer = new EventMessageComposer(); $msg_composer->setSubjectLangText('email', '_TO_APPROVE_GROUP_USER_SBJ', false); $msg_composer->setBodyLangText('email', '_TO_APPROVE_GROUP_USER_TEXT', array('[url]' => Get::sett('url'))); $msg_composer->setBodyLangText('sms', '_TO_APPROVE_GROUP_USER_TEXT_SMS', array('[url]' => Get::sett('url'))); $idst_approve = $acl->getRoleST('/framework/admin/directory/editgroup'); $recipients = $acl_man->getAllRoleMembers($idst_approve); createNewAlert('UserGroupModerated', 'directory', 'moderate', '1', 'User group subscription to moderate', $recipients, $msg_composer); } if (!empty($del_groups)) { while (list(, $idst_group) = each($del_groups)) { $extra_field->removeUserEntry(getLogUserId(), $idst_group); $acl_man->removeFromGroup($idst_group, getLogUserId()); } } // Save fields $extra_field->storeFieldsForUser(getLogUserId()); Util::jump_to('index.php?modname=mygroup&op=group'); } } $GLOBALS['page']->add('<div class="reg_note">' . $lang->def('_GROUPS_FIELDS') . '<ul class="reg_instruction">' . '<li>' . str_replace('[mandatory]', $mand_sym, $lang->def('_REG_MANDATORY')) . '</li>' . '</ul>' . '</div>' . Form::openForm('group_subscription', 'index.php?modname=mygroup&op=savesel') . Form::openElementSpace() . Form::getHidden('group_sel_implode', 'group_sel_implode', isset($_POST['group_sel_implode']) ? $_POST['group_sel_implode'] : implode(',', $selected)) . $play_field . Form::getBreakRow() . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('save_field', 'save_field', $lang->def('_SAVE')) . Form::closeButtonSpace() . Form::closeForm() . '</div>', 'content'); }
/** * this function manage the entire profile, identify the action to perform and do the right sequence of action * @return string the html to display */ function performAction($viewer = false, $start_action = false) { $this->setViewer($viewer); if ($start_action === false) { $start_action = 'profileview'; } $ap = Get::req($this->_varname_action, DOTY_MIXED, $start_action); if (isset($_POST['undo'])) { $ap = 'profileview'; } switch ($ap) { case "goprofile": $ext_prof = new UserProfile(Get::req('id_user', DOTY_INT, 0), false); $ext_prof->init($this->_module_name, $this->_platform, $this->_std_query, $this->_varname_action); return $ext_prof->getProfile(); break; // display the mod info gui ------------------------------- // display the mod info gui ------------------------------- case "mod_profile": return $this->getModUser(); break; case "mod_password": return $this->_up_viewer->getUserPwdModUi(); break; case "mod_policy": return $this->_up_viewer->modUserPolicyGui(); break; // save modified info of the user ------------------------- // save modified info of the user ------------------------- case "save_policy": if ($this->_up_data_man->setFieldAccessList($this->_id_user, $this->_up_viewer->getFilledPolicy())) { // all ok -------------------------------------- $this->_up_viewer->unloadUserData(); if ($this->_end_url !== false) { Util::jump_to($this->_end_url); } return getResultUi($this->_lang->def('_OPERATION_SUCCESSFULPOLICY')) . $this->getProfile(); } else { // some error saving --------------------------- return getErrorUi($this->_lang->def('_FAILSAVEPOLICY')) . $this->_up_viewer->modUserPolicyGui(); } break; // save modified info of the user ------------------------- // save modified info of the user ------------------------- case "saveinfo": if (!$this->checkUserInfo()) { // some error in data filling ------------------ return getErrorUi($this->_last_error) . $this->getModUser(); } if ($this->saveUserInfo()) { // all ok -------------------------------------- $this->_up_viewer->unloadUserData(); if ($this->_end_url !== false) { Util::jump_to($this->_end_url); } if (isset($_GET['modname']) && $_GET['modname'] == 'reservation') { require_once $GLOBALS['where_lms'] . '/lib/lib.reservation.php'; $id_event = Get::req('id_event', DOTY_INT, 0); $man_res = new Man_Reservation(); $result = $man_res->addSubscription(getLogUserId(), $id_event); Util::jump_to('index.php?modname=reservation&op=reservation'); } else { return getResultUi($this->_lang->def('_OPERATION_SUCCESSFULPROFILE')) . $this->getProfile(); } } else { // some error saving --------------------------- return getErrorUi($this->_lang->def('_OPERATION_FAILURE')) . $this->getModUser(); } break; // save password ----------------------------------------- // save password ----------------------------------------- case "savepwd": $re = $this->_up_viewer->checkUserPwd(); if ($re !== true) { // some error in data filling -------------------- return getErrorUi($re) . $this->_up_viewer->getUserPwdModUi(); } if ($this->saveUserPwd()) { // all ok ---------------------------------------- $this->_up_viewer->unloadUserData(); if ($this->_end_url !== false) { Util::jump_to($this->_end_url); } $out = getResultUi($this->_lang->def('_OPERATION_SUCCESSFULPWD')); if (Get::sett('profile_only_pwd') == 'on') { // maybe is better if we display only the confirmation message if all is ok, but if you // want something else add the code here } else { $out .= $this->getProfile(); } return $out; } else { // some error saving ---------------------------- return getErrorUi($this->_lang->def('_OPERATION_FAILURE')) . $this->_up_viewer->getUserPwdModUi(); } break; case "uploadavatar": return $this->_up_viewer->modAvatarGui(); break; case "saveavatar": if ($this->saveUserAvatar()) { // all ok -------------------------------------- $this->_up_viewer->unloadUserData(); if ($this->_end_url !== false) { Util::jump_to($this->_end_url); } return getResultUi($this->_lang->def('_OPERATION_SUCCESSFULAVATAR')) . $this->getProfile(); } else { // some error saving --------------------------- return getErrorUi($this->_lang->def('_OPERATION_FAILURE')) . $this->_up_viewer->modAvatarGui(); } break; // teacher curriculum // teacher curriculum case "del_teach_curric": return $this->_up_viewer->delTeacherCurriculumGui(); break; case "mod_teach_curric": return $this->_up_viewer->modTeacherCurriculumGui(); break; case "save_teach_curric": if ($this->_up_data_man->saveTeacherCurriculumAndPublication($this->_id_user, $this->_up_viewer->getFilledCurriculum(), false)) { // all ok -------------------------------------- $this->_up_viewer->unloadUserData(); if ($this->_end_url !== false) { Util::jump_to($this->_end_url); } return getResultUi($this->_lang->def('_OPERATION_SUCCESSFULCURRICULUM')) . $this->getProfile(); } else { // some error saving --------------------------- return getErrorUi($this->_lang->def('_OPERATION_FAILURE')) . $this->_up_viewer->modTeacherCurriculumGui(); } break; case "mod_teach_publ": return $this->_up_viewer->modTeacherPublicationsGui(); break; case "save_teach_publ": if ($this->_up_data_man->saveTeacherCurriculumAndPublication($this->_id_user, false, $this->_up_viewer->getFilledPublications())) { // all ok -------------------------------------- $this->_up_viewer->unloadUserData(); if ($this->_end_url !== false) { Util::jump_to($this->_end_url); } return getResultUi($this->_lang->def('_OPERATION_SUCCESSFULPUBLICATIONS')) . $this->getProfile(); } else { // some error saving --------------------------- return getErrorUi($this->_lang->def('_FAILSAVEPUBLICATIONS')) . $this->_up_viewer->modTeacherPublicationsGui(); } break; // display the profile ------------------------------------ // display the profile ------------------------------------ case "view_files": $this->_id_user = Get::req('id_user', DOTY_INT, getLogUserId()); return $this->_up_viewer->getViewUserFiles(); break; case "file_details": $this->_id_user = Get::req('id_user', DOTY_INT, getLogUserId()); return $this->_up_viewer->getViewUserFileDetail(); break; case "profileview": default: return $this->getProfile(); break; } }
function showResult($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'; $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(); $previous_page = importVar('previous_page', false, false); $new_info = array('last_page_seen' => $previous_page, 'score_status' => 'doing'); if (isset($_POST['page_to_save']) && ($_POST['page_to_save'] > $track_info['last_page_saved'] || $test_info['mod_doanswer'])) { $play_man->storePage($_POST['page_to_save'], $test_info['mod_doanswer']); $play_man->closeTrackPageSession($_POST['page_to_save']); } $now = date('Y-m-d H:i:s'); $point_do = 0; $max_score = 0; $num_manual = 0; $manual_score = 0; $point_do_cat = array(); $re_visu_quest = sql_query("SELECT idQuest \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_testtrack_quest \r\n\tWHERE idTrack = '" . $id_track . "' "); while (list($id_q) = sql_fetch_row($re_visu_quest)) { $quest_see[] = $id_q; } $reQuest = sql_query("\r\n\tSELECT q.idQuest, q.type_quest, t.type_file, t.type_class, q.idCategory \r\n\tFROM %lms_testquest AS q JOIN " . $GLOBALS['prefix_lms'] . "_quest_type AS t\r\n\tWHERE q.idTest = '" . $id_test . "' AND q.type_quest = t.type_quest AND q.idQuest IN (" . implode($quest_see, ',') . ") \r\n\tORDER BY q.sequence"); //#2093: Conto le domande $tot_questions = 0; $tot_answers = 0; $tot_rightanswers = 0; $tot_questions = $test_man->getNumberOfQuestion(); while (list($id_quest, $type_quest, $type_file, $type_class, $id_cat) = sql_fetch_row($reQuest)) { require_once $GLOBALS['where_lms'] . '/modules/question/' . $type_file; $quest_point_do = 0; $quest_obj = new $type_class($id_quest); $quest_point_do = $quest_obj->userScore($id_track); $quest_max_score = $quest_obj->getMaxScore(); if ($quest_obj->getScoreSetType() == 'manual') { ++$num_manual; $manual_score = round($manual_score + $quest_max_score, 2); } //#2093: Conto le risposte, conto le risposte corrette $tot_answers++; if ($quest_point_do == $quest_max_score) { $tot_rightanswers++; } $point_do = round($point_do + $quest_point_do, 2); $max_score = round($max_score + $quest_max_score, 2); if (isset($point_do_cat[$id_cat])) { $point_do_cat[$id_cat] = round($quest_point_do + $point_do_cat[$id_cat], 2); } else { $point_do_cat[$id_cat] = round($quest_point_do, 2); } } if ($test_info['point_type'] == '1') { // percentage score (%) // x:100=$point_do:$max_score //#2093: calcolo effettivo solo se ho tutte le risposte if ($tot_questions == $tot_answers) { $point_do = round(100 * $point_do / $max_score); //$max_score$test_info['point_required'] } else { $point_do = round(100 * $tot_rightanswers / $tot_questions); //$max_score$test_info['point_required'] } } $save_score = $point_do; // save new status in track if ($point_do >= $test_info['point_required']) { $next_status = 'passed'; if ($test_info['show_only_status']) { $score_status = 'passed'; } } else { $next_status = 'failed'; if ($test_info['show_only_status']) { $score_status = 'not_passed'; } } if (!$test_info['show_only_status']) { if ($num_manual != 0) { $score_status = 'not_checked'; } else { $score_status = 'valid'; } } $test_track = new Track_Test($id_track); $test_track->setDate($now); $test_track->status = $next_status; $test_track->update(); // -- require_once _lms_ . '/lib/lib.assessment_rule.php'; $score_arr = array(); $i = 0; foreach ($point_do_cat as $cat_id => $score) { $score_arr[$i]['score'] = $score; $score_arr[$i]['category_id'] = $cat_id; $i++; } // final score: $score_arr[$i]['score'] = $point_do; $score_arr[$i]['category_id'] = 0; $asrule = new AssessmentRuleManager($id_test); $feedback_txt = $asrule->setRulesFromScore($score_arr); $asrule->loadJs(); // -- $GLOBALS['page']->add(getTitleArea($lang->def('_TITLE') . ' : ' . $test_info['title'], 'test', $lang->def('_TEST_INFO')) . '<div class="std_block">' . ($next_status == 'failed' ? '<b>' . $lang->def('_TEST_FAILED') . '</b>' : $lang->def('_TEST_COMPLETED')) . '<br />', 'content'); if ($test_info['point_type'] != '1') { $save_score = $point_do; } else { $save_score = $point_do; //round(round($point_do / $max_score, 2) * 100, 2); } $track_info = Track_Test::getTrackInfo(Docebo::user()->getIdst(), $id_test, $id_reference); if ($score_status == 'valid' || $score_status == 'not_checked' || $score_status == 'passed' || $score_status == 'not_passed') { $new_info['date_end_attempt'] = $now; $new_info['number_of_save'] = $track_info['number_of_save'] + 1; $new_info['score'] = $save_score; $new_info['score_status'] = $score_status; $new_info['number_of_attempt'] = $track_info['number_of_attempt'] + 1; $re_update = Track_Test::updateTrack($id_track, $new_info); if (!isset($_POST['show_review'])) { $time = fromDatetimeToTimestamp(date('Y-m-d H:i:s')) - fromDatetimeToTimestamp($_SESSION['test_date_begin']); sql_query("\r\n INSERT INTO " . $GLOBALS['prefix_lms'] . "_testtrack_times\r\n (idTrack, idReference, idTest, date_attempt, number_time, score, score_status, date_begin, date_end, time) VALUES\r\n ('" . $id_track . "', '" . $id_reference . "', '" . $id_test . "', now(), '" . $new_info['number_of_save'] . "', '" . $new_info['score'] . "', '" . $new_info['score_status'] . "', '" . $_SESSION['test_date_begin'] . "', '" . date('Y-m-d H:i:s') . "', '" . $time . "')"); unset($_SESSION['test_date_begin']); } } //--- check suspension conditions ---------------------------------------------- if ($test_info['use_suspension']) { $suspend_info = array(); if ($next_status == 'failed') { $suspend_info['attempts_for_suspension'] = $track_info['attempts_for_suspension'] + 1; if ($suspend_info['attempts_for_suspension'] >= $test_info['suspension_num_attempts'] && $test_info['suspension_num_hours'] > 0) { //should we reset learning_test.suspension_num_attempts ?? $suspend_info['attempts_for_suspension'] = 0; //from now on, it uses the suspended_until parameter, so only the date is needed, we can reset the attempts count $suspend_info['suspended_until'] = date("Y-m-d H:i:s", time() + $test_info['suspension_num_hours'] * 3600); } //if num_hours is <= 0, never update attempts counter, so user won't never be de-suspended $re = Track_Test::updateTrack($id_track, $suspend_info); } else { if ($next_status == 'completed' || $next_status == 'passed') { $suspend_info['attempts_for_suspension'] = 0; $re = Track_Test::updateTrack($id_track, $suspend_info); } } } //--- end suspensions check ---------------------------------------------------- list($bonus_score, $score_status) = sql_fetch_row(sql_query("\r\n\tSELECT bonus_score, score_status\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_testtrack \r\n\tWHERE idTrack = '" . (int) $id_track . "'")); if ($test_info['show_score'] && $test_info['point_type'] != '1') { //$GLOBALS['page']->add('<span class="test_score_note">'.$lang->def('_TEST_TOTAL_SCORE').'</span> '.($point_do + $bonus_score).' / '.$max_score.'<br />', 'content'); $GLOBALS['page']->add('<span class="test_score_note">' . $lang->def('_TEST_TOTAL_SCORE') . '</span> ' . ($point_do + $bonus_score) . ' / 100<br />', 'content'); if ($num_manual != 0 && $score_status != 'valid') { $GLOBALS['page']->add('<br />' . '<span class="test_score_note">' . $lang->def('_TEST_MANUAL_SCORE') . '</span> ' . $manual_score . ' ' . $lang->def('_TEST_SCORES') . '<br />', 'content'); } if ($test_info['point_required'] != 0) { $GLOBALS['page']->add('<br />' . '<span class="test_score_note">' . $lang->def('_TEST_REQUIREDSCORE_RESULT') . '</span> ' . $test_info['point_required'] . '<br />', 'content'); } } if ($test_info['show_score'] && $test_info['point_type'] == '1') { $GLOBALS['page']->add('<span class="test_score_note">' . $lang->def('_TEST_TOTAL_SCORE') . '</span> ' . $save_score . ' %' . '<br />', 'content'); if ($num_manual != 0) { $GLOBALS['page']->add('<br />' . '<span class="test_score_note">' . $lang->def('_TEST_MANUAL_SCORE') . '</span> ' . $manual_score . ' ' . $lang->def('_TEST_SCORES') . '<br />', 'content'); } } if ($test_info['show_score_cat']) { $re_category = sql_query("\r\n\t\tSELECT c.idCategory, c.name, COUNT(q.idQuest)\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_testquest AS q \r\n\t\t\tJOIN " . $GLOBALS['prefix_lms'] . "_quest_category AS c\r\n\t\tWHERE c.idCategory = q.idCategory AND q.idTest = '" . $id_test . "' AND q.idCategory != 0 \r\n\t\tGROUP BY c.idCategory \r\n\t\tORDER BY c.name"); if (sql_num_rows($re_category)) { $GLOBALS['page']->add('<br />' . '<table summary="' . $lang->def('_TEST_CATEGORY_SCORE') . '" class="category_score">' . '<caption>' . $lang->def('_TEST_CATEGORY_SCORE') . '</caption>' . '<thead>' . '<tr>' . '<th>' . $lang->def('_TEST_QUEST_CATEGORY') . '</th>' . '<th class="number">' . $lang->def('_TEST_QUEST_NUMBER') . '</th' . '<th class="number">' . $lang->def('_TEST_TOTAL_SCORE') . '</th>' . '</tr>' . '</thead>' . '<tbody>', 'content'); while (list($id_cat, $name_cat, $quest_number) = sql_fetch_row($re_category)) { $GLOBALS['page']->add('<tr><td>' . $name_cat . '</td>' . '<td class="number">' . $quest_number . '</td>' . '<td class="number">' . (isset($point_do_cat[$id_cat]) ? $point_do_cat[$id_cat] : 0) . '</td></tr>', 'content'); } /* $GLOBALS['page']->add('<br />' .'<span class="test_score_note">'.$lang->def('_TEST_CATEGORY_SCORE').'</span><br />', 'content'); while(list($id_cat, $name_cat, $quest_number) = sql_fetch_row($re_category)) { $GLOBALS['page']->add($name_cat.', '.$lang->def('_TEST_SCORES').': ' .( isset($point_do_cat[$id_cat]) ? $point_do_cat[$id_cat] : 0 ).'<br />', 'content'); } */ $GLOBALS['page']->add('</tbody></table>', 'content'); } } $GLOBALS['page']->add('<br /><br />', 'content'); //--- if chart visualization enabled, then show it --------------------------- require_once _base_ . '/lib/lib.json.php'; $json = new Services_JSON(); if ($test_info['chart_options'] !== "") { $chart_options = $json->decode($test_info['chart_options']); } else { $chart_options = new stdClass(); } if (!property_exists($chart_options, 'use_charts')) { $chart_options->use_charts = false; } if (!property_exists($chart_options, 'selected_chart')) { $chart_options->selected_chart = 'column'; } if (!property_exists($chart_options, 'show_chart')) { $chart_options->show_chart = 'teacher'; } if ($chart_options->use_charts && $chart_options->show_chart == 'course') { cout('<div class="align-center">', 'content'); $chart = new Test_Charts($test_info['idTest'], Docebo::user()->getIdSt()); $chart->render($chart_options->selected_chart, true); cout('</div><br /><br />', 'content'); } //--- end show chart --------------------------------------------------------- if ($feedback_txt) { cout('<p>' . $feedback_txt . '</p><br />', 'content'); } $points = $point_do + $bonus_score; if ($test_info['show_solution'] == 2 && $points >= $test_info['point_required']) { $GLOBALS['page']->add(Form::openForm('test_show', 'index.php?modname=test&op=play') . Form::getHidden('next_step', 'next_step', 'test_review') . 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) . Form::getButton('review', 'review', $lang->def('_TEST_REVIEW_ANSWER')) . Form::closeForm(), 'content'); } elseif ($test_info['show_doanswer'] == 2 && $points >= $test_info['point_required']) { $GLOBALS['page']->add(Form::openForm('test_show', 'index.php?modname=test&op=play') . Form::getHidden('next_step', 'next_step', 'test_review') . 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) . Form::getButton('review', 'review', $lang->def('_TEST_REVIEW_ANSWER')) . Form::closeForm(), 'content'); } elseif ($test_info['show_solution'] != 2 && $test_info['show_doanswer'] != 2) { if ($test_info['show_solution'] || $test_info['show_doanswer']) { $GLOBALS['page']->add(Form::openForm('test_show', 'index.php?modname=test&op=play') . Form::getHidden('next_step', 'next_step', 'test_review') . 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) . Form::getButton('review', 'review', $lang->def('_TEST_REVIEW_ANSWER')) . Form::closeForm(), 'content'); } } $GLOBALS['page']->add(Form::openForm('test_show', Util::str_replace_once('&', '&', $object_test->back_url)) . '<div class="align_right">' . Form::getButton('end_test', 'end_test', $lang->def('_TEST_END_BACKTOLESSON')) . '</div>' . Form::closeForm(), 'content'); $GLOBALS['page']->add('</div>', 'content'); }
function archiveList() { require_once _base_ . '/lib/lib.table.php'; $lang =& DoceboLanguage::createInstance('advice'); $mod_perm = checkPerm('mod', true); $out = $GLOBALS['page']; $out->setWorkingZone('content'); $nav_bar = new NavBar('ini', Get::sett('visuItem'), 0, 'button'); $ini = $nav_bar->getSelectedElement(); $query_my_arch_advice = "\r\n\t\tSELECT DISTINCT idAdvice\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_adviceuser\r\n\t\tWHERE idUser = '******' AND archivied = '1'"; $re_my_arch_advice = sql_query($query_my_arch_advice); while (list($id) = sql_fetch_row($re_my_arch_advice)) { $advice_arch[] = $id; } if (!empty($advice_arch)) { $query_advice = "\r\n\t\t\tSELECT idAdvice, posted, title, description, important, author\r\n\t\t\tFROM " . $GLOBALS['prefix_lms'] . "_advice\r\n\t\t\tWHERE idCourse='" . $_SESSION['idCourse'] . "' AND idAdvice IN ( " . implode($advice_arch, ',') . " )\r\n\t\t\tORDER BY posted DESC\r\n\t\t\tLIMIT {$ini}," . Get::sett('visuItem'); $re_advice = sql_query($query_advice); list($numofadvice) = sql_fetch_row(sql_query("\r\n\t\t\tSELECT COUNT(DISTINCT idAdvice)\r\n\t\t\tFROM " . $GLOBALS['prefix_lms'] . "_advice\r\n\t\t\tWHERE idCourse='" . $_SESSION['idCourse'] . "' AND idAdvice IN ( " . implode($advice_arch, ',') . " )")); $nav_bar->setElementTotal($numofadvice); if (isset($_GET['result'])) { switch ($_GET['result']) { case "ok": $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); break; case "err": $out->add(getErrorUi($lang->def('_ERR_INSERT'))); break; case "err_user": $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); break; } } while (list($idA, $posted, $title, $description, $impo, $author) = sql_fetch_row($re_advice)) { $out->add('<div class="list_block">' . '<h2 class="heading">'); if ($impo) { $out->add('<img src="' . getPathImage() . 'standard/important.png" alt="' . $lang->def('_IMPORTANT') . '" /> '); } else { $out->add(''); } $out->add($title . '</h2>' . '<div class="content"><p class="publish-date">' . Format::date($posted) . '</p>' . $description . '</div>' . '<div class="actions">'); if ($mod_perm) { $out->add('<ul class="link_list_inline">' . '<li><a class="ico-wt-sprite subs_users" href="index.php?modname=advice&op=modreader&id_advice=' . $idA . '&load=1" title="' . $lang->def('_VIEW_PERMISSION') . ' : ' . $title . '">' . '<span>' . $lang->def('_MOD') . '</span></a></li>' . '<li><a class="ico-wt-sprite subs_mod" href="index.php?modname=advice&op=modadvice&idAdvice=' . $idA . '" title="' . $lang->def('_MOD') . ' : ' . $title . '">' . '<span>' . $lang->def('_MOD') . '</span></a></li>' . '<li><a class="ico-wt-sprite subs_del" href="index.php?modname=advice&op=deladvice&idAdvice=' . $idA . '" title="' . $lang->def('_DEL') . ' : ' . $title . '">' . '<span>' . $lang->def('_DEL') . '</span></a></li>' . '</ul>'); require_once _base_ . '/lib/lib.dialog.php'; setupHrefDialogBox('a[href*=deladvice]'); } $out->add('</div>' . '</div><br />'); } } $form = new Form(); $out->add($form->getHidden('archive_status', 'archive_status', '1') . $nav_bar->getNavBar($ini)); }
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 = Get::sett('visuItem', 25); $tb = new Table($numtablerows, $lang->def('_CERTIFICATE_VIEW_CAPTION'), $lang->def('_CERTIFICATE_VIEW_CAPTION')); $tb->initNavBar('ini', 'button'); $ini = $tb->getSelectedElement(); $ini_param = Get::req('ini', DOTY_MIXED, array()); //floor($ini / Get::sett('visuItem', 25)); if (empty($ini_param)) { $ini_param = 1; } else { list($ini_param) = each($ini_param); } $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; //cout('<pre>'.print_r($_POST, true).'</pre>'); //cout($query); $res = sql_query($query); $from = Get::req('from', DOTY_MIXED, ''); if ($from === 'course') { $back_ui = getBackUi('index.php?r=alms/course/certificate&id_course=' . (int) $id_course, $lang->def('_BACK')); $out->add(getTitleArea(array('index.php?r=alms/course/certificate&id_course=' . (int) $id_course => $lang->def('_CERTIFICATE_ASSIGN_STATUS', 'course'), $lang->def('_COURSES')), 'certificate')); } else { $back_ui = getBackUi('index.php?modname=certificate&op=report_certificate&id_certificate=' . (int) $id_certificate, $lang->def('_BACK')); $out->add(getTitleArea(array('index.php?modname=certificate&op=certificate' => $lang->def('_TITLE_CERTIFICATE'), 'index.php?modname=certificate&op=report_certificate&id_certificate=' . (int) $id_certificate => $lang->def('_COURSES'), $lang->def('_CERTIFICATE_VIEW_CAPTION')), '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::sprite('subs_pdf', Lang::t('_TITLE_VIEW_CERT', 'certificate')), Get::sprite('subs_del', 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=certificate&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[] = $can_assign ? '<a id="dl_single_' . $input_id . '" class="ico-wt-sprite subs_pdf" href="javascript:;" title="' . $lang->def('_GENERATE') . '"><span>' . $lang->def('_GENERATE') . '</span></a>' : '<a id="dl_single_' . $input_id . '" class="ico-wt-sprite subs_pdf" href="' . $dl_url . '" title="' . $lang->def('_DOWNLOAD') . '"><span>' . $lang->def('_DOWNLOAD') . '</span></a>'; $cont[] = $can_assign ? '' : Get::sprite_link('subs_del', $url . '&op=del_report_certificate', Lang::t('_DEL', 'certificate')); $tb->addBody($cont); } require_once _base_ . '/lib/lib.dialog.php'; setupHrefDialogBox('a[href*=del_report_certificate]'); //search filter ... $release_options = array($lang->def('_ALL') => 0, $lang->def('_RELEASED') => 1, $lang->def('_TO_RELEASE') => 2); //search and store all non-available certificates $all_selection = array(); $query = "SELECT cu.idUser as id_user " . " 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 . "' " . ($search_filter != '' ? " AND (u.userid LIKE '%" . $search_filter . "%' OR u.lastname LIKE '%" . $search_filter . "%' OR u.firstname LIKE '%" . $search_filter . "%') " : "") . " AND ca.on_date IS NULL "; $res = sql_query($query); while (list($id_user) = sql_fetch_row($res)) { $all_selection[] = $id_user; } //--- $form = new Form(); $submit_url = "index.php?modname=certificate&op=view_report_certificate&id_certificate=" . (int) $id_certificate . "&id_course=" . (int) $id_course; $out->add($form->openForm("certificates_emission", $submit_url) . $form->getHidden('old_selection', 'old_selection', implode(',', $total_selection)) . $form->getHidden('all_selection', 'all_selection', implode(',', $all_selection)) . $form->getHidden('active_text_filter', 'active_text_filter', $search_filter) . $form->getHidden('active_only_released', 'active_only_released', $only_released) . $form->getHidden('active_ini', 'active_ini', $ini_param) . '<div class="quick_search_form">' . '<div class="simple_search_box">' . Form::getInputTextfield("search_t", "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") . '</div>' . '<a id="advanced_search" class="advanced_search" href="javascript:;">' . Lang::t("_ADVANCED_SEARCH", 'standard') . '</a>' . '<div id="certificate_release_as" class="advanced_search_options" style="display: ' . ($only_released != 0 ? 'block' : 'none') . '">' . Form::getRadioHoriz(Lang::t('_FILTER', 'certificate'), 'only_released', 'only_released', $release_options, $only_released) . '</div>' . '</div>' . '<script type="text/javascript">' . 'YAHOO.util.Event.addListener("advanced_search", "click", function(e){ var el = YAHOO.util.Dom.get("certificate_release_as"); if (el.style.display != \'block\') el.style.display = \'block\'; else el.style.display = \'none\'; });' . '</script>', 'content'); $delgen_url = 'index.php?modname=certificate&op=del_gen_certificate' . '&id_certificate=' . (int) $id_certificate . '&id_course=' . (int) $id_course; $delgen_txt = Lang::t('_DELETE_ALL_GENERATED', 'certificate'); $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>'; $print_button_1 .= Lang::t('_SELECT', 'directory') . ': '; $print_button_2 .= Lang::t('_SELECT', 'directory') . ': '; /* $print_button_1 .= ' <a href="javascript:;" id="select_page_1">'.Lang::t('_SELECT_PAGE', 'standard').'</a>'; $print_button_2 .= ' <a href="javascript:;" id="select_page_2">'.Lang::t('_SELECT_PAGE', 'standard').'</a>'; $print_button_1 .= ' <a href="javascript:;" id="unselect_page_1">'.Lang::t('_UNSELECT_PAGE', 'standard').'</a>'; $print_button_2 .= ' <a href="javascript:;" id="unselect_page_2">'.Lang::t('_UNSELECT_PAGE', 'standard').'</a>'; */ $print_button_1 .= ' <a href="javascript:;" id="select_all_1">' . Lang::t('_ALL_PAGES', 'directory') . '</a>'; $print_button_2 .= ' <a href="javascript:;" id="select_all_2">' . Lang::t('_ALL_PAGES', 'directory') . '</a>'; $print_button_1 .= ' <a href="javascript:;" id="unselect_all_1">' . Lang::t('_NONE', 'directory') . '</a>'; $print_button_2 .= ' <a href="javascript:;" id="unselect_all_2">' . Lang::t('_NONE', 'directory') . '</a>'; $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_CONTENT')); } $out->add($back_ui . '</div>'); addCss('style_menu', 'lms'); Util::get_js(Get::rel_path('base') . '/widget/dialog/dialog.js', true, true); Util::get_js(Get::rel_path('lms') . '/admin/modules/certificate/certificate.js?rnd=' . time(), true, true); //addJs($GLOBALS['where_lms_relative'].'/admin/modules/certificate/', 'certificate.js'); $script = 'var ajax_url="ajax.adm_server.php?plf=lms&mn=certificate"; 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($submit_url) ? $submit_url : '') . '", ' . '_ERROR_PARSE = "' . $lang->def('_OPERATION_FAILURE') . '", _SUCCESS = "' . $lang->def('_OPERATION_SUCCESSFUL') . '", ' . '_AREYOUSURE="' . Lang::t('_AREYOUSURE', 'standard') . '";'; $out->add('<script type="text/javascript">' . $script . '</script>', 'page_head'); }
/** * this function modify a question * * @param string $back_poll indicates the return url * @return nothing * * @access public * @author Fabio Pirovano (fabio@docebo.com) */ function edit($back_poll) { $lang =& DoceboLanguage::createInstance('poll'); require_once _base_ . '/lib/lib.form.php'; $url_encode = htmlentities(urlencode($back_poll)); //manage number of answer $num_answer = importVar('num_answer', true, 2); if (isset($_POST['more_answer'])) { ++$num_answer; } if (isset($_POST['less_answer']) && $num_answer > 1) { --$num_answer; } if (isset($_POST['save_question'])) { //update question $ins_query = "\r\n\t\t\tUPDATE " . $GLOBALS['prefix_lms'] . "_pollquest\r\n\t\t\tSET id_category = '" . (int) $_POST['id_category'] . "', \r\n\t\t\t\ttype_quest = '" . $this->getQuestionType() . "', \r\n\t\t\t\ttitle_quest = '" . $_POST['title_quest'] . "' \r\n\t\t\tWHERE id_quest = '" . (int) $this->id . "'"; if (!sql_query($ins_query)) { getErrorUi($lang->def('_POLL_ERR_INS_QUEST') . getBackUi('index.php?modname=question_poll&op=edit&type_quest=' . $this->getQuestionType() . '&id_quest=' . $this->id . '&back_poll=' . $url_encode, $lang->def('_BACK'))); } //update answer if (!isset($_POST['is_correct'])) { $_POST['is_correct'] = -1; } //find saved answer $re_answer = sql_query("\r\n\t\t\tSELECT id_answer\r\n\t\t\tFROM " . $GLOBALS['prefix_lms'] . "_pollquestanswer \r\n\t\t\tWHERE id_quest = '" . (int) $this->id . "'"); while (list($id_a) = sql_fetch_row($re_answer)) { $existent_answer[$id_a] = 1; } for ($i = 0; $i < $num_answer; $i++) { //scannig answer if (isset($_POST['answer_id'][$i])) { //must update $id_answer = $_POST['answer_id'][$i]; if (isset($existent_answer[$id_answer])) { unset($existent_answer[$id_answer]); } $upd_ans_query = "\r\n\t\t\t\t\tUPDATE " . $GLOBALS['prefix_lms'] . "_pollquestanswer \r\n\t\t\t\t\tSET answer = '" . $_POST['answer'][$i] . "'\r\n\t\t\t\t\tWHERE id_answer = '" . (int) $id_answer . "'"; if (!sql_query($upd_ans_query)) { getErrorUi($lang->def('_POLL_ERR_INS_ANSWER') . getBackUi(Util::str_replace_once('&', '&', $back_poll), $lang->def('_BACK'))); } } else { //insert new answer $ins_answer_query = "\r\n\t\t\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_pollquestanswer \r\n\t\t\t\t\t( id_quest, answer, sequence ) VALUES\r\n\t\t\t\t\t( \t'" . $this->id . "', \r\n\t\t\t\t\t\t'" . $_POST['answer'][$i] . "',\r\n\t\t\t\t\t\t'" . $i . "' ) "; if (!sql_query($ins_answer_query)) { getErrorUi($lang->def('_POLL_ERR_INS_ANSWER') . getBackUi(Util::str_replace_once('&', '&', $back_poll), $lang->def('_BACK'))); } } } while (list($idA) = each($existent_answer)) { //i must delete these answer $del_answer_query = "\r\n\t\t\t\tDELETE FROM " . $GLOBALS['prefix_lms'] . "_pollquestanswer\r\n\t\t\t\tWHERE id_quest = '" . (int) $this->id . "' AND id_answer = '" . (int) $idA . "'"; if (!sql_query($del_answer_query)) { getErrorUi($lang->def('_POLL_ERR_INS_ANSWER') . getBackUi(Util::str_replace_once('&', '&', $back_poll), $lang->def('_BACK'))); } } //back to question list Util::jump_to('' . $back_poll); } //insert form require_once $GLOBALS['where_lms'] . '/lib/lib.questcategory.php'; $categories = Questcategory::getCategory(); //writing difficult //load data if (!isset($_POST['answer_id'])) { list($sel_cat, $quest) = sql_fetch_row(sql_query("\r\n\t\t\tSELECT id_category, title_quest \r\n\t\t\tFROM " . $GLOBALS['prefix_lms'] . "_pollquest \r\n\t\t\tWHERE id_quest = '" . (int) $this->id . "'")); $re_answer = sql_query("\r\n\t\t\tSELECT id_answer, answer \r\n\t\t\tFROM " . $GLOBALS['prefix_lms'] . "_pollquestanswer \r\n\t\t\tWHERE id_quest = '" . (int) $this->id . "'\r\n\t\t\tORDER BY sequence"); $i_load = 0; while (list($_POST['answer_id'][$i_load], $_POST['answer'][$i_load]) = sql_fetch_row($re_answer)) { ++$i_load; } $num_answer = $i_load; } $GLOBALS['page']->add(getTitleArea($lang->def('_POLL_SECTION'), 'poll') . '<div class="std_block">' . getBackUi(Util::str_replace_once('&', '&', $back_poll), $lang->def('_BACK')) . '<div class="title_big">' . $lang->def('_QUEST_ACRN_' . strtoupper($this->getQuestionType())) . ' - ' . $lang->def('_QUEST_' . strtoupper($this->getQuestionType())) . '</div><br />' . Form::openForm('form_add_quest', 'index.php?modname=question_poll&op=edit') . Form::openElementSpace() . Form::getHidden('type_quest', 'type_quest', $this->getQuestionType()) . Form::getHidden('id_quest', 'id_quest', $this->id) . Form::getHidden('back_poll', 'back_poll', $url_encode) . Form::getHidden('num_answer', 'num_answer', $num_answer) . Form::getTextarea($lang->def('_POLL_QUEST_TITLE'), 'title_quest', 'title_quest', isset($_POST['title_quest']) ? stripslashes($_POST['title_quest']) : $quest) . Form::getDropdown($lang->def('_CATEGORY'), 'id_category', 'id_category', $categories, isset($_POST['id_category']) ? $_POST['id_category'] : $sel_cat) . '<div class="nofloat"></div><br />', 'content'); $GLOBALS['page']->add('<table class="test_answer" cellspacing="0" summary="' . $lang->def('_POLL_ANSWER_SUMMARY') . '">' . "\n" . '<caption>' . $lang->def('_ANSWER') . '</caption>' . "\n" . '<tr>' . '<th>' . $lang->def('_ANSWER') . '</th>' . '</tr>' . "\n", 'content'); for ($i = 0; $i < $num_answer; $i++) { $this->_lineModAnswer($i); } $GLOBALS['page']->add('</table>' . Form::getButton('more_answer', 'more_answer', $lang->def('_POLL_ADD_ONE_ANSWER'), 'button_nowh'), 'content'); if ($num_answer > 1) { $GLOBALS['page']->add(Form::getButton('less_answer', 'less_answer', $lang->def('_POLL_SUB_ONE_ANSWER'), 'button_nowh'), 'content'); } $GLOBALS['page']->add(Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('save_question', 'save_question', $lang->def('_SAVE')) . Form::closeButtonSpace() . Form::closeForm() . '</div>', 'content'); }
function forumDispatch($op) { require_once _base_ . '/lib/lib.urlmanager.php'; $url_man =& UrlManager::getInstance('forum'); $url_man->setStdQuery('index.php?modname=forum&op=forum'); switch ($op) { case "forum": forum(); break; //-----------------------------------------------// //-----------------------------------------------// case "addforum": addforum(); break; case "insforum": insforum(); break; //-----------------------------------------------// //-----------------------------------------------// case "modforum": modforum(); break; case "upforum": upforum(); break; case "downforum": moveforum($_GET['idForum'], 'down'); break; case "moveupforum": moveforum($_GET['idForum'], 'up'); break; case "modstatus": changestatus(); break; case "export": export(); break; //-----------------------------------------------// //-----------------------------------------------// case "delforum": delforum(); break; //-----------------------------------------------// //-----------------------------------------------// case "modforumaccess": modforumaccess(); break; //-----------------------------------------------// //-----------------------------------------------// case "thread": thread(); break; //-----------------------------------------------// //-----------------------------------------------// case "addthread": addthread(); break; case "insthread": insthread(); break; //-----------------------------------------------// //-----------------------------------------------// case "modthread": modthread(); break; case "movethread": $id_thread = importVar('id_thread', true, 0); $id_forum = importVar('id_forum', true, 0); moveThread($id_thread, $id_forum); break; case "upthread": upthread(); break; //-----------------------------------------------// //-----------------------------------------------// case "delthread": delthread(); break; //-----------------------------------------------// //-----------------------------------------------// case "message": message(); break; case "moderatemessage": moderatemessage(); break; case "modstatusthread": modstatusthread(); break; case "changeerased": changeerase(); break; //-----------------------------------------------// //-----------------------------------------------// case "addmessage": addmessage(); break; case "insmessage": insmessage(); break; //-----------------------------------------------// //-----------------------------------------------// case "modmessage": modmessage(); break; case "upmessage": upmessage(); break; //-----------------------------------------------// //-----------------------------------------------// case "delmessage": delmessage(); break; //-----------------------------------------------// //-----------------------------------------------// case "viewprofile": viewprofile(); break; //-----------------------------------------------// //-----------------------------------------------// case "editsema": editsema(); break; case "savesema": savesema(); break; //-----------------------------------------------// //-----------------------------------------------// case "download": checkPerm('view'); require_once _base_ . '/lib/lib.download.php'; //find file list($title, $attach) = sql_fetch_row(sql_query("\r\n\t\t\tSELECT title, attach\r\n\t\t\tFROM " . $GLOBALS['prefix_lms'] . "_forummessage\r\n\t\t\tWHERE idMessage='" . (int) $_GET['id'] . "'")); if (!$attach) { $GLOBALS['page']->add(getErrorUi('Sorry, such file does not exist!'), 'content'); return; } //recognize mime type $expFileName = explode('.', $attach); $totPart = count($expFileName) - 1; $path = '/appLms/' . Get::sett('pathforum'); //send file sendFile($path, $attach, $expFileName[$totPart]); break; //-----------------------------------------------// //-----------------------------------------------// case "search": forumsearch(); break; case "searchmessage": forumsearchmessage(); break; //-----------------------------------------------// } }
/** * Only for input. Special function. **/ function event_special_view($op) { checkPerm('view_event_manager'); require_once _base_ . '/lib/lib.table.php'; //require_once(_i18n_.'/lib.lang.php'); require_once _base_ . '/lib/lib.form.php'; $lang =& DoceboLanguage::createInstance('event_manager', 'framework'); $out =& $GLOBALS['page']; $form = new Form(); $out->setWorkingZone('content'); $out->add(getTitleArea($lang->def('_EVENT_MANAGER'), 'event_manager')); $out->add('<div class="std_block">'); if ($op == 'special_save') { $arr_platform = $_POST['platform']; $arr_class = $_POST['class']; $arr_description = $_POST['description']; $arr_recipients = $_POST['recipients']; $arr_show_level = $_POST['show_level']; $idClass = 0; foreach ($arr_platform as $key => $platform) { if ($key == 0) { if ($platform != '') { $result1 = sql_query("INSERT INTO " . $GLOBALS['prefix_fw'] . "_event_class " . " (platform,class,description) VALUES " . " ('" . $platform . "','" . $arr_class[$key] . "','" . $arr_description[$key] . "') "); if ($result1 === FALSE) { break; } $idClass = mysql_insert_id(); DoceboEventManager::registerEventConsumer(array($arr_class[$key]), 'DoceboUserNotifier', $GLOBALS['where_framework'] . '/lib/lib.usernotifier.php'); $result1 = sql_query("INSERT INTO " . $GLOBALS['prefix_fw'] . "_event_manager " . " (idClass,recipients,show_level) VALUES " . " ('" . $idClass . "','" . $arr_recipients[$key] . "','" . $arr_show_level[$key] . "') "); } } else { $result1 = sql_query("UPDATE " . $GLOBALS['prefix_fw'] . "_event_class " . " SET platform='" . $platform . "'," . " class='" . $arr_class[$key] . "'," . " description='" . $arr_description[$key] . "'" . " WHERE idClass = '" . (int) $key . "'"); } if ($result1 === FALSE) { break; } } foreach ($arr_recipients as $key => $recipients) { if ($key == 0) { // do nothing } else { $result2 = sql_query("UPDATE " . $GLOBALS['prefix_fw'] . "_event_manager " . " SET recipients='" . $recipients . "'," . " show_level='" . $arr_show_level[$key] . "'" . " WHERE idEventMgr = '" . (int) $key . "'"); } if ($result1 === FALSE) { break; } } if ($result1 && $result2) { $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); } else { $out->add(getErrorUi($lang->def('_ERROR_IN_SAVE'))); } } $out->add($form->openForm('event_special_insert', 'index.php?modname=event_manager&op=special_save')); $out->add($form->openElementSpace()); $tb_event_classes = new Table(400, $lang->def('_EVENT_SETTINGS'), $lang->def('_EVENT_SETTINGS')); $content_h = array($lang->def('_EVENT_PLATFORM'), $lang->def('_NAME'), $lang->def('_DESCRIPTION'), $lang->def('_RECIPIENTS'), 'show_level'); $type_h = array('', '', '', 'image', 'image', 'image', 'image', 'image', ''); $tb_event_classes->setColsStyle($type_h); $tb_event_classes->addHead($content_h); $rs = sql_query("SELECT ec.idClass, class, platform, description, idEventMgr, recipients, show_level" . " FROM " . $GLOBALS['prefix_fw'] . "_event_class as ec" . " JOIN " . $GLOBALS['prefix_fw'] . "_event_manager as em" . " WHERE ec.idClass = em.idClass" . " ORDER BY ec.idClass"); while (list($idClass, $class, $platform, $description, $idEventMgr, $recipients, $show_level) = sql_fetch_row($rs)) { $cont = array(); $cont[] = $form->getInputTextfield('', 'platform_' . $idClass, 'platform[' . $idClass . ']', $platform, '', 50, ''); $cont[] = $form->getInputTextfield('', 'class_' . $idClass, 'class[' . $idClass . ']', $class, '', 50, ''); $cont[] = $form->getInputTextfield('', 'description_' . $idClass, 'description[' . $idClass . ']', $description, '', 50, ''); $cont[] = $form->getInputTextfield('', 'recipients_' . $idEventMgr, 'recipients[' . $idEventMgr . ']', $recipients, '', 50, ''); $cont[] = $form->getInputTextfield('', 'show_level_' . $idEventMgr, 'show_level[' . $idEventMgr . ']', $show_level, '', 50, ''); $tb_event_classes->addBody($cont); } $cont = array(); $cont[] = $form->getInputTextfield('', 'platform_0', 'platform[0]', '', '', 50, ''); $cont[] = $form->getInputTextfield('', 'class_0', 'class[0]', '', '', 50, ''); $cont[] = $form->getInputTextfield('', 'description_0', 'description[0]', '', '', 50, ''); $cont[] = $form->getInputTextfield('', 'recipients_0', 'recipients[0]', '', '', 50, ''); $cont[] = $form->getInputTextfield('', 'show_level_0', 'show_level[0]', '', '', 50, ''); $tb_event_classes->addBody($cont); $out->add($tb_event_classes->getTable()); $out->add($form->closeElementSpace()); $out->add($form->openButtonSpace()); $out->add($form->getButton('save', 'save', $lang->def('_SAVE'))); $out->add($form->closeButtonSpace()); $out->add($form->closeForm()); $out->add('</div>'); }
function modactivityscore() { checkPerm('mod'); require_once $GLOBALS['where_lms'] . '/lib/lib.coursereport.php'; require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.table.php'; // XXX: Initializaing $id_report = importVar('id_report', true, 0); $lang =& DoceboLanguage::createInstance('coursereport', 'lms'); $out =& $GLOBALS['page']; $out->setWorkingZone('content'); // XXX: Instance management $acl_man = Docebo::user()->getAclManager(); $report_man = new CourseReportManager(); // XXX: Find users $type_filter = false; if (isset($_GET['type_filter']) && $_GET['type_filter'] != null) { $type_filter = $_GET['type_filter']; } $lev = $type_filter; $students = getSubscribed((int) $_SESSION['idCourse'], FALSE, $lev, TRUE, false, false, true); $id_students = array_keys($students); $students_info =& $acl_man->getUsers($id_students); if (isset($_POST['save'])) { // retirive activity info $info_report = array('id_report' => importVar('id_report', true, 0), 'title' => importVar('title'), 'max_score' => importVar('max_score', true), 'required_score' => importVar('required_score', true), 'source_of' => importVar('source_of'), 'weight' => importVar('weight', true), 'show_to_user' => importVar('show_to_user', false, 'true'), 'use_for_final' => importVar('use_for_final', false, 'true')); // XXX: retrive scores } else { // retirive activity info $query_report = "\r\n\t\tSELECT id_report, title, max_score, required_score, weight, show_to_user, use_for_final, id_source, source_of\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_coursereport\r\n\t\tWHERE id_course = '" . $_SESSION['idCourse'] . "' AND id_report = '" . $id_report . "'\r\n\t\t\t\tAND (source_of = 'scoitem' OR source_of = 'activity')"; // TBD AND id_source = '0'"; $info_report = sql_fetch_assoc(sql_query($query_report)); // XXX: retrive scores $report_score =& $report_man->getReportsScores(array($id_report)); } // XXX: Write in output $page_title = array('index.php?modname=coursereport&op=coursereport' => $lang->def('_COURSEREPORT', 'menu_course'), strip_tags($info_report['title'])); $out->add(getTitleArea($page_title, 'coursereport') . '<div class="std_block">' . Form::openForm('activity', 'index.php?modname=coursereport&op=modactivityscore')); // XXX: Save input if needed if (isset($_POST['save'])) { if ($_POST['title'] == '') { $_POST['title'] = $lang->def('_NOTITLE'); } $re_check = $report_man->checkActivityData($_POST); if (!$re_check['error']) { if (!$report_man->updateActivity($id_report, $_SESSION['idCourse'], $info_report)) { $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); } else { // save user score modification $query_upd_report = "\r\n\t\t\t\tUPDATE " . $GLOBALS['prefix_lms'] . "_coursereport\r\n\t\t\t\tSET weight = '" . $info_report['weight'] . "',\r\n\t\t\t\t\tuse_for_final = '" . $info_report['use_for_final'] . "',\r\n\t\t\t\t\tshow_to_user = '******'show_to_user'] . "'\r\n\t\t\t\tWHERE id_course = '" . $_SESSION['idCourse'] . "' AND id_report = '" . $id_report . "'"; $re = sql_query($query_upd_report); $re = $report_man->saveReportScore($id_report, $_POST['user_score'], $_POST['date_attempt'], $_POST['comment']); Util::jump_to('index.php?modname=coursereport&op=coursereport&result=' . ($re ? 'ok' : 'err')); } } else { $out->add(getErrorUi($re_check['message'])); } } // main form $out->add(Form::openElementSpace() . Form::getOpenFieldSet($lang->def('_ACTIVITY_INFO')) . Form::getHidden('id_report', 'id_report', $id_report) . Form::getHidden('id_source', 'id_source', $info_report['id_source']) . Form::getHidden('source_of', 'source_of', $info_report['source_of'])); // for scorm object changing title, maxScore and requiredScore is not allowed switch ($info_report['source_of']) { case 'scoitem': $out->add(Form::getLinebox($lang->def('_TITLE_ACT'), strip_tags($info_report['title'])) . Form::getLinebox($lang->def('_MAX_SCORE'), strip_tags($info_report['max_score'])) . Form::getLinebox($lang->def('_REQUIRED_SCORE'), strip_tags($info_report['required_score']))); break; case 'activity': $out->add(Form::getTextfield($lang->def('_TITLE_ACT'), 'title', 'title', '255', $info_report['title']) . Form::getTextfield($lang->def('_MAX_SCORE'), 'max_score', 'max_score', '11', $info_report['max_score']) . Form::getTextfield($lang->def('_REQUIRED_SCORE'), 'required_score', 'required_score', '11', $info_report['required_score'])); break; } $out->add(Form::getTextfield($lang->def('_WEIGHT'), 'weight', 'weight', '11', $info_report['weight']) . Form::getDropdown($lang->def('_SHOW_TO_USER'), 'show_to_user', 'show_to_user', array('true' => $lang->def('_YES'), 'false' => $lang->def('_NO')), $info_report['show_to_user']) . Form::getDropdown($lang->def('_USE_FOR_FINAL'), 'use_for_final', 'use_for_final', array('true' => $lang->def('_YES'), 'false' => $lang->def('_NO')), $info_report['use_for_final']) . Form::getCloseFieldSet() . Form::closeElementSpace()); if ($info_report['source_of'] != 'scoitem') { /* XXX: scores */ $tb = new Table(0, $lang->def('_STUDENTS_VOTE'), $lang->def('_STUDENTS_VOTE')); $type_h = array('', 'align-center', 'align-center', ''); $tb->setColsStyle($type_h); $cont_h = array($lang->def('_STUDENTS'), $lang->def('_SCORE'), $lang->def('_DATE'), $lang->def('_COMMENTS')); $tb->addHead($cont_h); // XXX: Display user scores $i = 0; while (list($idst_user, $user_info) = each($students_info)) { $user_name = $user_info[ACL_INFO_LASTNAME] . $user_info[ACL_INFO_FIRSTNAME] ? $user_info[ACL_INFO_LASTNAME] . ' ' . $user_info[ACL_INFO_FIRSTNAME] : $acl_man->relativeId($user_info[ACL_INFO_USERID]); $cont = array(Form::getLabel('user_score_' . $idst_user, $user_name)); $cont[] = Form::getInputTextfield('textfield_nowh', 'user_score_' . $idst_user, 'user_score[' . $idst_user . ']', isset($report_score[$id_report][$idst_user]['score']) ? $report_score[$id_report][$idst_user]['score'] : (isset($_POST['user_score'][$idst_user]) ? $_POST['user_score'][$idst_user] : ''), strip_tags($lang->def('_SCORE')), '8', ' tabindex="' . $i++ . '" '); $cont[] = Form::getInputDatefield('textfield_nowh', 'date_attempt_' . $idst_user, 'date_attempt[' . $idst_user . ']', Format::date(isset($report_score[$id_report][$idst_user]['date_attempt']) ? $report_score[$id_report][$idst_user]['date_attempt'] : (isset($_POST['date_attempt'][$idst_user]) ? $_POST['date_attempt'][$idst_user] : ''), 'date')); $cont[] = Form::getInputTextarea('comment_' . $idst_user, 'comment[' . $idst_user . ']', isset($report_score[$id_report][$idst_user]['comment']) ? $report_score[$id_report][$idst_user]['comment'] : (isset($_POST['comment'][$idst_user]) ? stripslashes($_POST['comment'][$idst_user]) : ''), 'textarea_wh_full', 2); $tb->addBody($cont); } } $out->add(Form::openButtonSpace() . Form::getButton('save', 'save', $lang->def('_SAVE')) . Form::getButton('undo', 'undo', $lang->def('_UNDO')) . Form::closeButtonSpace()); if ($info_report['source_of'] != 'scoitem') { $out->add($tb->getTable() . Form::openButtonSpace() . Form::getButton('save', 'save', $lang->def('_SAVE')) . Form::getButton('undo', 'undo', $lang->def('_UNDO')) . Form::closeButtonSpace()); } $out->add(Form::closeForm() . '</div>'); }
function groups() { checkPerm('view'); require_once _base_ . '/lib/lib.table.php'; $lang =& DoceboLanguage::createInstance('groups', 'lms'); $acl_man =& Docebo::user()->getAclManager(); $mod_perm = checkPerm('mod', true); $subs_perm = checkPerm('subscribe', true); // Retrive groups $acl_man->setContext('/lms/course/' . $_SESSION['idCourse'] . '/group'); $id_groups = $acl_man->getGroupsIdstFromBasePath('/lms/course/' . $_SESSION['idCourse'] . '/group', array('course')); if (!empty($id_groups)) { $groups = $acl_man->getGroups($id_groups); } else { $groups = array(); } // compose table $tb = new Table(0, $lang->def('_GROUP_CAPTION'), $lang->def('_GROUP_CAPTION')); $type_h = array('', ''); $cont_h = array($lang->def('_NAME'), $lang->def('_DESCRIPTION')); if ($subs_perm) { $type_h[] = 'image'; $cont_h[] = '<img src="' . getPathImage() . 'standard/moduser.png" alt="' . $lang->def('_ALT_SUBSCRIBE') . '" ' . 'title="' . $lang->def('_SUBSCRIBE_USER') . '" />'; } if ($mod_perm) { $type_h[] = 'image'; $type_h[] = 'image'; $cont_h[] = '<img src="' . getPathImage() . 'standard/edit.png" alt="' . $lang->def('_MOD') . '" ' . 'title="' . $lang->def('_MOD') . '" />'; $cont_h[] = '<img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL') . '" ' . 'title="' . $lang->def('_DEL') . '" />'; } $tb->setColsStyle($type_h); $tb->addHead($cont_h); if (!empty($groups)) { while (list(, $group) = each($groups)) { $id_group = $group[ACL_INFO_IDST]; $group_id = $acl_man->relativeId($group[ACL_INFO_GROUPID]); if ($group_id != 'alluser') { $cont = array($group_id, $group[ACL_INFO_GROUPDESCRIPTION]); if ($subs_perm) { $cont[] = '<a href="index.php?modname=groups&op=subscribe&id_group=' . $id_group . '&load=1" ' . 'title="' . $lang->def('_ASSIGN_USERS') . ' : ' . strip_tags($group_id) . '">' . '<img src="' . getPathImage() . 'standard/moduser.png" alt="' . $lang->def('_ASSIGN_USERS') . '" /></a>'; } if ($mod_perm) { $cont[] = '<a href="index.php?modname=groups&op=editgroup&id_group=' . $id_group . '" ' . 'title="' . $lang->def('_MOD') . ' : ' . strip_tags($group_id) . '">' . '<img src="' . getPathImage() . 'standard/edit.png" alt="' . $lang->def('_MOD') . '" /></a>'; $cont[] = '<a href="index.php?modname=groups&op=delgroup&id_group=' . $id_group . '" ' . 'title="' . $lang->def('_DEL') . ' : ' . strip_tags($group_id) . '">' . '<img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL') . '" /></a>'; } $tb->addBody($cont); } } } if ($mod_perm) { require_once _base_ . '/lib/lib.dialog.php'; setupHrefDialogBox('a[href*=delgroup]'); $tb->addActionAdd('<a href="index.php?modname=groups&op=editgroup">' . '<img src="' . getPathImage() . 'standard/add.png" alt="' . $lang->def('_ADD') . '" /> ' . $lang->def('_NEW') . '</a>'); } // output $GLOBALS['page']->add(getTitleArea($lang->def('_GROUPS'), 'groups') . '<div class="std_block">', 'content'); if (isset($_GET['result'])) { switch ($_GET['result']) { case "ok": $GLOBALS['page']->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL')), 'content'); break; case "err": $GLOBALS['page']->add(getErrorUi($lang->def('_OPERATION_FAILURE')), 'content'); break; } } $GLOBALS['page']->add($tb->getTable() . '</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'); }
function _maskTemplateManager() { require_once _base_ . '/lib/lib.form.php'; require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; require_once _base_ . '/lib/lib.table.php'; $lang =& DoceboLanguage::createInstance('configuration', 'framework'); $field_man = new FieldList(); $html = ''; if (isset($_POST['save_and_refresh'])) { if (!sql_query("\r\n\t\t\tUPDATE " . $this->table . "\r\n\t\t\tSET param_value = '" . $_POST['templ_use_field'] . "'\r\n\t\t\tWHERE pack = 'main' AND param_name = 'templ_use_field'")) { $html .= getErrorUi('_ERROR_WHILE_SAVING_NEW_FIELD'); } else { setTemplate($_POST['templ_use_field']); } } $drop_field = array(); $drop_field = $field_man->getFlatAllFields(false, 'dropdown'); $drop_field[0] = $lang->def('_NO'); $html .= Form::getDropdown($lang->def('_TEMPL_USE_FIELD'), 'templ_use_field', 'templ_use_field', $drop_field, Get::sett('templ_use_field')); $html .= Form::getButton('save_and_refresh', 'save_and_refresh', $lang->def('_SAVE_AND_REFRESH')); if (Get::sett('templ_use_field') != 0) { $field_obj =& $field_man->getFieldInstance(Get::sett('templ_use_field')); if ($field_obj === NULL) { return $html . getErrorUi('_ERROR_WITH_THIS_FIELD'); } $assignement = array(); $query_template_assigned = "\r\n\t\t\tSELECT ref_id, template_code\r\n\t\t\tFROM " . $GLOBALS['prefix_fw'] . "_field_template\r\n\t\t\tWHERE id_common = '" . Get::sett('templ_use_field') . "'"; $re_templ_assigned = sql_query($query_template_assigned); while (list($ref_id, $template_code) = sql_fetch_row($re_templ_assigned)) { $assignement[$ref_id] = $template_code; } $son_value = $field_obj->getAllSon(); $template_list = getTemplateList(true); $default_template = getDefaultTemplate(); $tb_son = new Table(0, $lang->def('_ASSIGN_DROPDOWN_VALUE_TEMPLATE'), $lang->def('_ASSIGN_DROPDOWN_VALUE_TEMPLATE_SUMMARY')); $cont_h = array($lang->def('_VALUE'), $lang->def('_TEMPLATE_VALUE')); $type_h = array('', ''); $tb_son->setColsStyle($type_h); $tb_son->addHead($cont_h); while (list($id_son, $drop_son_name) = each($son_value)) { $cont = array('<label for="template_selected_' . $id_son . '">' . $drop_son_name . '</label>', Form::getInputDropdown('dropdown', 'template_selected_' . $id_son, 'template_selected[' . $id_son . ']', $template_list, isset($assignement[$id_son]) && isset($template_list[$assignement[$id_son]]) ? $assignement[$id_son] : $default_template, '')); $tb_son->addBody($cont); } $html .= $tb_son->getTable(); } return $html; }
/** * this function manage a field * * @param string $back indicates the return url * @return nothing * * @access public */ function edit($back) { $back_coded = htmlentities(urlencode($back)); $array_lang = array(); $std_lang =& DoceboLanguage::createInstance('standard'); $lang =& DoceboLanguage::createInstance('field'); $array_lang = Docebo::langManager()->getAllLangCode(); $out =& $GLOBALS['page']; if (isset($_POST['undo'])) { //undo action Util::jump_to($back . '&result=undo'); } if (isset($_POST['save_field_' . $this->getFieldType()])) { //insert mandatory translation $mand_lang = getLanguage(); $show_on = ''; if (isset($_POST['show_on_platform'])) { while (list($code, ) = each($_POST['show_on_platform'])) { $show_on .= $code . ','; } } //control if all is ok if (!isset($_POST['new_freetext'][$mand_lang])) { $out->add(getErrorUi($lang->def('_ERR_MUST_DEF_MANADATORY_TRANSLATION')) . getBackUi($this->getUrl() . '&type_field=' . $this->getFieldType() . '&back=' . $back_coded, $std_lang->def('_BACK')), 'content'); return; } if ($_POST['new_freetext'][$mand_lang] == $lang->def('_FIELD_NAME') || trim($_POST['new_freetext'][$mand_lang]) == '') { $out->add(getErrorUi($lang->def('_ERR_MUST_DEF_MANADATORY_TRANSLATION')) . getBackUi($this->getUrl() . '&type_field=' . $this->getFieldType() . '&back=' . $back_coded, $std_lang->def('_BACK')), 'content'); return; } $existsing_translation = array(); $re_trans = sql_query("\r\n\t\t\tSELECT lang_code\r\n\t\t\tFROM " . $this->_getMainTable() . "\r\n\t\t\tWHERE id_common = '" . $this->id_common . "'"); while (list($l_code) = sql_fetch_row($re_trans)) { $existsing_translation[$l_code] = 1; } $use_multilang = isset($_POST['use_multi_lang']) ? 1 : 0; $re = true; //insert other field foreach ($_POST['new_freetext'] as $lang_code => $translation) { if (isset($existsing_translation[$lang_code])) { if (!sql_query("\r\n\t\t\t\t\tUPDATE " . $this->_getMainTable() . "\r\n\t\t\t\t\tSET translation = '" . $translation . "',\r\n\t\t\t\t\t\tshow_on_platform = '" . $show_on . "',\r\n\t\t\t\t\t\tuse_multilang = '" . $use_multilang . "'\r\n\t\t\t\t\tWHERE id_common = '" . (int) $this->id_common . "' AND lang_code = '" . $lang_code . "'")) { $re = false; } } else { if (!sql_query("\r\n\t\t\t\t\tINSERT INTO " . $this->_getMainTable() . "\r\n\t\t\t\t\t(type_field, id_common, lang_code, translation, show_on_platform, use_multilang) VALUES\r\n\t\t\t\t\t('" . $this->getFieldType() . "', '" . (int) $this->id_common . "', '" . $lang_code . "', '" . $translation . "', '" . $show_on . "', '" . $use_multilang . "') ")) { $re = false; } } } Util::jump_to($back . '&result=' . ($re ? 'success' : 'fail')); } //load value form database $re_trans = sql_query("\r\n\t\tSELECT lang_code, translation, show_on_platform, use_multilang\r\n\t\tFROM " . $this->_getMainTable() . "\r\n\t\tWHERE id_common = '" . $this->id_common . "'"); while (list($l_code, $trans, $show_on, $db_use_multilang) = sql_fetch_row($re_trans)) { $translation[$l_code] = $trans; if (!isset($show_on_platform)) { $show_on_platform = array_flip(explode(',', $show_on)); } if (!isset($use_multilang)) { $use_multilang = $db_use_multilang; } } require_once _base_ . '/lib/lib.form.php'; $form = new Form(); $out->setWorkingZone('content'); $out->add('<div class="std_block">'); $out->add($form->openForm('create_' . $this->getFieldType(), $this->getUrl()) . $form->openElementSpace() . $form->getHidden('type_field', 'type_field', $this->getFieldType()) . $form->getHidden('id_common', 'id_common', $this->id_common) . $form->getHidden('back', 'back', $back_coded)); $mand_lang = getLanguage(); foreach ($array_lang as $k => $lang_code) { $out->add($form->getTextfield(($mand_lang == $lang_code ? '<span class="mandatory">*</span>' : '') . $lang_code, 'new_freetext_' . $lang_code, 'new_freetext[' . $lang_code . ']', 255, isset($translation[$lang_code]) ? $translation[$lang_code] : '', $lang_code . ' ' . $lang->def('_FIELD_NAME'))); } $GLOBALS['page']->add($this->getMultiLangCheck($use_multilang), 'content'); $GLOBALS['page']->add($this->getShowOnPlatformFieldset($show_on_platform), 'content'); $out->add($form->closeElementSpace() . $form->openButtonSpace() . $form->getButton('save_field', 'save_field_' . $this->getFieldType(), $std_lang->def('_SAVE', 'standard')) . $form->getButton('undo', 'undo', $std_lang->def('_UNDO', 'standard')) . $form->closeButtonSpace() . $form->closeForm()); $out->add('</div>'); }
function show_personal_media(&$out, &$lang) { if (!canAccessPersonalMedia()) { die("You can't access!"); } require_once _base_ . '/lib/lib.table.php'; require_once _base_ . '/lib/lib.mimetype.php'; require_once _base_ . '/lib/lib.multimedia.php'; $url = getPopupBaseUrl(); $tab = new Table(); $user_id = (int) Docebo::user()->getIdSt(); //if(Get::sett('hteditor') == 'tinymce') { $GLOBALS['page']->add('' . '<script type="text/javascript" type="text/javascript" src="' . Get::rel_path('base') . '/addons/tiny_mce/tiny_mce_popup.js"></script>', 'page_head'); $GLOBALS['page']->add('<script type="text/javascript">' . 'var FileBrowserDialogue = { init : function () { // Here goes your code for setting your custom things onLoad. var allLinks = document.getElementsByTagName("link"); allLinks[allLinks.length-1].parentNode.removeChild(allLinks[allLinks.length-1]); }, mySubmit : function (url) { var URL = url; var win = tinyMCEPopup.getWindowArg("window"); // insert information now win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = URL; // for image browsers: update image dimensions if(win.ImageDialog) { if (win.ImageDialog.getImageData) win.ImageDialog.getImageData(); if (win.ImageDialog.showPreviewImage) win.ImageDialog.showPreviewImage(URL); } // close popup window tinyMCEPopup.close(); } } tinyMCEPopup.onInit.add(FileBrowserDialogue.init, FileBrowserDialogue); ' . '</script>', 'page_head'); //} $head = array($lang->def("_PREVIEW"), $lang->def("_TYPE"), $lang->def("_FILENAME")); $head[] = "<img src=\"" . getPathImage() . "standard/download.png\" alt=\"" . $lang->def("_ATTACHMENT") . "\" title=\"" . $lang->def("_ATTACHMENT") . "\" />"; $head[] = "<img src=\"" . getPathImage() . "standard/delete.png\" alt=\"" . $lang->def("_DEL") . "\" title=\"" . $lang->def("_DEL") . "\" />"; $head_type = array('preview80', 'image', '', 'image', 'image'); $tab->setColsStyle($head_type); $tab->addHead($head); $path = (strlen(dirname($_SERVER['PHP_SELF'])) != 1 ? dirname($_SERVER['PHP_SELF']) : '') . '/'; $path .= $GLOBALS["where_files_relative"]; $site_url = "http://" . $_SERVER['HTTP_HOST'] . $path . '/common/users/'; $qtxt = "\r\n\tSELECT *\r\n\tFROM " . $GLOBALS["prefix_fw"] . "_user_file\r\n\tWHERE user_idst='" . $user_id . "'"; $q = sql_query($qtxt); if ($q && mysql_num_rows($q) > 0) { while ($row = mysql_fetch_array($q)) { $rowcnt = array(); if (!empty($row["media_url"])) { $rowcnt[] = " "; } else { $file = _USER_FPATH . rawurlencode($row["real_fname"]); $rowcnt[] = "<div style=\"text-align: center;\">" . '<a href="#" onclick="javascript:window.open(\'' . $file . '\',\'\');return false;">' . "<img height=\"120\" src=\"" . $file . "\" alt=\"" . $row["fname"] . "\" title=\"" . $row["fname"] . "\" /></a></div>"; } $img = "<img src=\"" . getPathImage('fw') . mimeDetect($file) . "\" alt=\"" . $row["fname"] . "\" title=\" "; $img .= $row["fname"] . "\" />\n"; $rowcnt[] = $img; $rowcnt[] = $row["fname"]; if (!empty($row["media_url"])) { $type = getMediaType($row["media_url"]); } else { $type = getMediaType($row["fname"]); } $sel_url = $url . "&op=select&from=personal&type=" . $type . "&item_id=" . $row["id"]; $img = "<img src=\"" . getPathImage() . "standard/download.png\" alt=\"" . $lang->def("_ATTACHMENT") . "\" title=\"" . $lang->def("_ATTACHMENT") . "\" />\n"; $rowcnt[] = '<a href="' . $sel_url . '" ' . (Get::sett('hteditor') == 'tinymce' ? 'onclick="FileBrowserDialogue.mySubmit(\'' . $site_url . $row["real_fname"] . '\'); return false;"' : '') . '>' . $img . "</a>\n"; $img = "<img src=\"" . getPathImage('fw') . "standard/delete.png\" alt=\"" . $lang->def("_DEL") . "\" title=\"" . $lang->def("_DEL") . "\" />\n"; $rowcnt[] = "<a href=\"" . $url . "&op=delpersonal&item_id=" . $row["id"] . "\">" . $img . "</a>\n"; $tab->addBody($rowcnt); } } $url = getPopupBaseUrl() . "&op=addpersonal"; $tab->addActionAdd("<a href=\"" . $url . "\">" . $lang->def("_ADD") . "</a>"); if (isset($_GET['result'])) { switch ($_GET['result']) { case "invalid_ext": $GLOBALS['page']->add(getErrorUi($lang->def('_INVALID_EXTENSION'))); break; case "upload_err": $GLOBALS['page']->add(getErrorUi($lang->def('_ERROR_UPLOAD'))); break; case "upload_ok": $GLOBALS['page']->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); break; } } $GLOBALS['page']->add($tab->getTable()); }
function viewUserEvent() { checkPerm('view'); require_once _base_ . '/lib/lib.navbar.php'; require_once _base_ . '/lib/lib.table.php'; $lang =& DoceboLanguage::createInstance('reservation'); $id_event = importVar('id_event', true, 0); $mod_perm = checkPerm('mod', true); $out = $GLOBALS['page']; $out->setWorkingZone('content'); $man_res = new Man_Reservation(); $acl =& Docebo::user()->getAcl(); $acl_man =& Docebo::user()->getAclManager(); $user_idst = getLogUserId(); $user_subscribed = array(); $user_sunscribed = $man_res->getSubscribedUserIdst($id_event); $user_info = array(); $user_info =& $acl_man->getUsers($user_sunscribed); $out->add(getTitleArea($lang->def('_VIEW_EVENT_USER'), '', $lang->def('_EVENT')) . '<div class="std_block">'); $error = importVar('error', false, ''); if ($error !== '') { switch ($error) { case 'del_registration': $out->add(getErrorUi($lang->def('_DEL_REGISTRATION_ERROR'))); break; } } if ($user_info) { $tb = new Table(10, $lang->def('_RESERVATION_CAPTION'), $lang->def('_RESERVATION_SUMMARY')); $tb->initNavBar('ini', 'button'); $ini = $tb->getSelectedElement(); $cont_h = array($lang->def('_USERNAME'), $lang->def('_FIRSTNAME'), $lang->def('_LASTNAME'), $lang->def('_EMAIL')); $type_h = array('', '', '', ''); if ($mod_perm) { $cont_h = array($lang->def('_USERNAME'), $lang->def('_FIRSTNAME'), $lang->def('_LASTNAME'), $lang->def('_EMAIL'), '<img src="' . getPathImage() . '/standard/delete.png" title="' . $lang->def('_REM_USER') . '" alt="' . $lang->def('_REM_USER') . '" />'); $type_h = array('', '', '', '', 'img'); } $tb->setColsStyle($type_h); $tb->addHead($cont_h); if ($user_info) { foreach ($user_info as $info_user) { $count = array(); $count[] = $acl_man->relativeId($info_user[ACL_INFO_USERID]); $count[] = $info_user[ACL_INFO_FIRSTNAME]; $count[] = $info_user[ACL_INFO_LASTNAME]; $count[] = $info_user[ACL_INFO_EMAIL]; $count[] = '<a href="index.php?modname=reservation&op=del_registration&id_user='******'&id_event=' . $id_event . '"><img src="' . getPathImage() . '/standard/delete.png" title="' . $lang->def('_REM_USER') . '" alt="' . $lang->def('_REM_USER') . '" /></a>'; $tb->addBody($count); } } if ($mod_perm) { $tb->addActionAdd('<a href="index.php?modname=reservation&op=add_event"> <img src="' . getPathImage() . 'standard/add.png" title="' . $lang->def('_NEW_EVENT') . '" alt="' . $lang->def('_NEW_EVENT') . '" /> ' . $lang->def('_NEW_EVENT') . '</a>'); } $out->add($tb->getTable() . $tb->getNavBar($ini, count($user_info))); $out->add('<a href="index.php?modname=reservation&op=excel&id_event=' . $id_event . '" target="_blank">' . $lang->def('_EXPORT_XLS') . '</a>', 'content'); } else { $out->add($lang->def('_NO_USERS_FOUND'), 'content'); } $out->add(getBackUi('index.php?modname=reservation&op=view_registration', $lang->def('_BACK')), 'content'); $out->add('</div>', 'content'); }
/** * this function modify a question * * @param string $back_poll indicates the return url * @return nothing * * @access public * @author Fabio Pirovano (fabio@docebo.com) */ function edit($back_poll) { $lang =& DoceboLanguage::createInstance('poll'); require_once _base_ . '/lib/lib.form.php'; $url_encode = htmlentities(urlencode($back_poll)); //manage number of answer if (isset($_POST['save_question'])) { //update question $ins_query = "\r\n\t\t\tUPDATE " . $GLOBALS['prefix_lms'] . "_pollquest\r\n\t\t\tSET id_category = '" . (int) $_POST['id_category'] . "',\r\n\t\t\t\ttype_quest = '" . $this->getQuestionType() . "',\r\n\t\t\t\ttitle_quest = '" . $_POST['title_quest'] . "'\r\n\t\t\tWHERE id_quest = '" . (int) $this->id . "'"; if (!sql_query($ins_query)) { getErrorUi($lang->def('_POLL_ERR_INS_QUEST') . getBackUi('index.php?modname=question_poll&op=edit&type_quest=' . $this->getQuestionType() . '&id_quest=' . $this->id . '&back_poll=' . $url_encode, $lang->def('_BACK'))); } //update answer if (!isset($_POST['is_correct'])) { $_POST['is_correct'] = -1; } $min_value = Get::req('min_value', DOTY_INT, 0); $max_value = Get::req('max_value', DOTY_INT, 0); $step_value = (double) str_replace(',', '.', $_POST['step_value']); if ($min_value >= $max_value || $step_value == 0) { $GLOBALS['page']->add(getErrorUi($lang->def('_POLL_ERR_INS_ANSWER') . getBackUi(str_replace('&', '&', $back_poll), $lang->def('_BACK'))), 'content'); } else { $del_answer_query = "DELETE FROM " . $GLOBALS['prefix_lms'] . "_pollquestanswer\r\n\t\t\t\t\t\t\t\t\tWHERE id_quest = '" . (int) $this->id . "'"; if (!sql_query($del_answer_query)) { getErrorUi($lang->def('_POLL_ERR_INS_ANSWER') . getBackUi(str_replace('&', '&', $back_poll), $lang->def('_BACK'))); } else { $query = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_pollquestanswer" . " (id_quest, answer, sequence)" . " VALUES ('" . $this->id . "', '" . $min_value . "', '0')," . " ('" . $this->id . "', '" . $max_value . "', '1')," . " ('" . $this->id . "', '" . $step_value . "', '2');"; if (!sql_query($query)) { getErrorUi($lang->def('_POLL_ERR_INS_ANSWER') . getBackUi(str_replace('&', '&', $back_poll), $lang->def('_BACK'))); } else { Util::jump_to($back_poll); } } } } //insert form require_once _lms_ . '/lib/lib.questcategory.php'; $categories = Questcategory::getCategory(); //writing difficult //load data list($sel_cat, $quest) = sql_fetch_row(sql_query("\r\n\t\tSELECT id_category, title_quest\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_pollquest\r\n\t\tWHERE id_quest = '" . (int) $this->id . "'")); $re_answer = sql_query("\r\n\t\tSELECT id_answer, answer\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_pollquestanswer\r\n\t\tWHERE id_quest = '" . (int) $this->id . "'\r\n\t\tORDER BY sequence"); $array_answer = array(); while (list($id_answer, $answer) = sql_fetch_row($re_answer)) { $array_answer[] = $answer; } if (!empty($array_answer)) { $min_value = $array_answer[0]; $max_value = $array_answer[1]; $step_value = $array_answer[2]; } else { $min_value = ''; $max_value = ''; $step_value = '1'; } $GLOBALS['page']->add(getTitleArea($lang->def('_POLL_SECTION'), 'poll') . '<div class="std_block">' . getBackUi(str_replace('&', '&', $back_poll), $lang->def('_BACK')) . '<div class="title_big">' . $lang->def('_QUEST_ACRN_' . strtoupper($this->getQuestionType())) . ' - ' . $lang->def('_QUEST_' . strtoupper($this->getQuestionType())) . '</div><br />' . Form::openForm('form_add_quest', 'index.php?modname=question_poll&op=edit') . Form::openElementSpace() . Form::getHidden('type_quest', 'type_quest', $this->getQuestionType()) . Form::getHidden('id_quest', 'id_quest', $this->id) . Form::getHidden('back_poll', 'back_poll', $url_encode) . Form::getTextarea($lang->def('_POLL_QUEST_TITLE'), 'title_quest', 'title_quest', isset($_POST['title_quest']) ? stripslashes($_POST['title_quest']) : $quest) . Form::getDropdown($lang->def('_CATEGORY'), 'id_category', 'id_category', $categories, isset($_POST['id_category']) ? $_POST['id_category'] : $sel_cat) . '<div class="no_float"></div><br />' . Form::getTextfield($lang->def('_MIN_VALUE'), 'min_value', 'min_value', 255, $min_value) . Form::getTextfield($lang->def('_MAX_VALUE'), 'max_value', 'max_value', 255, $max_value) . Form::getTextfield($lang->def('_STEP_VALUE'), 'step_value', 'step_value', 255, $step_value), 'content'); $GLOBALS['page']->add(Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('save_question', 'save_question', $lang->def('_SAVE')) . Form::closeButtonSpace() . Form::closeForm() . '</div>', 'content'); }
function create() { checkPerm('mod'); require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; require_once _base_ . '/lib/lib.table.php'; require_once _base_ . '/lib/lib.form.php'; $lang =& DoceboLanguage::createInstance('certificate', 'lms'); $id_certificate = importVar('id_certificate', true, 0); $id_meta = array(); $acl_man =& Docebo::user()->getAclManager(); $first = true; $tot_element = 0; $out =& $GLOBALS['page']; $out->setWorkingZone('content'); $tb = new Table(Get::sett('visuItem'), $lang->def('_META_CERTIFICATE_CREATE_CAPTION'), $lang->def('_META_CERTIFICATE_CREATE_CAPTION')); $tb->initNavBar('ini', 'button'); $ini = $tb->getSelectedElement(); $query = "SELECT idMetaCertificate" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta" . " WHERE idCertificate = '" . $id_certificate . "'"; $result = sql_query($query); while (list($id_meta_temp) = sql_fetch_row($result)) { $id_meta[] = $id_meta_temp; } $query = "SELECT idCourse, idUser" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE status = '" . _CUS_END . "'"; $result = sql_query($query); $user_course_completed = array(); while (list($id_course_t, $id_user_t) = sql_fetch_row($result)) { $user_course_completed[$id_user_t][$id_course_t] = $id_course_t; } $query = "SELECT idMetaCertificate, title" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta"; $result = sql_query($query); $array_title = array(); while (list($id_meta_t, $title_t) = sql_fetch_row($result)) { $array_title[$id_meta_t] = $title_t; } $query = "SELECT idUser, idMetaCertificate, COUNT(*)" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " GROUP BY idUser, idMetaCertificate"; $result = sql_query($query); $array_control = array(); while (list($id_user_t, $id_meta_t, $control_t) = sql_fetch_row($result)) { $array_control[$id_user_t][$id_meta_t] = $control_t; } if (isset($_POST['undo_filter_create'])) { unset($_POST['filter_username']); unset($_POST['filter_firstname']); unset($_POST['filter_lastname']); unset($_POST['filter_release_status']); } $query = "SELECT m.idUser, u.lastname, u.firstname, u.userid" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course as m" . " JOIN " . $GLOBALS['prefix_fw'] . "_user as u ON u.idst = m.idUser" . " WHERE m.idMetaCertificate IN (" . implode(',', $id_meta) . ")" . (isset($_POST['filter_username']) ? "AND u.userid LIKE '%" . $_POST['filter_username'] . "%'" : '') . (isset($_POST['filter_firstname']) ? "AND u.firstname LIKE '%" . $_POST['filter_firstname'] . "%'" : '') . (isset($_POST['filter_lastname']) ? "AND u.lastname LIKE '%" . $_POST['filter_lastname'] . "%'" : '') . " GROUP BY m.idUser, u.lastname, u.firstname, u.userid" . " ORDER BY u.lastname, u.firstname, u.userid"; $result = sql_query($query); while (list($id_user, $lastname, $firstname, $userid) = sql_fetch_row($result)) { foreach ($id_meta as $idmeta) { if (isset($array_control[$id_user][$idmeta]) && $array_control[$id_user][$idmeta]) { $title = strip_tags($array_title[$idmeta]); $query = "SELECT idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idUser = '******'" . " AND idMetaCertificate = '" . $idmeta . "'"; $result_int = sql_query($query); $control = true; while (list($id_course) = sql_fetch_row($result_int)) { if (!isset($user_course_completed[$id_user][$id_course])) { $control = false; } } if ($control) { $tot_element++; if ($tot_element > $ini && $tot_element <= $ini + Get::sett('visuItem')) { list($is_released) = sql_fetch_row(sql_query("SELECT COUNT(*)" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_assign" . " WHERE idUser = '******'" . " AND idMetaCertificate = '" . $idmeta . "'")); if (!isset($_POST['filter_release_status']) || isset($_POST['filter_release_status']) && $_POST['filter_release_status'] == 0 || isset($_POST['filter_release_status']) && $_POST['filter_release_status'] == '1' && $is_released == 1 || isset($_POST['filter_release_status']) && $_POST['filter_release_status'] == '2' && $is_released == 0) { if ($first) { $first = false; $type_h = array('', '', '', 'image', 'image', 'image'); $cont_h = array($lang->def('_FULLNAME'), $lang->def('_USERNAME'), $lang->def('_TITLE'), Get::img('standard/view.png', Lang::t('_PREVIEW', 'certificate')), Get::img('course/certificate.png', Lang::t('_TAKE_A_COPY', 'certificate')), '<img src="' . getPathImage('lms') . 'standard/delete.png" alt="' . $lang->def('_ALT_REM_META_CERT') . ' : ' . strip_tags($title) . '" />'); $tb->setColsStyle($type_h); $tb->addHead($cont_h); } $cont = array(); $cont[] = $lastname . ' ' . $firstname; $cont[] = $acl_man->relativeId($userid); $cont[] = $title; $cont[] = '<a href="index.php?modname=meta_certificate&op=preview_cert&id_certificate=' . $id_certificate . '&idmeta=' . $idmeta . '&iduser='******'">' . Get::img('standard/view.png', Lang::t('_PREVIEW', 'certificate') . ' : ' . strip_tags($title)) . '</a>'; $cont[] = '<a href="index.php?modname=meta_certificate&op=release_cert&id_certificate=' . $id_certificate . '&idmeta=' . $idmeta . '&iduser='******'">' . Get::img('course/certificate.png', Lang::t('_TAKE_A_COPY', 'certificate') . ' : ' . strip_tags($title)) . '</a>'; if ($is_released) { $cont[] = '<a href="index.php?modname=meta_certificate&op=del_released&id_certificate=' . $id_certificate . '&idmeta=' . $idmeta . '&iduser='******'">' . '<img src="' . getPathImage('lms') . 'standard/delete.png" alt="' . $lang->def('_ALT_REM_META_CERT') . ' : ' . strip_tags($title) . '" /></a>'; } else { $cont[] = ''; } $tb->addBody($cont); } } } } } } require_once _base_ . '/lib/lib.dialog.php'; setupHrefDialogBox('a[href*=del_released]'); $array_release_status = array($lang->def('_ALL') => '0', $lang->def('_ONLY_RELEASED') => '1', $lang->def('_ONLY_NOT_RELEASED') => '2'); if ($first) { $out->add(getTitleArea($lang->def('_TITLE_META_CERTIFICATE_CREATE'), 'certificate') . '<div class="std_block">'); if (isset($_POST['filter'])) { $out->add(Form::openForm('meta_certificate_filter', 'index.php?modname=meta_certificate&op=create&id_certificate=' . $id_certificate) . Form::openElementSpace() . Form::getTextfield($lang->def('_USERNAME'), 'filter_username', 'filter_username', '255', isset($_POST['filter_username']) ? $_POST['filter_username'] : '') . Form::getTextfield($lang->def('_FIRSTNAME'), 'filter_firstname', 'filter_firstname', '255', isset($_POST['filter_firstname']) ? $_POST['filter_firstname'] : '') . Form::getTextfield($lang->def('_LASTNAME'), 'filter_lastname', 'filter_lastname', '255', isset($_POST['filter_lastname']) ? $_POST['filter_lastname'] : '') . Form::getRadioSet($lang->def('_RELEASE_STATUS_FILTER'), 'filter_release_status', 'filter_release_status', $array_release_status, isset($_POST['filter_release_status']) ? $_POST['filter_release_status'] : '0') . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('filter', 'filter', $lang->def('_FILTER')) . Form::getButton('undo_filter_create', 'undo_filter_create', $lang->def('_UNDO_FILTER')) . Form::closeButtonSpace() . Form::closeForm()); } $out->add($lang->def('_NO_USER_FOUND') . getBackUi('index.php?modname=meta_certificate&op=meta_certificate', $lang->def('_BACK')) . '</div>'); } else { $out->add(getTitleArea($lang->def('_TITLE_META_CERTIFICATE_CREATE'), 'certificate') . '<div class="std_block">'); if (isset($_GET['result'])) { switch ($_GET['result']) { case "ok": $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); break; case "err_del_cert": $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); break; } } $out->add(Form::openForm('meta_certificate_filter', 'index.php?modname=meta_certificate&op=create&id_certificate=' . $id_certificate) . Form::openElementSpace() . Form::getTextfield($lang->def('_USERNAME'), 'filter_username', 'filter_username', '255', isset($_POST['filter_username']) ? $_POST['filter_username'] : '') . Form::getTextfield($lang->def('_FIRSTNAME'), 'filter_firstname', 'filter_firstname', '255', isset($_POST['filter_firstname']) ? $_POST['filter_firstname'] : '') . Form::getTextfield($lang->def('_LASTNAME'), 'filter_lastname', 'filter_lastname', '255', isset($_POST['filter_lastname']) ? $_POST['filter_lastname'] : '') . Form::getRadioSet($lang->def('_RELEASE_STATUS_FILTER'), 'filter_release_status', 'filter_release_status', $array_release_status, isset($_POST['filter_release_status']) ? $_POST['filter_release_status'] : '0') . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('filter', 'filter', $lang->def('_FILTER')) . Form::getButton('undo_filter_create', 'undo_filter_create', $lang->def('_UNDO_FILTER')) . Form::closeButtonSpace() . $tb->getTable() . $tb->getNavBar($ini, $tot_element) . Form::closeForm() . getBackUi('index.php?modname=meta_certificate&op=meta_certificate', $lang->def('_BACK')) . '</div>'); } }
function ioTask_UITaskNew(&$module, $action, $subop) { checkPerm('view'); require_once _base_ . '/lib/lib.form.php'; $connMgr =& $module->get_connMgr(); $lang =& $module->get_lang(); $out =& $module->get_out(); $form = new Form(); $old_name = ""; if ($subop == 'edit_task') { $old_name = key($action); $params = $connMgr->get_task_byname($old_name); } else { $params = array(CONNMGR_TASK_NAME => $lang->def('_TASK_NAME_EXAMPLE'), CONNMGR_TASK_DESCRIPTION => '', CONNMGR_TASK_SOURCE => '', CONNMGR_TASK_DESTINATION => '', CONNMGR_TASK_SCHEDTYPE => 'at', CONNMGR_TASK_SCHEDULE => array('qt' => '12:27', 'um' => 'hour'), CONNMGR_TASK_IMPORT_TYPE => TASK_IMPORT_TYPE_INSERTONLY, CONNMGR_TASK_MAP => array()); } if (isset($_POST['step'])) { $step = $_POST['step']; $old_name = $_POST['old_name']; $post_params = $_POST['task_params']; $params = unserialize(urldecode($post_params['memory'])); foreach ($post_params as $key => $val) { if ($key !== 'memory') { $params[$key] = $val; } } if ($step == 1) { // load the map from DoceboImport object $dimport = new DoceboImport(); $params[CONNMGR_TASK_MAP] = $dimport->parse_map(); } } else { $step = 0; } if (is_array($action)) { if (key($action) == 'finish') { if ($connMgr->save_task($old_name, $params)) { Util::jump_to('index.php?modname=iotask&op=display&addtaskok&gotab=tasks'); } else { $out->add(getErrorUi($lang->def('_ERROR_SAVE_TASK') . '<br />' . $connMgr->get_last_error())); } } elseif (key($action) == 'next') { $step++; } elseif (key($action) == 'prev') { $step--; } } $out->setWorkingZone('content'); $out->add(getTitleArea($lang->def('_TASKS'), 'iotask')); $out->add('<div class="std_block">'); $out->add($form->getFormHeader($lang->def('_ADD_NEW_TASK'))); $out->add($form->openForm('task_new', 'index.php?modname=iotask&op=display&addtask&gotab=tasks')); $out->add($form->openElementSpace()); $out->add($form->getHidden('task_memory', 'task_params[memory]', urlencode(serialize($params)))); $out->add($form->getHidden('step', 'step', $step)); $out->add($form->getHidden('old_name', 'old_name', $old_name)); switch ($step) { case 0: ioTask_UITaskNew_step0($module, $params); break; case 1: ioTask_UITaskNew_step1($module, $params); break; case 2: ioTask_UITaskNew_step2($module, $params); break; } $out->add($form->closeElementSpace()); $out->add($form->openButtonSpace()); if ($step > 0) { $out->add($form->getButton('prev', 'action[new_task][prev]', $lang->def('_PREV'))); } if ($step < 2) { $out->add($form->getButton('next', 'action[new_task][next]', $lang->def('_NEXT'))); } if ($step == 2) { $out->add($form->getButton('finish', 'action[new_task][finish]', $lang->def('_FINISH'))); } $out->add($form->getButton('cancel', 'cancel', $lang->def('_CANCEL'))); $out->add($form->closeButtonSpace()); $out->add($form->closeForm()); $out->add('</div>'); }
function webpages() { checkPerm('view'); require_once _base_ . '/lib/lib.table.php'; require_once _base_ . '/lib/lib.form.php'; $mod_perm = checkPerm('mod', true); $lang =& DoceboLanguage::createInstance('admin_webpages', 'lms'); $out =& $GLOBALS['page']; $out->setWorkingZone('content'); $tb = new Table(0, $lang->def('_WEBPAGES_CAPTION')); $nav_bar = new NavBar('ini', Get::sett('visuItem'), 0, 'button'); $ini = $nav_bar->getSelectedElement(); //search query $query_pages = "\r\n\tSELECT idPages, title, publish, in_home, sequence \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_webpages \r\n\tORDER BY sequence \r\n\tLIMIT {$ini}," . Get::sett('visuItem'); $num_query_pages = "\r\n\tSELECT COUNT(*) \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_webpages "; //do query $re_pages = sql_query($query_pages); list($tot_pages) = sql_fetch_row(sql_query($num_query_pages)); $nav_bar->setElementTotal($tot_pages); //-Table--------------------------------------------------------- $cont_h = array($lang->def('_TITLE'), '<img src="' . getPathImage() . 'webpages/home.png" alt="' . $lang->def('_ALT_HOME') . '" title="' . $lang->def('_TITLE_HOME') . '" />', '<img src="' . getPathImage() . 'standard/publish.png" alt="' . $lang->def('_PUBLISH') . '" title="' . $lang->def('_STATUS') . '" />'); $type_h = array('', 'image', 'image', 'image'); if ($mod_perm) { $cont_h[] = '<img src="' . getPathImage() . 'standard/down.png" alt="' . $lang->def('_DOWN') . '" title="' . $lang->def('_MOVE_DOWN') . '" />'; $type_h[] = 'image'; $cont_h[] = '<img src="' . getPathImage() . 'standard/up.png" alt="' . $lang->def('_UP') . '" title="' . $lang->def('_MOVE_UP') . '" />'; $type_h[] = 'image'; $cont_h[] = '<img src="' . getPathImage() . 'standard/edit.png" alt="' . $lang->def('_MOD') . '" title="' . $lang->def('_MOD') . '" />'; $type_h[] = 'image'; $cont_h[] = '<img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL') . '" title="' . $lang->def('_DEL') . '" />'; $type_h[] = 'image'; } $tb->setColsStyle($type_h); $tb->addHead($cont_h); $i = 1; while (list($id, $title, $publish, $in_home) = sql_fetch_row($re_pages)) { $cont = array($title, $in_home ? '<img src="' . getPathImage() . 'webpages/home.png" alt="' . $lang->def('_ALT_HOME') . '" title="' . $lang->def('_TITLE_HOME') . '" />' : ''); if ($publish) { $cont[] = '<a href="index.php?modname=webpages&op=unpublish&id_page=' . $id . '" title="' . $lang->def('_PUBLISH') . ' : ' . $title . '">' . '<img src="' . getPathImage() . 'standard/publish.png" alt="' . $lang->def('_PUBLISH') . ' : ' . $title . '" /></a>'; } else { $cont[] = '<a href="index.php?modname=webpages&op=publish&id_page=' . $id . '" title="' . $lang->def('_UNPUBLISH') . ' : ' . $title . '">' . '<img src="' . getPathImage() . 'standard/unpublish.png" alt="' . $lang->def('_UNPUBLISH') . ' : ' . $title . '" /></a>'; } if ($mod_perm) { if ($i != $tot_pages - $ini * Get::sett('visuItem')) { $cont[] = '<a href="index.php?modname=webpages&op=movedown&id_page=' . $id . '" title="' . $lang->def('_MOVE_DOWN') . ' : ' . $title . '">' . '<img src="' . getPathImage() . 'standard/down.png" alt="' . $lang->def('_DOWN') . ' : ' . $title . '" /></a>'; } else { $cont[] = ' '; } if ($i != 1 || $ini != 0) { $cont[] = '<a href="index.php?modname=webpages&op=moveup&id_page=' . $id . '" title="' . $lang->def('_MOVE_UP') . ' : ' . $title . '">' . '<img src="' . getPathImage() . 'standard/up.png" alt="' . $lang->def('_UP') . ' : ' . $title . '" /></a>'; } else { $cont[] = ' '; } $cont[] = '<a href="index.php?modname=webpages&op=modpages&id_page=' . $id . '" title="' . $lang->def('_MOD') . ' : ' . $title . '">' . '<img src="' . getPathImage() . 'standard/edit.png" alt="' . $lang->def('_MOD') . ' : ' . $title . '" /></a>'; $cont[] = '<a href="index.php?modname=webpages&op=delpages&id_page=' . $id . '" title="' . $lang->def('_DEL') . ' : ' . $title . '">' . '<img src="' . getPathImage() . 'standard/delete.png" alt="' . $lang->def('_DEL') . ' : ' . $title . '" /></a>'; } $tb->addBody($cont); ++$i; } if ($mod_perm) { $tb->addActionAdd('<a class="ico-wt-sprite subs_add" href="index.php?modname=webpages&op=addpages" title="' . Lang::t('_ADD', 'webpages') . '"><span>' . Lang::t('_ADD', 'webpages') . '</span></a>'); } //visualize result $out->add(getTitleArea($lang->def('_TITLE_WEBPAGES'), 'webpages') . '<div class="std_block">'); if (isset($_GET['result'])) { switch ($_GET['result']) { case "ok": $out->add(getResultUi($lang->def('_OPERATION_SUCCESSFUL'))); break; case "err": $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); break; case "err_del": $out->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); break; } } $out->add($tb->getTable() . Form::openForm('nav_webpages', 'index.php?modname=webpages&op=webpages') . $nav_bar->getNavBar($ini) . Form::closeForm() . '</div>'); if ($mod_perm) { require_once _base_ . '/lib/lib.dialog.php'; setupHrefDialogBox('a[href*=delpages]'); } }
function delfriend(&$url) { checkPerm('view'); require_once $GLOBALS['where_framework'] . '/lib/lib.myfriends.php'; $lang =& DoceboLanguage::createInstance('myfriends', 'lms'); $my_fr = new MyFriends(getLogUserId()); $id_friend = importVar('id_friend', true, 0); $GLOBALS['page']->add(getTitleArea(array($url->getUrl() => $lang->def('_MY_FRIENDS'), $lang->def('_REMOVE_FRIEND')), 'myfriends') . '<div class="std_block">', 'content'); if (isset($_GET['confirm'])) { if ($my_fr->delFriend($id_friend)) { Util::jump_to($url->getUrl('result=ok_del')); } $GLOBALS['page']->add(getErrorUi($lang->def('_ERR_REMOVE_FRIEND'))); } $ui = $my_fr->getFriendsInfo(array($id_friend)); if ($ui == false) { $GLOBALS['page']->add(getErrorUi($lang->def('_INVALID_FRIEND'))); } else { $acl_man =& Docebo::user()->getAclManager(); $ui = current($ui); $GLOBALS['page']->add(getDeleteUi($lang->def('_AREYOUSURE'), '<span>' . $lang->def('_USERNAME') . ' : </span>' . $acl_man->relativeId($ui[ACL_INFO_USERID]) . '<br />' . '<span>' . $lang->def('_USERCOMPLETENAME') . ' : </span>' . $ui[ACL_INFO_LASTNAME] . ($ui[ACL_INFO_LASTNAME] != '' ? ' ' : '') . $ui[ACL_INFO_FIRSTNAME], true, $url->getUrl('op=delfriend&id_friend=' . $id_friend . '&confirm=1'), $url->getUrl()), 'content'); } $GLOBALS['page']->add('</div>', 'content'); }
function schedule_recipients($idrep) { checkPerm('mod'); $lang =& DoceboLanguage::createInstance('report', 'framework'); if (Get::req('schedule_undo', DOTY_MIXED, false)) { //$back_op = Get::req() $back_url = 'index.php?modname=report&op=schedulelist&idrep=' . $idrep; Util::jump_to($back_url); } $back_url = 'index.php?modname=report&op=report_schedule&idrep=' . $idrep; $jump_url = 'index.php?modname=report&op=report_schedule&idrep=' . $idrep; $end_url = 'index.php?modname=report&op=schedulelist&idrep=' . $idrep; 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.report.php'; //require_once($GLOBALS['where_lms'].'/lib/lib.course.php'); $aclManager = new DoceboACLManager(); $user_select = new UserSelector(); $lang =& DoceboLanguage::createInstance('report', 'framework'); if (!isset($_POST['is_updating'])) { //save filter, if needed require_once $GLOBALS['where_lms'] . '/lib/lib.report.php'; //save schedulation data in session if (!isset($_SESSION['schedule_tempdata'])) { $_SESSION['schedule_tempdata'] = array(); } switch ($_POST['cron_radio']) { case 'day': $sched_info = ''; break; case 'week': $sched_info = $_POST['cron_weekly']; break; case 'month': $sched_info = $_POST['cron_monthly']; break; default: $sched_info = ''; break; } $sched_time = ''; //$_POST['cron_hours'].':'.$_POST['cron_minutes'].':00'; $ref =& $_SESSION['schedule_tempdata']; $ref['name'] = $_POST['sched_name']; $ref['period'] = $_POST['cron_radio']; $ref['period_info'] = $sched_info; $ref['time'] = $sched_time; $user_select->resetSelection($ref['recipients']); } $save_schedule_failed = false; if (isset($_POST['cancelselector'])) { //Util::jump_to($back_url); Util::jump_to('index.php?modname=report&op=schedulelist&idrep=' . $idrep); } elseif (isset($_POST['okselector'])) { $ref =& $_SESSION['schedule_tempdata']; $entity_selected = $user_select->getSelection($_POST); //$_temp = $ref['recipients']; $_name = $ref['name']; $_time = $ref['time']; $_period = $ref['period'] . ',' . $ref['period_info']; //get current saved report ID from session (check if report is saved, otherwise -> error) if (isset($_SESSION['schedule_update'])) { $sched = report_update_schedulation($_SESSION['schedule_update'], $_name, $_period, $_time, $entity_selected); } else { $id_report = $idrep; //$_SESSION['report_saved_data']['id']; $sched = report_save_schedulation($id_report, $_name, $_period, $_time, $entity_selected); } if ($sched !== false) { //unset($_SESSION['schedule_tempdata']); Util::jump_to($end_url); } else { $save_schedule_failed = true; } } $error_info = ''; if ($save_schedule_failed) { //$page_title .= ''; //... //addforminfo $error_info = getErrorUi($lang->def('_OPERATION_FAILURE')); } //draw selector $user_select->show_user_selector = TRUE; $user_select->show_group_selector = TRUE; $user_select->show_orgchart_selector = TRUE; $user_select->show_orgchart_simple_selector = false; cout(getTitleArea($lang->def('_SCHEDULE')), 'content'); //add beck url cout('<div class="std_block">', 'content'); //$user_select->setPageTitle($page_title); $user_select->addFormInfo(getBackUi($back_url, $lang->def('_BACK'), 'content') . Form::getHidden('next_step', 'next_step', 'sched_setrecipients') . Form::getHidden('is_updating', 'is_updating', 1)); $user_select->loadSelector(Util::str_replace_once('&', '&', $jump_url), false, true); cout('</div>', 'content'); }