FormFields now allow setting of extra CSSClasses en masse

Each CSS class passed in to `addExtraClass` or `removeExtraClass` will be set as their own key in the `extraClasses` array

Also make `Form` consistent with `FormField`
This commit is contained in:
Daniel Hensby 2013-06-29 11:42:07 +01:00
parent a6c3d1e269
commit 336ddf1a55
2 changed files with 25 additions and 15 deletions

View File

@ -1473,14 +1473,12 @@ class Form extends RequestHandler {
* names delimited by a single space.
*/
public function addExtraClass($class) {
$classes = explode(' ', $class);
foreach($classes as $class) {
$value = trim($class);
$this->extraClasses[] = $value;
//split at white space
$classes = preg_split('/\s+/', $class);
foreach ($classes as $class) {
//add classes one by one
$this->extraClasses[$class] = $class;
}
return $this;
}
@ -1491,8 +1489,12 @@ class Form extends RequestHandler {
* @param string $class
*/
public function removeExtraClass($class) {
$classes = explode(' ', $class);
$this->extraClasses = array_diff($this->extraClasses, $classes);
//split at white space
$classes = preg_split('/\s+/', $class);
foreach ($classes as $class) {
//unset one by one
unset($this->extraClasses[$class]);
}
return $this;
}

View File

@ -293,24 +293,32 @@ class FormField extends RequestHandler {
}
/**
* Add a CSS-class to the formfield-container.
* Add one or more CSS-classes to the formfield-container.
*
* @param $class String
*/
public function addExtraClass($class) {
$this->extraClasses[$class] = $class;
//split at white space to extract all the classes
$classes = preg_split('/\s+/', $class);
foreach ($classes as $class) {
//add each class one by one
$this->extraClasses[$class] = $class;
}
return $this;
}
/**
* Remove a CSS-class from the formfield-container.
* Remove one or more CSS-classes from the formfield-container.
*
* @param $class String
*/
public function removeExtraClass($class) {
$pos = array_search($class, $this->extraClasses);
if($pos !== false) unset($this->extraClasses[$pos]);
//split at white space to extract all the classes
$classes = preg_split('/\s+/', $class);
foreach ($classes as $class) {
//unset each class one by one
unset($this->extraClasses[$class]);
}
return $this;
}