2014-01-29 37 views
0

我一直在研究opencart前端。我想制作一个前端结构,以显示由特定供应商上传的产品。为此,我使用url'user/vendor_name'。我已经在这种URL的htaccess文件进行了更改,之后,我已经改变了url.php文件中的链接功能。因此,现在如果用户点击网站中的任何地方,网址将显示'user/vendor_name/index.php ......'。但在JavaScript中的URL不使用$ this->链接功能和url.php文件的这些更改不会生效,因此它重定向到原始网址。 请帮我解决这个问题。如何在opencart中更改javascript的url

+0

你试过的任何代码? – DannyThunder

+0

在系统/库url.php的链接功能我用这个代码 '\t \t \t \t如果(VENDOR_NAME!= '') \t \t \t $ URL =' 用户名/”。VENDOR_NAME。 '/' ; \t \t \t \t $ url。='index.php?route ='。 $路线; ' 如果遇到用户/供应商名称,我定义了vendor_name,因此URL会相应更改。 我不知道在哪些功能从JavaScript重定向url到 – saurabh

回答

0

你将不得不修改每个模板包含此类URL的控制器,并确保您通过模板供应商名称设置为PHP变量访问:

$this->data['vendor'] = $vendor_information['name']; 

假设供应商名称存储在一个变量$vendor_name下索引name。这只是一个例子。现在,在每个模板识别这样的URL与JS部分:

$.ajax({ 
    url: 'index.php?route=checkout/cart/add' // + ... 
    // ... 
}); 

并将其更改为:

$.ajax({ 
    url: 'vendor/<?php echo $vendor; ?>/index.php?route=checkout/cart/add' // + ... 
    // ... 
}); 

这应该解决您的问题。

+0

我已经试过这个解决方案,它解决了问题到一定的限制,但不是完全。实际上,我在头文件中使用了一个搜索框,因此在使用此代码后,它会给出所需的结果,并且url变为'user/vendor_name'。但是,一旦它被重定向到搜索结果页面,并且如果我们再次使用搜索框,它将再次重定向到没有用户/ vendor_name的原始URL。 – saurabh

+0

然后,您必须在搜索页面修复问题 - 查看“catalog/controller/product/search.php”和/或“catalog/view/theme//template/product/search.tpl”并进行搜索为那里的问题。在我的回答中,我提到你将不得不修复所有的控制器和所有使用*旧* URL格式的模板...并确保你没有使用任何第三方扩展搜索... – shadyyx

+0

以及我有尝试了这个解决方案,但它不起作用,因为更改search.tpl或controller/search.php中的任何内容都不会影响头文件中的内容。搜索选项位于所有文件中自然调用的标题中。有趣的是,我在javascript中检查了url,它显示了正确的路径,即user/vendor_name,并且仍然将其改为原始网址。我不知道为什么只有当我们第二次使用搜索按钮时才这样做。 – saurabh