function saveSettings($arrSettings)
 {
     global $_ARRAYLANG, $_CORELANG, $objDatabase;
     foreach ($arrSettings as $strName => $varValue) {
         switch ($strName) {
             case 'settingsNumEntries':
                 $objSaveSettings = $objDatabase->Execute("TRUNCATE TABLE " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_settings_num_entries");
                 foreach ($varValue as $intGroupId => $strNum) {
                     $objSaveSettings = $objDatabase->Execute("\n                            INSERT INTO\n                                " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_settings_num_entries\n                            SET\n                                `group_id` = '" . intval($intGroupId) . "',\n                                `num_entries` = '" . contrexx_addslashes($strNum) . "'\n                            ");
                     if ($objSaveSettings === false) {
                         return false;
                     }
                 }
                 break;
             case 'settingsNumCategories':
                 $objSaveSettings = $objDatabase->Execute("TRUNCATE TABLE " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_settings_num_categories");
                 foreach ($varValue as $intGroupId => $strNum) {
                     $objSaveSettings = $objDatabase->Execute("\n                            INSERT INTO\n                                " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_settings_num_categories\n                            SET\n                                `group_id` = '" . intval($intGroupId) . "',\n                                `num_categories` = '" . contrexx_addslashes($strNum) . "'\n                            ");
                     if ($objSaveSettings === false) {
                         return false;
                     }
                 }
                 break;
             case 'settingsNumLevels':
                 $objSaveSettings = $objDatabase->Execute("TRUNCATE TABLE " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_settings_num_levels");
                 foreach ($varValue as $intGroupId => $strNum) {
                     $objSaveSettings = $objDatabase->Execute("\n                            INSERT INTO\n                                " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_settings_num_levels\n                            SET\n                                `group_id` = '" . intval($intGroupId) . "',\n                                `num_levels` = '" . contrexx_addslashes($strNum) . "'\n                            ");
                     if ($objSaveSettings === false) {
                         return false;
                     }
                 }
                 break;
             case 'settingsActiveLanguages':
                 $varValue = join(",", $varValue);
             default:
                 $objSaveSettings = $objDatabase->Execute("\n                        UPDATE\n                            " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_settings\n                        SET\n                            `value`='" . contrexx_addslashes($varValue) . "'\n                        WHERE\n                            `name`='" . contrexx_addslashes($strName) . "'\n                    ");
                 if ($objSaveSettings === false) {
                     return false;
                 }
                 break;
         }
     }
     parent::getSettings();
     parent::getCommunityGroups();
     return true;
 }
 function saveForm($arrData, $intFormId = null)
 {
     global $_ARRAYLANG, $_CORELANG, $objDatabase, $_LANGID;
     $intId = intval($intFormId);
     $strPicture = contrexx_addslashes(contrexx_strip_tags($arrData['formImage']));
     $arrName = $arrData['formName'];
     $arrDescription = $arrData['formDescription'];
     $strCmd = strtolower(contrexx_addslashes(contrexx_strip_tags($arrData['formCmd'])));
     $intUseCategory = intval($arrData['formUseCategory']);
     $intUseLevel = isset($arrData['formUseLevel']) ? contrexx_input2int($arrData['formUseLevel']) : 0;
     $intUseReadyToConfirm = isset($arrData['formUseReadyToConfirm']) ? contrexx_input2int($arrData['formUseReadyToConfirm']) : 0;
     $intEntriesPerPage = isset($arrData['formEntriesPerPage']) ? contrexx_input2int($arrData['formEntriesPerPage']) : 0;
     if (empty($intId)) {
         //insert new form
         $objInsertAttributes = $objDatabase->Execute("\n                INSERT INTO\n                    " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_forms\n                SET\n                    `order`='99',\n                    `picture`='" . $strPicture . "',\n                    `cmd`='" . $strCmd . "',\n                    `use_category`='" . $intUseCategory . "',\n                    `use_level`='" . $intUseLevel . "',\n                    `use_ready_to_confirm`='" . $intUseReadyToConfirm . "',\n                    `entries_per_page`='" . $intEntriesPerPage . "',\n                    `active`='0'\n            ");
         if ($objInsertAttributes !== false) {
             $intId = $objDatabase->Insert_ID();
             foreach ($this->arrFrontendLanguages as $key => $arrLang) {
                 if (empty($arrName[0])) {
                     $arrName[0] = "";
                 }
                 $strName = $arrName[$arrLang['id']];
                 $strDescription = $arrDescription[$arrLang['id']];
                 if (empty($strName)) {
                     $strName = $arrName[0];
                 }
                 if (empty($strDescription)) {
                     $strDescription = $arrDescription[0];
                 }
                 $objInsertNames = $objDatabase->Execute("\n                        INSERT INTO\n                            " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_form_names\n                        SET\n                            `lang_id`='" . intval($arrLang['id']) . "',\n                            `form_id`='" . intval($intId) . "',\n                            `form_name`='" . contrexx_raw2db(contrexx_input2raw($strName)) . "',\n                            `form_description`='" . contrexx_raw2db(contrexx_input2raw($strDescription)) . "'\n                    ");
             }
             $objCreateCatSelectors = $objDatabase->Execute("\n                    INSERT INTO\n                        " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_order_rel_forms_selectors\n                    SET\n                        `selector_id`='9',\n                        `form_id`='" . intval($intId) . "',\n                        `selector_order`='0',\n                        `exp_search`='1'\n                ");
             $objCreateLevelSelectors = $objDatabase->Execute("\n                    INSERT INTO\n                        " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_order_rel_forms_selectors\n                    SET\n                        `selector_id`='10',\n                        `form_id`='" . intval($intId) . "',\n                        `selector_order`='1',\n                        `exp_search`='1'\n                ");
             //permissions
             parent::getCommunityGroups();
             foreach ($this->arrCommunityGroups as $intGroupId => $arrGroup) {
                 $objInsertPerm = $objDatabase->Execute("\n                        INSERT INTO\n                            " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_settings_perm_group_forms\n                        SET\n                            `group_id`='" . intval($intGroupId) . "',\n                            `form_id`='" . intval($intId) . "',\n                            `status_group`='1'\n                    ");
             }
             if ($objInsertNames !== false && $objCreateCatSelectors !== false && $objCreateLevelSelectors !== false) {
                 return true;
             } else {
                 return false;
             }
         } else {
             return false;
         }
     } else {
         //update form
         $objUpdateAttributes = $objDatabase->Execute("\n                UPDATE\n                    " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_forms\n                SET\n                    `picture`='" . $strPicture . "',\n                    `cmd`='" . $strCmd . "',\n                    `use_category`='" . $intUseCategory . "',\n                    `use_level`='" . $intUseLevel . "',\n                    `use_ready_to_confirm`='" . $intUseReadyToConfirm . "',\n                    `entries_per_page`='" . $intEntriesPerPage . "'\n                WHERE\n                    `id`='" . $intId . "'\n            ");
         if ($objUpdateAttributes !== false) {
             //permissions
             $objDeletePerm = $objDatabase->Execute("DELETE FROM " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_settings_perm_group_forms WHERE form_id='" . $intId . "'");
             $settingsPermissionGroupForm = isset($arrData['settingsPermGroupForm'][$intId]) ? $arrData['settingsPermGroupForm'][$intId] : array();
             foreach ($settingsPermissionGroupForm as $intGroupId => $intGroupStatus) {
                 $objInsertPerm = $objDatabase->Execute("\n                        INSERT INTO\n                            " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_settings_perm_group_forms\n                        SET\n                            `group_id`='" . intval($intGroupId) . "',\n                            `form_id`='" . intval($intId) . "',\n                            `status_group`='" . intval($intGroupStatus) . "'\n                    ");
             }
             $objInsertNames = $this->updateFormLocale($arrName, $arrDescription, $intId);
             if ($objInsertNames !== false) {
                 return true;
             } else {
                 return false;
             }
         } else {
             return false;
         }
     }
 }