PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.10.0
GiveWP – Donation Plugin and Fundraising Platform v2.10.0
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 / FieldsAPI / FieldCollection.php
give / src / Framework / FieldsAPI Last commit date
Factory 5 years ago FieldCollection 5 years ago FormField 5 years ago FormFieldMediator 5 years ago FieldCollection.php 5 years ago FormField.php 5 years ago
FieldCollection.php
77 lines
1 <?php
2
3 namespace Give\Framework\FieldsAPI;
4
5 use Give\Framework\FieldsAPI\FieldCollection\Contract\Node;
6 use Give\Framework\FieldsAPI\FieldCollection\Contract\GroupNode;
7
8 /**
9 * @unreleased
10 */
11 class FieldCollection implements GroupNode {
12
13 use FieldCollection\NameCollision;
14 use FieldCollection\InsertNode;
15 use FieldCollection\MoveNode;
16 use FieldCollection\RemoveNode;
17 use FieldCollection\WalkNodes;
18
19 /** @var string */
20 protected $name;
21
22 /** @var Node[] */
23 protected $nodes = [];
24
25 public function __construct( $name, array $nodes = [] ) {
26 $this->name = $name;
27 $this->nodes = $nodes;
28 }
29
30 public function getName() {
31 return $this->name;
32 }
33
34 public function append( Node $node ) {
35 $this->insertAtIndex( $this->count(), $node );
36 return $this;
37 }
38
39 public function getNodeIndexByName( $name ) {
40 foreach ( $this->nodes as $index => $node ) {
41 if ( $node->getName() === $name ) {
42 return $index;
43 }
44 }
45 return false;
46 }
47
48 public function getNodeByName( $name ) {
49 foreach ( $this->nodes as $index => $node ) {
50 if ( $node->getName() === $name ) {
51 return $node;
52 }
53 if ( $node instanceof GroupNode ) {
54 return $node->getNodeByName( $name );
55 }
56 }
57 return false;
58 }
59
60 public function jsonserialize() {
61 return array_map(
62 function( $node ) {
63 return $node->jsonserialize();
64 },
65 $this->nodes
66 );
67 }
68
69 public function getFields() {
70 return $this->nodes;
71 }
72
73 public function count() {
74 return count( $this->getFields() );
75 }
76 }
77