From 7fc81d0706d451dfde09af6872fb6102b3b7b761 Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Fri, 26 Feb 2016 10:22:53 +0000 Subject: [PATCH] #wesco : handle xlsx file @5 --- inc/ws/Controlleur/class.ws.url.php | 4 +- inc/ws/DAO/class.ws.dao.book.php | 42 ++++++++++++------- inc/ws/Metier/class.ws.book.parametres.php | 7 ++-- .../html5/app/class.ws.html5.app.compiler.php | 8 +++- 4 files changed, 39 insertions(+), 22 deletions(-) diff --git a/inc/ws/Controlleur/class.ws.url.php b/inc/ws/Controlleur/class.ws.url.php index 80a684c42..11e049ab6 100644 --- a/inc/ws/Controlleur/class.ws.url.php +++ b/inc/ws/Controlleur/class.ws.url.php @@ -313,8 +313,8 @@ class wsUrl { $res .= '' . __('Identifiant de l\'application') . '' . form::field(array('settings[namespace]', 'namespace'), 64, 64, $collection->settings['namespace']) . ''; $res .= '' . __('Certificat APNS') . ' Dev (' . __('Fichier .pem') . ')'; $res .= '' . __('Certificat APNS') . ' Prod (' . __('Fichier .pem') . ')'; - $res .= '' . __('Versions iOS') . '' . form::field(array('settings[v_ios]', 'namespace'), 64, 64, $collection->settings['v_ios']) . ''; - $res .= '' . __('Versions Android') . '' . form::field(array('settings[v_android]', 'namespace'), 64, 64, $collection->settings['v_android']) . ''; + $res .= '' . __('Versions iOS') . '' . form::field(array('settings[v_ios]', 'namespace'), 64, 256, $collection->settings['v_ios']) . ''; + $res .= '' . __('Versions Android') . '' . form::field(array('settings[v_android]', 'namespace'), 64, 256, $collection->settings['v_android']) . ''; $res .= ''; $res .= '

' . __('Applications offline') . '

'; diff --git a/inc/ws/DAO/class.ws.dao.book.php b/inc/ws/DAO/class.ws.dao.book.php index 08a3756b2..9d9b74a5f 100644 --- a/inc/ws/DAO/class.ws.dao.book.php +++ b/inc/ws/DAO/class.ws.dao.book.php @@ -1364,23 +1364,35 @@ class wsDAOBook extends commonDAO { $referencesFile = $workingDir . 'commerce/' . $book->parametres->basketReferences; if (file_exists($referencesFile)) { - $xml = simplexml_load_file($referencesFile); - $i = 0; - $allref = array(); - foreach ($xml->item as $item) { - $ref = (string)$item['reference']; - if (isset($allref[$ref])) { - continue; - } - $allref[$ref] = true; - foreach ($formats as $f) { - $refimage = $workingDir . 'commerce/' . $ref . '.' . $f; - if (file_exists($refimage)) { - $flex->addBitmap($refimage, "basket_image_" . $ref); - break; + $ext = CubeIT_Files::getExtension($referencesFile); + if ($ext == 'xml') { + $xml = simplexml_load_file($referencesFile); + $i = 0; + $allref = array(); + foreach ($xml->item as $item) { + $ref = (string)$item['reference']; + if (isset($allref[$ref])) { + continue; + } + $allref[$ref] = true; + foreach ($formats as $f) { + $refimage = $workingDir . 'commerce/' . $ref . '.' . $f; + if (file_exists($refimage)) { + $flex->addBitmap($refimage, "basket_image_" . $ref); + break; + } } + $i++; + } + } elseif ($ext == 'xlsx') { + include_once ROOT.'/inc/ZendFramework/PHPExcel/PHPExcel.php'; + $objReader = PHPExcel_IOFactory::createReader('Excel2007'); + $objPHPExcel = $objReader->load($referencesFile); + + foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { + $worksheets[$worksheet->getTitle()] = $worksheet->toArray(); } - $i++; + $flex->addVariable('basketReferences', $worksheets, false, true, "OrderedObject"); } } if (isset($xml)) { diff --git a/inc/ws/Metier/class.ws.book.parametres.php b/inc/ws/Metier/class.ws.book.parametres.php index 4e4e2af3e..113f453eb 100644 --- a/inc/ws/Metier/class.ws.book.parametres.php +++ b/inc/ws/Metier/class.ws.book.parametres.php @@ -27,8 +27,8 @@ class wsBookParametres extends wsParametres { $pdfFilter->extensions = '*.pdf'; $basketFilter = new stdClass(); - $basketFilter->name = __('Liste de produits') . ' (*.xml)'; - $basketFilter->extensions = '*.xml'; + $basketFilter->name = __('Liste de produits') . ' (*.xml, *.xlsx)'; + $basketFilter->extensions = '*.xml;*.xlsx'; $imageFilter = new stdClass(); $imageFilter->name = __('Images') . ' (*.jpg, *.png)'; @@ -276,7 +276,8 @@ class wsBookParametres extends wsParametres { 'Grdf 2013' => 'com.fluidbook.player.basket.custom.grdf.grdf2013.GrdfBasketManager2013', 'Grdf 2015' => 'com.fluidbook.player.basket.custom.grdf.grdf2015.GrdfBasketManager2015', 'Essilor' => 'com.fluidbook.player.basket.custom.essilor.EssilorBasketManager', - 'Essilor Recap' => 'com.fluidbook.player.basket.cursor.essilorrecap.EssilorRecapBasketManager'), 'grade' => 5); + 'Essilor Recap' => 'com.fluidbook.player.basket.custom.essilorrecap.EssilorRecapBasketManager', + 'Wesco Ventes' => 'com.fluidbook.player.basket.custom.wesco.WescoBasketManager'), 'grade' => 5); $this->fields['basketReferences'] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Références produits'), 'grade' => 5, 'fileFilter' => $basketFilter, 'hint' => __('Fichier contenant les références produits'), 'dir' => 'commerce'); $this->fields['basketImages'] = array('type' => 'freefile', 'default' => '', 'editable' => true, diff --git a/inc/ws/Util/html5/app/class.ws.html5.app.compiler.php b/inc/ws/Util/html5/app/class.ws.html5.app.compiler.php index e39e9435a..5b06146c3 100644 --- a/inc/ws/Util/html5/app/class.ws.html5.app.compiler.php +++ b/inc/ws/Util/html5/app/class.ws.html5.app.compiler.php @@ -21,7 +21,9 @@ class wsHTML5AppCompiler { foreach ($this->collection->datas as $group) { foreach ($group['publications'] as $p) { - $this->books[] = $p['id']; + if($p['id']) { + $this->books[] = $p['id']; + } } } @@ -67,7 +69,9 @@ class wsHTML5AppCompiler { if ($onlyonline && (!isset($p['online']) || !$p['online'])) { continue; } - $books[] = $p['id']; + if ($p['id']) { + $books[] = $p['id']; + } } } return $books; -- 2.39.5