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 / ListScreenRepository / Sort / ManualOrder.php
codepress-admin-columns / classes / ListScreenRepository / Sort Last commit date
Label.php 3 days ago ListIds.php 3 days ago ManualOrder.php 3 days ago UserOrder.php 3 days ago
ManualOrder.php
56 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\ListScreenRepository\Sort;
6
7 use AC\ListScreenCollection;
8 use AC\ListScreenRepository\Sort;
9 use AC\Storage;
10
11 class ManualOrder implements Sort
12 {
13 private Storage\Repository\ListScreenOrder $list_screen_order;
14
15 public function __construct()
16 {
17 $this->list_screen_order = new Storage\Repository\ListScreenOrder();
18 }
19
20 public function sort(ListScreenCollection $list_screens): ListScreenCollection
21 {
22 $list_screen = $list_screens->first();
23
24 if (! $list_screen) {
25 return $list_screens;
26 }
27
28 $key = $list_screen->get_table_id();
29
30 $layouts = [];
31
32 foreach ($list_screens as $list_screen) {
33 $layouts[(string)$list_screen->get_id()] = $list_screen;
34 }
35
36 $ordered = new ListScreenCollection();
37
38 foreach ($this->list_screen_order->get($key) as $layout_id) {
39 if (! isset($layouts[$layout_id])) {
40 continue;
41 }
42
43 $ordered->add($layouts[$layout_id]);
44
45 unset($layouts[$layout_id]);
46 }
47
48 foreach ($layouts as $list_screen) {
49 $ordered->add($list_screen);
50 }
51
52 return $ordered;
53 }
54
55 }
56