Begin SEO Export

modifié:         core/lib/Thelia/ImportExport/Export/Type/ProductSEOExport.php
This commit is contained in:
Benjamin Perche
2014-07-23 08:33:42 +02:00
parent e98b733fc8
commit 2b01453f50

View File

@@ -11,8 +11,14 @@
/*************************************************************************************/
namespace Thelia\ImportExport\Export\Type;
use Thelia\Core\FileFormat\Formatting\FormatterData;
use Thelia\Core\FileFormat\FormatType;
use Thelia\ImportExport\Export\ExportHandler;
use Thelia\Model\Map\ContentI18nTableMap;
use Thelia\Model\Map\ContentTableMap;
use Thelia\Model\Map\ProductI18nTableMap;
use Thelia\Model\Map\ProductTableMap;
use Thelia\Model\ProductAssociatedContentQuery;
use Thelia\Model\Lang;
/**
@@ -53,7 +59,66 @@ class ProductSEOExport extends ExportHandler
*/
public function buildFormatterData(Lang $lang)
{
$aliases = [
"product_REF" => "ref",
"product_VISIBLE" => "visible",
"product_i18n_TITLE" => "product_title",
"content_URL" => "url",
"content_TITLE" => "page_title",
"content_META_DESCRIPTION" => "meta_description",
"content_META_KEYWORDS" => "meta_keywords",
];
$locale = $lang->getLocale();
$query = ProductAssociatedContentQuery::create()
->useContentQuery()
->useContentI18nQuery()
->addAsColumn("content_URL", "")
->addAsColumn("content_TITLE", ContentI18nTableMap::TITLE)
->addAsColumn("content_META_DESCRIPTION", ContentI18nTableMap::META_DESCRIPTION)
->addAsColumn("content_META_KEYWORDS", ContentI18nTableMap::META_KEYWORDS)
->endUse()
->endUse()
->useProductQuery()
->useProductI18nQuery()
->addAsColumn("product_i18n_TITLE", ProductI18nTableMap::TITLE)
->endUse()
->addAsColumn("product_REF", ProductTableMap::REF)
->addAsColumn("product_VISIBLE", ProductTableMap::VISIBLE)
->endUse()
->select([
"product_REF",
"product_VISIBLE",
"product_i18n_TITLE",
"content_URL",
"content_TITLE",
"content_META_DESCRIPTION",
"content_META_KEYWORDS",
])
;
$this->addI18nCondition(
$query,
ContentI18nTableMap::TABLE_NAME,
ContentTableMap::ID,
ContentI18nTableMap::ID,
ContentI18nTableMap::LOCALE,
$locale
);
$this->addI18nCondition(
$query,
ProductI18nTableMap::TABLE_NAME,
ProductTableMap::ID,
ProductI18nTableMap::ID,
ProductI18nTableMap::LOCALE,
$locale
);
$data = new FormatterData($aliases);
return $data->loadModelCriteria($query);
}
}