Magento 1.9 Extend Model, Load It Before Parent
Class Test1/Module1/Model/A {
protectedfunction doSomething(){
//behaviour
//behaviour
//behaviour
}
}
Class Test2/Module2/Model/B extends Test1/Module1/Model/A {
protected function doSomething(){
//behaviour
//behaviour
//added behaviour
//behaviour
}
}
Now in Test2/Module2/Model/B/etc/config.xml -
<?xml version="1.0"?>
<config>
<modules>
<Test2_Module2>
<active>true</active>
<codePool>local</codePool>
<depends>
<Test1_Module1/>
</depends>
<Test2_Module2>
</modules>
</config>
Now when Test1/Module1/Model/A is called I want Test2/Module2/Model/B to extend its behaviour. Is this the correct way?
magento-1.9 extend dependency
add a comment |
Class Test1/Module1/Model/A {
protectedfunction doSomething(){
//behaviour
//behaviour
//behaviour
}
}
Class Test2/Module2/Model/B extends Test1/Module1/Model/A {
protected function doSomething(){
//behaviour
//behaviour
//added behaviour
//behaviour
}
}
Now in Test2/Module2/Model/B/etc/config.xml -
<?xml version="1.0"?>
<config>
<modules>
<Test2_Module2>
<active>true</active>
<codePool>local</codePool>
<depends>
<Test1_Module1/>
</depends>
<Test2_Module2>
</modules>
</config>
Now when Test1/Module1/Model/A is called I want Test2/Module2/Model/B to extend its behaviour. Is this the correct way?
magento-1.9 extend dependency
No, this is quite different what you think. You need to overwrite for your case.
– Sohel Rana
yesterday
add a comment |
Class Test1/Module1/Model/A {
protectedfunction doSomething(){
//behaviour
//behaviour
//behaviour
}
}
Class Test2/Module2/Model/B extends Test1/Module1/Model/A {
protected function doSomething(){
//behaviour
//behaviour
//added behaviour
//behaviour
}
}
Now in Test2/Module2/Model/B/etc/config.xml -
<?xml version="1.0"?>
<config>
<modules>
<Test2_Module2>
<active>true</active>
<codePool>local</codePool>
<depends>
<Test1_Module1/>
</depends>
<Test2_Module2>
</modules>
</config>
Now when Test1/Module1/Model/A is called I want Test2/Module2/Model/B to extend its behaviour. Is this the correct way?
magento-1.9 extend dependency
Class Test1/Module1/Model/A {
protectedfunction doSomething(){
//behaviour
//behaviour
//behaviour
}
}
Class Test2/Module2/Model/B extends Test1/Module1/Model/A {
protected function doSomething(){
//behaviour
//behaviour
//added behaviour
//behaviour
}
}
Now in Test2/Module2/Model/B/etc/config.xml -
<?xml version="1.0"?>
<config>
<modules>
<Test2_Module2>
<active>true</active>
<codePool>local</codePool>
<depends>
<Test1_Module1/>
</depends>
<Test2_Module2>
</modules>
</config>
Now when Test1/Module1/Model/A is called I want Test2/Module2/Model/B to extend its behaviour. Is this the correct way?
magento-1.9 extend dependency
magento-1.9 extend dependency
asked yesterday
Lukas G
698
698
No, this is quite different what you think. You need to overwrite for your case.
– Sohel Rana
yesterday
add a comment |
No, this is quite different what you think. You need to overwrite for your case.
– Sohel Rana
yesterday
No, this is quite different what you think. You need to overwrite for your case.
– Sohel Rana
yesterday
No, this is quite different what you think. You need to overwrite for your case.
– Sohel Rana
yesterday
add a comment |
1 Answer
1
active
oldest
votes
From what I understand, you want to rewrite a model so that Magento uses yours, instead of the original. If that's the case, there are some more steps involved.
Here's an example of a basic module that rewrites a model:
app/code/local/Namespace/Module/Model/Layer.php
<?php
class Namespace_Module_Model_Layer extends Mage_Catalog_Model_Layer
{
public function getProductCollection($filtered = true)
{
//overwrite function from parent class
}
}
app/code/local/Namespace/Module/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<version>1.0.0</version>
</Namespace_Module>
</modules>
<global>
<models>
<catalog>
<rewrite>
<layer>Namespace_Module_Model_Layer</layer>
</rewrite>
</catalog>
</models>
</global>
</config>
app/etc/modules/Namespace_Module.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Catalog />
</depends>
</Namespace_Module>
</modules>
</config>
Note: you will have to change some of the values, class names etc to match your purposes.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f256810%2fmagento-1-9-extend-model-load-it-before-parent%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
From what I understand, you want to rewrite a model so that Magento uses yours, instead of the original. If that's the case, there are some more steps involved.
Here's an example of a basic module that rewrites a model:
app/code/local/Namespace/Module/Model/Layer.php
<?php
class Namespace_Module_Model_Layer extends Mage_Catalog_Model_Layer
{
public function getProductCollection($filtered = true)
{
//overwrite function from parent class
}
}
app/code/local/Namespace/Module/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<version>1.0.0</version>
</Namespace_Module>
</modules>
<global>
<models>
<catalog>
<rewrite>
<layer>Namespace_Module_Model_Layer</layer>
</rewrite>
</catalog>
</models>
</global>
</config>
app/etc/modules/Namespace_Module.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Catalog />
</depends>
</Namespace_Module>
</modules>
</config>
Note: you will have to change some of the values, class names etc to match your purposes.
add a comment |
From what I understand, you want to rewrite a model so that Magento uses yours, instead of the original. If that's the case, there are some more steps involved.
Here's an example of a basic module that rewrites a model:
app/code/local/Namespace/Module/Model/Layer.php
<?php
class Namespace_Module_Model_Layer extends Mage_Catalog_Model_Layer
{
public function getProductCollection($filtered = true)
{
//overwrite function from parent class
}
}
app/code/local/Namespace/Module/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<version>1.0.0</version>
</Namespace_Module>
</modules>
<global>
<models>
<catalog>
<rewrite>
<layer>Namespace_Module_Model_Layer</layer>
</rewrite>
</catalog>
</models>
</global>
</config>
app/etc/modules/Namespace_Module.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Catalog />
</depends>
</Namespace_Module>
</modules>
</config>
Note: you will have to change some of the values, class names etc to match your purposes.
add a comment |
From what I understand, you want to rewrite a model so that Magento uses yours, instead of the original. If that's the case, there are some more steps involved.
Here's an example of a basic module that rewrites a model:
app/code/local/Namespace/Module/Model/Layer.php
<?php
class Namespace_Module_Model_Layer extends Mage_Catalog_Model_Layer
{
public function getProductCollection($filtered = true)
{
//overwrite function from parent class
}
}
app/code/local/Namespace/Module/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<version>1.0.0</version>
</Namespace_Module>
</modules>
<global>
<models>
<catalog>
<rewrite>
<layer>Namespace_Module_Model_Layer</layer>
</rewrite>
</catalog>
</models>
</global>
</config>
app/etc/modules/Namespace_Module.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Catalog />
</depends>
</Namespace_Module>
</modules>
</config>
Note: you will have to change some of the values, class names etc to match your purposes.
From what I understand, you want to rewrite a model so that Magento uses yours, instead of the original. If that's the case, there are some more steps involved.
Here's an example of a basic module that rewrites a model:
app/code/local/Namespace/Module/Model/Layer.php
<?php
class Namespace_Module_Model_Layer extends Mage_Catalog_Model_Layer
{
public function getProductCollection($filtered = true)
{
//overwrite function from parent class
}
}
app/code/local/Namespace/Module/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<version>1.0.0</version>
</Namespace_Module>
</modules>
<global>
<models>
<catalog>
<rewrite>
<layer>Namespace_Module_Model_Layer</layer>
</rewrite>
</catalog>
</models>
</global>
</config>
app/etc/modules/Namespace_Module.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Catalog />
</depends>
</Namespace_Module>
</modules>
</config>
Note: you will have to change some of the values, class names etc to match your purposes.
answered yesterday
Andrew Noble
603213
603213
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f256810%2fmagento-1-9-extend-model-load-it-before-parent%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
No, this is quite different what you think. You need to overwrite for your case.
– Sohel Rana
yesterday