Skip to content

Commit 613cdf7

Browse files
committed
getElementBy refactoring
1 parent b3219e1 commit 613cdf7

File tree

2 files changed

+10
-19
lines changed

2 files changed

+10
-19
lines changed

Ajax/common/html/BaseHtml.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,18 +176,22 @@ public function wrap($before, $after="") {
176176

177177

178178
public function getElementById($identifier, $elements) {
179+
return $this->_getElementBy(function($element) use ($identifier){return $element->getIdentifier()===$identifier;}, $elements);
180+
}
181+
182+
protected function _getElementBy($callback,$elements){
179183
if (\is_array($elements)) {
180184
$flag=false;
181185
$index=0;
182186
while ( !$flag && $index < sizeof($elements) ) {
183187
if ($elements[$index] instanceof BaseHtml)
184-
$flag=($elements[$index]->getIdentifier() === $identifier);
185-
$index++;
188+
$flag=($callback($elements[$index]));
189+
$index++;
186190
}
187191
if ($flag === true)
188192
return $elements[$index - 1];
189193
} elseif ($elements instanceof BaseHtml) {
190-
if ($elements->getIdentifier() === $identifier)
194+
if ($callback($elements))
191195
return $elements;
192196
}
193197
return null;

Ajax/common/html/traits/BaseHtmlPropertiesTrait.php

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@ trait BaseHtmlPropertiesTrait{
1313
protected $properties=array ();
1414
abstract protected function ctrl($name, $value, $typeCtrl);
1515
abstract protected function removeOldValues(&$oldValue, $allValues);
16+
abstract protected function _getElementBy($callback,$elements);
1617
public function getProperties() {
1718
return $this->properties;
1819
}
1920

2021
/**
21-
* @param array|string $properties
22+
* @param array $properties
2223
* @return BaseHtml
2324
*/
2425
public function setProperties($properties) {
@@ -109,20 +110,6 @@ protected function setPropertyCtrl($name, $value, $typeCtrl) {
109110
}
110111

111112
protected function getElementByPropertyValue($propertyName,$value, $elements) {
112-
if (\is_array($elements)) {
113-
$flag=false;
114-
$index=0;
115-
while ( !$flag && $index < sizeof($elements) ) {
116-
if ($elements[$index] instanceof BaseHtml)
117-
$flag=($elements[$index]->propertyContains($propertyName, $value) === true);
118-
$index++;
119-
}
120-
if ($flag === true)
121-
return $elements[$index - 1];
122-
} elseif ($elements instanceof BaseHtml) {
123-
if ($elements->propertyContains($propertyName, $value) === true)
124-
return $elements;
125-
}
126-
return null;
113+
return $this->_getElementBy(function($element) use ($propertyName,$value){return $element->propertyContains($propertyName, $value) === true;}, $elements);
127114
}
128115
}

0 commit comments

Comments
 (0)