制造商页面升级后无效

时间:2014-06-05 17:14:35

标签: php content-management-system prestashop prestashop-1.5 prestashop-1.6

版本1.4.1.4的prestashop网站正在使用制造商页面的manufacturer.php文件。对1.6.0.6 unfortunatley的更新删除了该文件,因为它已被视为已弃用(URL structure changed after CMS update)。

结果是URL结构发生了变化。

从:

  

URL / manufacturer.php?id_category = 6

到:

  

URL / index.php的id_manufacturer = 6&安培;控制器=制造商的安培; id_lang = 2

现在,第一个URL结构是404.

问题

在旧网站中,当id_manufacturer设置为0时,网址会返回包含所有制造商列表的网页。当它设置为特定制造商的ID时,该URL将返回该特定制造商的产品。对于新版本,id = 0(404页面)的结果与EXCEPT相同。换句话说,我找不到id_manufacturer返回制造商列表的内容。

如果我没错,Prestashop默认将id = 0给制造商列表页面?你的观点出了什么问题? 看起来我需要覆盖'Home' category page not working after update中的ManufacturerController。但请注意,这些覆盖只是在核心Prestashop团队纠正这些错误(如果它们是错误的)时可能在下一次更新中被破解的解决方法。

非常感谢任何见解。

修改 对不起,昨天我也许没有说清楚这一点。 事实上,url正在为id = 0工作(它显示页面的所有部分)。但是对于制造商名单应该出现的地方,我有“Il n'y aucun fabricant”。即使我的数据库中有80个制造商。再次感谢

1 个答案:

答案 0 :(得分: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控制器=制造商的安培; id_lang = 1&安培; id_manufacturer = 0

的index.php控制器=制造商的安培; id_lang = 1

应该工作正常!