mirror of
https://github.com/processwire/processwire.git
synced 2025-08-12 17:54:44 +02:00
Update for processwire/processwire-issues#1651
This commit is contained in:
@@ -517,8 +517,8 @@ abstract class Inputfield extends WireData implements Module {
|
|||||||
|
|
||||||
} else if($key === 'addClass') {
|
} else if($key === 'addClass') {
|
||||||
if(is_string($value) && !ctype_alnum($value)) {
|
if(is_string($value) && !ctype_alnum($value)) {
|
||||||
$test = str_replace(array(' ', ':', ',', '-', '_', '.', '@', "\n"), '', $value);
|
$test = str_replace(array(' ', ':', ',', '-', '+', '=', '!', '_', '.', '@', "\n"), '', $value);
|
||||||
if(!ctype_alnum($test)) $value = preg_replace('![^-_:@,. a-zA-Z0-9\n]!', '', $value);
|
if(!ctype_alnum($test)) $value = preg_replace('/[^-+_:=@!,. a-zA-Z0-9\n]/', '', $value);
|
||||||
}
|
}
|
||||||
$this->addClass($value);
|
$this->addClass($value);
|
||||||
}
|
}
|
||||||
@@ -1080,7 +1080,10 @@ abstract class Inputfield extends WireData implements Module {
|
|||||||
*/
|
*/
|
||||||
public function addClass($class, $property = 'class') {
|
public function addClass($class, $property = 'class') {
|
||||||
|
|
||||||
if(is_string($class) && !ctype_alnum($class)) {
|
$force = strpos($property, '=') === 0; // force set, skip processing by addClassString
|
||||||
|
if($force) $property = ltrim($property, '=');
|
||||||
|
|
||||||
|
if(is_string($class) && !ctype_alnum($class) && !$force) {
|
||||||
if(strpos($class, ':') || strpos($class, "\n") || strpos($class, ",")) {
|
if(strpos($class, ':') || strpos($class, "\n") || strpos($class, ",")) {
|
||||||
return $this->addClassString($class, $property);
|
return $this->addClassString($class, $property);
|
||||||
}
|
}
|
||||||
@@ -1180,7 +1183,7 @@ abstract class Inputfield extends WireData implements Module {
|
|||||||
if(strpos($class, '-') === 0) {
|
if(strpos($class, '-') === 0) {
|
||||||
$this->removeClass(ltrim($class, '-'), $type);
|
$this->removeClass(ltrim($class, '-'), $type);
|
||||||
} else {
|
} else {
|
||||||
$this->addClass($class, $type);
|
$this->addClass($class, "=$type"); // "=type" prevents further processing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1745,6 +1748,7 @@ abstract class Inputfield extends WireData implements Module {
|
|||||||
"`";
|
"`";
|
||||||
$f->collapsed = Inputfield::collapsedBlank;
|
$f->collapsed = Inputfield::collapsedBlank;
|
||||||
$f->renderFlags = self::renderLast;
|
$f->renderFlags = self::renderLast;
|
||||||
|
$f->val($this->getSetting('addClass'));
|
||||||
$inputfields->add($f);
|
$inputfields->add($f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user