You are here

function _subform_select in Subform 5

1 string reference to '_subform_select'
subform_menu in ./subform.module

File

./subform.module, line 578

Code

function _subform_select($result, $parent_node, $child_side) {

  // drupal_add_css(drupal_get_path('module', 'subform') .'/subform.css');
  // drupal_add_js(drupal_get_path('module', 'subform') .'/jquery.js');
  $result = unserialize($result->widget_settings);
  $relation_class = $result['relation_class'];
  $relation_class_node = node_load($relation_class);
  $limit_query = relation_instance_selectables_query($relation_class, $child_side, $parent_node);
  $selection_query = $result['selection_query'];
  $selectable_query = "SELECT * FROM ({$limit_query}) as limit_query INNER JOIN ({$selection_query}) AS selection_query ON limit_query.nid = selection_query.nid";

  // drupal_set_message( $selectable_query );
  $selectable_results = db_query($selectable_query);
  $form = array(
    'relation_class' => array(
      '#type' => 'hidden',
      '#value' => $relation_class,
    ),
    'child_side' => array(
      '#type' => 'hidden',
      '#value' => $child_side,
    ),
    'parent_node' => array(
      '#type' => 'hidden',
      '#value' => $parent_node,
    ),
    'select_list' => array(
      '#type' => 'fapi_table',
      '#tree' => true,
      '#width' => "100%",
      'rows' => array(),
      '#header' => true,
    ),
    'submit' => array(
      '#type' => 'submit',
    ),
    'javascript' => array(
      '#type' => 'markup',
      '#value' => "\n<script>\n\nfunction selectAll(form) {\n  for(var i = 0; i < form.elements.length; i++)\n  {\n    if( form.elements[i].type == 'checkbox' )\n    {\n      form.elements[i].checked = true;\n    }\n  }\n}\n\n</script>\n",
    ),
    'select_all' => array(
      '#type' => 'markup',
      '#value' => "<a href='#' onClick=\"selectAll(document.getElementById('_subform_select'));\" class='subform_button'><img src='/" . drupal_get_path('module', 'subform') . "/accept.png'>Select All</a>",
    ),
  );
  $result_found = 0;
  while ($selectable_result = db_fetch_array($selectable_results)) {
    if (!$form['select_list']['rows']) {
      $header_row["header_Select"] = array(
        array(
          '#type' => 'markup',
          '#value' => 'Select',
        ),
      );
      foreach ($selectable_result as $key => $value) {
        if ($key != 'nid' && $key != 'related_count') {
          $header_row["header_{$key}"] = array(
            array(
              '#type' => 'markup',
              '#value' => $key,
            ),
            '#table-sortable' => gettype($value),
            '#table-filterable' => true,
          );
        }
      }
      $form['select_list']['rows'][] = $header_row;
    }
    $new_record = array();
    $new_record[$selectable_result['nid']] = array(
      array(
        '#type' => 'checkbox',
        '#default_value' => false,
      ),
    );
    foreach ($selectable_result as $key => $value) {
      if ($key != 'nid' && $key != 'related_count') {
        $new_record[] = array(
          array(
            '#type' => 'markup',
            '#value' => $value,
          ),
        );
      }
    }
    $form['select_list']['rows'][] = $new_record;
    $result_found++;
  }
  if ($result_found == 0) {
    $new_record[] = array(
      array(
        '#type' => 'markup',
        '#value' => 'No results were found',
      ),
    );
    $form['select_list']['rows'][] = $new_record;
    unset($form['submit']);
  }
  drupal_add_css(drupal_get_path('module', 'subform') . '/subform_select.css');
  $content = drupal_get_form("_subform_select", $form);
  $content = str_replace("<input type=\"submit\" name=\"op\" value=\"\"  class=\"form-submit\" />", "<input type='hidden' name='op' id='op' value='Submit'>", $content);

  // its important that these occur after form generation, to allow fapi widgets to add js and css files
  $head = drupal_get_html_head();
  $styles = theme_get_styles();
  include_once 'subform_related.tpl.php';
  die;
}