PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.4.1
Admin Columns v4.4.1
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 / Helper / Select / Group.php
codepress-admin-columns / classes / Helper / Select Last commit date
Entities 4 years ago Formatter 4 years ago Group 4 years ago Options 4 years ago Value 4 years ago Entities.php 4 years ago Formatter.php 4 years ago Group.php 4 years ago MetaValuesFactory.php 4 years ago Option.php 4 years ago OptionGroup.php 4 years ago Options.php 4 years ago Paginated.php 4 years ago Response.php 4 years ago Value.php 4 years ago
Group.php
75 lines
1 <?php
2
3 namespace AC\Helper\Select;
4
5 use AC\ArrayIterator;
6
7 abstract class Group extends ArrayIterator {
8
9 /**
10 * @var Formatter
11 */
12 private $formatter;
13
14 /**
15 * @param Formatter $formatter
16 */
17 public function __construct( Formatter $formatter ) {
18 $this->formatter = $formatter;
19
20 parent::__construct( $this->get_group() );
21 }
22
23 /**
24 * @param array $groups
25 *
26 * @return array
27 */
28 protected function sort( array $groups ) {
29 uksort( $groups, 'strnatcmp' );
30
31 return $groups;
32 }
33
34 /**
35 * @return OptionGroup[]
36 */
37 protected function get_group() {
38 $groups = [];
39
40 foreach ( $this->formatter as $option ) {
41 $label = $this->get_label(
42 $this->formatter->get_entity( $option->get_value() ),
43 $option
44 );
45
46 $groups[ $label ][] = $option;
47 }
48
49 return $this->get_option_groups( $this->sort( $groups ) );
50 }
51
52 /**
53 * @param array $groups
54 *
55 * @return OptionGroup[]
56 */
57 protected function get_option_groups( array $groups ) {
58 $option_groups = [];
59
60 foreach ( $groups as $label => $options ) {
61 $option_groups[] = new OptionGroup( $label, $options );
62 }
63
64 return $option_groups;
65 }
66
67 /**
68 * @param $entity
69 * @param Option $option
70 *
71 * @return string
72 */
73 protected abstract function get_label( $entity, Option $option );
74
75 }