protected function WebformSubmissionListBuilder::getEntityIds in Webform 6.x
Same name and namespace in other branches
- 8.5 src/WebformSubmissionListBuilder.php \Drupal\webform\WebformSubmissionListBuilder::getEntityIds()
Loads entity IDs using a pager sorted by the entity id.
Return value
array An array of entity IDs.
Overrides EntityListBuilder::getEntityIds
File
- src/
WebformSubmissionListBuilder.php, line 1282
Class
- WebformSubmissionListBuilder
- Provides a list controller for webform submission entity.
Namespace
Drupal\webformCode
protected function getEntityIds() {
$query = $this
->getQuery($this->keys, $this->state, $this->sourceEntityTypeId);
$query
->pager($this->limit);
$header = $this
->buildHeader();
$order = TableSort::getOrder($header, $this->request);
$direction = TableSort::getSort($header, $this->request);
// If query is order(ed) by 'element__*' we need to build a custom table
// sort using hook_query_TAG_alter().
// @see webform_query_webform_submission_list_builder_alter()
if ($order && strpos($order['sql'], 'element__') === 0) {
$name = $order['sql'];
$column = $this->columns[$name];
$query
->addTag('webform_submission_list_builder')
->addMetaData('webform_submission_element_name', $column['key'])
->addMetaData('webform_submission_element_property_name', $column['property_name'])
->addMetaData('webform_submission_element_direction', $direction);
$result = $query
->execute();
// Must manually initialize the pager because the DISTINCT clause in the
// query is breaking the row counting.
// @see webform_query_alter()
$this->pagerManager
->createPager($this->total, $this->limit);
return $result;
}
else {
if ($order && $order['sql']) {
$query
->tableSort($header);
}
else {
// If no order is specified, make sure the first column is sortable,
// else default sorting to the sid.
// @see \Drupal\Core\Entity\Query\QueryBase::tableSort
// @see tablesort_get_order()
$default = reset($header);
if (isset($default['specified'])) {
$query
->tableSort($header);
}
else {
$query
->sort('sid', 'DESC');
}
}
return $query
->execute();
}
}