PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.24.0
GiveWP – Donation Plugin and Fundraising Platform v2.24.0
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / ListTable / ListTable.php
give / src / Framework / ListTable Last commit date
Concerns 3 years ago Exceptions 3 years ago ListTable.php 3 years ago ModelColumn.php 3 years ago
ListTable.php
111 lines
1 <?php
2
3 namespace Give\Framework\ListTable;
4
5 use Give\Framework\ListTable\Concerns\Columns;
6 use Give\Framework\ListTable\Exceptions\ColumnIdCollisionException;
7 use Give\Framework\Support\Contracts\Arrayable;
8
9 /**
10 * @since 2.24.0
11 */
12 abstract class ListTable implements Arrayable
13 {
14 use Columns;
15
16 /**
17 * @var array
18 */
19 private $items = [];
20
21 /**
22 * @since 2.24.0
23 *
24 * @throws ColumnIdCollisionException
25 */
26 public function __construct()
27 {
28 $this->addColumns(...$this->getDefaultColumns());
29 }
30
31 /**
32 * Get table ID
33 *
34 * @since 2.24.0
35 */
36 abstract public function id(): string;
37
38 /**
39 * Define table columns
40 *
41 * @since 2.24.0
42 *
43 * @return ModelColumn[]
44 */
45 abstract protected function getDefaultColumns(): array;
46
47 /**
48 * Define default visible table columns
49 *
50 * @since 2.24.0
51 *
52 * @return string[]
53 */
54 abstract protected function getDefaultVisibleColumns(): array;
55
56 /**
57 * Get table definitions
58 *
59 * @since 2.24.0
60 *
61 * @return array
62 */
63 public function toArray(): array
64 {
65 return [
66 'id' => $this->id(),
67 'columns' => $this->getColumnsArray()
68 ];
69 }
70
71 /**
72 * Set table items
73 *
74 * @since 2.24.0
75 *
76 * @param array $items
77 * @param string $locale
78 *
79 * @return void
80 */
81 public function items(array $items, string $locale = '')
82 {
83 $data = [];
84
85 $columns = $this->getColumns();
86
87 foreach ($items as $model) {
88 $row = [];
89
90 foreach ($columns as $column) {
91 $row[$column::getId()] = $column->getCellValue($model, $locale);
92 }
93
94 $data[] = $row;
95 }
96
97 $this->items = $data;
98 }
99
100 /**
101 * @since 2.24.0
102 *
103 * @return array
104 */
105 public function getItems(): array
106 {
107 return $this->items;
108 }
109 }
110
111