2014-01-29 65 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