/** * @return string contains the displayable information for a selected group * * @access public */ function getPageWithElement($regroup) { require_once _base_ . '/lib/lib.form.php'; if ($regroup == 'templ_man') { return $this->_maskTemplateManager(); } elseif ($regroup == 'suiteman') { return $this->_maskSuiteManager(); } $lang =& DoceboLanguage::createInstance('configuration', 'framework'); $reSetting = sql_query("\r\n\t\tSELECT param_name, param_value, value_type, max_size\r\n\t\tFROM " . $this->table . "\r\n\t\tWHERE regroup = '" . $regroup . "' AND\r\n\t\t\thide_in_modify = '0'\r\n\t\tORDER BY regroup, pack, sequence"); $html = ''; while (list($var_name, $var_value, $value_type, $max_size) = sql_fetch_row($reSetting)) { $i_after = ' <span class="ico-tooltip" id="tt_target_' . $var_name . '" title="' . $lang->def('_CONF_DESCR_' . strtoupper($var_name)) . '">info</span>'; switch ($value_type) { case "register_type": //on off $html .= Form::getOpenCombo($lang->def('_' . strtoupper($var_name))) . Form::getLineRadio('', 'label_bold', $lang->def('_REGISTER_TYPE_SELF'), $var_name . '_self', 'option[' . $var_name . ']', 'self', $var_value == 'self') . Form::getLineRadio('', 'label_bold', $lang->def('_REGISTER_TYPE_SELF_OPTIN'), $var_name . '_self_optin', 'option[' . $var_name . ']', 'self_optin', $var_value == 'self_optin') . Form::getLineRadio('', 'label_bold', $lang->def('_REGISTER_TYPE_MODERATE'), $var_name . '_moderate', 'option[' . $var_name . ']', 'moderate', $var_value == 'moderate') . Form::getLineRadio('', 'label_bold', $lang->def('_REGISTER_TYPE_ADMIN'), $var_name . '_admin', 'option[' . $var_name . ']', 'admin', $var_value == 'admin') . Form::getCloseCombo($i_after); break; case "register_tree": $register_possible_option = array('off' => $lang->def('_DONT_USE_TREE_REGISTRATION'), 'manual_insert' => $lang->def('_USE_WITH_MANUALEINSERT'), 'selection' => $lang->def('_USE_WITH_SELECTION')); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $register_possible_option, $var_value, $i_after); break; case "field_tree": require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; $fl = new FieldList(); $all_fields = $fl->getAllFields(false); $fields[0] = $lang->def('_NO_VALUE'); foreach ($all_fields as $key => $val) { $fields[$val[FIELD_INFO_ID]] = $val[FIELD_INFO_TRANSLATION]; } $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $fields, $var_value, $i_after); break; case "save_log_attempt": //on off $html .= Form::getOpenCombo($lang->def('_' . strtoupper($var_name))) . Form::getLineRadio('', 'label_bold', $lang->def('_SAVE_LA_ALL'), $var_name . '_all', 'option[' . $var_name . ']', 'all', $var_value == 'all') . Form::getLineRadio('', 'label_bold', $lang->def('_SAVE_LA_AFTER_MAX'), $var_name . '_after_max', 'option[' . $var_name . ']', 'after_max', $var_value == 'after_max') . Form::getLineRadio('', 'label_bold', $lang->def('_NO'), $var_name . '_no', 'option[' . $var_name . ']', 'no', $var_value == 'no') . Form::getCloseCombo($i_after); break; case "language": //drop down language $langs = Docebo::langManager()->getAllLangCode(); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $langs, array_search($var_value, $langs), $i_after); break; case "template": //drop down template $templ = getTemplateList(); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $templ, array_search($var_value, $templ), $i_after); break; case "hteditor": //drop down hteditor $ht_edit = getHTMLEditorList(); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $ht_edit, $var_value, $i_after); break; case "layout_chooser": //drop down hteditor $layout = array('left' => Lang::t('_LAYOUT_LEFT'), 'over' => Lang::t('_LAYOUT_OVER'), 'right' => Lang::t('_LAYOUT_RIGHT')); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $layout, $var_value, $i_after); break; case "pubflow_method_chooser": //drop down hteditor $options = array('onestate' => Lang::t('_PUBFLOW_ONESTATE'), 'twostate' => Lang::t('_PUBFLOW_TWOSTATE'), 'advanced' => Lang::t('_PUBFLOW_ADVANCED')); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $options, $var_value, $i_after); break; case "field_select": require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; $fl = new FieldList(); $all_fields = $fl->getAllFields(); $fields = array(); foreach ($all_fields as $key => $val) { $fields[$val[FIELD_INFO_ID]] = $val[FIELD_INFO_TRANSLATION]; } $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $fields, $var_value, $i_after); break; case "sel_sms_gateway": $options = array('0' => Lang::t('_SMS_GATEWAY_AUTO'), '1' => Lang::t('_SMS_GATEWAY_1'), '2' => Lang::t('_SMS_GATEWAY_2'), '3' => Lang::t('_SMS_GATEWAY_3'), '4' => Lang::t('_SMS_GATEWAY_4')); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $options, $var_value, $i_after); break; case "menuvoice": case "menuvoice_course_public": case "layout_chooser": //drop down hteditor $layout = array('left' => Lang::t('_LAYOUT_LEFT'), 'over' => Lang::t('_LAYOUT_OVER'), 'right' => Lang::t('_LAYOUT_RIGHT')); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $layout, $var_value, $i_after); break; case "grpsel_chooser": $layout = array('group' => $lang->def('_GROUPS'), 'orgchart' => $lang->def('_ORGCHART')); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $layout, $var_value, $i_after); break; case "tablist_coursecatalogue": $lang_c =& DoceboLanguage::createInstance('catalogue', 'lms'); $tab_selected = unserialize(urldecode($var_value)); $tab_list = array('time' => $lang_c->def('_TAB_VIEW_TIME'), 'category' => $lang_c->def('_TAB_VIEW_CATEGORY'), 'all' => $lang_c->def('_ALL')); if (Get::sett('use_coursepath') == '1') { $tab_list['pathcourse'] = $lang_c->def('_COURSEPATH'); } if (Get::sett('use_social_courselist') == 'on') { $tab_list['mostscore'] = $lang_c->def('_TAB_VIEW_MOSTSCORE'); $tab_list['popular'] = $lang_c->def('_TAB_VIEW_MOSTPOPULAR'); $tab_list['recent'] = $lang_c->def('_TAB_VIEW_RECENT'); } foreach ($tab_list as $tab_code => $name) { $html .= Form::getCheckbox($name, 'tablist_' . $tab_code, 'tablist[' . $tab_code . ']', 1, isset($tab_selected[$tab_code]), '', $i_after); } break; case "first_coursecatalogue_tab": $lang_c =& DoceboLanguage::createInstance('catalogue', 'lms'); $tab_list = array('time' => $lang_c->def('_TAB_VIEW_TIME'), 'category' => $lang_c->def('_TAB_VIEW_CATEGORY'), 'all' => $lang_c->def('_ALL')); if (Get::sett('use_coursepath') == '1') { $tab_list['pathcourse'] = $lang_c->def('_COURSEPATH'); } if (Get::sett('use_social_courselist') == 'on') { $tab_list['mostscore'] = $lang_c->def('_TAB_VIEW_MOSTSCORE'); $tab_list['popular'] = $lang_c->def('_TAB_VIEW_MOSTPOPULAR'); $tab_list['recent'] = $lang_c->def('_TAB_VIEW_RECENT'); } $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $tab_list, $var_value, $i_after); break; case "tablist_mycourses": //$var_value=deformat($var_value); $arr_value = explode(',', $var_value); //$arr_value=array(); $tab_list = array(); $tab_list[''] = $lang->def('_MYCOURSES_NOTUSED'); $tab_list['status'] = $lang->def('_STATUS'); $tab_list['name'] = $lang->def('_NAME'); $tab_list['code'] = $lang->def('_CODE'); $html .= '<div class="form_line_l"><p>' . '<label class="floating">' . $lang->def('_' . strtoupper($var_name)) . '</label></p>'; for ($i = 0; $i < 3; $i++) { $html .= Form::getInputDropdown('dropdown', $var_name . '_' . $i, "mycourses[{$i}]", $tab_list, isset($arr_value[$i]) ? $arr_value[$i] : '', ''); } $html .= $i_after . '</div>'; break; case "point_field": require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; $fl = new FieldList(); $all_fields = $fl->getAllFields(); $fields[0] = $lang->def('_NO_VALUE'); foreach ($all_fields as $key => $val) { $fields[$val[FIELD_INFO_ID]] = $val[FIELD_INFO_TRANSLATION]; } $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $fields, $var_value, $i_after); break; case "rest_auth_sel_method": $value_set = array($lang->def('_REST_AUTH_UCODE') => 0, $lang->def('_REST_AUTH_TOKEN') => 1); $html .= Form::getRadioSet($lang->def('_REST_AUTH_SEL_METHOD'), $var_name, 'option[' . $var_name . ']', $value_set, $var_value, $i_after); break; // Common types // Common types case "password": $html .= Form::getPassword($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $max_size, $var_value, $i_after); break; case "textarea": $html .= Form::getSimpletextarea($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $var_value, $i_after); break; case "check": $html .= Form::getCheckbox($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', 1, $var_value == 1, '', '', $i_after . ' '); break; case "enum": $html .= Form::getCheckbox($lang->def('_' . strtoupper($var_name)), $var_name . '_on', 'option[' . $var_name . ']', 'on', $var_value == 'on', '', '', $i_after . ' '); break; default: //string or int $html .= Form::getTextfield($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $max_size, $var_value, false, $i_after); } } return $html; }
/** * @return string contains the displayable information for a selected group * * @access public */ function getPageWithElement($regroup) { require_once _base_ . '/lib/lib.form.php'; $lang =& DoceboLanguage::createInstance('configuration', 'lms'); $reSetting = sql_query("\r\n\t\tSELECT param_name, param_value, value_type, max_size \r\n\t\tFROM " . $this->table . " \r\n\t\tWHERE regroup = '" . $regroup . "' AND \r\n\t\t\thide_in_modify = '0'\r\n\t\tORDER BY sequence"); $html = ''; while (list($var_name, $var_value, $value_type, $max_size) = sql_fetch_row($reSetting)) { switch ($value_type) { case "point_field": require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; $fl = new FieldList(); $all_fields = $fl->getAllFields(); $fields[0] = $lang->def('_NO_VALUE'); foreach ($all_fields as $key => $val) { $fields[$val[FIELD_INFO_ID]] = $val[FIELD_INFO_TRANSLATION]; } $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $fields, $var_value); break; case "language": //drop down language $langs = Docebo::langManager()->getAllLangCode(); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $langs, array_search($var_value, $langs)); break; case "template": //drop down template $templ = getTemplateList(); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $templ, array_search($var_value, $templ)); break; case "hteditor": //drop down hteditor $ht_edit = getHTMLEditorList(); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $ht_edit, $var_value); break; case "layout_chooser": //drop down hteditor $layout = array('left' => Lang::t('_LAYOUT_LEFT'), 'over' => Lang::t('_LAYOUT_OVER'), 'right' => Lang::t('_LAYOUT_RIGHT')); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $layout, $var_value); break; case "sel_news": $mode = array('off' => Lang::t('_DONT_SHOW'), 'link' => Lang::t('_SHOW_AS_LINK'), 'block' => Lang::t('_SHOW_AS_BLOCK')); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $mode, $var_value); break; case "enum": //on off $html .= Form::openFormLine() . Form::getInputCheckbox($var_name . '_on', 'option[' . $var_name . ']', 'on', $var_value == 'on', '') . ' ' . Form::getLabel($var_name . '_on', $lang->def('_' . strtoupper($var_name))) . Form::closeFormLine(); break; case "menuvoice": case "menuvoice_course_public": case "check": //on off $html .= Form::getCheckbox($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', 1, $var_value == 1); break; case "tablist_coursecatalogue": $lang_c =& DoceboLanguage::createInstance('catalogue', 'lms'); $tab_selected = unserialize(urldecode($var_value)); $tab_list = array('time' => $lang_c->def('_TAB_VIEW_TIME'), 'category' => $lang_c->def('_TAB_VIEW_CATEGORY'), 'all' => $lang_c->def('_ALL')); if (Get::sett('use_coursepath') == '1') { $tab_list['pathcourse'] = $lang_c->def('_COURSEPATH'); } if (Get::sett('use_social_courselist') == 'on') { $tab_list['mostscore'] = $lang_c->def('_TAB_VIEW_MOSTSCORE'); $tab_list['popular'] = $lang_c->def('_TAB_VIEW_MOSTPOPULAR'); $tab_list['recent'] = $lang_c->def('_TAB_VIEW_RECENT'); } foreach ($tab_list as $tab_code => $name) { $html .= Form::getCheckbox($name, 'tablist_' . $tab_code, 'tablist[' . $tab_code . ']', 1, isset($tab_selected[$tab_code])); } break; case "first_coursecatalogue_tab": $lang_c =& DoceboLanguage::createInstance('catalogue', 'lms'); $tab_list = array('time' => $lang_c->def('_TAB_VIEW_TIME'), 'category' => $lang_c->def('_TAB_VIEW_CATEGORY'), 'all' => $lang_c->def('_ALL')); if (Get::sett('use_coursepath') == '1') { $tab_list['pathcourse'] = $lang_c->def('_COURSEPATH'); } if (Get::sett('use_social_courselist') == 'on') { $tab_list['mostscore'] = $lang_c->def('_TAB_VIEW_MOSTSCORE'); $tab_list['popular'] = $lang_c->def('_TAB_VIEW_MOSTPOPULAR'); $tab_list['recent'] = $lang_c->def('_TAB_VIEW_RECENT'); } $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $tab_list, $var_value); break; case "tablist_mycourses": //$var_value=deformat($var_value); $arr_value = explode(',', $var_value); //$arr_value=array(); $tab_list = array(); $tab_list[''] = $lang->def('_MYCOURSES_NOTUSED'); $tab_list['status'] = $lang->def('_STATUS'); $tab_list['name'] = $lang->def('_NAME'); $tab_list['code'] = $lang->def('_CODE'); $html .= '<div class="form_line_l"><p>' . '<label class="floating">' . $lang->def('_' . strtoupper($var_name)) . '</label></p>'; for ($i = 0; $i < 3; $i++) { $html .= Form::getInputDropdown('dropdown', $var_name . '_' . $i, "mycourses[{$i}]", $tab_list, isset($arr_value[$i]) ? $arr_value[$i] : '', ''); } $html .= '</div>'; break; //string or int //string or int default: $html .= Form::getTextfield($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $max_size, $var_value); } } return $html; }
/** * Assign fields mandatory and user for group **/ function loadAssignField2($groupid) { $arr_fields = $_POST[DIRECTORY_ID][DIRECTORY_OP_ADDFIELD]; $idst_group = $_POST[DIRECTORY_ID]['idst_group']; require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; if (isset($_POST[DIRECTORY_ID]['save_assignfield2'])) { $fl = new FieldList(); $arr_fields_mandatory = $_POST[DIRECTORY_ID]['field_mandatory']; $arr_fields_useraccess = $_POST[DIRECTORY_ID]['field_useraccess']; foreach ($arr_fields as $id_filed => $status) { switch ($status) { case GROUP_FIELD_NO: $fl->removeFieldFromGroup($id_filed, $idst_group); break; case GROUP_FIELD_NORMAL: $fl->addFieldToGroup($id_filed, $idst_group, isset($arr_fields_mandatory[$id_filed]) ? $arr_fields_mandatory[$id_filed] : 'false', isset($arr_fields_useraccess[$id_filed]) ? $arr_fields_useraccess[$id_filed] : 'readonly'); break; } } Util::jump_to('index.php?modname=directory&op=listgroup'); } elseif (isset($_POST[DIRECTORY_ID]['cancel_assignfield'])) { Util::jump_to('index.php?modname=directory&op=listgroup'); } $fl = new FieldList(); $arr_all_fields = $fl->getAllFields(); require_once _base_ . '/lib/lib.form.php'; $form = new Form(); $GLOBALS['page']->setWorkingZone('content'); $GLOBALS['page']->add(getTitleArea($this->lang->def('_GROUPS') . ': ' . $groupid, 'directory_group')); $GLOBALS['page']->add('<div class="std_block">'); $GLOBALS['page']->add($form->openForm('directoryassignfieldgroupmandatory', 'index.php?modname=directory&op=assignfieldmandatory')); $GLOBALS['page']->add($form->openElementSpace()); // print custom fields status $arr_fields_normal = $fl->getFieldsFromIdst(array($idst_group)); $GLOBALS['page']->add($form->getHidden(DIRECTORY_ID . '_idst_group', DIRECTORY_ID . '[idst_group]', $idst_group)); foreach ($arr_fields as $id_filed => $status) { $GLOBALS['page']->add($form->getHidden(DIRECTORY_ID . '_' . $id_filed, DIRECTORY_ID . '[' . DIRECTORY_OP_ADDFIELD . '][' . $id_filed . ']', $status)); } $GLOBALS['page']->add($form->openFormLine() . '<div class="label_effect"> </div>' . '<div class="label_head">' . $this->lang->def('_MANDATORY') . '</div>' . '<div class="label_head">' . $this->lang->def('_DIRECTORY_GROUP_FIELD_WRITE') . '</div>' . $form->closeFormLine()); // checkbox for mandatory and useraccess foreach ($arr_fields as $id_filed => $status) { if ($status == GROUP_FIELD_NORMAL) { $GLOBALS['page']->add($form->openFormLine() . '<div class="label_effect">' . $arr_all_fields[$id_filed][FIELD_INFO_TRANSLATION] . '</div>' . '<input class="label_head" type="checkbox"' . ' id="' . DIRECTORY_ID . '_' . $id_filed . '_mandatory"' . ' name="' . DIRECTORY_ID . '[field_mandatory][' . $id_filed . ']"' . ' value="true"'); if (isset($arr_fields_normal[$id_filed]) && $arr_fields_normal[$id_filed][FIELD_INFO_MANDATORY] == 'true') { $GLOBALS['page']->add(' checked="checked"'); } $GLOBALS['page']->add(' />'); $GLOBALS['page']->add($form->getLabel(DIRECTORY_ID . '_' . $id_filed . '_mandatory', $this->lang->def('_MANDATORY'), 'label_bold access-only')); // checkbox for useraccess $GLOBALS['page']->add('<input class="label_head" type="checkbox"' . ' id="' . DIRECTORY_ID . '_' . $id_filed . '_useraccess"' . ' name="' . DIRECTORY_ID . '[field_useraccess][' . $id_filed . ']"' . ' value="readwrite"'); if (isset($arr_fields_normal[$id_filed]) && $arr_fields_normal[$id_filed][FIELD_INFO_USERACCESS] == 'readwrite') { $GLOBALS['page']->add(' checked="checked"'); } $GLOBALS['page']->add(' />'); $GLOBALS['page']->add($form->getLabel(DIRECTORY_ID . '_' . $id_filed . '_useraccess', $this->lang->def('_DIRECTORY_GROUP_FIELD_WRITE'), 'label_bold access-only')); $GLOBALS['page']->add($form->closeFormLine()); } } $GLOBALS['page']->add($form->closeElementSpace() . $form->openButtonSpace() . $form->getButton('save_assignfield2' . DIRECTORY_ID, DIRECTORY_ID . '[save_assignfield2]', $this->lang->def('_SAVE')) . $form->getButton('cancel_assignfield' . DIRECTORY_ID, DIRECTORY_ID . '[cancel_assignfield]', $this->lang->def('_UNDO')) . $form->closeButtonSpace()); }
function connect() { require_once _base_ . '/lib/lib.userselector.php'; require_once _adm_ . '/modules/org_chart/tree.org_chart.php'; $this->directory = new UserSelector(); //$this->tree_view = $this->directory->getTreeView_OrgView(); $orgDb = new TreeDb_OrgDb($GLOBALS['prefix_fw'] . '_org_chart_tree'); $this->tree_view = new TreeView_OrgView($orgDb, 'organization_chart', Get::sett('title_organigram_chart')); $this->tree_view->aclManager =& Docebo::aclm(); list($this->tree_desc) = $this->tree_view->tdb->getDescendantsSTFromST(array($this->tree)); require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; // load language for fields names $lang_dir = DoceboLanguage::createInstance('admin_directory', 'framework'); $fl = new FieldList(); $fl->setGroupFieldsTable($GLOBALS['prefix_fw'] . ORGCHAR_FIELDTABLE); $arr_fields = $fl->getAllFields(); $this->cols_descriptor = NULL; if ($this->dbconn === NULL) { $this->dbconn = $GLOBALS['dbConn']; } $table_fields = array(array('Field' => 'idOrg', 'Type' => 'text'), array('Field' => 'idParent', 'Type' => 'text'), array('Field' => 'path', 'Type' => 'text'), array('Field' => 'level', 'Type' => 'text')); $this->cols_descriptor = array(); foreach ($table_fields as $field_info) { if (!in_array($field_info['Field'], $this->ignore_cols)) { $mandatory = in_array($field_info['Field'], $this->mandatory_cols); if (isset($this->default_cols[$field_info['Field']])) { $this->cols_descriptor[] = array(DOCEBOIMPORT_COLNAME => $lang_dir->def('_DIRECTORY_FILTER_' . $field_info['Field']), DOCEBOIMPORT_COLID => $field_info['Field'], DOCEBOIMPORT_COLMANDATORY => $mandatory, DOCEBOIMPORT_DATATYPE => $field_info['Type'], DOCEBOIMPORT_DEFAULT => $this->default_cols[$field_info['Field']]); } else { $this->cols_descriptor[] = array(DOCEBOIMPORT_COLNAME => $lang_dir->def('_DIRECTORY_FILTER_' . $field_info['Field']), DOCEBOIMPORT_COLID => $field_info['Field'], DOCEBOIMPORT_COLMANDATORY => $mandatory, DOCEBOIMPORT_DATATYPE => $field_info['Type']); } } } foreach ($arr_fields as $field_id => $field_info) { if (in_array($field_info[FIELD_INFO_TYPE], $this->valid_filed_type)) { $this->cols_descriptor[] = array(DOCEBOIMPORT_COLNAME => $field_info[FIELD_INFO_TRANSLATION], DOCEBOIMPORT_COLID => $field_id, DOCEBOIMPORT_COLMANDATORY => FALSE, DOCEBOIMPORT_DATATYPE => 'text'); } } $this->tree_view->tdb->setFolderLang($this->default_lang); $arr_foldersid = $this->tree_view->tdb->getFoldersIdFromIdst(array($this->tree)); $folderid = $arr_foldersid[$this->tree]; $root_folder = $this->tree_view->tdb->getFolderById($folderid); $arr_id = $this->tree_view->tdb->getDescendantsId($root_folder); $this->arr_folders = array(); if ($arr_id !== FALSE) { $coll_folders = $this->tree_view->tdb->getFoldersCollection($arr_id); // make the new structure $curr_path = array(); while (($folder = $coll_folders->getNext()) !== FALSE) { $curr_path = array_slice($curr_path, 0, $folder->level - $root_folder->level - 1); $curr_path[] = $folder->otherValues[ORGDB_POS_TRANSLATION]; $this->arr_folders[implode('/', $curr_path)] = array('id' => $folder->id, 'inserted' => FALSE); } } return TRUE; }
/** * @param string contains the group selected * * @return string contains the displayable information for a selected group */ function getPageWithElement($group_selected) { if ($group_selected != 'user_manager') { return ''; } require_once _base_ . '/lib/lib.form.php'; $lang =& DoceboLanguage::createInstance('user_managment', 'framework'); $reSetting = sql_query("\r\n\t\tSELECT param_name, param_value, value_type, max_size\r\n\t\tFROM " . $this->_table . "\r\n\t\tWHERE pack = 'log_option' AND\r\n\t\t\thide_in_modify = '0'\r\n\t\tORDER BY sequence"); $html = ''; while (list($var_name, $var_value, $value_type, $max_size) = sql_fetch_row($reSetting)) { switch ($value_type) { case "register_type": //on off $html .= Form::getOpenCombo($lang->def('_' . strtoupper($var_name))) . Form::getLineRadio('', 'label_bold', $lang->def('_REGISTER_TYPE_SELF'), $var_name . '_self', 'option[' . $var_name . ']', 'self', $var_value == 'self') . Form::getLineRadio('', 'label_bold', $lang->def('_REGISTER_TYPE_SELF_OPTIN'), $var_name . '_self_optin', 'option[' . $var_name . ']', 'self_optin', $var_value == 'self_optin') . Form::getLineRadio('', 'label_bold', $lang->def('_REGISTER_TYPE_MODERATE'), $var_name . '_moderate', 'option[' . $var_name . ']', 'moderate', $var_value == 'moderate') . Form::getLineRadio('', 'label_bold', $lang->def('_REGISTER_TYPE_ADMIN'), $var_name . '_admin', 'option[' . $var_name . ']', 'admin', $var_value == 'admin') . Form::getCloseCombo(); break; case "register_tree": $register_possible_option = array('off' => $lang->def('_DONT_USE_TREE_REGISTRATION'), 'manual_insert' => $lang->def('_USE_WITH_MANUALEINSERT'), 'selection' => $lang->def('_USE_WITH_SELECTION')); $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $register_possible_option, $var_value); break; case "field_tree": require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; $fl = new FieldList(); $all_fields = $fl->getAllFields(false); $fields[0] = $lang->def('_NO_VALUE'); foreach ($all_fields as $key => $val) { $fields[$val[FIELD_INFO_ID]] = $val[FIELD_INFO_TRANSLATION]; } $html .= Form::getDropdown($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $fields, $var_value); break; case "save_log_attempt": //on off $html .= Form::getOpenCombo($lang->def('_' . strtoupper($var_name))) . Form::getLineRadio('', 'label_bold', $lang->def('_SAVE_LA_ALL'), $var_name . '_all', 'option[' . $var_name . ']', 'all', $var_value == 'all') . Form::getLineRadio('', 'label_bold', $lang->def('_SAVE_LA_AFTER_MAX'), $var_name . '_after_max', 'option[' . $var_name . ']', 'after_max', $var_value == 'after_max') . Form::getLineRadio('', 'label_bold', $lang->def('_NO'), $var_name . '_no', 'option[' . $var_name . ']', 'no', $var_value == 'no') . Form::getCloseCombo(); break; case "enum": //on off $html .= Form::openFormLine() . Form::getInputCheckbox($var_name . '_on', 'option[' . $var_name . ']', 'on', $var_value == 'on', '') . ' ' . Form::getLabel($var_name . '_on', $lang->def('_' . strtoupper($var_name)), 'label_bold') . Form::closeFormLine(); break; //uncrypted password //uncrypted password case "password": $html .= Form::getPassword($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $max_size, $var_value); break; //string or int //string or int default: $html .= Form::getTextfield($lang->def('_' . strtoupper($var_name)), $var_name, 'option[' . $var_name . ']', $max_size, $var_value); } } return $html; }
public function getGapList($id_fncrole, $pagination, $filter = false) { if ($id_fncrole <= 0) { return false; } //invalid role //validate pagination data if (!is_array($pagination)) { $pagination = array(); } $_startIndex = isset($pagination['startIndex']) ? (int) $pagination['startIndex'] : 0; $_results = isset($pagination['results']) ? (int) $pagination['results'] : Get::sett('visuItem', 25); $_sort = 'competence_name'; $_dir = 'ASC'; if (isset($pagination['dir'])) { switch (strtoupper($pagination['dir'])) { case 'ASC': $_dir = 'ASC'; break; case 'DESC': $_dir = 'DESC'; break; } } if (isset($pagination['sort'])) { switch ($pagination['sort']) { case 'competence': $_sort = 'competence_name ' . $_dir . ', usr.userid '; break; case 'userid': $_sort = 'usr.userid ' . $_dir . ', competence_name '; break; case 'lastname': $_sort = 'usr.lastname ' . $_dir . ', usr.firstname ' . $_dir . ', usr.userid'; break; case 'firstname': $_sort = 'usr.firstname ' . $_dir . ', usr.lastname ' . $_dir . ', usr.userid'; break; case 'score_got': $_sort = 'cmu.score_got '; break; case 'score_req': $_sort = 'fnc.score '; break; case 'gap': $_sort = 'gap ' . $_dir . ', competence_name ' . $_dir . ', usr.userid '; break; //case 'date_expire': $_sort = 'date_expire '; break; //case 'date_expire': $_sort = 'date_expire '; break; default: $_sort = $pagination['sort'] . ' ' . $_dir . ', competence_name ' . $_dir . ', usr.userid '; break; } } //validate filter data and abjust query $where_filter = ""; if (is_array($filter)) { $conditions = array(); if (isset($filter['text']) && $filter['text'] != '') { $conditions[] = " (cml.name LIKE '%" . $filter['text'] . "%' " . " OR usr.userid LIKE '%" . $filter['text'] . "%' " . " OR usr.firstname LIKE '%" . $filter['text'] . "%' " . " OR usr.lastname LIKE '%" . $filter['text'] . "%') "; } if (isset($filter['show_gap']) && $filter['show_gap'] != 0) { $conditions[] = $filter['show_gap'] == 1 ? " fnc.score > IF(cmu.score_got,cmu.score_got,0) " : " fnc.score <= IF(cmu.score_got,cmu.score_got,0) "; } if (isset($filter['show_expired']) && $filter['show_expired'] != 0) { $conditions[] = $filter['show_expired'] == 1 ? " ( (DATE_ADD(cmu.last_assign_date,INTERVAL fnc.expiration DAY)) < NOW() AND fnc.expiration > 0 ) " : " ( (DATE_ADD(cmu.last_assign_date,INTERVAL fnc.expiration DAY)) >= NOW() OR fnc.expiration <= 0)"; } if (count($conditions) > 0) { $where_filter .= " WHERE " . implode(" AND ", $conditions); } } $language = getLanguage(); $comps_table = '%lms_competence'; //cmp $clang_table = '%lms_competence_lang'; //cml $ucomp_table = '%lms_competence_user'; //cmu $users_table = '%adm_user'; //usr $fnccm_table = $this->_getRolesCompetencesTable(); //fnc //mount query if (isset($filter['user']) && $filter['user'] > 0) { $_users = array($filter['user']); } else { $_users = $this->getAllUsers($id_fncrole); } $dynFilter = isset($filter['dyn_filter']) ? $filter['dyn_filter'] : false; if ($dynFilter) { require_once _adm_ . '/lib/lib.field.php'; //retrieve custom fields definitions data $fman = new FieldList(); $fields = $fman->getAllFields(); //retrieve which fields are required $custom_fields = array_keys($fields); } if (!empty($_users)) { $query = "SELECT usr.idst, usr.userid, usr.firstname, usr.lastname, cmu.last_assign_date, fnc.score as score_requested, " . " fnc.id_competence, cml.name as competence_name, cmu.score_got, fnc.score, fnc.expiration, cmp.type " . ", (fnc.score-IF(cmu.score_got,cmu.score_got,0)) as gap "; //.", (DATE_ADD(cmu.last_assign_date,INTERVAL fnc.expiration DAY)) as date_expire " if ($dynFilter) { $query .= ", usr.level, usr.email, usr.lastenter, usr.register_date, (SELECT su.value FROM %adm_setting_user AS su WHERE usr.idst = su.id_user AND su.path_name = 'ui.language' ) as language "; foreach ($fields as $field) { $query .= ", (SELECT fu.user_entry FROM %adm_field_userentry AS fu JOIN %adm_field AS f ON fu.id_common=f.id_common WHERE fu.id_user=usr.idst AND fu.id_common=" . $field[0] . " LIMIT 1 ) as _custom_" . $field[0]; } } $query .= " FROM ( " . " ((" . $fnccm_table . " as fnc " . " JOIN " . $comps_table . " as cmp ON (cmp.id_competence = fnc.id_competence AND fnc.id_fncrole=" . (int) $id_fncrole . ") ) " . " JOIN " . $users_table . " as usr ON (usr.idst IN (" . implode(",", $_users) . ")) ) " . " LEFT JOIN " . $ucomp_table . " as cmu ON (cmu.id_user = usr.idst AND fnc.id_competence=cmu.id_competence) ) " . " LEFT JOIN " . $clang_table . " as cml ON (cmp.id_competence = cml.id_competence AND cml.lang_code='" . $language . "')" . $where_filter . " ORDER BY " . $_sort . " " . $_dir . " " . " LIMIT " . (int) $_startIndex . ", " . (int) $_results; $res = $this->db->query($query); } else { $res = false; } //extract records from database $output = array(); if ($res && $this->db->num_rows($res) > 0) { while ($obj = $this->db->fetch_obj($res)) { $output[] = $obj; } } // //retrieve custom fields definitions data // $fman = new FieldList(); // $fields = $fman->getAllFields(); // // //retrieve which fields are required // $custom_fields = array_keys($fields); // // if (count($users_rows) > 0 && !empty($custom_fields)) { // //fields // $query_fields = "SELECT f.id_common, f.type_field, fu.id_user, fu.user_entry ". // " FROM %adm_field_userentry AS fu JOIN %adm_field AS f ON (fu.id_common=f.id_common) ". // " WHERE id_user IN (".implode(",", array_keys($users_rows)).") AND fu.id_common IN (".implode(",", $custom_fields).") "; // $res_fields = $this->db->query($query_fields); // // $field_sons = false; // $countries = false; // // //get values to add in the row // $custom_values = array(); // while ($frow = $this->db->fetch_obj($res_fields)) { // if (!in_array($frow->id_common, $custom_fields)) $custom_fields[] = $frow->id_common; // // $field_value = ""; // switch ($frow->type_field) { // case "yesno": { // switch($frow->user_entry) { // case 1 : $field_value = Lang::t('_YES', 'field');break; // case 2 : $field_value = Lang::t('_NO', 'field');break; // default: $field_value = '';break; // } // } break; // case "dropdown": { // if ($field_sons === false) { // //retrieve translations for dropdowns fields // $query_fields_sons = "SELECT idField, id_common_son, translation FROM %adm_field_son WHERE lang_code = '".getLanguage()."' ORDER BY idField, sequence"; // $res_fields_sons = $this->db->query($query_fields_sons); // $field_sons = array(); // while ($fsrow = $this->db->fetch_obj($res_fields_sons)) { // $field_sons[$fsrow->idField][$fsrow->id_common_son] = $fsrow->translation; // } // } // if (isset($field_sons[$frow->id_common][$frow->user_entry])) // $field_value = $field_sons[$frow->id_common][$frow->user_entry]; // else // $field_value = ""; // } break; // case "country": { // if ($countries === false) { // //retrieve countries names // $query_countries = "SELECT id_country, name_country FROM %adm_country ORDER BY name_country"; // $res_countries = $this->db->query($query_countries); // $countries = array(); // while ($crow = $this->db->fetch_obj($res_countries)) { // $countries[$crow->id_country] = $crow->name_country; // } // } // if (isset($countries[$frow->user_entry])) // $field_value = $countries[$frow->user_entry]; // else // $field_value = ""; // } break; // default: $field_value = $frow->user_entry; break; // } // $custom_values[$frow->id_user][ '_custom_'.$frow->id_common ] = $field_value; //$frow->user_entry; // } // // foreach ($users_rows as $idst=>$value) { // foreach ($custom_fields as $id_field) { // $users_rows[$idst]['_custom_'.$id_field] = (isset($custom_values[$idst]['_custom_'.$id_field]) ? $custom_values[$idst]['_custom_'.$id_field] : ''); // } // } // // if ($descendants) { // //check which users are descendants, if option is selected // $idst_org = $acl_man->getGroupST('oc_'.$idOrg); // $query = "SELECT idstMember FROM %adm_group_members WHERE idst = ".$idst_org." AND idstMember IN (".implode(",", array_keys($users_rows)).")"; // $res = $this->db->query($query); // $arr_no_descendants = array(); // while (list($idst_user) = $this->db->fetch_row($res)) // $arr_no_descendants[] = $idst_user; // foreach ($users_rows as $idst=>$value) // $users_rows[$idst]['is_descendant'] = !in_array($idst, $arr_no_descendants); // } else { // //no descendants selected => the condition is always false // foreach ($users_rows as $idst=>$value) $users_rows[$idst]['is_descendant'] = false; // } // // //retrieve language and level for extracted users // $query_others = "(SELECT u.idst, su.value, 'language' AS type ". // " FROM %adm_user as u JOIN %adm_setting_user AS su ". // " ON (u.idst = su.id_user AND su.path_name = 'ui.language') ". // " WHERE u.idst IN (".implode(",", array_keys($users_rows)).") ) ". // " UNION ". // " (SELECT u.idst, gm.idst AS value, 'level' AS type ". // " FROM %adm_user AS u JOIN %adm_group_members AS gm ". // " ON (u.idst = gm.idstMember AND gm.idst IN (".implode(",", array_values($levels_idst))."))". // " WHERE u.idst IN (".implode(",", array_keys($users_rows)).") )"; // $res_others = $this->db->query($query_others); // while (list($idst, $value, $type) = $this->db->fetch_row($res_others)) { // switch ($type) { // case 'language': $users_rows[$idst]['language'] = $value; break; // case 'level': $users_rows[$idst]['level'] = $levels_flip[$value]; break; // } // } // } return $output; }
public function assignfields_action() { //check permissions if (!$this->permissions['mod_org']) { Util::jump_to('index.php?r=' . $this->link . '/show'); } require_once _adm_ . '/lib/lib.field.php'; $id_org = Get::req('idst_group', DOTY_INT, 0); $fields_use = Get::req('fields_use', DOTY_MIXED, array()); $fields_inherit = Get::req('fields_inherit', DOTY_MIXED, array()); $fields_mandatory = Get::req('fields_mandatory', DOTY_MIXED, array()); $fields_invisible = Get::req('fields_invisible', DOTY_MIXED, array()); $fields_userinherit = Get::req('fields_userinherit', DOTY_MIXED, array()); $fl = new FieldList(); $acl_man = Docebo::user()->getAclManager(); $count = 0; $all_fields = $fl->getAllFields(); foreach ($all_fields as $field) { $id_field = $field[FIELD_INFO_ID]; if (isset($fields_use[$id_field])) { $arr_idgroups = array(); if (isset($fields_inherit[$id_field])) { //$arr_idorgs = $acl_man->getGroupGDescendants($id_org); //$arr_idorgs[] = $id_org; //$arr_idorgs = array_unique($arr_idorgs); $arr_idgroups[] = $acl_man->getGroupST('oc_' . $id_org); $arr_idgroups[] = $acl_man->getGroupST('ocd_' . $id_org); } else { $arr_idgroups[] = $acl_man->getGroupST('oc_' . $id_org); $fl->removeFieldFromGroup($id_field, $acl_man->getGroupST('ocd_' . $id_org)); } foreach ($arr_idgroups as $idst_group) { $res = $fl->addFieldToGroup($id_field, $idst_group, isset($fields_mandatory[$id_field]) ? 'true' : 'false', isset($fields_invisible[$id_field]) ? 'readwrite' : 'readonly', isset($fields_userinherit[$id_field]) ? 1 : 0); if ($res) { $count++; } } } else { $res = $fl->removeFieldFromGroup($id_field, $acl_man->getGroupST('oc_' . $id_org)); $res = $fl->removeFieldFromGroup($id_field, $acl_man->getGroupST('ocd_' . $id_org)); if ($res) { $count++; } } } $output = array('success' => true, 'total' => count($fields_use), 'done' => $count); echo $this->json->encode($output); }
function loadAssignField3() { $arr_fields = $_POST[$this->id]['field_set']; $idst_group = $_POST[$this->id]['idst_group']; require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; $fl = new FieldList(); $arr_all_fields = $fl->getAllFields(); $arr_fields_normal = $fl->getFieldsFromIdst(array($idst_group)); require_once _base_ . '/lib/lib.form.php'; $form = new Form(); $tree = $form->getFormHeader($this->lang->def('_ORG_CHART_LIST_FIELDS')); $tree .= $form->openElementSpace(); $tree .= $this->printState(); $tree .= $form->getHidden($this->id . '_idst_group', $this->id . '[idst_group]', $idst_group); // print custom fields status foreach ($arr_fields as $id_filed => $status) { $tree .= $form->getHidden($this->id . '_' . $id_filed, $this->id . '[field_set][' . $id_filed . ']', $status); } // first print already ordered fields foreach ($arr_fields_normal as $id_filed => $field) { } $tree .= $form->closeElementSpace() . $form->openButtonSpace() . $form->getButton('next1_assignfield' . $this->id, $this->id . '[save_assignfield]', $this->lang->def('_SAVE')) . $form->getButton($this->_getCancelId(), $this->_getCancelId(), $this->lang->def('_UNDO')) . $form->closeButtonSpace(); return $tree; }