【问题标题】:How to prevent creating a new node if the referenced node is closed?如果引用的节点已关闭,如何防止创建新节点?
【发布时间】:2014-09-12 13:15:42
【问题描述】:

我有两种内容类型“创意”和“挑战”。如果我创建一个参考封闭挑战的想法,那么我需要阻止该想法保存。是否可以使用规则来做到这一点?

【问题讨论】:

    标签: drupal-7 drupal-rules


    【解决方案1】:

    您可以使用规则来完成,但我会以编程方式完成。

    在规则中,您需要设置一个规则,例如“预保存”,您可以在其中设置条件而不是删除表单错误。

    以编程方式:实现一个 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'));
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多