【问题标题】:magento - create a global functionmagento - 创建一个全局函数
【发布时间】:2011-01-25 21:41:58
【问题描述】:

我想创建一个所有 *.phtml 文件都可以访问的函数。我应该把这个函数放在magento框架的什么地方?

【问题讨论】:

    标签: magento magento-1.4


    【解决方案1】:

    对于低俗和肮脏的东西,你总是可以在 index.php 中定义它。例如,我总是把这个函数放在那里:

    function dumpit($obj)
    {
      print '<pre>';
      print_r($obj);
      print '</pre>';
    }
    

    然后您可以从任何地方快速调用此例程,而无需记住所有其他开销函数名称来获取帮助程序。

    【讨论】:

    • 最佳答案就在这里。模块的开销是不值得的,尤其是当您需要模板文件中的功能时。
    • 这可能很重要。 (尽管这似乎不言而喻......)这是一个很棒的临时解决方案,您实际上不希望在任何地方都可以访问快速调试功能。这将在开发期间用于查找那些讨厌的对象值,就是这样。完成模块创建和 Helper 设置的开销对于生产使用和许多其他原因(例如可扩展性)绝对有好处。
    【解决方案2】:

    您应该在该模块中创建一个模块和一个助手类(通常默认为MyCompany_Mymodule_Helper_Data)。然后,将您的函数添加到该助手类。您可以像这样在 PHTML 中使用该功能:

    Mage::helper("mymodule")->someFunction();
    

    希望有帮助!

    谢谢, 乔

    【讨论】:

    • 谢谢,你能给我一个链接,告诉我如何创建 Helper 类吗?我不断收到此错误致命错误:在第 520 行的 /srv/www/web.com/dev_html/app/Mage.php 中找不到类 'Mage_PAP_Helper_Data' .... 我很确定我已经设置了模块,只是不知道为什么助手不起作用
    • John,你必须在 config.xml 中设置你的助手,把它放在 里面:&lt;helpers&gt;&lt;yourmodule&gt;&lt;class&gt;Your_Helper_Class&lt;/class&gt;&lt;/yourmodule&gt;&lt;/helpers&gt;
    【解决方案3】:

    C:\wamp\www\mydirectory\app\code\core\Mage\Page\Helper\Data.php 是我的路径。我使用print_r 函数作为pr() 函数。

    将其放入Data.php,如下所示。

    class Mage_Page_Helper_Data extends Mage_Core_Helper_Abstract
    {
        function pr($data) 
        {
            echo "<pre>";
            print_r($data);
            echo "</pre>";
        }
    }
    

    page 是我的模块。

    从任何 .phtml 文件中调用它

    Mage::helper("page")->pr($abcd);
    

    希望对你有帮助。

    【讨论】:

      【解决方案4】:

      对于任何感兴趣的人,我整理了一个关于如何在 Magento 中创建全局函数的简短教程:http://joe-riggs.com/blog/2011/06/create-global-function-in-magento/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-23
        • 1970-01-01
        • 2017-06-07
        相关资源
        最近更新 更多