getConnectionForTable('be_users') ->select(['uid', 'uc'], 'be_users', []); $needsExecution = false; while ($backendUser = $statement->fetch()) { if ($backendUser['uc'] !== null) { $userConfig = unserialize($backendUser['uc'], ['allowed_classes' => false]); if ($userConfig['startModule'] === 'help_aboutmodules' || $userConfig['startModule'] === 'help_AboutmodulesAboutmodules' || $userConfig['startModule'] === 'help_AboutAboutmodules' || $userConfig['startModule'] === 'help_CshmanualCshmanual' || $userConfig['startModule'] === 'help_DocumentationCshmanual' ) { $needsExecution = true; break; } } } return $needsExecution; } /** * @return string[] All new fields and tables must exist */ public function getPrerequisites(): array { return [ DatabaseUpdatedPrerequisite::class ]; } /** * Performs the database update if backend user's startmodule is * "help_aboutmodules" or "help_AboutmodulesAboutmodules" or "help_CshmanualCshmanual" * * @return bool */ public function executeUpdate(): bool { $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('be_users'); $statement = $queryBuilder->select('uid', 'uc')->from('be_users')->execute(); while ($backendUser = $statement->fetch()) { if ($backendUser['uc'] !== null) { $userConfig = unserialize($backendUser['uc'], ['allowed_classes' => false]); if ($userConfig['startModule'] === 'help_aboutmodules' || $userConfig['startModule'] === 'help_AboutmodulesAboutmodules' || $userConfig['startModule'] === 'help_AboutAboutmodules' || $userConfig['startModule'] === 'help_CshmanualCshmanual' || $userConfig['startModule'] === 'help_DocumentationCshmanual' ) { $userConfig['startModule'] = 'help_AboutAbout'; if ($userConfig['startModule'] === 'help_CshmanualCshmanual' || $userConfig['startModule'] === 'help_DocumentationCshmanual') { $userConfig['startModule'] = 'help_BackendCshmanual'; } $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('be_users'); $queryBuilder->update('be_users') ->where( $queryBuilder->expr()->eq( 'uid', $queryBuilder->createNamedParameter($backendUser['uid'], \PDO::PARAM_INT) ) ) ->set('uc', $queryBuilder->createNamedParameter(serialize($userConfig), \PDO::PARAM_LOB)) ->execute(); } } } return true; } }