]> _ Git - cubeextranet.git/commitdiff
wait #3972 @1
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 20 Oct 2020 08:06:30 +0000 (08:06 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 20 Oct 2020 08:06:30 +0000 (08:06 +0000)
inc/ws/Metier/class.ws.document.php
inc/ws/Util/class.ws.tools.php

index 828838a95396eab4c94c912b260ac8d7f8dee19c..9e57934d8c571a1449938ae6804a7c9fc56b901d 100644 (file)
@@ -384,7 +384,7 @@ class wsDocument extends cubeMetier
         return false;
     }
 
-    public function getFile($page, $format = 'jpg', $resolution = 150, $withText = true, $withGraphics = true, $version = 'html')
+    public function getFile($page, $format = 'jpg', $resolution = 150, $withText = true, $withGraphics = true, $version = 'html', $force = false)
     {
         if ($format === 'jpeg') {
             $format = 'jpg';
@@ -436,9 +436,12 @@ class wsDocument extends cubeMetier
             $do = true;
         } else if (isset($reffile) && filemtime($file) < filemtime($reffile)) {
             $do = true;
+        } else if ($format === 'svg') {
+            $t = filemtime($file);
+            $do = $t < 1603181003 && $t > 1602662603;
         }
 
-        if ($do) {
+        if ($do || $force) {
             $this->makeFile($file, $page, $format, $resolution, $withText, $withGraphics, $version);
         }
         return $file;
@@ -501,11 +504,11 @@ class wsDocument extends cubeMetier
         if ($force) {
             $this->addToLog('Processing page #' . $page);
             // Thumb for composition panel
-            $this->makeMiniShot($page);
+            $this->getFile($page, 'jpg', 'thumb', true, true, '', true);
             // Image for link editor
-            $this->getFile($page,'swf');
+            $this->getFile($page, 'swf', 150, true, true, '', true);
             // Make SVG base file
-            $this->makeSVGFile($page, false);
+            $this->makeSVGFile($page, true);
         }
     }
 
index 44d4da1e1767aee70e232f8253c07733bbda24df..9aa8d1b93cd67008929abdff2f0ca4810e3d4020 100644 (file)
@@ -62,17 +62,26 @@ class wsTools
         $cmd = "timeout -s 1 120 /usr/local/bin/svgcleaner --allow-bigger-file --paths-coordinates-precision 3 --copy-on-error --stdout $in";
         $svg = `$cmd`;
         if ($svg == '') {
-            copy($in, $out);
-            return;
+            $svg = file_get_contents($in);
         }
+        $svg = self::_disablePreserveRatio($svg);
         file_put_contents($out, $svg);
     }
 
+    protected static function _disablePreserveRatio($in)
+    {
+        $str = 'preserveAspectRatio="none"';
+        if (strpos($in, $str) !== false) {
+            return $in;
+        }
+        return str_replace("<svg ", '<svg ' . $str . ' ', $in);
+    }
+
     public static function optimizeSVGImages($in, $out, $resolution)
     {
         $svg = file_get_contents($in);
         $svg = preg_replace('/\<\?xml([^\?]*)\?\>/', '', $svg);
-        $svg = substr_replace($svg, ' preserveAspectRatio="none" ', 5, 0);
+        $svg = self::_disablePreserveRatio($svg);
 
         $osvg = preg_replace_callback('|\<image([^>]*)\>|', function ($matches) use ($resolution) {
             return wsTools::optimizeRaster($matches, $resolution);