如何在magento中使用php文件覆盖社区阻止模块 [英] How to override community block module with php file in magento

查看:93
本文介绍了如何在magento中使用php文件覆盖社区阻止模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想覆盖"Script.php"文件中的社区"块.

I would like to override a "community" Block within "Script.php" file.

将第三方模块替换为 http://connect20.magentocommerce.com/community/Anaraky_GDRT_1

Magento版本:1.7.0

Magento version : 1.7.0

这是社区模块文件树:

-app
 - code 
  - community
   - Anaraky
    - Gdrt
     - Block
      - Script.php 

     - etc
      - Config.xml
     - Helper
      - Data.php
     - Module
      - Adminhtml
      - Observer.php

我想将Script.php文件覆盖到我的自定义"模块中

I want to override Script.php file to My Custom module

这是我的自定义模块文件树:

Here's my custom module file tree :

- app 
  - code 
    - local 
      - Anarakyoverride 
       - Gdrtoverride 
        - Block 
          - Script.php 
        - etc
         - config.xml

此外,我还添加了我的自定义"(Anarakyoverride_Gdrtoverride)模块的代码config.xml文件,如下代码

Also, I have add code config.xml file of My Custom (Anarakyoverride_Gdrtoverride) module as following code

<?xml version="1.0"?>
<config>
    <modules>
        <Anarakyoverride_Gdrtoverride>
            <version>1.0.8</version>
        </Anarakyoverride_Gdrtoverride>
    </modules>
    <global>        
        <blocks>
            <gdrt>
                <class>Anarakyoverride_Gdrtoverride_Block</class>
            </gdrt>
        </blocks>
    </global>

</config>

任何人都可以帮助我并建议重写第三方模块吗?

Can any one help me and suggest to override third party module?

有关该模块的更多详细信息,请参见 http://connect20.magentocommerce.com/community/Anaraky_GDRT_1 安装的模块并在您的自定义模块中覆盖script.php文件,即app/code/local/Anarakyoverride/Gdrtoverride/Block/Script.php

More detail of module is http://connect20.magentocommerce.com/community/Anaraky_GDRT_1 Installed module and override script.php file in your custom module i.e app/code/local/Anarakyoverride/Gdrtoverride/Block/Script.php

感谢和问候, 维沙尔

推荐答案

在XML中尝试以下代码

Try below code in your XML

<global>
    <modules>
        <Anarakyoverride_Gdrtoverride>
            <version>1.0.8</version>
        </Anarakyoverride_Gdrtoverride>
    </modules>
    <blocks>
        <gdrtoverride><class>Anarakyoverride_Gdrtoverride_Block</class></gdrtoverride>
        <gdrt>
            <rewrite>
                    <script>Anarakyoverride_Gdrtoverride_Block_Script</script>
            </rewrite>
        </gdrt>
    </blocks>
   /* Only if you want */
    <models>
        <gdrt>
            <rewrite>
                <state>Anarakyoverride_Gdrtoverride_Model_State</state>
            </rewrite>
        </gdrt>
    </models>
   /* Only if you want */
</global>   
<frontend>
  <layout>   
        <updates>   
            <gdrtoverride>   
                <file>gdrtoverride.xml</file>   
            </gdrtoverride>   
        </updates>   
    </layout>
</frontend>   
</config>

您的XML的或"仅阻止节点

<blocks>
        <gdrtoverride>
            <class>Anarakyoverride_Gdrtoverride_Block</class>
        </gdrtoverride>
    <gdrt>
        <rewrite>
            <script>Anarakyoverride_Gdrtoverride_Block_Script</script>
        </rewrite>
    </gdrt>
</blocks>

然后在您的script.php中

then in your script.php

<?php
   class Anarakyoverride_Gdrtoverride_Block_Script extends Anaraky_Gdrt_Block_Script
   {
        // create your method and write your code
   }

此外,您需要将此精确配置复制到模块配置-指定块类名-并且(重要!)确保发生以下情况:

Also you need to copy this exact configuration to your module config - specifying your block classname - and (important!) make sure that the following occur:

  1. 您的配置在社区模块的加载后加载 配置
  2. 您的课程是从社区模块的课程扩展的.
  1. Your configuration is loaded after the community module's configuration
  2. Your class extends from the community module's class.

要在社区模块之后加载模块配置,可以在 app/etc/modules/

To load your module configuration after the community module, you can make use of <depends> tag in your app/etc/modules/

<depends>
    <Community_Module /> <!-- e.g. -->
</depends>

这篇关于如何在magento中使用php文件覆盖社区阻止模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