如果引用的节点关闭,如何防止创建新节点?

时间:2014-09-12 13:15:42

标签: drupal-7 drupal-rules

我有两种内容类型" Idea"和"挑战"。如果我创建一个关于封闭挑战的想法,那么我需要阻止这个想法的保存。是否可以使用规则执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以使用规则执行此操作,但我会以编程方式执行此操作。

在规则中,您需要设置一个类似“预存”的规则来设置条件,而不是删除表单错误。

以编程方式:实现一个hook_form_alter(),您应该在其中进行表单验证,调用您验证的函数。

https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_form_alter/7

实施例

function YOURMODULE_form_alter (&$form, &$form_state, $form_id) {
  if ($form_id == 'YOURCHALLANGENODETYPENAME_node_form') {
    $form['#validate'][] = 'YOURMODULE_form_validate';

    }
}

function YOURMODULE_form_validate ($form, &$form_state) {
  // load your idea here st like:
  $idea = entity_load_single( 'node', $form[YOURNODEREFERENCEID]);
  if ($idea->status == 0) {
    form_set_error ('YOURNODEREFERENCEFIELDNAME', t('ERROR_MESSAGE_TEXT'));
  }
}