]> _ Git - cubeextranet.git/commitdiff
wip #3186 @3
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 27 Nov 2019 18:28:16 +0000 (18:28 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 27 Nov 2019 18:28:16 +0000 (18:28 +0000)
inc/ws/Metier/class.ws.book.parametres.php
inc/ws/Util/class.ws.util.php
inc/ws/Util/html5/master/class.ws.html5.compiler.php
inc/ws/Util/html5/master/class.ws.html5.links.php

index 5c179da032b21fb813484958ff3e78a14b1cfb1c..bc4683495b54d1f668b8b0988a046cf51ac7d3c8 100644 (file)
@@ -424,6 +424,21 @@ class wsBookParametres extends wsParametres
             'fieldsnames' => array('permanentLinks', 'linkBlinkTime', 'customLinkClass', 'ignoreLinksTypes', 'linkTooltipManager', 'linkCornerSize', 'linkTooltipMaxWidth', '|', 'linkTracker', 'linkTrackerRegexp', '|', 'linkFilePrefix', '|', 'linkMultimediaPerformanceMode', 'linkMultimediaQuality', '|', 'inlineSlideshowTransitionDuration', 'inlineSlideshowDuration', '|', 'videoReset', 'videoBigPlay', '|', 'brightcovePlayerId', 'brightcovePlayerSecret', '|', 'textPopupStylesheet', 'textPopupWidth', '|', 'iframePopupMaxWidth'));
         //.
 
+        $this->fields['product_zoom_references'] = array('type' => 'freefile', 'default' => '', 'editable' => true,
+            'label' => __('Références produits'), 'grade' => 3, 'fileFilter' => $basketFilter, 'hint' => __('Fichier contenant les références produits'), 'dir' => 'commerce');
+        $icons = ['share' => __('Partage'), 'click' => __('Ecran'), 'pdf' => 'PDF', 'none' => __('Aucune')];
+        $f = [];
+        for ($i = 1; $i <= 2; $i++) {
+            $this->fields['product_zoom_label_' . $i] = ['type' => 'text', 'label' => 'Label du bouton ' . $i, 'default' => '', 'editable' => true, 'grade' => 3];
+            $this->fields['product_zoom_icon_' . $i] = ['type' => 'combo', 'datas' => $icons, 'label' => 'Icône du bouton ' . $i, 'default' => 'click', 'editable' => true, 'grade' => 3];
+            $f[] = '|';
+            $f[] = 'product_zoom_label_' . $i;
+            $f[] = 'product_zoom_icon_' . $i;
+        }
+        $this->fields['product_email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'email") . ' "' . __('Envoyer à un ami') . '"');
+        $this->fields['product_email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Corps de l'email") . ' "' . __('Envoyer à un ami') . '"');
+        $this->fields['product_tweet'] = array('type' => 'textarea', 'default' => '%short%', 'editable' => true, 'label' => __("Contenu Partage court"), 'hint' => __('Contenu du partagé sur les partages courts'));
+        $this->forms['product_zoom'] = ['label' => __('Zooms produits'), 'fieldsnames' => array_merge(["product_zoom_references"], $f, ['|', 'product_email_title', 'product_email_body', 'product_tweet'])];
 
         $this->fields['audiodescriptionTexts'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Contenus textuels pour l\'audiodescription'), 'fileFilter' => $seoFilter];
         $this->fields['audiodescriptionVoice'] = ['type' => 'combo', 'datas' => wsDroits::getTTSVoices(), 'editable' => true, 'default' => true, 'label' => __('Voix pour l\'audiodescription')];
@@ -470,13 +485,9 @@ class wsBookParametres extends wsParametres
                 'Wesco Ventes' => 'com.fluidbook.player.basket.custom.wesco.WescoBasketManager',
                 'Atlantic Download' => 'com.fluidbook.player.basket.custom.atlantic.AtlanticDownloadBasketManager',
                 'Remarkable' => 'Remarkable',
-                'Zoom + lien produit' => 'ZoomProductLink',
+                'Zoom + lien produit (déprécié, utiliser la fonctionnalité "Zoom produits")' => 'ZoomProductLink',
             ), 'grade' => 5);
 
