Added missing wcf1_application updates
authorAlexander Ebert <ebert@woltlab.com>
Sat, 24 Dec 2016 12:38:54 +0000 (13:38 +0100)
committerAlexander Ebert <ebert@woltlab.com>
Sat, 24 Dec 2016 12:39:01 +0000 (13:39 +0100)
com.woltlab.wcf/package.xml
com.woltlab.wcf/update_1.sql
com.woltlab.wcf/update_3.0.0_rc_2.sql [deleted file]
com.woltlab.wcf/update_5.sql
wcfsetup/install/files/acp/update_com.woltlab.wcf_3.0.0_rc_1.php [deleted file]
wcfsetup/install/files/acp/update_com.woltlab.wcf_3.0.0_rc_3.php [new file with mode: 0644]
wcfsetup/install/files/lib/system/WCF.class.php

index 3fcaf23407719b9a8a7d630d841d44f2199ada3f..abc2e7fc9adbf4e715f3d0405e563b1f436a4d4e 100644 (file)
@@ -5,8 +5,8 @@
                <packagedescription>Free CMS and web-framework, designed for awesome websites and communities.</packagedescription>
                <packagedescription language="de">Freies CMS und Web-Framework, das eindrucksvolle Websites und Communities ermöglicht.</packagedescription>
                <isapplication>1</isapplication>
-               <version>3.0.0 RC 2</version> <!-- codename: vortex -->
-               <date>2016-12-21</date>
+               <version>3.0.0 RC 3</version> <!-- codename: vortex -->
+               <date>2016-12-21</date> <!-- TODO: update version -->
        </packageinformation>
        
        <authorinformation>
                <instruction type="script">acp/update_com.woltlab.wcf_3.0_post_sql.php</instruction>
        </instructions>
        
-       <!-- Update RC 2 -> RC 3: deploy *all* acptemplates to account for missing update at Beta 5 -> RC 1 -->
-       
-       <instructions type="update" fromversion="3.0.0 RC 1">
+       <instructions type="update" fromversion="3.0.0 RC 2">
+               <!-- do not move this down, it is required to deploy the update script below -->
                <instruction type="file">files_update.tar</instruction>
-               <instruction type="sql">update_3.0.0_rc_2.sql</instruction>
-               
-               <!-- !!! whichever instruction comes next: run="standalone" !!! -->
                
-               <instruction type="language" run="standalone">language/*.xml</instruction>
+               <!-- force deploy of all acp templates -->
+               <instruction type="acpTemplate" />
+               <!-- fix missing SQL update when upgrading WCF 2.1 -> WSC 3.0 RC 2 -->
+               <instruction type="script">acp/update_com.woltlab.wcf_3.0.0_rc_3.php</instruction>
                
-               <instruction type="template">templates_update.tar</instruction>
-               
-               <instruction type="page" />
+               <!-- TODO: all the other fancy stuff -->
        </instructions>
 </package>
index e09b2b897c67593e89fd64a1c0fe34ec3f08e446..e920ff8af9f9238111b240f1ae9a3d413f3f3069 100644 (file)
@@ -25,6 +25,7 @@ ALTER TABLE wcf1_acp_session DROP COLUMN objectID;
 ALTER TABLE wcf1_application DROP COLUMN cookiePath;
 ALTER TABLE wcf1_application DROP COLUMN isPrimary;
 ALTER TABLE wcf1_application ADD isTainted TINYINT(1) NOT NULL DEFAULT 0;
+ALTER TABLE wcf1_application ADD landingPageID INT(10) NULL;
 
 DROP TABLE IF EXISTS wcf1_article;
 CREATE TABLE wcf1_article (
diff --git a/com.woltlab.wcf/update_3.0.0_rc_2.sql b/com.woltlab.wcf/update_3.0.0_rc_2.sql
deleted file mode 100644 (file)
index f3c5383..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-/* 495a4c11a530a91c4d3320124752d4157ac48ec7 */
-ALTER TABLE wcf1_application ADD COLUMN landingPageID INT(10) NULL;
-ALTER TABLE wcf1_application ADD FOREIGN KEY (landingPageID) REFERENCES wcf1_page (pageID) ON DELETE SET NULL;
-
-UPDATE wcf1_application SET landingPageID = (SELECT pageID FROM wcf1_page WHERE isLandingPage = 1 LIMIT 1) WHERE packageID = 1;
index 8c4c2c2a596569b1d7e17e56b21ff92dadd26ede..4beb41b86d7d5a2ab35625bd8926a7ae45790447 100644 (file)
@@ -7,6 +7,8 @@ ALTER TABLE wcf1_acl_simple_to_group ADD FOREIGN KEY (groupID) REFERENCES wcf1_u
 
 ALTER TABLE wcf1_acp_session_virtual ADD FOREIGN KEY (sessionID) REFERENCES wcf1_acp_session (sessionID) ON DELETE CASCADE ON UPDATE CASCADE;
 
+ALTER TABLE wcf1_application ADD FOREIGN KEY (landingPageID) REFERENCES wcf1_page (pageID) ON DELETE SET NULL;
+
 ALTER TABLE wcf1_article ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
 ALTER TABLE wcf1_article ADD FOREIGN KEY (categoryID) REFERENCES wcf1_category (categoryID) ON DELETE SET NULL;
 
