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:
Benjamin Perche
2014-07-17 14:04:40 +02:00
parent a16b481059
commit 03f1eb97e0
9 changed files with 354 additions and 90 deletions

View File

@@ -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;
}
}

View File

@@ -26,7 +26,7 @@ class TarBz2ArchiveBuilder extends TarArchiveBuilder
public function getMimeType()
{
return "application/x-gtar";
return "application/x-bzip2";
}
public function getExtension()

View File

@@ -26,7 +26,7 @@ class TarGzArchiveBuilder extends TarArchiveBuilder
public function getMimeType()
{
return "application/x-gtar";
return "application/x-gzip";
}
public function getExtension()

View File

@@ -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;
}
}

View File

@@ -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;
}
}