0
我有兩個內容類型「想法」和「挑戰」。如果我通過引用一個封閉的挑戰創建一個想法,那麼我需要防止這個想法被保存。有沒有可能使用規則來做到這一點?如何防止在引用節點關閉的情況下創建新節點?
我有兩個內容類型「想法」和「挑戰」。如果我通過引用一個封閉的挑戰創建一個想法,那麼我需要防止這個想法被保存。有沒有可能使用規則來做到這一點?如何防止在引用節點關閉的情況下創建新節點?
你可以用規則來做,但我會以編程的方式來做到這一點。
在規則中,您需要設置一個規則,如'pre save',在其中設置條件而不是放置表單錯誤。
以編程方式:實現一個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'));
}
}