Refactor images and document export interfaces, and implement it
modifié: core/lib/Thelia/Controller/Admin/ImportExportController.php renommé: core/lib/Thelia/ImportExport/DocumentsAwareInterface.php -> core/lib/Thelia/ImportExport/DocumentsExportInterface.php renommé: core/lib/Thelia/ImportExport/ImagesAwareInterface.php -> core/lib/Thelia/ImportExport/ImagesExportInterface.php
This commit is contained in:
@@ -17,8 +17,8 @@ use Thelia\Core\Template\Loop\Export as ExportLoop;
|
||||
use Thelia\Core\Template\Loop\Import as ImportLoop;
|
||||
use Thelia\Form\Exception\FormValidationException;
|
||||
use Thelia\Form\ExportForm;
|
||||
use Thelia\ImportExport\DocumentsAwareInterface;
|
||||
use Thelia\ImportExport\ImagesAwareInterface;
|
||||
use Thelia\ImportExport\DocumentsExportInterface;
|
||||
use Thelia\ImportExport\ImagesExportInterface;
|
||||
use Thelia\Model\ExportQuery;
|
||||
use Thelia\Model\ImportQuery;
|
||||
|
||||
@@ -118,24 +118,27 @@ class ImportExportController extends BaseAdminController
|
||||
$formattedContent = $formatter->encode($data);
|
||||
|
||||
if (!$boundForm->get("do_compress")->getData()) {
|
||||
$filename = $formatter::FILENAME . "." . $formatter->getExtension();
|
||||
|
||||
return new Response(
|
||||
$formattedContent,
|
||||
200,
|
||||
[
|
||||
"Content-Type" => $formatter->getMimeType(),
|
||||
"Content-Disposition" =>
|
||||
"attachment; filename=\"".$formatter::FILENAME .
|
||||
"." . $formatter->getExtension() ."\"",
|
||||
"attachment; filename=\"" . $filename . "\"",
|
||||
]
|
||||
);
|
||||
} else {
|
||||
/** @var \Thelia\Core\FileFormat\Archive\AbstractArchiveBuilder $archiveBuilder */
|
||||
$archiveBuilder = $this->archiveBuilderManager->get($boundForm->get("archive_builder")->getData());
|
||||
/** @var \Thelia\Core\FileFormat\Archive\ArchiveBuilderInterface $archiveBuilder */
|
||||
$archiveBuilder = $this->archiveBuilderManager->get(
|
||||
$boundForm->get("archive_builder")->getData()
|
||||
);
|
||||
|
||||
/**
|
||||
* Put the images in the archive
|
||||
*/
|
||||
if ($boundForm->get("images")->getData() && $handler instanceof ImagesAwareInterface) {
|
||||
if ($boundForm->get("images")->getData() && $handler instanceof ImagesExportInterface) {
|
||||
foreach ($handler->getImagesPaths() as $image) {
|
||||
$archiveBuilder->addFile($image, "images");
|
||||
}
|
||||
@@ -144,7 +147,7 @@ class ImportExportController extends BaseAdminController
|
||||
/**
|
||||
* Then the documents
|
||||
*/
|
||||
if ($boundForm->get("documents")->getData() && $handler instanceof DocumentsAwareInterface) {
|
||||
if ($boundForm->get("documents")->getData() && $handler instanceof DocumentsExportInterface) {
|
||||
foreach ($handler->getDocumentsPaths() as $document) {
|
||||
$archiveBuilder->addFile($document, "documents");
|
||||
}
|
||||
|
||||
@@ -12,12 +12,14 @@
|
||||
namespace Thelia\ImportExport;
|
||||
|
||||
/**
|
||||
* Interface DocumentsAwareInterface
|
||||
* Interface DocumentsExportInterface
|
||||
* @package Thelia\ImportExport
|
||||
* @author Benjamin Perche <bperche@openstudio.fr>
|
||||
*/
|
||||
interface DocumentsAwareInterface
|
||||
interface DocumentsExportInterface
|
||||
{
|
||||
const DOCUMENTS_DIRECTORY = "documents";
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*
|
||||
@@ -13,12 +13,14 @@ namespace Thelia\ImportExport;
|
||||
|
||||
|
||||
/**
|
||||
* interface ImagesAwareInterface
|
||||
* interface ImagesExportInterface
|
||||
* @package Thelia\ImportExport
|
||||
* @author Benjamin Perche <bperche@openstudio.fr>
|
||||
*/
|
||||
interface ImagesAwareInterface
|
||||
interface ImagesExportInterface
|
||||
{
|
||||
const IMAGES_DIRECTORY = "images";
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*
|
||||
Reference in New Issue
Block a user