如何编辑或添加表单,如何在drupal节点中检测?

时间:2011-04-15 13:51:34

标签: drupal forms drupal-6 cck

有没有办法检测正在查看的节点表单是“编辑”还是“添加新节点”表单?

4 个答案:

答案 0 :(得分:4)

检测到哪里?在hook_alter中?在模板中?在其他地方?

通常,方法是获取$ node对象的ahold,并查看是否设置了nid字段。如果是,那就是编辑。

答案 1 :(得分:2)

如果您不想加载整个节点对象,也可以使用URL。 当它是新节点添加时,则在URL arg(0)将是“node”,arg(1)将是“add”,arg(2)将是“content_type_name”而在节点查看arg的情况下(0) )将是节点,arg(1)将是nid(即数字)。 这只是另一种检测方式。

答案 2 :(得分:1)

从drupal.stackexchange.com检查these answers

例如:

function mymodule_form_node_form_alter(&$form, &$form_state) {
  $node = $form_state['node'];

  if (!isset($node->nid) || isset($node->is_new)) {
    // This is a new node.
  }
  else {
    // This is not a new node.
  }
}

或使用arg()函数,如前所述。

答案 3 :(得分:0)

if ($node->is_new) {do_something_for_new_node();}