2014-05-19 4 views
-1

J'ai écrit un module personnalisé pour montrer les produits dans une catégorie.Magento Url Rewrite pour catégories

Action Index:

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; 
    } 

} 

Url: category/index/index/id/5 où 5 est l'identifiant de la catégorie que je dois passer.

Mais, je veux changer l'URL pour category/id/5

Est-ce accompli par Réécriture d'URL?

J'ajouté ceci dans l'URL Rewrite Gestion: Type: Personnalisé ID Chemin: Catégorie/index/index demande Chemin: Catégorie/index/index Chemin cible: Catégorie

qui ne fonctionne pas.

Version Magento: 1.8 CE

+0

vous utilisez une charge() à l'intérieur d'une boucle, c'est l'une des façons les plus faciles de tuer votre serveur – Flyingmana

+0

Je ne le savais pas. Suppression de la charge() dans la boucle. Merci pour l'info. – Albin

Répondre

1

Vous pouvez utiliser htacces pour cela:

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] 

Définition de routeurs config.xml du module fonctionne comme:

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

Peut-on définir des routes dans le fichier config.xml pour ce module, comme dans le framework Zend? – Albin

+0

Édité ma réponse. J'espère que cela vous sera utile. –