Magento kerncontroller uitbreiden (Checkout/OnepageController)

Ik ondervind problemen terwijl ik een kerncontroller negeer. Ik wil een nieuwe functie toevoegen, maar het werkt alleen als ik het in het kernbestand doe (code/core/checkout/controllers/onepagecontroller.php).

Ik heb wat post gevolgd, maar het werkt niet. Sommige ervan zijn:

(Ik kan niet meer links toevoegen, sorry)

Ik weet niet wat er aan de hand is ... misschien kun je me helpen;).

Ik gebruik Magento 1.5 en ik heb deze 3 bestanden:


local -> Arias -> CoreExtended -> etc -> config.xml

<?xml version="1.0" encoding="UTF-8"?>

    
        
            0.1.0
        
    

    
        
            
                
                    
                        Arias_CoreExtended_Checkout
                    
                
            
        
    


app -> etc -> modules -> Arias_CoreExtended.xml

<?xml version="1.0"?>

    
        
            true
            local
        
    


local -> Arias -> CoreExtended -> controllers -> Checkout -> OnepageController.php

<?php

require_once 'Mage/Checkout/controllers/OnepageController.php';

class Arias_CoreExtended_Checkout_OnepageController extends Mage_Checkout_OnepageController
{
    public function collectAction()
    {
        echo 'WTF?';
    }

    public function indexAction()
    {
        echo "This controller has been overridden.";
    }
}

Bij voorbaat dank voor uw tijd, groeten.

3

3 antwoord

I would first mirror the same directory structure of the controller you are overwriting, so in this case change: local/Arias/CoreExtended/controllers/Checkout/OnepageController.php to local/Arias/CoreExtended/controllers/OnepageController.php

U moet uw namespace/modulenaam in kleine letters zetten en u moet _Checkout verwijderen omdat deze de controllers in het algemeen overschrijft, en alle bestan- den in de module zal opzoeken om ze te gebruiken in plaats daarvan, indien niet terugvallen op standaard . De juiste code zou zijn:

Arias_CoreExtended

Ik heb deze exacte setup met succes gebruikt om de Onepage-controller te overschrijven!

1
toegevoegd

Ik zou proberen om je naamruimte/modulenaam te verlagen, zoals:

Arias_CoreExtended_Checkout

0
toegevoegd
Het werkt niet. Iets meer dat ik zou kunnen proberen? Bedankt voor de hulp.
toegevoegd de auteur saturno, de bron

Je aanpak is meestal correct @satumo. Het enige dat u moet veranderen, is deze regel

Arias_CoreExtended

Dus je volledige configuratie moet er als volgt uitzien:

<?xml version="1.0" encoding="UTF-8"?>

    
        
            0.1.0
        
      

    
        
            
                
                    
                        Arias_CoreExtended
                    
                
            
        
    

0
toegevoegd