-        $this->fields['product_email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'email") . ' "' . __('Envoyer à un ami') . '"');
-        $this->fields['product_email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Corps de l'email") . ' "' . __('Envoyer à un ami') . '"');
-        $this->fields['product_tweet'] = array('type' => 'textarea', 'default' => '%short%', 'editable' => true, 'label' => __("Contenu Partage court"), 'hint' => __('Contenu du partagé sur les partages courts'));
-
         $this->fields['basketReferences'] = array('type' => 'freefile', 'default' => '', 'editable' => true,
             'label' => __('Références produits'), 'grade' => 3, 'fileFilter' => $basketFilter, 'hint' => __('Fichier contenant les références produits'), 'dir' => 'commerce');
         $this->fields['basketImages'] = array('type' => 'freefile', 'default' => '', 'editable' => true,
@@ -487,7 +498,7 @@ class wsBookParametres extends wsParametres
 
 
         $this->forms['basket'] = array('label' => __('Panier'),
-            'fieldsnames' => array('basket', 'basketManager', 'basketReferences', 'basketImages', 'basketPDFBackground', '|', 'product_email_title', 'product_email_body', 'product_tweet'));
+            'fieldsnames' => array('basket', 'basketManager', 'basketReferences', 'basketImages', 'basketPDFBackground'));
         // .
         $this->fields['offlineLink'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __("URL du Fluidbook"), 'hint' => __('URL du fluidbook utilisée pour la version Offline (CD-ROM, clé USB, Exécutables)'));
         $this->fields['offlineTitle'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'application"));
index af307c72d677783878ca2565905a137783d602e9..4510ce25ec2f3651090840a7315d852a0f61ded0 100644 (file)
@@ -75,6 +75,24 @@ class wsUtil
         return $res;\r
     }\r
 \r
+    public static function excelToArrayKeyValMulti($excelFile)\r
+    {\r
+        $worksheets = self::excelToArray($excelFile);\r
+        $res = [];\r
+        foreach ($worksheets as $worksheet) {\r
+            foreach ($worksheet as $line) {\r
+                $multi = [];\r
+                $n = count($line);\r
+                for ($i = 1; $i < $n; $i++) {\r
+                    $multi[] = trim($line[$i]);\r
+                }\r
+                $res[trim($line[0])] = $multi;\r
+            }\r
+            break;\r
+        }\r
+        return $res;\r
+    }\r
+\r
     protected static function _assocSheet($s)\r
     {\r
         $res = [];\r
index 73faaf710d4d529ce439470c90016866cf964cad..6ff4d8b65d213effe9682c70273567fb54c8b57b 100644 (file)
@@ -403,6 +403,23 @@ class wsHTML5Compiler
                     break;
             }
         }
+        if (!$this->config->product_zoom_references && $this->config->basketReferences && $this->config->basketManager == "ZoomProductLink") {
+            $this->config->product_zoom_references = $this->config->basketReferences;
+            $this->config->basketReferences = '';
+        }
+
+        if ($this->config->product_zoom_references) {
+            if (file_exists($this->config->product_zoom_references) || CubeIT_Util_Url::isDistant($this->config->product_zoom_references)) {
+                $referencesFile = $this->config->product_zoom_references;
+            } else {
+                $referencesFile = $this->wdir . '/commerce/' . $this->config->product_zoom_references;
+            }
+            if (file_exists($referencesFile) || CubeIT_Util_Url::isDistant($referencesFile)) {
+                $function = 'excelToArrayKeyValMulti';
+                $this->config->product_zoom_references = wsUtil::$function($referencesFile);
+            }
+        }
+
         if ($this->config->basketReferences) {
             if (file_exists($this->config->basketReferences) || CubeIT_Util_Url::isDistant($this->config->basketReferences)) {
                 $referencesFile = $this->config->basketReferences;
index 351d56d197d24409dd10d9a131d61f2b14f35746..4e1aa67f04d3024d77e8cfa7a69cd0a6303247d5 100644 (file)
@@ -1903,14 +1903,20 @@ class zoomProductLink extends zoomLink
 
     public function getZoomAttributes()
     {
-        $url = isset($this->compiler->config->basketReferences[$this->to]) ? $this->compiler->config->basketReferences[$this->to] : '';
+        $url = isset($this->compiler->config->product_zoom_references[$this->to]) ? $this->compiler->config->product_zoom_references[$this->to] : '';
 
         $res = array_merge(parent::getZoomAttributes(),
             ['maxzoom' => $this->maxzoom_default, 'ref' => $this->to]
         );
         if ($url) {
-            $res['shareurl'] = $url;
-            $res['producturl'] = $url;
+            $res['shareurl'] = $url[0];
+            $res['producturl'] = $url[0];
+            $n = count($url);
+            for ($i = 1; $i < $n; $i++) {
+                if (isset($url[$i]) && $url[$i]) {
+                    $res['extra-'.$i] = $url[$i];
+                }
+            }
         }
 
         return $res;