function _getLevelsCreateForm($iLevelId, $bActive = false) { $sSubmitUrl = BX_DOL_URL_ADMIN . 'memb_levels.php'; $aLevel = array(); if (($bEdit = $iLevelId != 0) === true) { $aLevel = $GLOBALS['MySQL']->getRow("SELECT `Name` AS `Name`, `Description` AS `Description`, `Order` AS `Order` FROM `sys_acl_levels` WHERE `ID`='" . $iLevelId . "' LIMIT 1"); } $aForm = array('form_attrs' => array('id' => 'adm-mlevels-create', 'action' => $sSubmitUrl . '?tab=levels_add', 'method' => 'post', 'enctype' => 'multipart/form-data'), 'params' => array('db' => array('table' => 'sys_acl_levels', 'key' => 'ID', 'uri' => '', 'uri_title' => '', 'submit_name' => 'Submit')), 'inputs' => array('Active' => array('type' => 'hidden', 'name' => 'Active', 'value' => 'no', 'db' => array('pass' => 'Xss')), 'Purchasable' => array('type' => 'hidden', 'name' => 'Purchasable', 'value' => 'yes', 'db' => array('pass' => 'Xss')), 'Removable' => array('type' => 'hidden', 'name' => 'Removable', 'value' => 'yes', 'db' => array('pass' => 'Xss')), 'Name' => array('type' => 'text', 'name' => 'Name', 'caption' => _t('_adm_txt_mlevels_name'), 'value' => isset($aLevel['Name']) ? $aLevel['Name'] : '', 'required' => true, 'db' => array('pass' => 'Xss'), 'checker' => array('func' => 'length', 'params' => array(3, 100), 'error' => _t('_adm_txt_mlevels_name_err'))), 'Icon' => array('type' => 'file', 'name' => 'Icon', 'caption' => _t('_adm_txt_mlevels_icon'), 'required' => true, 'checker' => array('func' => '', 'params' => '', 'error' => _t('_adm_txt_mlevels_icon_err'))), 'Description' => array('type' => 'textarea', 'name' => 'Description', 'caption' => _t('_adm_txt_mlevels_description'), 'value' => isset($aLevel['Description']) ? $aLevel['Description'] : '', 'db' => array('pass' => 'XssHtml')), 'Order' => array('type' => 'text', 'name' => 'Order', 'caption' => _t('_adm_txt_mlevels_order'), 'value' => isset($aLevel['Order']) ? $aLevel['Order'] : 0, 'required' => true, 'db' => array('pass' => 'Int'), 'checker' => array('func' => 'preg', 'params' => array('/^[1-9][0-9]*$/'), 'error' => _t('_adm_txt_mlevels_order_err'))), 'Submit' => array('type' => 'submit', 'name' => 'Submit', 'value' => _t('_adm_btn_mlevels_add')))); //--- Convert Add to Edit if ($bEdit) { unset($aForm['inputs']['Active']); unset($aForm['inputs']['Purchasable']); unset($aForm['inputs']['Removable']); unset($aForm['inputs']['Icon']); $aForm['form_attrs']['action'] = $sSubmitUrl . '?action=edit&level=' . $iLevelId; $aForm['inputs']['Submit']['value'] = _t('_adm_btn_mlevels_save'); $aForm['inputs']['ID'] = array('type' => 'hidden', 'name' => 'ID', 'value' => $iLevelId, 'db' => array('pass' => 'Int')); } $oForm = new BxTemplFormView($aForm); $oForm->initChecker(); if ($oForm->isSubmittedAndValid()) { //--- Add new level if (!$bEdit) { $sFilePath = BX_DIRECTORY_PATH_ROOT . 'media/images/membership/'; $sFileName = time(); $sFileExt = ''; if ($GLOBALS['MySQL']->getOne("SELECT `Name` FROM `sys_acl_levels` WHERE `Name`='" . $oForm->getCleanValue('Name') . "' LIMIT 1")) { $oForm->aInputs['Name']['error'] = _t('_adm_txt_mlevels_name_err_non_uniq'); } elseif (isImage($_FILES['Icon']['type'], $sFileExt) && !empty($_FILES['Icon']['tmp_name']) && move_uploaded_file($_FILES['Icon']['tmp_name'], $sFilePath . $sFileName . '.' . $sFileExt)) { $sPath = $sFilePath . $sFileName . '.' . $sFileExt; imageResize($sPath, $sPath, 110, 110); $iId = (int) $oForm->insert(array('Icon' => $sFileName . '.' . $sFileExt)); if ($iId != 0) { $sName = $oForm->getCleanValue('Name'); addStringToLanguage('_adm_txt_mp_' . strtolower($sName), $sName); } header('Location: ' . $sSubmitUrl); exit; } else { $oForm->aInputs['Icon']['error'] = $oForm->aInputs['Icon']['checker']['error']; } } else { $bResult = $oForm->update($iLevelId); if ($bResult !== false) { deleteStringFromLanguage('_adm_txt_mp_' . strtolower($aLevel['Name'])); $sName = $oForm->getCleanValue('Name'); addStringToLanguage('_adm_txt_mp_' . strtolower($sName), $sName); } header('Location: ' . $sSubmitUrl); exit; } } return $GLOBALS['oAdmTemplate']->parseHtmlByName('mlevels_create.html', array('display' => $bActive ? 'block' : 'none', 'form' => $oForm->getCode())); }
function uninstall($aParams) { $oModuleDb = new BxDolModuleDb(); $sTitle = _t('_adm_txt_modules_operation_uninstall', $this->_aConfig['title']); //--- Check whether the module was already installed ---// if (!$oModuleDb->isModule($this->_aConfig['home_uri'])) { return array('operation_title' => $sTitle, 'message' => _t('_adm_txt_modules_already_uninstalled'), 'result' => false); } //--- Check for dependent modules ---// $bDependent = false; $aDependents = $oModuleDb->getDependent($this->_aConfig['home_uri']); if (is_array($aDependents) && !empty($aDependents)) { $bDependent = true; $sMessage = '<br />-- -- ' . _t('_adm_txt_modules_has_dependents') . '<br />'; foreach ($aDependents as $aDependent) { $sMessage .= '-- -- ' . $aDependent['title'] . '<br />'; } } if ($bDependent) { return array('operation_title' => $sTitle, 'message' => $this->_displayResult('check_dependencies', false, $sMessage), 'result' => false); } $aResult = $this->_perform('uninstall', 'Uninstallation'); if ($aResult['result']) { $iModuleId = (int) $oModuleDb->getOne("SELECT `id` FROM `sys_modules` WHERE `vendor`='" . $this->_aConfig['vendor'] . "' AND `path`='" . $this->_aConfig['home_dir'] . "' LIMIT 1"); $oModuleDb->query("DELETE FROM `sys_modules` WHERE `vendor`='" . $this->_aConfig['vendor'] . "' AND `path`='" . $this->_aConfig['home_dir'] . "' LIMIT 1"); $oModuleDb->query("DELETE FROM `sys_modules_file_tracks` WHERE `module_id`='" . $iModuleId . "'"); deleteStringFromLanguage(BxDolModule::getTitleKey($this->_aConfig['home_uri'])); compileLanguage(); $GLOBALS['MySQL']->cleanMemory('sys_modules_' . $this->_aConfig['home_uri']); $GLOBALS['MySQL']->cleanMemory('sys_modules_' . $iModuleId); $GLOBALS['MySQL']->cleanMemory('sys_modules'); } $aResult['operation_title'] = $sTitle; return $aResult; }