【问题标题】:Drupal form editing and conditional fieldsDrupal 表单编辑和条件字段
【发布时间】:2023-03-21 00:22:01
【问题描述】:

我的 template.php 文件中有以下内容:

function theme098_theme() {
  return array(
    'email_node_form' => array(
      'arguments' => array('form' => NULL),
    )
  );
}

还有……

function theme098_email_node_form($form) {
    return drupal_render($form);
}

我已经排除了我实际修改表单的代码并将其删减,这样就不会发生任何修改。出现两个问题:

  1. 项目的顺序(即它们的重量)被弄乱了。保存按钮位于顶部等。即使我尝试通过设置权重来编辑表单,保存按钮仍然出现在顶部。
  2. 真正的问题:条件字段不起作用。出于某种原因,我认为这会覆盖其他模块应该做什么?我不确定

谁能解释一下?

【问题讨论】:

    标签: drupal forms


    【解决方案1】:

    3 件事。

    1. 在这种情况下,如果您想更改顺序或更改表单,您可能应该使用hook_form_alter(),而不是使用主题功能来更改它。保持表示和逻辑分开。
    2. 使用钩子主题定义主题函数时,应将其命名为 theme_xxx 而不是 themename_/modulename_。
    3. 模块(和可能的主题)有一个权重,它决定了它们使用 hook_*_alter 等函数运行的顺序。查看开发模块的安装文件,了解这是如何完成的。

    其中一项或多项应该可以帮助您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2021-02-23
      • 1970-01-01
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多