ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
TableDataProvider.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
25 
29 final class TableDataProvider
30 {
31  private \ILIAS\ResourceStorage\Services $irss;
32 
33  public function __construct(
34  private Request $view_request,
35  ) {
36  global $DIC;
37  $this->irss = $DIC->resourceStorage();
38  }
39 
40  public function getViewRequest(): Request
41  {
42  return $this->view_request;
43  }
44 
48  public function getIdentifications(): array
49  {
50  $collection = $this->view_request->getCollection();
51  // Sort
52  $sorter = $this->irss->collection()->sort($collection);
53 
54  switch ($this->view_request->getSortation()) {
56  $collection = $sorter->asc()->byTitle();
57  break;
59  $collection = $sorter->desc()->byTitle();
60  break;
62  $collection = $sorter->asc()->byCreationDate();
63  break;
65  $collection = $sorter->desc()->byCreationDate();
66  break;
68  $collection = $sorter->asc()->bySize();
69  break;
71  $collection = $sorter->desc()->bySize();
72  break;
73  }
74 
75  return $this->irss->collection()->rangeAsArray(
76  $collection,
77  $this->view_request->getPage() * $this->view_request->getItemsPerPage(),
78  $this->view_request->getItemsPerPage(),
79  );
80  }
81 
82  public function getTotal(): int
83  {
84  return $this->view_request->getCollection()->count();
85  }
86 }
global $DIC
Definition: feed.php:28