1

版本 1.4.1.4 的 prestashop 网站正在处理manufacturer.php制造商页面的文件。不幸的是,对 1.6.0.6 的更新删除了该文件,因为它已被视为已弃用(在 CMS 更新后 URL 结构发生了变化)。

一个后果是 URL 结构的变化。

从:

url/manufacturer.php?id_category=6

至 :

url/index.php?id_manufacturer=6&controller=manufacturer&id_lang=2

所以现在,第一个 URL 结构是 404。

问题

在旧网站中,当id_manufacturer设置为0时,url 返回一个包含所有制造商列表的页面。当它设置为特定制造商的 id 时,该 url 返回该特定制造商的产品。使用新版本,结果是相同的,除了 id=0(404 页面)。换句话说,我找不到id_manufacturer要返回制造商列表的内容。

如果我没记错的话,Prestashop 在制造商列表的页面上默认给 id=0 吗?你的观点出了什么问题?看起来我需要ManufacturerController像在“主页”类别页面中那样覆盖更新后不起作用。但是请注意,这些覆盖是否只是当核心 Prestashop 团队纠正这些错误(如果它们是错误)时可能会在下一次更新中被破坏的解决方法。

任何见解都受到高度赞赏。

编辑: 对不起,昨天我可能没有很好地阐明这一点。实际上,该 url 适用于 id=0 (它显示页面的所有部分)。但是对于应该出现制造商列表的位置,我有“Il n'y aucun fabricant”。即使我的数据库中有 80 家制造商。再次感谢

4

1 回答 1

3

不需要任何覆盖,我只是对其进行了测试,没有指定 id 或 id=0,它在 1.6.0.6 上提供了制造商列表页面。从那个控制器看到这个位

    if (Validate::isLoadedObject($this->manufacturer) && $this->manufacturer->active && $this->manufacturer->isAssociatedToShop())
    {
        $this->productSort();
        $this->assignOne();
        $this->setTemplate(_PS_THEME_DIR_.'manufacturer.tpl');
    }
    else
    {
        $this->assignAll();
        $this->setTemplate(_PS_THEME_DIR_.'manufacturer-list.tpl');
    }

所以这些中的任何一个

index.php?controller=manufacturer&id_lang=1&id_manufacturer=0

index.php?controller=制造商&id_lang=1

应该工作正常!

于 2014-06-06T08:15:54.537 回答