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'));
}
}