Fix Product SEO export

modifié:         core/lib/Thelia/ImportExport/Export/Type/ProductSEOExport.php
	modifié:         core/lib/Thelia/Tests/ImportExport/Export/ProductSEOExportTest.php
This commit is contained in:
Benjamin Perche
2014-07-23 16:24:11 +02:00
parent 44e07f1940
commit 9dfff70838
2 changed files with 15 additions and 33 deletions

View File

@@ -68,9 +68,9 @@ class ProductSEOExport extends ExportHandler
"product_VISIBLE" => "visible",
"product_i18n_TITLE" => "product_title",
"product_URL" => "url",
"content_TITLE" => "content_title",
"content_META_DESCRIPTION" => "meta_description",
"content_META_KEYWORDS" => "meta_keywords",
"product_seo_TITLE" => "page_title",
"product_seo_META_DESCRIPTION" => "meta_description",
"product_seo_META_KEYWORDS" => "meta_keywords",
];
$locale = $this->locale = $lang->getLocale();
@@ -79,23 +79,18 @@ class ProductSEOExport extends ExportHandler
* Join objects
*/
$urlJoin = new Join(ProductTableMap::ID, RewritingUrlTableMap::VIEW_ID, Criteria::LEFT_JOIN);
$contentJoin = new Join(ContentTableMap::ID, ContentI18nTableMap::ID, Criteria::LEFT_JOIN);
$productJoin = new Join(ProductTableMap::ID, ProductI18nTableMap::ID, Criteria::LEFT_JOIN);
$query = ProductAssociatedContentQuery::create()
->useContentQuery()
->addJoinObject($contentJoin, "content_join")
->addJoinCondition("content_join", ContentI18nTableMap::LOCALE . "=" . $this->real_escape($locale))
->addAsColumn("content_TITLE", ContentI18nTableMap::TITLE)
->addAsColumn("content_META_DESCRIPTION", ContentI18nTableMap::META_DESCRIPTION)
->addAsColumn("content_META_KEYWORDS", ContentI18nTableMap::META_KEYWORDS)
->endUse()
->useProductQuery()
->addJoinObject($productJoin, "product_join")
->addJoinCondition("product_join", ProductI18nTableMap::LOCALE . "=" . $this->real_escape($locale))
->addAsColumn("product_i18n_TITLE", ProductI18nTableMap::TITLE)
->addAsColumn("product_REF", ProductTableMap::REF)
->addAsColumn("product_VISIBLE", ProductTableMap::VISIBLE)
->addAsColumn("product_seo_TITLE", ProductI18nTableMap::META_TITLE)
->addAsColumn("product_seo_META_DESCRIPTION", ProductI18nTableMap::META_DESCRIPTION)
->addAsColumn("product_seo_META_KEYWORDS", ProductI18nTableMap::META_KEYWORDS)
->endUse()
->addJoinObject($urlJoin, "rewriting_url_join")
->addJoinCondition("rewriting_url_join", RewritingUrlTableMap::VIEW_LOCALE . "=" . $this->real_escape($locale))
@@ -110,9 +105,9 @@ class ProductSEOExport extends ExportHandler
"product_VISIBLE",
"product_i18n_TITLE",
"product_URL",
"content_TITLE",
"content_META_DESCRIPTION",
"content_META_KEYWORDS",
"product_seo_TITLE",
"product_seo_META_DESCRIPTION",
"product_seo_META_KEYWORDS",
])
;
@@ -128,7 +123,7 @@ class ProductSEOExport extends ExportHandler
"product_title",
"visible",
"url",
"content_title",
"page_title",
"meta_description",
"meta_keywords",
];

View File

@@ -35,7 +35,7 @@ class ProductSEOExportTest extends \PHPUnit_Framework_TestCase
$data = $export->buildFormatterData(Lang::getDefaultLanguage());
$keys=["ref","visible","product_title","url","content_title","meta_description","meta_keywords",];
$keys=["ref","visible","product_title","url","page_title","meta_description","meta_keywords",];
sort($keys);
$rawData = $data->getData();
@@ -60,26 +60,13 @@ class ProductSEOExportTest extends \PHPUnit_Framework_TestCase
$product = ProductQuery::create()->findOneByRef($row["ref"]);
$this->assertNotNull($product);
$contentI18n = ContentI18nQuery::create()
->filterByTitle($row["content_title"])
->filterByLocale("en_US")
->findOne();
$contentsObj = ProductAssociatedContentQuery::create()
->filterByProduct($product)
;
if (null !== $contentI18n) {
$contentsObj->filterByContentId($contentI18n->getId());
}
$contentsObj->findOne();
$this->assertEquals($product->getVisible(), $row["visible"]);
$this->assertEquals($product->getTitle(), $row["product_title"]);
$this->assertEquals($contentI18n->getMetaDescription(), $row["meta_description"]);
$this->assertEquals($contentI18n->getMetaKeywords(), $row["meta_keywords"]);
$this->assertEquals($product->getMetaTitle(), $row["page_title"]);
$this->assertEquals($product->getMetaDescription(), $row["meta_description"]);
$this->assertEquals($product->getMetaKeywords(), $row["meta_keywords"]);
$this->assertEquals($product->getRewrittenUrl("en_US"), $row["url"]);
}
}
}