phpMv  -UI toolkit 2.4.12
jQuery, jQuery UI, Twitter Bootstrap and Semantic-UI library for php & php MVC Frameworks
BaseHtmlPropertiesTrait.php
Go to the documentation of this file.
1 <?php
3 
6 
12 
13  protected $properties=array ();
14  abstract protected function ctrl($name, $value, $typeCtrl);
15  abstract protected function removeOldValues(&$oldValue, $allValues);
16  abstract protected function _getElementBy($callback,$elements);
17  public function getProperties() {
18  return $this->_self->properties;
19  }
20 
25  public function setProperties($properties) {
26  $this->_self->properties=$properties;
27  return $this;
28  }
29 
30  public function setProperty($name, $value) {
31  $this->_self->properties[$name]=$value;
32  return $this;
33  }
34 
35  public function getProperty($name) {
36  if (array_key_exists($name, $this->_self->properties))
37  return $this->_self->properties[$name];
38  }
39 
46  public function addToProperty($name, $value, $separator=" ") {
47  if (\is_array($value)) {
48  foreach ( $value as $v ) {
49  $this->_self->addToProperty($name, $v, $separator);
50  }
51  } else if ($value !== "" && $this->_self->propertyContains($name, $value) === false) {
52  if(isset($this->_self->properties[$name])){
53  $v=$this->_self->properties[$name];
54  if (isset($v) && $v !== ""){
55  $value=$v . $separator . $value;
56  }
57  }
58  return $this->_self->setProperty($name, $value);
59  }
60  return $this;
61  }
62 
63  public function addProperties($properties) {
64  $this->_self->properties=array_merge($this->_self->properties, $properties);
65  return $this;
66  }
67 
68  public function removePropertyValue($name, $value) {
69  $this->_self->properties[$name]=\str_replace($value, "", $this->_self->properties[$name]);
70  return $this;
71  }
72 
73  protected function removePropertyValues($name, $values) {
74  $this->_self->removeOldValues($this->_self->properties[$name], $values);
75  return $this;
76  }
77 
78  protected function addToPropertyUnique($name, $value, $typeCtrl) {
79  if (is_string($typeCtrl) && @class_exists($typeCtrl, true))
80  $typeCtrl=$typeCtrl::getConstants();
81  if (\is_array($typeCtrl)) {
82  $this->_self->removeOldValues($this->_self->properties[$name], $typeCtrl);
83  }
84  return $this->_self->addToProperty($name, $value);
85  }
86 
87  public function addToPropertyCtrl($name, $value, $typeCtrl) {
88  return $this->_self->addToPropertyUnique($name, $value, $typeCtrl);
89  }
90 
91  public function addToPropertyCtrlCheck($name, $value, $typeCtrl) {
92  if ($this->_self->ctrl($name, $value, $typeCtrl) === true) {
93  return $this->_self->addToProperty($name, $value);
94  }
95  return $this;
96  }
97 
98  public function removeProperty($name) {
99  if (\array_key_exists($name, $this->_self->properties))
100  unset($this->_self->properties[$name]);
101  return $this;
102  }
103 
104  public function propertyContains($propertyName, $value) {
105  $values=$this->_self->getProperty($propertyName);
106  if (isset($values) && $value!=null) {
107  return JString::contains($values, $value);
108  }
109  return false;
110  }
111 
112  protected function setPropertyCtrl($name, $value, $typeCtrl) {
113  if ($this->_self->ctrl($name, $value, $typeCtrl) === true)
114  return $this->_self->setProperty($name, $value);
115  return $this;
116  }
117 
118  protected function getElementByPropertyValue($propertyName,$value, $elements) {
119  return $this->_self->_getElementBy(function(BaseHtml $element) use ($propertyName,$value){return $element->propertyContains($propertyName, $value) === true;}, $elements);
120  }
121 }
BaseHtml for HTML components.
Definition: BaseHtml.php:17
addToPropertyCtrlCheck($name, $value, $typeCtrl)
setPropertyCtrl($name, $value, $typeCtrl)
getElementByPropertyValue($propertyName, $value, $elements)
addToProperty($name, $value, $separator=" ")
propertyContains($propertyName, $value)
static contains($hay, $needle)
Definition: JString.php:6
_getElementBy($callback, $elements)
ctrl($name, $value, $typeCtrl)
removeOldValues(&$oldValue, $allValues)
addToPropertyUnique($name, $value, $typeCtrl)
addToPropertyCtrl($name, $value, $typeCtrl)