Drupal 节点创建 - 创建后返回原点

Posted

技术标签:

【中文标题】Drupal 节点创建 - 创建后返回原点【英文标题】:Drupal node creation - back to origin after creation 【发布时间】:2010-11-12 09:25:02 【问题描述】:

我设置了自然群组,并且允许在这些群组中发布某些内容。 我想做的是,当您在有机组内创建节点时,它会自动默认返回到组的首页,或者我用来创建节点的同一页面。

目前它默认为节点视图页面。我假设必须有一种方法来添加某种代码,以便在节点创建后它默认返回到它的原点。 IE。创建节点的页面。

谢谢:) 更新:得到以下信息,但不完全确定如何确保它从创建它的位置重定向回 GROUP 节点,

<?php 

/**
* Grabs current node ID
*/

$node_nid = nid; 

/**
* Implements hook_form_alter().
*/
  function mod_form_alter(&$form, $form_state) 
  $form['buttons']['submit']['#submit'][] = 'mod_form_finish_redirect';
  unset($form['buttons']['preview']);


/**
 * Custom submit handler. Overwrites the form redirection variable.
 */

function mod_form_finish_redirect($form, &$form_state) 
  $form_state['redirect'] = '/content/<?php print $node_nid; ?>';

?>

【问题讨论】:

【参考方案1】:

我会推荐rules 模块。规则是一个很棒的模块,它允许您执行多种工作流,它非常适合这个。您可以编写在创建指定节点类型时触发的规则(并包括您需要的任何其他条件)。创建节点后,您可以指定到主页的重定向操作规则。这一切都可以在没有任何代码的情况下完成。

【讨论】:

【参考方案2】:

规则(正如“We Love Drupal”所说)是一种可能性,但对于如此小的行为变化来说也是一个相当大的模块。另一种选择是编写一个自定义模块来实现hook_form_alter,设置表单的#redirect value。

请记住,查看您刚刚创建的节点对于用户来说是重要的反馈。当你执行一个动作时,你想要确认你已经完成了你的任务。虽然按照您的要求在技术上是可行的,但它可能不利于可用性。

【讨论】:

/ $node_nid = nid; /* * 实现 hook_form_alter()。 /function mod_form_alter(&$form, $form_state) $form['buttons']['submit']['#submit'][] = 'mod_form_finish_redirect'; unset($form['buttons']['preview']); /* * 自定义提交处理程序。覆盖表单重定向变量。 */ function mod_form_finish_redirect($form, &$form_state) $form_state['redirect'] = '/content/'; ?> 这不是有效的 PHP,但看起来您正朝着正确的方向前进。也许您甚至不需要自定义提交处理程序。另见drupal.org/node/134000。 无论如何你可以帮助我,我对 php 或其他代码一无所知 如果您对编码一无所知,那么带有规则模块的解决方案可能更适合您。【参考方案3】:

我也有同样的要求。规则对我有用。

【讨论】:

以上是关于Drupal 节点创建 - 创建后返回原点的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 7 视图上下文过滤器

Drupal 7“新节点创建”是不是启动/准备不同内容类型的字段?

按分类术语过滤的 Drupal 视图

如何创建混合节点和文件的 DRUPAL 视图?

Drupal - 展示一个节点

drupal 以编程方式禁用或删除节点创建节点链接