【问题标题】:Preselect multiple default (entity) values in Drupal 7 webform在 Drupal 7 网络表单中预选多个默认(实体)值
【发布时间】:2018-03-06 18:12:40
【问题描述】:

我正在尝试编写一个自定义模块来从 VBO 传递实体 ID - 可能使用会话变量? - 到特定的网络表单,以便可以在加载时预先检查表单的实体集(即分类复选框的多个“默认”值)。这是我第一次尝试更复杂的模块,我已经做了很多搜索,但到目前为止还没有找到任何关于这个特定问题的东西。我想我已经设法将 ID 放入会话并使用 VBO 的 drupal_goto 向视图用户发送表单,但需要帮助将这些 ID 设置为加载时 web 表单中的默认值。

【问题讨论】:

    标签: drupal-7 drupal-webform


    【解决方案1】:

    就我而言,这实际上很容易。带有代码的自定义模块,用于从会话中检索信息(未显示),然后

    function myModule_form_webform_client_form_[#]_alter( &$form, &$form_state, $form_id ){
    
      $box_options = $form['submitted']['box_ids'];
      $boxes = $_SESSION['boxes_from_session'];
    
      $arguments = set_checkboxes_function($boxes);
      if(!empty($arguments)){
          $box_options['#default_value'] = $arguments;
          unset($_SESSION['boxes_from_session']);
        }
    
          return $form;
    }
    
    function set_datasets_function($boxes){
      $default_vals = array();
      foreach($boxes as $item ) {
      // below code from suggestions here*
      // is overkill, this wants a 1D array
        //$key = $item->tid;
        //$value = $item->name;
        //$default_vals[$key] = $value;
        array_push($default_vals,$item->tid); 
      }
      //dpm($default_vals);
      return $default_vals;
    }
    

    *https://www.drupal.org/forum/support/module-development-and-code-questions/2008-02-28/how-to-check-default-value-in-form

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多