有没有办法检测正在查看的节点表单是“编辑”还是“添加新节点”表单?
答案 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();}