【问题标题】:how to detect in drupal node form if its edit or add form?如何在 drupal 节点表单中检测其编辑或添加表单?
【发布时间】:2011-04-15 13:51:34
【问题描述】:

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

【问题讨论】:

    标签: drupal forms drupal-6 cck


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        检查来自 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() 函数。

        【讨论】:

          【解决方案4】:
          if ($node->is_new) {do_something_for_new_node();}
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-11-02
            • 1970-01-01
            • 2015-09-18
            • 2014-06-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多