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 / ListIds.php
codepress-admin-columns / classes / ListScreenRepository / Sort Last commit date
Label.php 2 days ago ListIds.php 2 days ago ManualOrder.php 2 days ago UserOrder.php 2 days ago
ListIds.php
51 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
10 class ListIds implements Sort
11 {
12 private array $list_ids;
13
14 public function __construct(array $list_ids = [])
15 {
16 $this->list_ids = $list_ids;
17 }
18
19 public function sort(ListScreenCollection $list_screens): ListScreenCollection
20 {
21 if (! $list_screens->count()) {
22 return $list_screens;
23 }
24
25 $lists = [];
26
27 foreach ($list_screens as $list_screen) {
28 $lists[(string)$list_screen->get_id()] = $list_screen;
29 }
30
31 $ordered = new ListScreenCollection();
32
33 foreach (array_unique($this->list_ids) as $list_id) {
34 if (! isset($lists[$list_id])) {
35 continue;
36 }
37
38 $ordered->add($lists[$list_id]);
39
40 unset($lists[$list_id]);
41 }
42
43 foreach ($lists as $list_screen) {
44 $ordered->add($list_screen);
45 }
46
47 return $ordered;
48 }
49
50 }
51