From fe00e13d3c0c492fd8983f04aca3d3fc40758f8f Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Sun, 28 Jun 2020 19:42:14 +0200 Subject: [PATCH] New version number: 5.3.0 Alpha 1 --- com.woltlab.wcf/files_pre.tar | Bin 192000 -> 0 bytes com.woltlab.wcf/files_preUpdate.tar | Bin 3072 -> 0 bytes com.woltlab.wcf/files_pre_5.2.6.tar | Bin 3072 -> 0 bytes com.woltlab.wcf/files_routingCacheBuilder.tar | Bin 16896 -> 0 bytes com.woltlab.wcf/package.xml | 15 +- com.woltlab.wcf/update_5.2.sql | 2 - .../files/acp/update_com.woltlab.wcf_5.2.php | 212 ------------------ ...m.woltlab.wcf_5.2_deleteRecentActivity.php | 31 --- .../update_com.woltlab.wcf_5.2_prePhpApi.php | 23 -- .../update_com.woltlab.wcf_5.2_preUpdate.php | 49 ---- ...ate_com.woltlab.wcf_5.2_reactionUpdate.php | 133 ----------- ...date_com.woltlab.wcf_5.2_reloadOptions.php | 5 - ...pdate_com.woltlab.wcf_preventMailAbuse.php | 16 -- .../install/files/lib/system/WCF.class.php | 2 +- 14 files changed, 3 insertions(+), 485 deletions(-) delete mode 100644 com.woltlab.wcf/files_pre.tar delete mode 100644 com.woltlab.wcf/files_preUpdate.tar delete mode 100644 com.woltlab.wcf/files_pre_5.2.6.tar delete mode 100644 com.woltlab.wcf/files_routingCacheBuilder.tar delete mode 100644 com.woltlab.wcf/update_5.2.sql delete mode 100644 wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2.php delete mode 100644 wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_deleteRecentActivity.php delete mode 100644 wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_prePhpApi.php delete mode 100644 wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_preUpdate.php delete mode 100644 wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_reactionUpdate.php delete mode 100644 wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_reloadOptions.php delete mode 100644 wcfsetup/install/files/acp/update_com.woltlab.wcf_preventMailAbuse.php diff --git a/com.woltlab.wcf/files_pre.tar b/com.woltlab.wcf/files_pre.tar deleted file mode 100644 index 2b8779b986eee31e22198d858ea00ecf499dde2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192000 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 aFSAg{6|Tqre2Vx&fkJ^ofkJ@?75E92Me3jc diff --git a/com.woltlab.wcf/files_routingCacheBuilder.tar b/com.woltlab.wcf/files_routingCacheBuilder.tar deleted file mode 100644 index 3fb6dcb898c566155203161bd2fd8320afa99678..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16896 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 diff --git a/com.woltlab.wcf/package.xml b/com.woltlab.wcf/package.xml index 3a317cf9e8..c149ef0066 100644 --- a/com.woltlab.wcf/package.xml +++ b/com.woltlab.wcf/package.xml @@ -5,8 +5,8 @@ Free CMS and web-framework, designed for awesome websites and communities. Freies CMS und Web-Framework, das eindrucksvolle Websites und Communities ermöglicht. 1 - 5.2.7 - 2020-06-27 + 5.3.0 Alpha 1 + 2020-06-28 @@ -111,15 +111,4 @@ acp/update_com.woltlab.wcf_preventMailAbuse.php - - - acptemplates_update.tar - files_update.tar - templates_update.tar - - - - - - diff --git a/com.woltlab.wcf/update_5.2.sql b/com.woltlab.wcf/update_5.2.sql deleted file mode 100644 index 896f750add..0000000000 --- a/com.woltlab.wcf/update_5.2.sql +++ /dev/null @@ -1,2 +0,0 @@ -INSERT IGNORE INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfEditorTableBorder', 'rgba(221, 221, 221, 1)'); -INSERT IGNORE INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfPageThemeColor', ''); -- uses `$wcfHeaderBackground` if left empty diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2.php deleted file mode 100644 index d346c96bf9..0000000000 --- a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2.php +++ /dev/null @@ -1,212 +0,0 @@ - - */ - -$tables = [ - DatabaseTable::create('wcf1_bbcode_media_provider') - ->columns([ - DefaultFalseBooleanDatabaseTableColumn::create('isDisabled') - ]), - - DatabaseTable::create('wcf1_blacklist_status') - ->columns([ - DateDatabaseTableColumn::create('date') - ->notNull(), - DefaultFalseBooleanDatabaseTableColumn::create('delta1'), - DefaultFalseBooleanDatabaseTableColumn::create('delta2'), - DefaultFalseBooleanDatabaseTableColumn::create('delta3'), - DefaultFalseBooleanDatabaseTableColumn::create('delta4') - ]) - ->indices([ - DatabaseTableIndex::create('day') - ->type(DatabaseTableIndex::UNIQUE_TYPE) - ->columns(['date']), - ]), - - DatabaseTable::create('wcf1_blacklist_entry') - ->columns([ - EnumDatabaseTableColumn::create('type') - ->enumValues(['email', 'ipv4', 'ipv6','username']), - BinaryDatabaseTableColumn::create('hash') - ->length(32), - DatetimeDatabaseTableColumn::create('lastSeen') - ->notNull(), - SmallintDatabaseTableColumn::create('occurrences') - ->length(5) - ->notNull() - ]) - ->indices([ - DatabaseTableIndex::create('entry') - ->type(DatabaseTableIndex::UNIQUE_TYPE) - ->columns(['type', 'hash']), - DatabaseTableIndex::create('numberOfReports') - ->columns(['type', 'occurrences']) - ]), - - DatabaseTable::create('wcf1_box') - ->columns([ - DefaultFalseBooleanDatabaseTableColumn::create('isDisabled') - ]), - - DatabaseTable::create('wcf1_category') - ->columns([ - DefaultFalseBooleanDatabaseTableColumn::create('descriptionUseHtml') - ]), - - DatabaseTable::create('wcf1_comment') - ->columns([ - MediumtextDatabaseTableColumn::create('message') - ->notNull() - ]), - - DatabaseTable::create('wcf1_comment_response') - ->columns([ - MediumtextDatabaseTableColumn::create('message') - ->notNull() - ]), - - DatabaseTable::create('wcf1_contact_attachment') - ->columns([ - NotNullInt10DatabaseTableColumn::create('attachmentID'), - CharDatabaseTableColumn::create('accessKey') - ->length(40) - ->notNull() - ]) - ->foreignKeys([ - DatabaseTableForeignKey::create() - ->columns(['attachmentID']) - ->referencedTable('wcf1_attachment') - ->referencedColumns(['attachmentID']) - ->onDelete('CASCADE') - ]), - - DatabaseTable::create('wcf1_language_item') - ->columns([ - DefaultFalseBooleanDatabaseTableColumn::create('isCustomLanguageItem') - ]), - - DatabaseTable::create('wcf1_like') - ->columns([ - NotNullInt10DatabaseTableColumn::create('reactionTypeID') - ]), - - DatabaseTable::create('wcf1_like_object') - ->columns([ - TextDatabaseTableColumn::create('cachedReactions') - ]), - - DatabaseTable::create('wcf1_media') - ->columns([ - DefaultFalseBooleanDatabaseTableColumn::create('captionEnableHtml'), - NotNullInt10DatabaseTableColumn::create('downloads') - ->defaultValue(0), - NotNullInt10DatabaseTableColumn::create('lastDownloadTime') - ->defaultValue(0) - ]), - - DatabaseTable::create('wcf1_page') - ->columns([ - IntDatabaseTableColumn::create('overrideApplicationPackageID') - ->length(10), - DefaultFalseBooleanDatabaseTableColumn::create('enableShareButtons') - ]) - ->foreignKeys([ - DatabaseTableForeignKey::create() - ->columns(['overrideApplicationPackageID']) - ->referencedTable('wcf1_package') - ->referencedColumns(['packageID']) - ->onDelete('SET NULL') - ]), - - DatabaseTable::create('wcf1_package') - ->indices([ - DatabaseTableIndex::create('package') - ->type(DatabaseTableIndex::UNIQUE_TYPE) - ->columns(['package']) - ]), - - DatabaseTable::create('wcf1_reaction_type') - ->columns([ - ObjectIdDatabaseTableColumn::create('reactionTypeID'), - NotNullVarchar255DatabaseTableColumn::create('title'), - NotNullInt10DatabaseTableColumn::create('showOrder') - ->defaultValue(0), - NotNullVarchar255DatabaseTableColumn::create('iconFile') - ->defaultValue(''), - DefaultTrueBooleanDatabaseTableColumn::create('isAssignable') - ]) - ->indices([ - DatabaseTablePrimaryIndex::create() - ->columns(['reactionTypeID']) - ]), - - DatabaseTable::create('wcf1_style') - ->columns([ - EnumDatabaseTableColumn::create('apiVersion') - ->notNull() - ->enumValues(['3.0', '3.1', '5.2']) - ->defaultValue('3.0') - ]), - - DatabaseTable::create('wcf1_trophy') - ->columns([ - DefaultFalseBooleanDatabaseTableColumn::create('revokeAutomatically'), - DefaultFalseBooleanDatabaseTableColumn::create('trophyUseHtml'), - NotNullInt10DatabaseTableColumn::create('showOrder') - ->defaultValue(0) - ]), - - DatabaseTable::create('wcf1_user') - ->columns([ - NotNullInt10DatabaseTableColumn::create('articles') - ->defaultValue(0), - NotNullVarchar255DatabaseTableColumn::create('blacklistMatches') - ->defaultValue('') - ]), - - DatabaseTable::create('wcf1_user_group') - ->columns([ - DefaultFalseBooleanDatabaseTableColumn::create('allowMention') - ]), - - DatabaseTable::create('wcf1_user_trophy') - ->columns([ - DefaultFalseBooleanDatabaseTableColumn::create('trophyUseHtml') - ]), -]; - -(new DatabaseTableChangeProcessor( - /** @var ScriptPackageInstallationPlugin $this */ - $this->installation->getPackage(), - $tables, - WCF::getDB()->getEditor()) -)->process(); diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_deleteRecentActivity.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_deleteRecentActivity.php deleted file mode 100644 index 6cca64c4d8..0000000000 --- a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_deleteRecentActivity.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @package WoltLabSuite\Core - */ - -$definitionList = new \wcf\data\object\type\definition\ObjectTypeDefinitionList(); -$definitionList->getConditionBuilder()->add('definitionName = ?', ['com.woltlab.wcf.user.recentActivityEvent']); -$definitionList->readObjects(); -$definition = $definitionList->current(); - -$sql = "SELECT objectTypeID - FROM wcf". WCF_N ."_object_type - WHERE objectType LIKE '%likeable%' - AND definitionID = ?"; -$statement = \wcf\system\WCF::getDB()->prepareStatement($sql); -$statement->execute([$definition->definitionID]); -$objectTypeIDs = $statement->fetchAll(\PDO::FETCH_COLUMN); - -$conditionBuilder = new \wcf\system\database\util\PreparedStatementConditionBuilder(); -$conditionBuilder->add('objectTypeID IN (?)', [$objectTypeIDs]); - -$sql = "DELETE FROM wcf". WCF_N ."_user_activity_event ".$conditionBuilder; -$statement = \wcf\system\WCF::getDB()->prepareStatement($sql); -$statement->execute($conditionBuilder->getParameters()); diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_prePhpApi.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_prePhpApi.php deleted file mode 100644 index 1f9df9dce4..0000000000 --- a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_prePhpApi.php +++ /dev/null @@ -1,23 +0,0 @@ -getEditor(); -$existingColumns = $dbEditor->getColumns('wcf'.WCF_N.'_package_installation_sql_log'); -$hasIsDoneColumn = false; -foreach ($existingColumns as $column) { - if ($column['name'] === 'isDone') { - $hasIsDoneColumn = true; - break; - } -} - -if (!$hasIsDoneColumn) { - $dbEditor->addColumn('wcf'.WCF_N.'_package_installation_sql_log', 'isDone', [ - 'type' => 'tinyint', - 'length' => 1, - 'notNull' => 1, - 'default' => 1, - ]); -} diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_preUpdate.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_preUpdate.php deleted file mode 100644 index 956fb802f0..0000000000 --- a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_preUpdate.php +++ /dev/null @@ -1,49 +0,0 @@ - - * @package WoltLabSuite\Core - */ -if (Package::compareVersion(WCF_VERSION, '3.1.11', '<')) { - if (WCF::getLanguage()->getFixedLanguageCode() == 'de') { - throw new SystemException("Die Aktualisierung erfordert WoltLab Suite Core (com.woltlab.wcf) in Version 3.1.11 oder höher."); - } - else { - throw new SystemException("The update requires WoltLab Suite Core (com.woltlab.wcf) in version 3.1.11 or newer."); - } -} - -$requiredPHPVersion = '7.0.22'; -$comparePhpVersion = preg_replace('/^(\d+\.\d+\.\d+).*$/', '\\1', phpversion()); -if (version_compare($comparePhpVersion, $requiredPHPVersion) === -1) { - if (WCF::getLanguage()->getFixedLanguageCode() == 'de') { - throw new SystemException("Die Aktualisierung erfordert PHP in Version {$requiredPHPVersion} oder höher."); - } - else { - throw new SystemException("The update requires PHP in version {$requiredPHPVersion} or newer."); - } -} - -// check sql version -$sqlVersion = WCF::getDB()->getVersion(); -$compareSQLVersion = preg_replace('/^(\d+\.\d+\.\d+).*$/', '\\1', $sqlVersion); -if (stripos($sqlVersion, 'MariaDB') === false) { - // For MySQL 8.0, MySQL 8.0.14+ is required - // https://bugs.mysql.com/bug.php?id=88718 - if ($compareSQLVersion[0] === '8') { - // MySQL 8.0.14+ - if (!(version_compare($compareSQLVersion, '8.0.14') >= 0)) { - if (WCF::getLanguage()->getFixedLanguageCode() == 'de') { - throw new SystemException("Ihre eingesetzte Version von MySQL 8 enthält einen bekannten Fehler und verhindert eine Aktualisierung, es wird mindestens MySQL 8.0.14 oder höher benötigt."); - } - else { - throw new SystemException("The version of MySQL 8 that you are using contains a known bug that prevents an upgrade, MySQL 8.0.14 or newer is required."); - } - } - } -} diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_reactionUpdate.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_reactionUpdate.php deleted file mode 100644 index 4c4338571f..0000000000 --- a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_reactionUpdate.php +++ /dev/null @@ -1,133 +0,0 @@ - - * @package WoltLabSuite\Core - */ - -OptionEditor::import([ - 'like_show_summary' => 1, -]); - -try { - WCF::getDB()->beginTransaction(); - - $reactions = ['like', 'thanks', 'haha', 'confused', 'sad']; - if (LIKE_ENABLE_DISLIKE) { - // Remove the existing phrase in case a previous upgrade attempt has failed. - $sql = "DELETE FROM wcf".WCF_N."_language_item - WHERE languageItem = ?"; - $statement = WCF::getDB()->prepareStatement($sql); - $statement->execute(['wcf.reactionType.title6']); - - $reactions[] = 'thumbsDown'; - - $sql = "SELECT languageCategoryID - FROM wcf".WCF_N."_language_category - WHERE languageCategory = ?"; - $statement = WCF::getDB()->prepareStatement($sql, 1); - $statement->execute(['wcf.reactionType']); - $languageCategoryID = $statement->fetchSingleColumn(); - - // Create a custom phrase for this reaction, it needs to be "manually" added - // because it would otherwise conflict with the next reaction created by the - // user, *if* there are no dislikes. - foreach (LanguageFactory::getInstance()->getLanguages() as $language) { - LanguageItemEditor::create([ - 'languageID' => $language->languageID, - 'languageItem' => 'wcf.reactionType.title6', - 'languageItemValue' => ($language->getFixedLanguageCode() === 'de' ? 'Gefällt mir nicht' : 'Dislike'), - 'languageCategoryID' => $languageCategoryID, - 'packageID' => 1, - ]); - } - } - - $sql = "INSERT IGNORE INTO wcf".WCF_N."_reaction_type - (reactionTypeID, title, showOrder, iconFile) - VALUES (?, ?, ?, ?)"; - $statement = WCF::getDB()->prepareStatement($sql); - for ($i = 0, $length = count($reactions); $i < $length; $i++) { - $reactionTypeID = $i + 1; - - $statement->execute([ - $reactionTypeID, - "wcf.reactionType.title{$reactionTypeID}", - $reactionTypeID, - "{$reactions[$i]}.svg", - ]); - } - - // Update the existing (dis)likes. - $likeValues = [Like::LIKE => 1]; - if (LIKE_ENABLE_DISLIKE) $likeValues[Like::DISLIKE] = 6; - - $sql = "UPDATE wcf".WCF_N."_like - SET reactionTypeID = ? - WHERE likeValue = ?"; - $statement = WCF::getDB()->prepareStatement($sql); - foreach ($likeValues as $likeValue => $reactionTypeID) { - $statement->execute([ - $reactionTypeID, - $likeValue, - ]); - } - - // Delete outdated or unsupported likes. - WCF::getDB()->prepareStatement("DELETE FROM wcf".WCF_N."_like WHERE reactionTypeID = 0")->execute(); - - // Adjust the like objects by moving all dislikes into regular likes/cumulativeLikes. - $sql = "UPDATE wcf".WCF_N."_like_object - SET likes = likes + dislikes, - cumulativeLikes = likes, - dislikes = 0"; - WCF::getDB()->prepareStatement($sql)->execute(); - - $dbEditor = WCF::getDB()->getEditor(); - $foreignKeys = $dbEditor->getForeignKeys('wcf'.WCF_N.'_like'); - $expectedKey = 'fe5076ee92a558ce8177e3afbfc3dafc_fk'; - $hasExpectedKey = false; - - // Find the previously added foreign key, in case the upgrade was interrupted before. - foreach ($foreignKeys as $indexName => $definition) { - if ($indexName === $expectedKey) { - $hasExpectedKey = true; - break; - } - - if ($definition['referencedTable'] === 'wcf'.WCF_N.'_reaction_type') { - if (count($definition['columns']) === 1 && $definition['columns'][0] === 'reactionTypeID') { - $dbEditor->dropForeignKey('wcf'.WCF_N.'_like', $indexName); - } - } - } - - if (!$hasExpectedKey) { - $dbEditor->addForeignKey('wcf' . WCF_N . '_like', $expectedKey, [ - 'columns' => 'reactionTypeID', - 'referencedColumns' => 'reactionTypeID', - 'referencedTable' => 'wcf'.WCF_N.'_reaction_type', - 'ON DELETE' => 'CASCADE', - ]); - } - - WCF::getDB()->commitTransaction(); -} -catch (Exception $e) { - WCF::getDB()->rollBackTransaction(); - - throw $e; -} diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_reloadOptions.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_reloadOptions.php deleted file mode 100644 index ea2e7f4610..0000000000 --- a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.2_reloadOptions.php +++ /dev/null @@ -1,5 +0,0 @@ -prepareStatement($sql); -$statement->execute([ - 0, - 'user.profile.canMail', -]); diff --git a/wcfsetup/install/files/lib/system/WCF.class.php b/wcfsetup/install/files/lib/system/WCF.class.php index bfd4668a10..3ecd9d4c33 100644 --- a/wcfsetup/install/files/lib/system/WCF.class.php +++ b/wcfsetup/install/files/lib/system/WCF.class.php @@ -49,7 +49,7 @@ if (!@ini_get('date.timezone')) { } // define current woltlab suite version -define('WCF_VERSION', '5.2.7'); +define('WCF_VERSION', '5.3.0 Alpha 1'); // define current API version // @deprecated 5.2 -- 2.20.1