2014-05-19 146 views
-1

我寫了一個自定義模塊來顯示一個類別內的產品。Magento網址重寫類別

指數操作:

public function indexAction() { 
    $categoryId = $this->getRequest()->getParam('id'); 
    $_category = Mage::getModel('catalog/category')->load($categoryId); 
    $products = Mage::getResourceModel('catalog/product_collection') 
     ->addCategoryFilter($_category) 
     ->addAttributeToSelect('*'); 
    foreach ($products as $productModel) { 
     $price = number_format($productModel->getPrice(), 2, '.', ''); 
     $formattedPrice = Mage::helper('core')->currency($price, true, false); 
     echo "<br>" . $productModel->getName() . ' ' . $price; 
    } 

} 

網址:category/index/index/id/5 其中5是類別ID,我需要傳遞。

但是,我想改變的URL category/id/5

是這個目標URL重寫實現的?

我在URL重寫管理添加了這個: 類型:自定義 ID路徑:類/指數/指數 請求路徑:類/指數/指數 目標路徑:類

不工作。

的Magento版本:1.8 CE

+0

您使用的load()在一個循環內,這是最簡單的方法之一,以殺死您的服務器 – Flyingmana

+0

不知道。從循環中刪除了load()。謝謝(你的)信息。 – Albin

回答

1

您可以使用htacces此:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?$1 [L,QSA] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC] 
RewriteRule^%1 [R=301,L] 

定義路由器模塊的config.xml中的工作原理是:

<config> 
    <!-- ... -->  
    <frontend> 
     <routers> 
      <calculator> 
       <use>standard</use> 
       <args> 
        <module>CompanyName_ModuleName</module> 
        <frontName>desired/router/path</frontName> 
       </args> 
      </calculator> 
     </routers> 
    </frontend> 
    <!-- ... -->  
</config> 
+0

我們可以在config.xml中爲該模塊定義路由,就像在Zend框架中一樣嗎? – Albin

+0

編輯我的答案。希望它對你有幫助。 –