版本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个制造商。再次感谢
答案 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
应该工作正常!