protected function AjaxController::retrieveOrderFromRequest in Sortableviews 8
Returns the entity order adjusted for the view pager.
Parameters
\Symfony\Component\HttpFoundation\Request $request: The current request object.
Return value
array An array with the adjusted sort order where the key is the entity weight and the value, the entity id.
1 call to AjaxController::retrieveOrderFromRequest()
- AjaxController::ajaxSave in src/Controller/ AjaxController.php 
- Saves new weights.
File
- src/Controller/ AjaxController.php, line 57 
Class
- AjaxController
- Controller for sortableviews ajax calls.
Namespace
Drupal\sortableviews\ControllerCode
protected function retrieveOrderFromRequest(Request $request) {
  // Adjust order for pager in asc fashion.
  if ($request
    ->get('items_per_page') && $request
    ->get('sort_order') == 'asc') {
    $adjusted_order = [];
    foreach ($request
      ->get('current_order') as $index => $value) {
      $new_index = $index + $request
        ->get('page_number') * $request
        ->get('items_per_page');
      $adjusted_order[$new_index] = $value;
    }
    return $adjusted_order;
  }
  // Adjust order for pager in desc fashion.
  if ($request
    ->get('items_per_page') && $request
    ->get('sort_order') == 'desc') {
    $complete_pages = (int) ($request
      ->get('total_rows') / $request
      ->get('items_per_page'));
    if ($complete_pages == $request
      ->get('page_number')) {
      // This is the last page of the view.
      return $request
        ->get('current_order');
    }
    $adjusted_order = [];
    $mod = (int) $request
      ->get('total_rows') % $request
      ->get('items_per_page');
    foreach ($request
      ->get('current_order') as $index => $value) {
      $new_index = $index + ($complete_pages - ($request
        ->get('page_number') + 1)) * $request
        ->get('items_per_page') + $mod;
      $adjusted_order[$new_index] = $value;
    }
    return $adjusted_order;
  }
  return $request
    ->get('current_order');
}