public function __construct($aConfig) { parent::__construct($aConfig); $this->_sModulePath = $this->_sBasePath . $aConfig['module_dir']; $this->_aActions = array_merge($this->_aActions, array('check_module_exists' => array('title' => _t('_adm_txt_modules_check_module_exists')), 'check_module_matches' => array('title' => _t('_adm_txt_modules_check_module_matches')), 'check_module_version' => array('title' => _t('_adm_txt_modules_check_module_version')), 'check_module_hash' => array('title' => _t('_adm_txt_modules_check_module_hash')), 'update_files' => array('title' => _t('_adm_txt_modules_update_files')), 'restore_languages' => array('title' => _t('_adm_txt_modules_restore_languages')))); }
function __construct($aConfig) { parent::__construct($aConfig); }
function uninstall($aParams, $bDisable = false) { // check if module is already waiting while files are deleting bx_import('BxDolInstallerUtils'); if (BxDolInstallerUtils::isModulePendingUninstall($this->_aConfig['home_uri'])) { return array('message' => _t('_adm_err_modules_pending_uninstall_already'), 'result' => false); } // queue for deletion storage files $bSetModulePendingUninstall = false; foreach ($this->_aStorages as $s) { if (($o = BxDolStorage::getObjectInstance($s)) && $o->queueFilesForDeletionFromObject()) { $bSetModulePendingUninstall = true; } } // delete comments and queue for deletion comments attachments bx_import('BxDolCmts'); $iFiles = 0; BxDolCmts::onModuleUninstall($this->_aConfig['name'], $iFiles); if ($iFiles) { $bSetModulePendingUninstall = true; } // if some files were added to the queue, set module as pending uninstall if ($bSetModulePendingUninstall) { BxDolInstallerUtils::setModulePendingUninstall($this->_aConfig['home_uri']); return array('message' => _t('_adm_err_modules_pending_uninstall'), 'result' => false); } // delete associated connections if ($this->_aConnections) { bx_import('BxDolConnection'); foreach ($this->_aConnections as $sObjectConnections => $a) { $o = BxDolConnection::getObjectInstance($sObjectConnections); if (!$o) { continue; } $sFuncSuffix = 'DeleteInitiatorAndContent'; if (isset($a['conn']) && 'initiator' == $a['conn']) { $sFuncSuffix = 'DeleteInitiator'; } elseif (isset($a['conn']) && 'content' == $a['conn']) { $sFuncSuffix = 'DeleteContent'; } if (isset($a['type']) && 'profiles' == $a['type']) { $sFunc = 'onModuleProfile' . $sFuncSuffix; $o->{$sFunc}($this->_aConfig['name']); } else { $sFunc = 'onModule' . $sFuncSuffix; $o->{$sFunc}($a['table'], $a['field_id']); } } } return parent::uninstall($aParams, $bDisable); }