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

发布于 2024-11-01 09:13:24 字数 40 浏览 5 评论 0原文

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

Is there a way to detect if the node form being viewed is the "edit" or "add new node" form?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

木緿 2024-11-08 09:13:24

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

一般来说,方法是获取 $node 对象,并查看它的 nid 字段是否已设置。如果是的话,那就是编辑。

Detect where? In a hook_alter? In a template? Somewhere else?

In general, the approach would be to get ahold of the $node object, and see if it's nid field is set. If it is, it's an edit.

鹿港巷口少年归 2024-11-08 09:13:24

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

Also you can make use of URL, if you don't want to load entire node object.
When it is new node addition, then in the URL arg(0) will be "node", arg(1) will be "add", arg(2) will be "content_type_name" whereas in the case of node viewing arg(0) will be node and arg(1) will be nid(i.e Numeric).
This is just an alternative way to detect.

じ违心 2024-11-08 09:13:24

检查 drupal 的这些答案。 stackexchange.com

例如

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() 函数,如前所述。

check these answers from drupal.stackexchange.com

for example:

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.
  }
}

or use the arg() function as previously has been indicated.

迷你仙 2024-11-08 09:13:24
if ($node->is_new) {do_something_for_new_node();}
if ($node->is_new) {do_something_for_new_node();}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文