Example #1
0
 /**
  * @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;
 }
Example #2
0
 /**
  * @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;
 }
Example #3
0
 /**
  * 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&amp;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">&nbsp;</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;
 }
Example #5
0
 /**
  * @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);
 }
Example #8
0
 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;
 }