我想在OpenCart类别模块中foreach
第三级,
这里是只生成2级别类别的代码,请帮助和修改,以便它将创建第三级:
<ul id="menu">
<?php foreach ($categories as $category) { ?>
<li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
<?php if ($category['children']) { ?>
<?php for ($i = 0; $i < count($category['children']);) { ?>
<ul>
<?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
<?php for (; $i < $j; $i++) { ?>
<?php if (isset($category['children'][$i])) { ?>
<li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
<?php } ?>
<?php } ?>
</ul>
<?php } ?>
<?php } ?>
</li>
<?php } ?>
</ul>
答案 0 :(得分:7)
首先,您需要编辑标题控制器:
转到目录 - &gt; controller-&gt; common-&gt; header.php
编辑创建$ categories变量的部分。通过以下脚本更新:
$categories = $this->model_catalog_category->getCategories(0);
foreach ($categories as $category) {
if ($category['top']) {
$children_data = array();
$children = $this->model_catalog_category->getCategories($category['category_id']);
foreach ($children as $child) {
$sec_children_data = array();
$sec_children = $this->model_catalog_category->getCategories($child['category_id']);
foreach ($sec_children as $sec_child) {
$sec_children_data[] = array(
'name' => $sec_child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $child['category_id'] . '_' . $sec_child['category_id'])
);
}
$data = array(
'filter_category_id' => $child['category_id'],
'filter_sub_category' => true
);
$product_total = $this->model_catalog_product->getTotalProducts($data);
$children_data[] = array(
'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']), 'children' => $sec_children_data
);
}
// Level 1
$this->data['categories'][] = array(
'name' => $category['name'],
'children' => $children_data,
'column' => $category['column'] ? $category['column'] : 1,
'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
);
}
}
然后更新视图文件以显示第三级别类别。
答案 1 :(得分:2)
你可以试试这个,它不优雅但应该有效:
<ul id="menu">
<?php foreach ($categories as $category) :
echo '<li><a href="'.$category['href'].'">'.$category['name'].'</a>';
if (!empty($category['children'])) :
echo '<ul>';
foreach ($category['children'] as $category_level2) :
echo '<li><a href="'.$category_level2['href'].'">'.$category_level2['name'].'</a>';
if (!empty($category_level2['children'])) :
echo '<ul>';
foreach ($category_level2['children'] as $category_level3) :
echo '<li><a href="'.$category_level3['href'].'">'.$category_level3['name'].'</a></li>';
endforeach;
echo '</ul>';
endif;
echo '</li>';
endforeach;
echo '</ul>';
endif;
echo '</li>';
endforeach;
echo '</ul>';
?>
答案 2 :(得分:0)
假设您已经完成了管理方面,那么您应该检查第二级是否有某些类别。如果是,则进行for
构建(或foreach
)并将其显示为第3级。
您将生成三重<ul></ul>
构造。它应该在CSS下风格化。
您甚至可以使用递归函数创建无限子类别。
如果你没有得到它,请告诉我。
答案 3 :(得分:0)
首先从here下载vqmod然后解压缩。现在vqmod文件夹保存在您的站点根目录中。然后转到浏览器编写您的站点URL然后“/ vqmod / install”并按Enter然后您会收到一条消息,您可以在您的站点中成功安装vqmod。现在,您下载扩展表单here并将其解压缩。并在您的站点中保留提取文件,指示您站点中的foulder exm:menu3rdlevel-opencart-2_2 \ vqmod \ xml / Menu3rdLevel.xml文件,例如:vqmod \ xml / Menu3rdLevel.xml,其他文件带有“menu3rdlevel”文件夹。从您的扩展文件夹“javascript”到您的站点文件夹“javescript”,扩展文件夹“image”到站点文件夹“image”扩展文件夹“stylsheet”到站点文件夹“stylsheet”。然后在浏览器中刷新您的网站即可。
注意:仅传输xml文件和文件夹的其他文件。
答案 4 :(得分:0)
要编辑第三级菜单,请在header.php控制器文件中进行以下更改。
foreach ($sec_children as $sec_child) {
$sec_children_data[] = array(
'name' => $sec_child['name'] . ($this->config->get('config_product_count') ? '' : ''),
'href' => $this->url->link('product/category', 'path=' . $child['category_id'] . '_' . $sec_child['category_id'])
);
}
并对header.tpl文件进行以下更改。
?php if (isset($category['children'][$i]['level3'])) {
$level3menus = $category['children'][$i]['level3'];
?>
<ul class="level3">
<?php
foreach( $level3menus as $level3menu) {
?>
<li><a href="<?php echo $level3menu['href']; ?>" class=""><?php echo $level3menu['name'];?></a></li>
<?php } ?>
请参阅我的教程,了解分步说明和演示。
http://www.pearlbells.co.uk/third-level-category-menu-opencart/