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