PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.8.0
GiveWP – Donation Plugin and Fundraising Platform v3.8.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 / ModelColumn.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
ModelColumn.php
112 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Give\Framework\ListTable;
6
7 use Give\Framework\Support\Contracts\Arrayable;
8
9 /**
10 * @since 2.24.0
11 *
12 * @template M of Give\Framework\Models\Model
13 */
14 abstract class ModelColumn implements Arrayable
15 {
16 /**
17 * @var string|array Define the meta key to be used when sorting the query by this column
18 */
19 protected $sortColumn;
20
21 /**
22 * @var bool Define if the column is visible
23 */
24 protected $visibleColumn;
25
26 /**
27 * Returns the id for that column.
28 *
29 * @since 2.24.0
30 */
31 abstract public static function getId(): string;
32
33 /**
34 * Returns the label for that column.
35 *
36 * @since 2.24.0
37 */
38 abstract public function getLabel(): string;
39
40 /**
41 * Returns the value to be displayed in the specific cell for that column and row.
42 *
43 * @since 2.24.0
44 *
45 * @param M $model
46 *
47 * @return int|string
48 */
49 abstract public function getCellValue($model);
50
51 /**
52 * @since 2.24.0
53 *
54 * @return bool
55 */
56 public function isSortable(): bool
57 {
58 return null !== $this->sortColumn;
59 }
60
61 /**
62 * @since 2.24.0
63 *
64 * @return array
65 */
66 public function getSortColumn(): array
67 {
68 if ( ! $this->isSortable() ) {
69 return [];
70 }
71
72 return is_array( $this->sortColumn ) ? $this->sortColumn : [$this->sortColumn];
73 }
74
75 /**
76 * @since 2.24.0
77 *
78 * @param bool $visible
79 *
80 * @return void
81 */
82 public function visible(bool $visible)
83 {
84 $this->visibleColumn = $visible;
85 }
86
87 /**
88 * @since 2.24.0
89 *
90 * @return bool
91 */
92 public function isVisible(): bool
93 {
94 return $this->visibleColumn;
95 }
96
97 /**
98 * @since 2.24.0
99 *
100 * @return array
101 */
102 public function toArray(): array
103 {
104 return [
105 'id' => $this->getId(),
106 'label' => $this->getLabel(),
107 'sortable' => $this->isSortable(),
108 'visible' => $this->isVisible(),
109 ];
110 }
111 }
112