PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Service / ManageHeadings.php
codepress-admin-columns / classes / Service Last commit date
AdminBar.php 1 day ago AdminBarEditColumns.php 1 day ago Colors.php 1 day ago CommonAssets.php 1 day ago CurrentTable.php 1 day ago ManageHeadings.php 1 day ago ManageValue.php 1 day ago NoticeChecks.php 1 day ago PluginUpdate.php 1 day ago PromoChecks.php 1 day ago QuickEdit.php 1 day ago SaveHeadings.php 1 day ago Setup.php 1 day ago TableRows.php 1 day ago Tooltips.php 1 day ago View.php 1 day ago
ManageHeadings.php
82 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Service;
6
7 use AC\ColumnRepository\Sort\ManualOrder;
8 use AC\ListScreen;
9 use AC\Registerable;
10 use AC\TableScreen;
11 use AC\TableScreen\ManageHeadingFactory;
12
13 class ManageHeadings implements Registerable
14 {
15 private static array $factories = [];
16
17 public static function add(ManageHeadingFactory $factory): void
18 {
19 self::$factories[] = $factory;
20 }
21
22 public function register(): void
23 {
24 add_action('ac/table/list_screen', [$this, 'handle'], 10, 2);
25 }
26
27 private function get_factory(TableScreen $table_screen): ?ManageHeadingFactory
28 {
29 foreach (array_reverse(self::$factories) as $factory) {
30 if ($factory->can_create($table_screen)) {
31 return $factory;
32 }
33 }
34
35 return null;
36 }
37
38 protected function get_column_headings(ListScreen $list_screen): array
39 {
40 $headings = [];
41
42 $sort_strategy = new ManualOrder($list_screen->get_id());
43
44 foreach ($sort_strategy->sort($list_screen->get_columns()) as $column) {
45 $setting = $column->get_setting('label');
46
47 $label = $setting
48 ? (string)$setting->get_input()->get_value()
49 : $column->get_label();
50
51 $headings[(string)$column->get_id()] = apply_filters(
52 'ac/column/heading/label',
53 $label,
54 $column->get_context(),
55 $list_screen->get_table_screen()
56 );
57 }
58
59 return $headings;
60 }
61
62 public function handle(ListScreen $list_screen, TableScreen $table_screen): void
63 {
64 $factory = $this->get_factory($table_screen);
65
66 if (! $factory || ! $factory->can_create($table_screen)) {
67 return;
68 }
69
70 $headings = $this->get_column_headings($list_screen);
71
72 if (! $headings) {
73 return;
74 }
75
76 $factory
77 ->create($table_screen, $headings)
78 ->register();
79 }
80
81 }
82