Queue DownloadStyleLogoJob during style upgrade
authorTim Düsterhus <duesterhus@woltlab.com>
Tue, 1 Sep 2020 14:46:17 +0000 (16:46 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Tue, 1 Sep 2020 14:46:17 +0000 (16:46 +0200)
wcfsetup/install/files/acp/update_com.woltlab.wcf_5.3_style.php

index b5669d85096fc19cafdd16709ae7ecc7e4bdb565..32ba4420ca9a25575303f5a26d21dfa0d70152b6 100644 (file)
@@ -2,7 +2,10 @@
 
 use wcf\data\style\StyleEditor;
 use wcf\data\style\StyleList;
+use wcf\system\background\BackgroundQueueHandler;
+use wcf\system\background\job\DownloadStyleLogoJob;
 use wcf\util\FileUtil;
+use wcf\util\Url;
 
 /**
  * @author     Tim Duesterhus
@@ -112,8 +115,14 @@ foreach ($styleList as $style) {
        
        // 7) Copy styleLogo.
        // Moving is unsafe, we cannot even guarantee that the logo is a file on the local filesystem.
+       $queueDownload = false;
        foreach (['pageLogo', 'pageLogoMobile'] as $type) {
                if (empty($variables[$type])) continue;
+               if (Url::is($variables[$type])) {
+                       $queueDownload = true;
+                       continue;
+               }
+               
                $srcPath = WCF_DIR . 'images/' . $variables[$type];
                if (!file_exists($srcPath)) {
                        $srcPath = WCF_DIR . $style->imagePath . '/' . $style->getVariable($type);
@@ -128,4 +137,7 @@ foreach ($styleList as $style) {
                $variables[$type] = basename($srcPath);
        }
        $styleEditor->setVariables($variables);
+       if ($queueDownload) {
+               BackgroundQueueHandler::getInstance()->enqueueIn(new DownloadStyleLogoJob($style), 150);
+       }
 }