0

「アイデア」と「チャレンジ」の2つのコンテンツタイプがあります。クローズド チャレンジを参照してアイデアを作成した場合、そのアイデアが保存されないようにする必要があります。ルールを使用してこれを行うことは可能ですか?

4

1 に答える 1

0

ルールを使用して実行できますが、プログラムで実行します。

ルールでは、フォームエラーをドロップするよりも条件を設定する「事前保存」のようなルール st を設定する必要があります。

プログラムによる: 検証する関数を呼び出すフォーム検証が必要な 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'));
  }
}
于 2014-10-21T10:10:14.520 に答える