加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在站点地图页面上显示超过3个类别的任何方法? (Opencart

发布时间:2020-12-13 16:10:18 所属栏目:PHP教程 来源:网络整理
导读:我正在寻找一种在站点地图页面上显示另一个类别的方法(默认情况下为3). 我尝试使用以下代码修改模板的sitemap.twig: lia href="{{ category_3.href }}"{{ category_3.name }}/a {% if category_3.children %} ul {% for category_4 in category_3.children
我正在寻找一种在站点地图页面上显示另一个类别的方法(默认情况下为3).

我尝试使用以下代码修改模板的sitemap.twig:

<li><a href="{{ category_3.href }}">{{ category_3.name }}</a>
   {% if category_3.children %}
     <ul>
       {% for category_4 in category_3.children %}
        <li><a href="{{ category_4.href }}">{{ category_4.name }}</a></li>
       {% endfor %}
      </ul>
    {% endif %}
</li>

但它没有用.

然后我还试图用另外一个foreach循环来改变/catalog/controller/information/sitemap.php:

foreach ($categories_3 as $category_3) {
    $level_4_data = array();

    $categories_4 = $this->model_catalog_category->getCategories($category_3['category_id']);

    foreach ($categories_4 as $category_4) {
        $level_4_data[] = array(
            'name' => $category_4['name'],'href' => $this->url->link('product/category','path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id'] . '_' . $category_4['category_id'])
        );
    }

    $level_3_data[] = array(
        'name' => $category_3['name'],'children' => $level_4_data,'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id'])
    );
}

一切都没发生.所以我问是否有办法解决我的问题?

解决方法

您可以通过以下方式显示所有类别及其子类别(类别树):

控制器文件:

catalogcontrollerinformationsitemap.php

在关闭之前,在此文件的末尾添加这两个函数

protected $categoryTree = '';
protected function buildCategoryTree($parent_id = 0,$categories = null,$path = ''){
    $categories = $this->model_catalog_category->getCategories($parent_id);
    if($categories){
        $this->categoryTree .= '<ul>';
        foreach ($categories as $category) {
            $path = $path ? $path . $category['category_id'] : $category['category_id'];
            $href = $this->url->link('product/category','path=' . $path);
            $categories = $this->model_catalog_category->getCategories($category['category_id']);
            $this->categoryTree .= '<li><a href="' . $href . '">' . $category['name'] . '</a>';
            $this->buildCategoryTree($category['category_id'],$categories,$path . '_');
            $this->categoryTree .= '</li>';
        }
        $this->categoryTree .= '</ul>';
    }
}

找:

$this->response->setOutput($this->load->view('information/sitemap',$data));

在它之前添加:

$this->buildCategoryTree();
$data['categories'] = $this->categoryTree;

查看文件:

catalogviewtheme*templateinformationsitemap.twig

找:

<ul>
{% for category_1 in categories %}
<li><a href="{{ category_1.href }}">{{ category_1.name }}</a>
  {% if category_1.children %}
  <ul>
    {% for category_2 in category_1.children %}
    <li><a href="{{ category_2.href }}">{{ category_2.name }}</a>
      {% if category_2.children %}
      <ul>
        {% for category_3 in category_2.children %}
        <li><a href="{{ category_3.href }}">{{ category_3.name }}</a></li>
        {% endfor %}
      </ul>
      {% endif %}
    </li>
    {% endfor %}
  </ul>
  {% endif %}
</li>
{% endfor %}
</ul>

替换为:

{{ categories }}

您可以删除控制器文件中的主要类别foreach循环.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读