Refactor ImportExportController::export
modifié: core/lib/Thelia/Controller/Admin/ImportExportController.php renommé: core/lib/Thelia/Core/Event/ImportExport/Export.php -> core/lib/Thelia/Core/Event/ImportExport.php modifié: core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarBz2ArchiveBuilder.php modifié: core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarGzArchiveBuilder.php modifié: core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php modifié: core/lib/Thelia/Core/FileFormat/Formatting/FormatterManager.php modifié: core/lib/Thelia/Model/Import.php modifié: templates/backOffice/default/ajax/import-modal.html modifié: templates/backOffice/default/import-page.html
This commit is contained in:
@@ -10,10 +10,11 @@
|
||||
/* file that was distributed with this source code. */
|
||||
/*************************************************************************************/
|
||||
|
||||
namespace Thelia\Core\Event\ImportExport;
|
||||
namespace Thelia\Core\Event;
|
||||
use Thelia\Core\Event\ActionEvent;
|
||||
use Thelia\Core\FileFormat\Archive\AbstractArchiveBuilder;
|
||||
use Thelia\Core\FileFormat\Formatting\AbstractFormatter;
|
||||
use Thelia\Core\FileFormat\Formatting\FormatterData;
|
||||
use Thelia\ImportExport\Export\ExportHandler;
|
||||
|
||||
/**
|
||||
@@ -21,7 +22,7 @@ use Thelia\ImportExport\Export\ExportHandler;
|
||||
* @package Thelia\Core\Event\ImportExport
|
||||
* @author Benjamin Perche <bperche@openstudio.fr>
|
||||
*/
|
||||
class Export extends ActionEvent
|
||||
class ImportExport extends ActionEvent
|
||||
{
|
||||
/** @var \Thelia\ImportExport\Export\ExportHandler */
|
||||
protected $handler;
|
||||
@@ -29,17 +30,22 @@ class Export extends ActionEvent
|
||||
/** @var \Thelia\Core\FileFormat\Formatting\AbstractFormatter */
|
||||
protected $formatter;
|
||||
|
||||
/** @var FormatterData */
|
||||
protected $data;
|
||||
|
||||
/** @var \Thelia\Core\FileFormat\Archive\AbstractArchiveBuilder */
|
||||
protected $archiveBuilder;
|
||||
|
||||
public function __construct(
|
||||
AbstractFormatter $formatter,
|
||||
\Thelia\ImportExport\Export\ExportHandler $handler,
|
||||
FormatterData $data,
|
||||
AbstractArchiveBuilder $archiveBuilder = null
|
||||
) {
|
||||
$this->archiveBuilder = $archiveBuilder;
|
||||
$this->formatter = $formatter;
|
||||
$this->handler = $handler;
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -98,4 +104,23 @@ class Export extends ActionEvent
|
||||
{
|
||||
return $this->handler;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param FormatterData $data
|
||||
* @return $this
|
||||
*/
|
||||
public function setData(FormatterData $data)
|
||||
{
|
||||
$this->data = $data;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Thelia\Core\FileFormat\Formatting\FormatterData
|
||||
*/
|
||||
public function getData()
|
||||
{
|
||||
return $this->data;
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,7 @@ class TarBz2ArchiveBuilder extends TarArchiveBuilder
|
||||
|
||||
public function getMimeType()
|
||||
{
|
||||
return "application/x-gtar";
|
||||
return "application/x-bzip2";
|
||||
}
|
||||
|
||||
public function getExtension()
|
||||
|
||||
@@ -26,7 +26,7 @@ class TarGzArchiveBuilder extends TarArchiveBuilder
|
||||
|
||||
public function getMimeType()
|
||||
{
|
||||
return "application/x-gtar";
|
||||
return "application/x-gzip";
|
||||
}
|
||||
|
||||
public function getExtension()
|
||||
|
||||
@@ -117,7 +117,7 @@ class ArchiveBuilderManager
|
||||
foreach ($this->archiveBuilders as $archiveBuilder) {
|
||||
$extensionName = $withDot ? ".": "";
|
||||
$extensionName .= $archiveBuilder->getExtension();
|
||||
$extensions += [$archiveBuilder->getName() => $extensionName];
|
||||
$extensions[$archiveBuilder->getName()] = $extensionName;
|
||||
}
|
||||
|
||||
return $extensions;
|
||||
@@ -140,4 +140,15 @@ class ArchiveBuilderManager
|
||||
return $this->archiveBuilders[$archiveBuilderName];
|
||||
}
|
||||
}
|
||||
|
||||
public function getMimeTypes() {
|
||||
$mimeTypes = [];
|
||||
|
||||
/** @var AbstractArchiveBuilder $formatter */
|
||||
foreach ($this->archiveBuilders as $formatter) {
|
||||
$mimeTypes[$formatter->getName()] = $formatter->getMimeType();
|
||||
}
|
||||
|
||||
return $mimeTypes;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ class FormatterManager
|
||||
foreach ($this->formatters as $formatter) {
|
||||
$extensionName = $withDot ? ".": "";
|
||||
$extensionName .= $formatter->getExtension();
|
||||
$extensions += [$formatter->getName() => $extensionName];
|
||||
$extensions[$formatter->getName()] = $extensionName;
|
||||
}
|
||||
|
||||
return $extensions;
|
||||
@@ -126,7 +126,7 @@ class FormatterManager
|
||||
foreach ($this->getFormattersByTypes($types) as $formatter) {
|
||||
$extensionName = $withDot ? ".": "";
|
||||
$extensionName .= $formatter->getExtension();
|
||||
$extensions += [$formatter->getName() => $extensionName];
|
||||
$extensions[$formatter->getName()] = $extensionName;
|
||||
}
|
||||
|
||||
return $extensions;
|
||||
@@ -167,10 +167,25 @@ class FormatterManager
|
||||
$handledType = $formatter->getHandledType();
|
||||
|
||||
if (in_array($handledType, $types)) {
|
||||
$selectedFormatters += [$formatter->getName() => $formatter];
|
||||
$selectedFormatters[$formatter->getName()] = $formatter;
|
||||
}
|
||||
}
|
||||
|
||||
return $selectedFormatters;
|
||||
}
|
||||
|
||||
public function getMimeTypesByTypes($types) {
|
||||
if (!is_array($types)) {
|
||||
$types = [$types];
|
||||
}
|
||||
|
||||
$mimeTypes = [];
|
||||
|
||||
/** @var AbstractFormatter $formatter */
|
||||
foreach ($this->getFormattersByTypes($types) as $formatter) {
|
||||
$mimeTypes[$formatter->getName()] = $formatter->getMimeType();
|
||||
}
|
||||
|
||||
return $mimeTypes;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user