Prestashop:从 sub-category 页面获取 parent 类别信息
Prestashop: Get parent category informations from the sub-category page
我在 prestashop 上建立了一个基于经典主题的 child 主题的网站。
根据我的需要,我有一个主要类别的页面,其中有一个英雄部分,我在其中显示主要类别名称、类别的封面图片、sub-categories 和描述。 (见附图)
hero section
现在,当我转到 sub-category 页面时,我需要像这样保留这一部分。保留标题、图片、sub-categories 等。只是内容必须更改。
现在我的代码显示这个英雄部分,位于 layout-left-column.tpl(在所有主要内容之前和 header 之后):
{block name="hero_content"}
{if Tools::getValue('id_category') == 11 || 19 || 20 || 21 || 22 || 23}
<div class="category_hero" style="background-image: url('{$urls.img_url}categories/volailles_image_cover.jpg')">
{if $listing.pagination.items_shown_from == 1}
<div class="category_hero_title">
<h1 class="h1">{$category.name}</h1>
</div>
<div class="category_hero_subcategories">
{include file='catalog/_partials/subcategories.tpl'}
</div>
<div class="category_hero_description">
{$category.description nofilter}
</div>
{/if}
</div>
{/if}
{/block}
但正如我预期的那样,当我转到 sub-category 时,此部分会随着此 sub-category 的信息而变化。
我怎样才能让这个部分包含 parent 类别信息?
Ps:我尝试调用函数 Category::getParentsCategories(),但没有成功。我正在使用 Prestashop 1.7.8.3
谢谢你的时间。
[更新]问题已解决
我终于解决了这个主题的问题:
Prestashop subcategory parent
并进行改编:
在我创建函数的自定义模块 class 中:
public function hookDisplayHeaderCategory($params) {
if (isset($params['current_category']) && !empty($params['current_category'])) {
$id_lang = $this->context->language->id;
$parent_category = new Category((int) $params['current_category']);
$sub_categories = Category::getChildren((int) $params['current_category'], $id_lang);
if (Validate::isLoadedObject($parent_category)) {
$this->context->smarty->assign(array(
"parent_category" => $parent_category,
"parent_category_name" => $parent_category->name,
"parent_category_description" => $parent_category->description,
"sub_categories" => $sub_categories,
));
}
}
return $this->display(__FILE__, 'category_hero.tpl');
}
在此模块中创建一个包含英雄部分的视图:
<div class="category_hero" style="background-image: url('{$urls.img_url}categories/volailles_image_cover.jpg')">
<div class="category_hero_title">
<h1 class="h1">{$parent_category_name[1]}</h1>
</div>
<div class="category_hero_subcategories">
{include file='catalog/_partials/subcategories.tpl' subcategories=$sub_categories}
</div>
<div class="category_hero_description">
{$parent_category_description[1] nofilter}
</div>
</div>
如果能帮助到相同情况的人。
我在 prestashop 上建立了一个基于经典主题的 child 主题的网站。 根据我的需要,我有一个主要类别的页面,其中有一个英雄部分,我在其中显示主要类别名称、类别的封面图片、sub-categories 和描述。 (见附图)
hero section
现在,当我转到 sub-category 页面时,我需要像这样保留这一部分。保留标题、图片、sub-categories 等。只是内容必须更改。
现在我的代码显示这个英雄部分,位于 layout-left-column.tpl(在所有主要内容之前和 header 之后):
{block name="hero_content"}
{if Tools::getValue('id_category') == 11 || 19 || 20 || 21 || 22 || 23}
<div class="category_hero" style="background-image: url('{$urls.img_url}categories/volailles_image_cover.jpg')">
{if $listing.pagination.items_shown_from == 1}
<div class="category_hero_title">
<h1 class="h1">{$category.name}</h1>
</div>
<div class="category_hero_subcategories">
{include file='catalog/_partials/subcategories.tpl'}
</div>
<div class="category_hero_description">
{$category.description nofilter}
</div>
{/if}
</div>
{/if}
{/block}
但正如我预期的那样,当我转到 sub-category 时,此部分会随着此 sub-category 的信息而变化。
我怎样才能让这个部分包含 parent 类别信息?
Ps:我尝试调用函数 Category::getParentsCategories(),但没有成功。我正在使用 Prestashop 1.7.8.3
谢谢你的时间。
[更新]问题已解决
我终于解决了这个主题的问题: Prestashop subcategory parent
并进行改编:
在我创建函数的自定义模块 class 中:
public function hookDisplayHeaderCategory($params) {
if (isset($params['current_category']) && !empty($params['current_category'])) {
$id_lang = $this->context->language->id;
$parent_category = new Category((int) $params['current_category']);
$sub_categories = Category::getChildren((int) $params['current_category'], $id_lang);
if (Validate::isLoadedObject($parent_category)) {
$this->context->smarty->assign(array(
"parent_category" => $parent_category,
"parent_category_name" => $parent_category->name,
"parent_category_description" => $parent_category->description,
"sub_categories" => $sub_categories,
));
}
}
return $this->display(__FILE__, 'category_hero.tpl');
}
在此模块中创建一个包含英雄部分的视图:
<div class="category_hero" style="background-image: url('{$urls.img_url}categories/volailles_image_cover.jpg')">
<div class="category_hero_title">
<h1 class="h1">{$parent_category_name[1]}</h1>
</div>
<div class="category_hero_subcategories">
{include file='catalog/_partials/subcategories.tpl' subcategories=$sub_categories}
</div>
<div class="category_hero_description">
{$parent_category_description[1] nofilter}
</div>
</div>
如果能帮助到相同情况的人。