【问题标题】:Opencart category module > display second child [duplicate]Opencart类别模块>显示第二个孩子[重复]
【发布时间】:2014-12-01 16:25:21
【问题描述】:

我一直在尝试像这样在侧边栏类别模块中显示第二个类别的子项

例如:Toys > boys > RC cars

目前有这个

<ul>
    <?php foreach ($categories as $category) { ?>
    <?php if ($category['category_id'] == $category_id) { ?>
    <li class="cat-active">
        <a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
    <?php } else { ?>
    <li>
        <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
        <?php } ?>
        <?php if ($category['children']) { ?>
        <b class="cc"></b>
        <ul class="col-subcat">
            <?php foreach ($category['children'] as $child) { ?>
            <li>
                <?php if ($child['category_id'] == $child_id) { ?>
                <a href="<?php echo $child['href']; ?>" class="active"><?php echo $child['name']; ?></a>
                <?php } else { ?>
                <a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a>
                <?php } ?>
            </li>
            <?php } ?>
        </ul>
        <?php } ?>
    </li>
    <?php } ?>
</ul>

只显示

玩具 > 男孩

我不确定如何显示第二个孩子(“玩具 > 男孩 > 遥控车”) 求建议

【问题讨论】:

  • 你在考虑做一些递归吗?每次你更深一层,你必须抛出一个新的
      然后是一个
    • 循环
  • 请在此处提问之前进行适当的搜索(使用例如 Google)。您的问题已经在这里得到解答(并且互联网上有很多教程可以实现相同的目的)。

标签: php oop filtering opencart


【解决方案1】:

您必须自定义 2 个文件。

  1. catalog/controller/module/category.php - 39 行

找到 "foreach ($children as $child) {" 并在其下方添加以下代码。

$children_data_2 = array();

$children_2 = $this->model_catalog_category->getCategories($child['category_id']);

foreach ($children_2 as $child_2) {
	$filter_data = array(
		'filter_category_id'  => $child_2['category_id'],
		'filter_sub_category' => true
	);

	$children_data_2[] = array(
		'category_id' => $child_2['category_id'],
		'name'        => $child_2['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
		'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'] . '_' . $child_2['category_id'])
	);
}

改变

$children_data[] = array(
	'category_id' => $child['category_id'],
	'name'        => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
	'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);

$children_data[] = array(
	'category_id' => $child['category_id'],
	'name'        => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
	'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']),
	'children'	  => $children_data_2 // insert this line
);

  1. catalog/view/theme/[你的主题目录]/template/module/category.tpl

<ul>
    <?php foreach ($categories as $category) { ?>
    <?php if ($category['category_id'] == $category_id) { ?>
    <li class="cat-active">
        <a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
    <?php } else { ?>
    <li>
        <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
        <?php } ?>
        <?php if ($category['children']) { ?>
        <b class="cc"></b>
        <ul class="col-subcat">
            <?php foreach ($category['children'] as $child) { ?>
            <li>
                <?php if ($child['category_id'] == $child_id) { ?>
                <a href="<?php echo $child['href']; ?>" class="active"><?php echo $child['name']; ?></a>
                <?php } else { ?>
                <a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a>
                <?php } ?>
				<?php if ($child['children']) { ?>
				<b class="cc"></b>
				<ul class="col-subcat">
					<?php foreach ($child['children'] as $child_2) { ?>
					<li>
						<?php if ($child_2['category_id'] == $child_id) { ?>
						<a href="<?php echo $child_2['href']; ?>" class="active"><?php echo $child_2['name']; ?></a>
						<?php } else { ?>
						<a href="<?php echo $child_2['href']; ?>"><?php echo $child_2['name']; ?></a>
						<?php } ?>
					</li>
					<?php } ?>
				</ul>
				<?php } ?>
            </li>
            <?php } ?>
        </ul>
        <?php } ?>
    </li>
    <?php } ?>
</ul>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 2016-07-08
    • 2014-01-19
    • 2013-06-06
    • 2015-02-02
    • 2021-04-05
    相关资源
    最近更新 更多