【问题标题】:How to access node/content variables from hook_form_alter如何从 hook_form_alter 访问节点/内容变量
【发布时间】:2012-10-25 04:24:46
【问题描述】:

我有一个 cck 字段,我需要在我的 hook_form_alter 中访问它,以便我可以使用动态值设置某个字段的默认值。

显然,node_load 不适合我。

   if ($form_id == 'some_form_id') {
    $node = node_load($item->nid); 
    $somevariable = $node->field_cck_foo[0]['value'] * 2;
    $form ['xxx']['xxx']['#default_value'] = $somevariable; 
}

我如何能够访问节点项以便可以在 hook_form_alter 中使用它?请指教。谢谢。

【问题讨论】:

  • 这是用于 Drupal 6 还是 Drupal 7?您已将其标记为两者,这是不可能的
  • Drupal 6. 我认为 hook_form_alter 在 D7 上仍然可以正常工作。对此感到抱歉。现在相应地修改了标签。

标签: drupal drupal-6


【解决方案1】:

node_load() 将获取所有 CCK 字段值,尝试执行 var_dump 以查看发生了什么。

如果 node_load() 没有带来完整的节点结构,请尝试使用此解决方法清除缓存http://drupal.org/node/158237#comment-4593950

【讨论】:

    【解决方案2】:

    对于 D7:

    $arg = arg();
    if($arg[0] == 'node' && !empty($arg[1])) {
        $node = node_load(arg(1));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 2012-09-08
      • 2019-01-21
      • 1970-01-01
      • 2016-05-30
      相关资源
      最近更新 更多