Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/dom-crawler/Field/FormField.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 7a779792577d |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 /* | |
4 * This file is part of the Symfony package. | |
5 * | |
6 * (c) Fabien Potencier <fabien@symfony.com> | |
7 * | |
8 * For the full copyright and license information, please view the LICENSE | |
9 * file that was distributed with this source code. | |
10 */ | |
11 | |
12 namespace Symfony\Component\DomCrawler\Field; | |
13 | |
14 /** | |
15 * FormField is the abstract class for all form fields. | |
16 * | |
17 * @author Fabien Potencier <fabien@symfony.com> | |
18 */ | |
19 abstract class FormField | |
20 { | |
21 /** | |
22 * @var \DOMElement | |
23 */ | |
24 protected $node; | |
25 /** | |
26 * @var string | |
27 */ | |
28 protected $name; | |
29 /** | |
30 * @var string | |
31 */ | |
32 protected $value; | |
33 /** | |
34 * @var \DOMDocument | |
35 */ | |
36 protected $document; | |
37 /** | |
38 * @var \DOMXPath | |
39 */ | |
40 protected $xpath; | |
41 /** | |
42 * @var bool | |
43 */ | |
44 protected $disabled; | |
45 | |
46 /** | |
47 * Constructor. | |
48 * | |
49 * @param \DOMElement $node The node associated with this field | |
50 */ | |
51 public function __construct(\DOMElement $node) | |
52 { | |
53 $this->node = $node; | |
54 $this->name = $node->getAttribute('name'); | |
55 $this->xpath = new \DOMXPath($node->ownerDocument); | |
56 | |
57 $this->initialize(); | |
58 } | |
59 | |
60 /** | |
61 * Returns the label tag associated to the field or null if none. | |
62 * | |
63 * @return \DOMElement|null | |
64 */ | |
65 public function getLabel() | |
66 { | |
67 $xpath = new \DOMXPath($this->node->ownerDocument); | |
68 | |
69 if ($this->node->hasAttribute('id')) { | |
70 $labels = $xpath->query(sprintf('descendant::label[@for="%s"]', $this->node->getAttribute('id'))); | |
71 if ($labels->length > 0) { | |
72 return $labels->item(0); | |
73 } | |
74 } | |
75 | |
76 $labels = $xpath->query('ancestor::label[1]', $this->node); | |
77 if ($labels->length > 0) { | |
78 return $labels->item(0); | |
79 } | |
80 | |
81 return; | |
82 } | |
83 | |
84 /** | |
85 * Returns the name of the field. | |
86 * | |
87 * @return string The name of the field | |
88 */ | |
89 public function getName() | |
90 { | |
91 return $this->name; | |
92 } | |
93 | |
94 /** | |
95 * Gets the value of the field. | |
96 * | |
97 * @return string|array The value of the field | |
98 */ | |
99 public function getValue() | |
100 { | |
101 return $this->value; | |
102 } | |
103 | |
104 /** | |
105 * Sets the value of the field. | |
106 * | |
107 * @param string $value The value of the field | |
108 */ | |
109 public function setValue($value) | |
110 { | |
111 $this->value = (string) $value; | |
112 } | |
113 | |
114 /** | |
115 * Returns true if the field should be included in the submitted values. | |
116 * | |
117 * @return bool true if the field should be included in the submitted values, false otherwise | |
118 */ | |
119 public function hasValue() | |
120 { | |
121 return true; | |
122 } | |
123 | |
124 /** | |
125 * Check if the current field is disabled. | |
126 * | |
127 * @return bool | |
128 */ | |
129 public function isDisabled() | |
130 { | |
131 return $this->node->hasAttribute('disabled'); | |
132 } | |
133 | |
134 /** | |
135 * Initializes the form field. | |
136 */ | |
137 abstract protected function initialize(); | |
138 } |