如何覆盖app/code/core/Mage/core/functions.php中的Magento函数
我需要重写此文件中的函数: app/code/core/Mage/core/functions.php 问题是,这是如此核心,以至于没有与之关联的类,可能是因为核心甚至不是一个模块。有人知道如何在没有类的情况下重写文件中的函数吗如何覆盖app/code/core/Mage/core/functions.php中的Magento函数,function,magento,module,Function,Magento,Module,我需要重写此文件中的函数: app/code/core/Mage/core/functions.php 问题是,这是如此核心,以至于没有与之关联的类,可能是因为核心甚至不是一个模块。有人知道如何在没有类的情况下重写文件中的函数吗 任何帮助都将不胜感激 也许我没有正确理解你的问题,但为什么不把这个文件复制到 app/code/**local**/Mage/Core/functions.php 并在那里以任何方式修改它?由于以下原因,不应使用将文件复制到app/code/local/Mage/Co
任何帮助都将不胜感激 也许我没有正确理解你的问题,但为什么不把这个文件复制到
app/code/**local**/Mage/Core/functions.php
并在那里以任何方式修改它?由于以下原因,不应使用将文件复制到app/code/local/Mage/Core/functions.php:
pecl install uopz
),然后您可以重命名magento的函数(例如从foo
到foo\u uopzOLD
),并定义您自己的()
它的工作,是非常有用的magento-通常你会碰到一些你不能改变。在这种情况下,Uopz非常有用
优点:有效;),您不必每次更新Magento时都重做它(如果操作正确,因为在内部您仍然可以调用foo\u uopzOLD
,因此在某些情况下,您可以确保某些向后兼容性)
缺点:有点含蓄
2.Composer安装后命令
如果您不喜欢上述内容,但使用composer,您可以修补任何需要的文件:
"scripts": {
"post-install-cmd": "patch -p0 < change-core-functions.patch"
}
- 抓住你的椅子
此账套;)李>eval
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<version>1.0</version>
</Namespace_Module>
</modules>
<global>
<models>
<catalog>
<rewrite>
<category>Namespace_Module_Model_Category</category>
</rewrite>
</catalog>
</models>
</global>
</config>
1
名称空间\模块\模型\类别
我就是这样做的,记住本地代码池中的代码总是优先于核心代码池中的代码。magento autoloader的工作方式是,您可以简单地将树结构复制到本地,然后根据需要进行修改。嗨,戈登,是的,这是我到目前为止所做的-但我想将其制作成一个模块,以便人们更容易打开和关闭。工作正常,但相当脏。如果您不知道如何制作自定义模块(这是覆盖核心功能的首选方式),这更像是一种变通方法@Jhourlad,这只是一种临时解决方案!暂时的,直到有人在堆栈上有更好的答案,或者直到他升级到Magento2?你建议他写自己的函数,但你不告诉他如何写,我想这是他的问题的开始。我知道这是一篇老帖子,但如果“tweakmag”或任何其他人愿意继续回答,我相信它会帮助人们(包括我自己)。Tweakmag给出了很多不将核心代码复制到本地然后修改的好理由,但是
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<version>1.0</version>
</Namespace_Module>
</modules>
<global>
<models>
<catalog>
<rewrite>
<category>Namespace_Module_Model_Category</category>
</rewrite>
</catalog>
</models>
</global>
</config>
<?php
/**
* Catalog category model
*/
class Namespace_Module_Model_Category extends Mage_Catalog_Model_Category
{
public function getProductCollection()
{
// Include your custom code here!
$collection = Mage::getResourceModel('catalog/product_collection')
->setStoreId($this->getStoreId())
->addCategoryFilter($this);
return $collection;
}
}