You are here

function webform_query_webform_submission_list_builder_alter in Webform 6.x

Same name and namespace in other branches
  1. 8.5 includes/webform.query.inc \webform_query_webform_submission_list_builder_alter()

Implements hook_query_TAG_alter().

Append EAV sort to webform_submission entity query.

See also

http://stackoverflow.com/questions/12893314/sorting-eav-database

\Drupal\webform\WebformSubmissionListBuilder::getEntityIds

File

includes/webform.query.inc, line 20
Webform module query hooks.

Code

function webform_query_webform_submission_list_builder_alter(AlterableInterface $query) {

  /** @var \Drupal\Core\Database\Query\SelectInterface $query */
  $name = $query
    ->getMetaData('webform_submission_element_name');
  $direction = $query
    ->getMetaData('webform_submission_element_direction');
  $property_name = $query
    ->getMetaData('webform_submission_element_property_name');
  $query
    ->distinct();
  $query
    ->addJoin('INNER', 'webform_submission_data', 'webform_submission_data_list_builder_element', 'base_table.sid = webform_submission_data_list_builder_element.sid');
  $query
    ->addField('webform_submission_data_list_builder_element', 'value');
  $query
    ->condition('webform_submission_data_list_builder_element.name', $name);
  if ($property_name) {
    $query
      ->condition('webform_submission_data_list_builder_element.property', $property_name);
  }
  $query
    ->orderBy('webform_submission_data_list_builder_element.value', $direction);
}