1

I'm trying to override the _validateUploadedFile() method from the class Mage_Catalog_Model_Product_Option_Type_File located in app/code/core/Mage/Catalog/Model/Product/Option/Type/File.php

This is my config.xml located in app/code/local/Eps/Customizationurl/etc:

<?xml version="1.0"?>
<config>
    <modules>
        <Eps_Customizationurl>
            <version>0.0.1</version>
        </Eps_Customizationurl>
    </modules>
    <global>
        <models>
            <epscustomizationurl>
                <class>Eps_Customizationurl_Model</class>
            </epscustomizationurl>
            <customfile>
                <rewrite>
                    <product_option_type_file>Eps_Customizationurl_Model_Product_Option_Type_File</product_option_type_file>
                </rewrite>
            </customfile>
        </models>    
    </global>
    <frontend>
        <events>
            <!-- Event fired when converting from a quote item (items in cart) to order item, this
             happens when checking out orders -->
            <sales_convert_quote_item_to_order_item>
                <observers>
                    <eps_customizationurl_model_observer>
                        <type>model</type>
                        <class>epscustomizationurl/observer</class>
                        <method>epsURLCreator</method>
                    </eps_customizationurl_model_observer>
                </observers>
            </sales_convert_quote_item_to_order_item>
        </events>
    </frontend>
</config>

And this is the File.php file located in app/code/local/Eps/Customizationurl/Model/Product/Option/Type:

<?php 
class Eps_Customizationurl_Model_Product_Option_Type_File extends Mage_Catalog_Model_Product_Option_Type_File {

    protected function _validateUploadedFile() {
        Mage::log('Starting custom _validateUploadedFile()!', null, 'system.log', true);
    }

}
?>

The class Eps_Customizationurl_Model inside an Observer.php is working perfectly but I can't manage to overwrite the method from File.php. It keeps running the default code, not the code I'm overriding it with.

1 Answer 1

0

The reason this is not working is because you are using a group of customfile This is not ambiguous this is what tells it what model you are overwriting.

<?xml version="1.0"?>
<config>
    <modules>
        <Eps_Customizationurl>
            <version>0.0.1</version>
        </Eps_Customizationurl>
    </modules>
    <global>
        <models>
            <epscustomizationurl>
                <class>Eps_Customizationurl_Model</class>
            </epscustomizationurl>
            <catalog> // This needs to match the model tag from the module you are overwriting
                <rewrite>
                    <product_option_type_file>Eps_Customizationurl_Model_Product_Option_Type_File</product_option_type_file>
                </rewrite>
            </catalog>
        </models>    
    </global>
    <frontend>
        <events>
            <!-- Event fired when converting from a quote item (items in cart) to order item, this
             happens when checking out orders -->
            <sales_convert_quote_item_to_order_item>
                <observers>
                    <eps_customizationurl_model_observer>
                        <type>model</type>
                        <class>epscustomizationurl/observer</class>
                        <method>epsURLCreator</method>
                    </eps_customizationurl_model_observer>
                </observers>
            </sales_convert_quote_item_to_order_item>
        </events>
    </frontend>
</config>
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.