2010-04-29 7 views
1

J'essaie d'ajouter une action personnalisée à un contrôleur principal en l'étendant dans un module local. Ci-dessous j'ai la définition de classe qui se trouve dans magento1_3_2_2/app/code/local/MyCompany/MyModule/contrôleurs/Catalogue/ProductController.phpMagento config XML pour ajouter une action de contrôleur à un contrôleur d'administration principal

class MyCompany_MyModule_Catalog_ProductController extends Mage_Adminhtml_Catalog_ProductController                                             
{                                                                                                                             
    public function massAttributeSetAction(){ 
    ... 
    } 
} 

Voici mon fichier de configuration à magento1_3_2_2/app/code/local/MyCompany/MyModule/etc/config.xml:

... 
<global> 
    <rewrite>                                                                
     <mycompany_mymodule_catalog_product>                                                         
      <from><![CDATA[#^/catalog_product/massAttributeSet/#]]></from>                                                
      <to>/mymodule/catalog_product/massAttributeSet/</to>                                                   
     </mycompany_mymodule_catalog_product>                                                         
    </rewrite> 

    <admin>                                                                 
     <routers>                                                                
      <MyCompany_MyModule>                                                              
       <use>admin</use>                                                              
       <args>                                                                
        <module>MyCompany_MyModule</module>                                                          
        <frontName>MyModule</frontName>                                                          
       </args>                                                                
      </MyCompany_MyModule>                                                              
     </routers>                                                                
    </admin> 
</global> 
... 

Cependant, https://example.com/index.php/admin/catalog_product/massAttributeSet/ donne simplement une page d'administration 404. Je sais que le module est actif - l'autre code s'exécute bien. Je pense que c'est simplement un problème avec ma syntaxe xml. Est-ce que je vais à ce sujet la façon d'écrire? J'hésite parce que je ne réécris pas une méthode de contrôleur ... J'en ajoute une entièrement. Cependant, il est logique que l'URL d'administration d'origine ne réponde pas à ce nom d'action et qu'elle doive être redirigée.

J'utilise Magento 1.3.2.2

Merci pour toute orientation.

Répondre

2

Je n'ai pas accès à mon Magento installe au moment, mais deux choses pop out

Tout d'abord, la règle d'écriture

[#^/catalog_product/massAttributeSet/] 

dit « correspondre une URL qui commence par/catalog_product "et votre question indique que vous voulez faire correspondre une URL qui commence par/admin/catalog_product. Deuxièmement, si vous utilisez 1.3+, envisagez d'ignorer la méthode de réécriture d'URL et d'essayer à la place a "real" controller override.

Questions connexes