Index: typo3/sysext/setup/mod/index.php =================================================================== --- typo3/sysext/setup/mod/index.php (revision 7620) +++ typo3/sysext/setup/mod/index.php (working copy) @@ -117,6 +117,8 @@ protected $passwordIsSubmitted = FALSE; protected $setupIsUpdated = FALSE; protected $tempDataIsCleared = FALSE; + protected $installToolFileExists = FALSE; + protected $installToolFileKeep = FALSE; /****************************** @@ -266,6 +268,11 @@ function init() { $this->MCONF = $GLOBALS['MCONF']; + //check Install Tool enable file + $this->installToolFileExists = is_file(PATH_typo3conf . 'ENABLE_INSTALL_TOOL'); + if ($this->installToolFileExists) { + $this->installToolFileKeep = (trim(file_get_contents(PATH_typo3conf . 'ENABLE_INSTALL_TOOL')) === 'KEEP_FILE'); + } // Returns the script user - that is the REAL logged in user! ($GLOBALS[BE_USER] might be another user due to simulation!) $scriptUser = $this->getRealScriptUserObj(); @@ -305,10 +312,20 @@ // file creation / delete if ($this->isAdmin) { + if ($this->installToolFileKeep) { + $flashMessage = t3lib_div::makeInstance( + 't3lib_FlashMessage', + $LANG->getLL('enableInstallTool.fileHasKeep'), + $LANG->getLL('enableInstallTool.file'), + t3lib_FlashMessage::WARNING + ); + $this->content .= $flashMessage->render(); + } + if (t3lib_div::_POST('deleteInstallToolEnableFile')) { unlink(PATH_typo3conf . 'ENABLE_INSTALL_TOOL'); - $installToolEnableFileExists = is_file(PATH_typo3conf . 'ENABLE_INSTALL_TOOL'); - if ($installToolEnableFileExists) { + $this->installToolFileExists = is_file(PATH_typo3conf . 'ENABLE_INSTALL_TOOL'); + if ($this->installToolFileExists) { $flashMessage = t3lib_div::makeInstance( 't3lib_FlashMessage', $LANG->getLL('enableInstallTool.fileDelete_failed'), @@ -327,8 +344,8 @@ } if (t3lib_div::_POST('createInstallToolEnableFile')) { touch(PATH_typo3conf . 'ENABLE_INSTALL_TOOL'); - $installToolEnableFileExists = is_file(PATH_typo3conf . 'ENABLE_INSTALL_TOOL'); - if ($installToolEnableFileExists) { + $this->installToolFileExists = is_file(PATH_typo3conf . 'ENABLE_INSTALL_TOOL'); + if ($this->installToolFileExists) { $flashMessage = t3lib_div::makeInstance( 't3lib_FlashMessage', $LANG->getLL('enableInstallTool.fileCreate_ok'), @@ -764,22 +781,20 @@ * @return string html with description and button */ public function renderInstallToolEnableFileButton(array $params, SC_mod_user_setup_index $parent) { - // Install Tool access file + // Install Tool access file $installToolEnableFile = PATH_typo3conf . 'ENABLE_INSTALL_TOOL'; - $installToolEnableFileExists = is_file($installToolEnableFile); - if ($installToolEnableFileExists && (time() - filemtime($installToolEnableFile) > 3600)) { - $content = file_get_contents($installToolEnableFile); - $verifyString = 'KEEP_FILE'; - - if (trim($content) !== $verifyString) { + if ($parent->installToolFileExists && (time() - filemtime($installToolEnableFile) > 3600)) { + if (!$parent->installToolFileKeep) { // Delete the file if it is older than 3600s (1 hour) unlink($installToolEnableFile); - $installToolEnableFileExists = is_file($installToolEnableFile); + $parent->installToolFileExists = is_file($installToolEnableFile); } } - if ($installToolEnableFileExists) { - return ''; + if ($parent->installToolFileExists) { + return 'installToolFileKeep ? ' disabled="disabled"' : '') . + ' value="' . $GLOBALS['LANG']->sL('LLL:EXT:setup/mod/locallang.xml:enableInstallTool.deleteFile') . '" />'; } else { return ''; } @@ -898,10 +913,10 @@ } return t3lib_BEfunc::cshItem('_MOD_user_setup', $str, $this->doc->backPath, '|', false, 'margin-bottom:0px;'); } - + /** * Returns array with fields defined in $GLOBALS['TYPO3_USER_SETTINGS']['showitem'] - * + * * @param void * @return array array with fieldnames visible in form */ Index: typo3/sysext/setup/mod/locallang.xml =================================================================== --- typo3/sysext/setup/mod/locallang.xml (revision 7620) +++ typo3/sysext/setup/mod/locallang.xml (working copy) @@ -112,6 +112,7 @@ +