Added generic identifier for media providers
authorAlexander Ebert <ebert@woltlab.com>
Mon, 7 Aug 2017 12:52:39 +0000 (14:52 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Tue, 8 Aug 2017 13:37:02 +0000 (15:37 +0200)
com.woltlab.wcf/package.xml
com.woltlab.wcf/update_3.1.sql
wcfsetup/install/files/lib/acp/form/BBCodeMediaProviderAddForm.class.php

index be787ba28080d0f62f10a283fc3e12b7846188cb..55660ec4ebd98069bbccf33e907d92759024b90c 100644 (file)
@@ -44,7 +44,7 @@
                <instruction type="script">acp/post_install.php</instruction>
        </instructions>
        
-       <instructions type="update" fromversion="3.0.7">
+       <instructions type="update" fromversion="3.0.8">
                <instruction type="acpTemplate" />
                <instruction type="template" />
                
index 083b888189b101828208a74d962074e573f856a7..f9d8815648e77e2ccbbd3e46dab3405182f8483c 100644 (file)
@@ -6,6 +6,10 @@ ALTER TABLE wcf1_article_content ADD COLUMN teaserImageID INT(10);
 ALTER TABLE wcf1_bbcode_media_provider ADD COLUMN name VARCHAR(80) NOT NULL;
 ALTER TABLE wcf1_bbcode_media_provider ADD COLUMN packageID INT(10) NOT NULL;
 ALTER TABLE wcf1_bbcode_media_provider ADD COLUMN className varchar(255) NOT NULL DEFAULT '';
+
+-- remove default media providers (they'll be re-added later during the upgrade)
+DELETE FROM wcf1_bbcode_media_provider WHERE title IN ('YouTube', 'YouTube Playlist', 'Vimeo', 'Clipfish', 'Veoh', 'DailyMotion', 'github gist', 'Soundcloud', 'Soundcloud set');
+UPDATE wcf1_bbcode_media_provider SET name = CONCAT('com.woltlab.wcf.generic', providerID);
 ALTER TABLE wcf1_bbcode_media_provider ADD UNIQUE KEY name (name, packageID);
 
 ALTER TABLE wcf1_box ADD COLUMN lastUpdateTime INT(10) NOT NULL DEFAULT 0;
index 810c7a62f7062d724d9920dfb0782c9d9c0d02a6..5cf2eefa86101e5c35cbe8a21d87eb49ceeb86e1 100644 (file)
@@ -1,6 +1,8 @@
 <?php
 namespace wcf\acp\form;
+use wcf\data\bbcode\media\provider\BBCodeMediaProvider;
 use wcf\data\bbcode\media\provider\BBCodeMediaProviderAction;
+use wcf\data\bbcode\media\provider\BBCodeMediaProviderEditor;
 use wcf\form\AbstractForm;
 use wcf\system\exception\UserInputException;
 use wcf\system\Regex;
@@ -101,6 +103,8 @@ class BBCodeMediaProviderAddForm extends AbstractForm {
        public function save() {
                parent::save();
                
+               $name = 'placeholder_'.StringUtil::getRandomID();
+               
                // save media provider
                $this->objectAction = new BBCodeMediaProviderAction([], 'create', ['data' => array_merge($this->additionalFields, [
                        'title' => $this->title,
@@ -108,9 +112,15 @@ class BBCodeMediaProviderAddForm extends AbstractForm {
                        'html' => $this->html,
                        'className' => $this->className
                ])]);
-               $this->objectAction->executeAction();
+               $returnValues = $this->objectAction->executeAction();
                $this->saved();
                
+               /** @var BBCodeMediaProvider $provider */
+               $provider = $returnValues['returnValues'];
+               (new BBCodeMediaProviderEditor($provider))->update([
+                       'name' => 'com.woltlab.wcf.generic' . $provider->providerID
+               ]);
+               
                // reset values
                $this->title = $this->regex = $this->html = $this->className = '';