Exemplo n.º 1
0
 /**
  * @return 	bool 	true if the operation was successfull false otherwise
  *
  * @access 	public
  */
 function saveElement($regroup)
 {
     if ($regroup == 'templ_man') {
         return $this->_saveTemplateManager();
     }
     if ($regroup == 'suiteman') {
         return $this->_saveSuiteManager();
     }
     $reSetting = sql_query("\r\n\t\tSELECT param_name, value_type, extra_info\r\n\t\tFROM " . $this->table . "\r\n\t\tWHERE regroup = '" . $regroup . "' AND hide_in_modify = '0'");
     $re = true;
     while (list($var_name, $value_type, $extra_info) = sql_fetch_row($reSetting)) {
         switch ($value_type) {
             case "menuvoice":
                 require_once $GLOBALS['where_framework'] . '/lib/lib.menu.php';
                 $menu_man = new MenuManager();
                 if (isset($_POST['option'][$var_name]) && $_POST['option'][$var_name] == 1) {
                     $menu_man->addPerm(ADMIN_GROUP_GODADMIN, '/lms/admin' . $extra_info);
                     $new_value = 1;
                 } else {
                     $menu_man->removePerm(ADMIN_GROUP_GODADMIN, '/lms/admin' . $extra_info);
                     $new_value = 0;
                 }
                 break;
             case "menuvoice_course_public":
                 $after_reload_perm = true;
                 require_once $GLOBALS['where_framework'] . '/lib/lib.menu.php';
                 $menu_man = new MenuManager();
                 if (isset($_POST['option'][$var_name]) && $_POST['option'][$var_name] == 1) {
                     $perm = explode(';', $extra_info);
                     foreach ($perm as $k => $perm_suffix) {
                         $menu_man->addPerm('/oc_0', '/lms/course' . trim($perm_suffix));
                     }
                     $new_value = 1;
                 } else {
                     $perm = explode(';', $extra_info);
                     foreach ($perm as $k => $perm_suffix) {
                         $menu_man->removePerm('/oc_0', '/lms/course' . trim($perm_suffix));
                     }
                     $new_value = 0;
                 }
                 break;
             case "tablist_coursecatalogue":
                 $tab_selected = array();
                 foreach ($_POST['tablist'] as $tab_code => $v) {
                     $tab_selected[$tab_code] = 1;
                 }
                 $new_value = urlencode(serialize($tab_selected));
                 break;
             case "tablist_mycourses":
                 $temp_arr = array();
                 for ($i = 0; $i < 3; $i++) {
                     $temp_var = $_POST['mycourses'][$i];
                     if ($temp_var != '' && !in_array($temp_var, $temp_arr)) {
                         //avoid repeated params
                         $temp_arr[] = $temp_var;
                     }
                 }
                 $new_value = implode(',', $temp_arr);
                 break;
                 //if is int cast it
             //if is int cast it
             case "language":
                 $lang = Docebo::langManager()->getAllLangCode();
                 $new_value = $lang[$_POST['option'][$var_name]];
                 break;
             case "template":
                 $templ = getTemplateList();
                 $new_value = $templ[$_POST['option'][$var_name]];
                 break;
             case "int":
                 $new_value = (int) $_POST['option'][$var_name];
                 break;
                 //if is enum switch value to on or off
             //if is enum switch value to on or off
             case "enum":
                 if (isset($_POST['option'][$var_name])) {
                     $new_value = 'on';
                 } else {
                     $new_value = 'off';
                 }
                 break;
             case "check":
                 if (isset($_POST['option'][$var_name]) && $_POST['option'][$var_name] == 1) {
                     $new_value = 1;
                 } else {
                     $new_value = 0;
                 }
                 break;
             case "menuvoice":
                 require_once $GLOBALS['where_framework'] . '/lib/lib.menu.php';
                 $menu_man = new MenuManager();
                 if (isset($_POST['option'][$var_name]) && $_POST['option'][$var_name] == 1) {
                     $menu_man->addPerm(ADMIN_GROUP_GODADMIN, '/framework/admin' . $extra_info);
                     $new_value = 1;
                 } else {
                     $menu_man->removePerm(ADMIN_GROUP_GODADMIN, '/framework/admin' . $extra_info);
                     $new_value = 0;
                 }
                 break;
                 //else simple assignament
             //else simple assignament
             default:
                 $new_value = $_POST['option'][$var_name];
         }
         if (!sql_query("UPDATE " . $this->table . "\r\n\t\t\tSET param_value = '{$new_value}'\r\n\t\t\tWHERE param_name = '{$var_name}' AND regroup = '" . $regroup . "'")) {
             $re = false;
         }
     }
     return $re;
 }