@@ -207,3 +209,6 @@ INSERT INTO wcf1_template_group (parentTemplateGroupID, templateGroupName, templ
 INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('YouTube Playlist', 'https?://(?:.+?\\.)?youtu(?:\\.be/|be\\.com/)playlist\\?(?:.*?&)?list=(?P<ID>[a-zA-Z0-9_-]+)', '<div class="videoContainer"><iframe src="https://www.youtube.com/embed/videoseries?list={$ID}" allowfullscreen></iframe></div>');
 UPDATE wcf1_bbcode_media_provider SET regex = 'https?://vimeo\\.com/(?:channels/[^/]+/)?(?P<ID>\\d+)' WHERE title = 'Vimeo';
 UPDATE wcf1_bbcode_media_provider SET regex = 'https?://(?:www\\.)?dailymotion\\.com/video/(?P<ID>[a-zA-Z0-9_-]+)', html = '<iframe width="480" height="270" src="//www.dailymotion.com/embed/video/{$ID}"></iframe>' WHERE title = 'DailyMotion';
+
+-- application landing page
+UPDATE wcf1_application SET landingPageID = (SELECT pageID FROM wcf1_page WHERE isLandingPage = 1 LIMIT 1) WHERE packageID = 1;
diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.0.0_rc_1.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.0.0_rc_1.php
deleted file mode 100644 (file)
index bed35a8..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-use wcf\system\session\SessionHandler;
-use wcf\system\WCF;
-
-/**
- * @author     Alexander Ebert
- * @copyright  2001-2016 WoltLab GmbH
- * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
- * @package    WoltLabSuite\Core
- */
-$sessionID = SessionHandler::getInstance()->sessionID;
-
-SessionHandler::getInstance()->disableUpdate();
-
-$sql = "SELECT  *
-       FROM    wcf".WCF_N."_acp_session_virtual
-       WHERE   sessionID = ?";
-$statement = WCF::getDB()->prepareStatement($sql);
-$statement->execute([$sessionID]);
-$sessionVariables = '';
-while ($row = $statement->fetchArray()) {
-       $tmp = @unserialize($row['sessionVariables']);
-       if ($tmp['__SECURITY_TOKEN'] == SECURITY_TOKEN) {
-               $sessionVariables = $row['sessionVariables'];
-       }
-}
-
-$sql = "UPDATE  wcf".WCF_N."_acp_session
-       SET     sessionVariables = ?
-       WHERE   sessionID = ?";
-$statement = WCF::getDB()->prepareStatement($sql);
-$statement->execute([
-       $sessionVariables,
-       $sessionID
-]);
-
-$statement = WCF::getDB()->prepareStatement("ALTER TABLE wcf".WCF_N."_acp_session_virtual DROP COLUMN sessionVariables");
-$statement->execute();
-
diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.0.0_rc_3.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.0.0_rc_3.php
new file mode 100644 (file)
index 0000000..7385b3a
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+use wcf\system\WCF;
+
+/**
+ * @author     Alexander Ebert
+ * @copyright  2001-2016 WoltLab GmbH
+ * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package    WoltLabSuite\Core
+ */
+$columns = WCF::getDB()->getEditor()->getColumns("wcf".WCF_N."_application");
+$hasLandingPageID = false;
+foreach ($columns as $column) {
+       if ($column['name'] == 'landingPageID') {
+               $hasLandingPageID = true;
+               break;
+       }
+}
+
+if (!$hasLandingPageID) {
+       $statement = WCF::getDB()->prepareStatement("ALTER TABLE wcf".WCF_N."_application ADD COLUMN landingPageID INT(10) NULL");
+       $statement->execute();
+       
+       $statement = WCF::getDB()->prepareStatement("ALTER TABLE wcf".WCF_N."_application ADD CONSTRAINT `8a7fc72db2348bc5695394ffd616cbf5_fk` FOREIGN KEY (landingPageID) REFERENCES wcf".WCF_N."_page (pageID) ON DELETE SET NULL;");
+       $statement->execute();
+       
+       $statement = WCF::getDB()->prepareStatement("UPDATE wcf".WCF_N."_application SET landingPageID = (SELECT pageID FROM wcf".WCF_N."_page WHERE isLandingPage = 1 LIMIT 1) WHERE packageID = 1;");
+       $statement->execute();
+}
index 1c9b617b3fa524120c7268ed72765eac178f62b5..21a7578da7e1f6baf8564e110bdcb982435a834b 100644 (file)
@@ -27,7 +27,6 @@ use wcf\system\language\LanguageFactory;
 use wcf\system\package\PackageInstallationDispatcher;
 use wcf\system\request\Request;
 use wcf\system\request\RequestHandler;
-use wcf\system\request\RouteHandler;
 use wcf\system\session\SessionFactory;
 use wcf\system\session\SessionHandler;
 use wcf\system\style\StyleHandler;
@@ -47,7 +46,7 @@ if (!@ini_get('date.timezone')) {
 }
 
 // define current woltlab suite version
-define('WCF_VERSION', '3.0.0 RC 2');
+define('WCF_VERSION', '3.0.0 RC 3');
 
 // define current unix timestamp
 define('TIME_NOW', time());