【问题标题】:Magento Dependency Custom FormMagento 依赖自定义表单
【发布时间】:2015-04-26 10:50:15
【问题描述】:

我是 magento 的新手,正在对模块进行一些更新。 据我所知,admin 的所有表单配置都是通过 system.xml 完成的,我需要添加某种依赖项,因为我希望我的表单检查某些 api 凭据是否正确显示其他输入。 我尝试过使用依赖标签,但无法从那里调用函数。

所以我有两个问题: 当它依赖于我不知道的值时,我如何设法建立依赖关系,除非我咨询例如 api,我可以做类似的事情:

<usertoken translate="label">
    <label>User Token</label>
    <frontend_type>text</frontend_type>
    <sort_order>1</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>1</show_in_store>
</usertoken>
<new_value translate="label">
    <label>New Value</label>
    <frontend_type>text</frontend_type>
    <sort_order>1</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>1</show_in_store>
    <depends><usertoken><action>mymodule/system_config_source_token/retorno</action></usertoken></depends>
</new_value>

如果是这样,我应该用什么来代替行动。

我的第二个问题是,除了使用 system.xml 之外,还有其他方法可以在管理面板中构建表单吗?我想创建自己的自定义表单,使用 ajax,带有复选框的表格......但想了解如何整合它。

【问题讨论】:

  • Stackoverflow 最适合一次问一个问题。由于您的问题是针对 Magento 的,我建议您考虑在 Magento Stackexchange 上发帖:magento.stackexchange.com - 以及哪些 XML 元素可用以及它们是如何工作的,您可以通过阅读 magento 的源代码最终找到答案。如果您不想这样做,请不要以这种方式询问,而是提供有关其工作方式的参考,然后询问它是否不起作用,因为您希望它会起作用。但除非,要么检查来源或咨询支持。

标签: php xml magento


【解决方案1】:

除了使用 system.xml 之外,还有其他方法可以在管理面板中构建表单吗?我想创建自己的自定义表单,使用 ajax,带有复选框的表格......但想了解如何集成那个。

是的,有。 Magento 非常模块化,您在 XML 配置中看到的所有内容在 PHP 代码中都有对应物。您可以在自己的模块中扩展大部分 PHP 代码。

您最好使用步进调试器进行集成,并在核心 magento 中找到该功能。然后考虑如何扩展 magento 以应用/注入您正在寻找的更改的众多方法之一。 ' 在您的情况下,您也可能问错了问题。一个配置值不依赖于另一个。它要么存在,要么不存在,您生成的代码不应该搜索某些东西,而只是询问它需要运行的信息。这应该使整体逻辑不那么复杂=更少的错误。

正确的问题可能是:为什么依赖在配置中而不是在代码中?

【讨论】:

    【解决方案2】:

    您可以通过在 adminhtml_init_system_config 事件上声明观察者来为系统配置字段添加依赖项。这将允许您修改所有模块的 system.xml 的 xml 声明的选项卡、组和字段。观察者方法如下所示:

        public function initSystemConfig($observer){
            $config = $observer->getConfig();
            $paymentGroups = $config->getNode('sections/payment/groups');
            //modify the payment groups array here...
    

    page 有一个关于 Magento 事件以及如何挂钩的教程。

    【讨论】:

      猜你喜欢
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 2018-04-05
      相关资源
      最近更新 更多