form_alter的$ op变量

时间:2010-03-03 21:05:17

标签: forms drupal

使用表单时,我很难使用$ op变量。似乎$ op变量通常是node_api的一部分(我还没有真正使用过),但是表单中的$ op变量怎么样?

在编辑节点与创建节点时,如何使表单更改应用?

1 个答案:

答案 0 :(得分:2)

hook_form_alter()中没有$ op变量。从创建表单中识别节点编辑的标准方法是查看节点是否已经具有nid(节点ID)。如果它有一个,你知道它是一个已经存在的,否则它仍然在被创建过程中:

function yourModule_form_alter(&$form, &$form_state, $form_id) {
  // Is this a node edit/create form at all?
  if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] .'_node_form' == $form_id) {
    // Yes, is the node an already existing one?
    if (isset($form['#node']->nid)) {
      // Yes, existing node, add manipulation for node edit form
    }
    else {
      // No, new node, add manipulation for node create form
    }
  }
}