function settings()
 {
     global $_ARRAYLANG, $_CORELANG;
     \Permission::checkAccess(MediaDirectoryAccessIDs::Settings, 'static');
     $this->_objTpl->loadTemplateFile('module_' . $this->moduleNameLC . '_settings.html', true, true);
     $this->pageTitle = $_CORELANG['TXT_SETTINGS'];
     $objSettings = new MediaDirectorySettings($this->moduleName);
     $tpl = isset($_GET['tpl']) ? $_GET['tpl'] : '';
     //save settings global
     if (isset($_POST['submitSettingsForm'])) {
         switch ($tpl) {
             case 'modify_form':
                 if (intval($_POST['formId']) != 0) {
                     $objInputfields = new MediaDirectoryInputfield(intval($_POST['formId']), false, null, $this->moduleName);
                     $strStatus = $objInputfields->saveInputfields($_POST);
                 }
                 $objForms = new MediaDirectoryForm(null, $this->moduleName);
                 $strStatus = $objForms->saveForm($_POST, intval($_POST['formId']));
                 break;
             case 'forms':
                 $objForms = new MediaDirectoryForm(null, $this->moduleName);
                 $strStatus = $objForms->saveOrder($_POST);
                 break;
             case 'mails':
                 $strStatus = $objSettings->settings_save_mail($_POST);
                 break;
             case 'masks':
                 $strStatus = $objSettings->settings_save_mask($_POST);
                 break;
             case 'map':
                 $strStatus = $objSettings->settings_save_map($_POST);
                 break;
             default:
                 $strStatus = $objSettings->saveSettings($_POST);
         }
         if ($strStatus == true) {
             $this->strOkMessage = $_CORELANG['TXT_SETTINGS_UPDATED'];
         } else {
             $this->strErrMessage = $_CORELANG['TXT_DATABASE_QUERY_ERROR'];
         }
     }
     $this->_objTpl->setGlobalVariable(array('TXT_' . $this->moduleLangVar . '_ENTRIES' => $_ARRAYLANG['TXT_MEDIADIR_ENTRIES'], 'TXT_' . $this->moduleLangVar . '_LEVELS_AND_CATEGORIES' => $_ARRAYLANG['TXT_MEDIADIR_LEVELS_AND_CATEGORIES'], 'TXT_' . $this->moduleLangVar . '_SUBMIT' => $_ARRAYLANG['TXT_' . $this->moduleLangVar . '_SUBMIT'], 'TXT_' . $this->moduleLangVar . '_DELETE' => $_CORELANG['TXT_DELETE'], 'TXT_' . $this->moduleLangVar . '_ACTIVATE' => $_ARRAYLANG['TXT_MEDIADIR_ACTIVATE'], 'TXT_' . $this->moduleLangVar . '_DEACTIVATE' => $_ARRAYLANG['TXT_MEDIADIR_DEAVTIVATE'], 'TXT_' . $this->moduleLangVar . '_FORMS' => $_ARRAYLANG['TXT_MEDIADIR_FORMS'], 'TXT_' . $this->moduleLangVar . '_MAIL_TEMPLATES' => $_ARRAYLANG['TXT_MEDIADIR_MAIL_TEMPLATES'], 'TXT_' . $this->moduleLangVar . '_PICS_AND_FILES' => $_ARRAYLANG['TXT_MEDIADIR_PICS_AND_FILES'], 'TXT_' . $this->moduleLangVar . '_GOOGLE' => $_ARRAYLANG['TXT_MEDIADIR_GOOGLE'], 'TXT_' . $this->moduleLangVar . '_HITS_AND_LATEST' => $_ARRAYLANG['TXT_MEDIADIR_HITS_AND_LATEST'], 'TXT_' . $this->moduleLangVar . '_COMMENTS_AND_VOTING' => $_ARRAYLANG['TXT_MEDIADIR_COMMENTS_AND_VOTING'], 'TXT_' . $this->moduleLangVar . '_CLASSIFICATION' => $_ARRAYLANG['TXT_MEDIADIR_CLASSIFICATION'], 'TXT_' . $this->moduleLangVar . '_EXPORT_MASKS' => $_ARRAYLANG['TXT_MEDIADIR_EXPORT_MASKS']));
     switch ($tpl) {
         case 'delete_mask':
         case 'masks':
             $objSettings->settings_masks($this->_objTpl);
             break;
         case 'modify_mask':
             $objSettings->settings_modify_mask($this->_objTpl);
             break;
         case 'delete_form':
         case 'forms':
             $objSettings->settings_forms($this->_objTpl);
             break;
         case 'modify_form':
             $objSettings->settings_modify_form($this->_objTpl);
             break;
         case 'delete_template':
         case 'mails':
             $objSettings->settings_mails($this->_objTpl);
             break;
         case 'modify_mail':
             $objSettings->settings_modify_mail($this->_objTpl);
             break;
         case 'files':
             $objSettings->settings_files($this->_objTpl);
             break;
         case 'map':
             $objSettings->settings_map($this->_objTpl);
             break;
         case 'votes':
             $objSettings->settings_votes($this->_objTpl);
             break;
         case 'levels_categories':
             $objSettings->settings_levels_categories($this->_objTpl);
             break;
         case 'classification':
             $objSettings->settings_classification($this->_objTpl);
             break;
         case 'entries':
         default:
             $objSettings->settings_entries($this->_objTpl);
     }
     $this->_objTpl->parse('settings_content');
 }
 function settings_modify_form($objTpl)
 {
     global $_ARRAYLANG, $_CORELANG, $_LANGID, $objDatabase;
     $objTpl->addBlockfile($this->moduleLangVar . '_SETTINGS_CONTENT', 'settings_content', 'module_' . $this->moduleNameLC . '_settings_modify_form.html');
     $objTpl->setGlobalVariable(array('TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS' => $_ARRAYLANG['TXT_MEDIADIR_INPUTFIELDS'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_FORM' => $_ARRAYLANG['TXT_MEDIADIR_FORM'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_PLACEHOLDER' => $_ARRAYLANG['TXT_MEDIADIR_PLACEHOLDER'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_GLOBAL_PLACEHOLDER_INFO' => $_ARRAYLANG['TXT_MEDIADIR_SETTINGS_GLOBAL_PLACEHOLDER_INFO'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_PLACEHOLDER_INFO' => $_ARRAYLANG['TXT_MEDIADIR_SETTINGS_PLACEHOLDER_INFO'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_FIELD_SHOW_IN' => $_ARRAYLANG['TXT_MEDIADIR_FIELD_SHOW_IN'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_ADD_NEW' => $_ARRAYLANG['TXT_MEDIADIR_SETTINGS_INPUTFIELDS_ADD_NEW'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_ID' => $_CORELANG['TXT_GROUP_ID'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_SORT' => $_CORELANG['TXT_CORE_SORTING_ORDER'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_NAME' => $_ARRAYLANG['TXT_MEDIADIR_FIELD_NAME'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_TYPE' => $_ARRAYLANG['TXT_MEDIADIR_FIELD_TYPE'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_DEFAULTVALUE' => $_ARRAYLANG['TXT_MEDIADIR_DEFAULTVALUE'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_CONTEXT' => $_ARRAYLANG['TXT_MEDIADIR_VALUE_CONTEXT'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_CONTEXT_TOOLTIP' => $_ARRAYLANG['TXT_MEDIADIR_VALUE_CONTEXT_TOOLTIP'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_CHECK' => $_ARRAYLANG['TXT_MEDIADIR_VALUE_CHECK'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_MUSTFIELD' => $_ARRAYLANG['TXT_MEDIADIR_MUSTFIELD'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_ACTION' => $_CORELANG['TXT_HISTORY_ACTION'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELD_SYSTEM_FIELD_CANT_DELETE' => $_ARRAYLANG['TXT_MEDIADIR_SETTINGS_INPUTFIELD_SYSTEM_FIELD_CANT_DELETE'], 'TXT_' . $this->moduleLangVar . '_DELETE' => $_ARRAYLANG['TXT_MEDIADIR_DELETE'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_EXP_SEARCH' => $_ARRAYLANG['TXT_MEDIADIR_EXP_SEARCH'], $this->moduleLangVar . '_SETTINGS_INPUTFIELDS_DEFAULT_LANG_ID' => $_LANGID, $this->moduleLangVar . '_SETTINGS_FORM_DEFAULT_LANG_ID' => $_LANGID, 'TXT_' . $this->moduleLangVar . '_NAME' => $_CORELANG['TXT_NAME'], 'TXT_' . $this->moduleLangVar . '_DESCRIPTION' => $_CORELANG['TXT_DESCRIPTION'], 'TXT_' . $this->moduleLangVar . '_PICTURE' => $_CORELANG['TXT_IMAGE'], 'TXT_' . $this->moduleLangVar . '_BROWSE' => $_CORELANG['TXT_BROWSE'], 'TXT_' . $this->moduleLangVar . '_MORE' => $_ARRAYLANG['TXT_MEDIADIR_MORE'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_PERMISSIONS' => $_CORELANG['TXT_PERMISSIONS'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_PERMISSIONS_INFO' => $_ARRAYLANG['TXT_MEDIADIR_SETTINGS_PERMISSIONS_INFO'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_COMMUNITY_GROUP' => $_ARRAYLANG['TXT_MEDIADIR_COMMUNITY_GROUP'], 'TXT_' . $this->moduleLangVar . '_SETTINGS_ALLOW_GHROUP_ADD_ENTRIES' => $_ARRAYLANG['TXT_MEDIADIR_SETTINGS_ALLOW_GHROUP_ADD_ENTRIES'], 'TXT_' . $this->moduleLangVar . '_CMD' => $_ARRAYLANG['TXT_MEDIADIR_CMD'], 'TXT_' . $this->moduleLangVar . '_CMD_INFO' => $_ARRAYLANG['TXT_MEDIADIR_CMD_INFO'], 'TXT_' . $this->moduleLangVar . '_USE_CATEGORY' => $_ARRAYLANG['TXT_MEDIADIR_USE_CATEGORY'], 'TXT_' . $this->moduleLangVar . '_USE_CATEGORY_INFO' => $_ARRAYLANG['TXT_MEDIADIR_USE_CATEGORY_INFO'], 'TXT_' . $this->moduleLangVar . '_USE_LEVEL' => $_ARRAYLANG['TXT_MEDIADIR_USE_LEVEL'], 'TXT_' . $this->moduleLangVar . '_USE_LEVEL_INFO' => $_ARRAYLANG['TXT_MEDIADIR_USE_LEVEL_INFO'], $this->moduleLangVar . '_USE_CATEGORY_ON' => 'checked="checked"', $this->moduleLangVar . '_USE_LEVEL_ON' => 'checked="checked"', $this->moduleLangVar . '_USE_READY_TO_CONFIRM_ON' => 'checked="checked"', 'TXT_' . $this->moduleLangVar . '_USE_READY_TO_CONFIRM' => $_ARRAYLANG['TXT_MEDIADIR_SETTINGS_READY_TO_CONFIRM'], 'TXT_' . $this->moduleLangVar . '_FORM_ENTRIES_PER_PAGE' => $_ARRAYLANG['TXT_MEDIADIR_FORM_ENTRIES_PER_PAGE']));
     if (isset($_GET['ajax'])) {
         $ajax = $_GET['ajax'];
     } else {
         if (isset($_POST['ajax'])) {
             $ajax = $_POST['ajax'];
         } else {
             $ajax = null;
         }
     }
     //ajax functions
     switch ($ajax) {
         case 'add':
             $objInputfields = new MediaDirectoryInputfield(intval($_GET['id']), false, null, $this->moduleName);
             $intInsertId = $objInputfields->addInputfield();
             die($intInsertId);
             break;
         case 'delete':
             $objInputfields = new MediaDirectoryInputfield(intval($_GET['id']), false, null, $this->moduleName);
             $intInsertId = $objInputfields->deleteInputfield($_GET['field']);
             die('1');
             break;
         case 'save':
             $objInputfields = new MediaDirectoryInputfield(intval($_POST['formId']), false, null, $this->moduleName);
             $strInputfields = $objInputfields->saveInputfields($_POST);
             die('1');
             break;
         case 'move':
             $objInputfields = new MediaDirectoryInputfield(intval($_GET['id']), false, null, $this->moduleName);
             $strInputfields = $objInputfields->moveInputfield($_GET['field'], $_GET['direction']);
             die('1');
             break;
         case 'refresh':
             $objInputfields = new MediaDirectoryInputfield(intval($_GET['id']), false, null, $this->moduleName);
             $strInputfields = $objInputfields->refreshInputfields($objTpl);
             //return
             echo $strInputfields;
             die;
             break;
     }
     //load form data
     if (!empty($_GET['id'])) {
         $pageTitle = $_ARRAYLANG['TXT_MEDIADIR_EDIT_FORM_TEMPLATE'];
         $intFormId = intval($_GET['id']);
         $objForm = new MediaDirectoryForm($intFormId, $this->moduleName);
         //parse data variables
         $objTpl->setGlobalVariable(array($this->moduleLangVar . '_FORM_ID' => $intFormId, $this->moduleLangVar . '_FORM_NAME_MASTER' => contrexx_raw2xhtml($objForm->arrForms[$intFormId]['formName'][0]), $this->moduleLangVar . '_FORM_DESCRIPTION_MASTER' => contrexx_raw2xhtml($objForm->arrForms[$intFormId]['formDescription'][0]), $this->moduleLangVar . '_FORM_PICTURE' => $objForm->arrForms[$intFormId]['formPicture'], $this->moduleLangVar . '_FORM_CMD' => $objForm->arrForms[$intFormId]['formCmd'], $this->moduleLangVar . '_USE_CATEGORY_ON' => $objForm->arrForms[$intFormId]['formUseCategory'] == 1 ? 'checked="checked"' : '', $this->moduleLangVar . '_USE_CATEGORY_OFF' => $objForm->arrForms[$intFormId]['formUseCategory'] == 0 ? 'checked="checked"' : '', $this->moduleLangVar . '_USE_LEVEL_ON' => $objForm->arrForms[$intFormId]['formUseLevel'] == 1 ? 'checked="checked"' : '', $this->moduleLangVar . '_USE_LEVEL_OFF' => $objForm->arrForms[$intFormId]['formUseLevel'] == 0 ? 'checked="checked"' : '', $this->moduleLangVar . '_USE_READY_TO_CONFIRM_ON' => $objForm->arrForms[$intFormId]['formUseReadyToConfirm'] == 1 ? 'checked="checked"' : '', $this->moduleLangVar . '_USE_READY_TO_CONFIRM_OFF' => $objForm->arrForms[$intFormId]['formUseReadyToConfirm'] == 0 ? 'checked="checked"' : '', $this->moduleLangVar . '_FORM_ENTRIES_PER_PAGE' => contrexx_raw2xhtml($objForm->arrForms[$intFormId]['formEntriesPerPage'])));
         parent::getCommunityGroups();
         //permissions community groups
         if (empty($this->arrCommunityGroups)) {
             $objTpl->setVariable(array('TXT_' . $this->moduleLangVar . '_SETTINGS_NO_COMMUNITY_GROUPS' => $_ARRAYLANG['TXT_MEDIADIR_NO_COMMUNITY_GROUPS']));
             $objTpl->parse($this->moduleNameLC . 'FormNoCommunityGroup');
         } else {
             $i = 0;
             foreach ($this->arrCommunityGroups as $intGroupId => $arrGroup) {
                 if ($arrGroup['type'] == 'frontend' && $arrGroup['active'] == 1) {
                     if (intval($arrGroup['status_group'][$intFormId]) == 1) {
                         $strGroupStatus = 'checked="checked"';
                     } else {
                         $strGroupStatus = '';
                     }
                     $objTpl->setVariable(array($this->moduleLangVar . '_SETTINGS_COMMUNITY_GROUP_ROW_CLASS' => $i % 2 == 0 ? 'row1' : 'row2', 'TXT_' . $this->moduleLangVar . '_SETTINGS_COMMUNITY_GROUP_NAME' => $arrGroup['name'], $this->moduleLangVar . '_SETTINGS_COMMUNITY_GROUP_ACTIVE' => $strGroupStatus, $this->moduleLangVar . '_SETTINGS_COMMUNITY_GROUP_ID' => $intGroupId));
                     $i++;
                     $objTpl->parse($this->moduleNameLC . 'FormCommunityGroupList');
                 }
             }
         }
         //load inputfields data
         $objInputfields = new MediaDirectoryInputfield($intFormId, false, null, $this->moduleName);
         $objInputfields->listInputfields($objTpl, 1);
         $objInputfields->listPlaceholders($objTpl);
     } else {
         $pageTitle = $_ARRAYLANG['TXT_MEDIADIR_NEW_FORM_TEMPLATE'];
         $objTpl->hideBlock($this->moduleNameLC . 'InputfieldsForm');
     }
     $objTpl->setGlobalVariable(array($this->moduleLangVar . '_FORM_IMAGE_BROWSE' => $this->getMediaBrowserButton($_ARRAYLANG['TXT_BROWSE'], array('data-cx-mb-views' => 'filebrowser', 'data-cx-mb-startmediatype' => $this->moduleNameLC, 'type' => 'button', 'data-input-id' => 'formImage2'), 'mediaBrowserCallback')));
     $strFormName = '';
     $strFormDescription = '';
     //form name language block
     foreach ($this->arrFrontendLanguages as $key => $arrLang) {
         if (!empty($intFormId)) {
             $strFormName = empty($objForm->arrForms[$intFormId]['formName'][$arrLang['id']]) ? $objForm->arrForms[$intFormId]['formName'][0] : $objForm->arrForms[$intFormId]['formName'][$arrLang['id']];
         } else {
             $intFormId = '';
         }
         $objTpl->setVariable(array($this->moduleLangVar . '_FORM_NAME_LANG_ID' => $arrLang['id'], 'TXT_' . $this->moduleLangVar . '_FORM_NAME_LANG_NAME' => $arrLang['name'], 'TXT_' . $this->moduleLangVar . '_FORM_NAME_LANG_SHORTCUT' => $arrLang['lang'], $this->moduleLangVar . '_FORM_NAME' => $strFormName));
         if ($key + 1 == count($this->arrFrontendLanguages)) {
             $objTpl->setVariable(array($this->moduleLangVar . '_MINIMIZE' => '<a href="javascript:ExpandMinimizeForm(\'formName\');">&laquo;&nbsp;' . $_ARRAYLANG['TXT_MEDIADIR_MINIMIZE'] . '</a>'));
         }
         $objTpl->parse($this->moduleNameLC . 'FormNameList');
     }
     //form decription language block
     foreach ($this->arrFrontendLanguages as $key => $arrLang) {
         if (!empty($intFormId)) {
             $strFormDescription = empty($objForm->arrForms[$intFormId]['formDescription'][$arrLang['id']]) ? $objForm->arrForms[$intFormId]['formDescription'][0] : $objForm->arrForms[$intFormId]['formDescription'][$arrLang['id']];
         } else {
             $intFormId = '';
         }
         $objTpl->setVariable(array($this->moduleLangVar . '_FORM_DESCRIPTION_LANG_ID' => $arrLang['id'], 'TXT_' . $this->moduleLangVar . '_FORM_DESCRIPTION_LANG_NAME' => $arrLang['name'], 'TXT_' . $this->moduleLangVar . '_FORM_DESCRIPTION_LANG_SHORTCUT' => $arrLang['lang'], $this->moduleLangVar . '_FORM_DESCRIPTION' => $strFormDescription));
         if ($key + 1 == count($this->arrFrontendLanguages)) {
             $objTpl->setVariable(array($this->moduleLangVar . '_MINIMIZE' => '<a href="javascript:ExpandMinimizeForm(\'formDescription\');">&laquo;&nbsp;' . $_ARRAYLANG['TXT_MEDIADIR_MINIMIZE'] . '</a>'));
         }
         $objTpl->parse($this->moduleNameLC . 'FormDescriptionList');
     }
     //use level block
     if ($this->arrSettings['settingsShowLevels'] == 1) {
         $objTpl->touchBlock($this->moduleNameLC . 'FormUseLevel');
     } else {
         $objTpl->hideBlock($this->moduleNameLC . 'FormUseLevel');
     }
     //use ready to confirm block
     if ($this->arrSettings['settingsReadyToConfirm'] == 1) {
         $objTpl->touchBlock($this->moduleNameLC . 'FormUseReadyToConfirm');
     } else {
         $objTpl->hideBlock($this->moduleNameLC . 'FormUseReadyToConfirm');
     }
     $objTpl->setVariable(array('TXT_' . $this->moduleLangVar . '_PAGE_TITLE' => $pageTitle));
     $objTpl->parse('settings_content');
 }