diff --git a/bin/BrickEdit.js b/bin/BrickEdit.js index fdffb300beb5fe6d94f8e86f022fc3959b829485..14b4ab633a959261bcbe35f2f66ebec66c3cb75e 100644 --- a/bin/BrickEdit.js +++ b/bin/BrickEdit.js @@ -354,7 +354,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ var Form = this.getContent().getElement('form'), unload = this.$Active.getAttribute('name'), data = this.getAttribute('data'); - + if (unload == 'information') { data.attributes = Object.merge( data.attributes, diff --git a/src/QUI/Bricks/Brick.php b/src/QUI/Bricks/Brick.php index d15990a552cd6f4275336a30897e88eb2a6ea5b6..b642953b77f8cddf25bac5128c45537f42bf46b9 100644 --- a/src/QUI/Bricks/Brick.php +++ b/src/QUI/Bricks/Brick.php @@ -259,14 +259,7 @@ public function create() $Control->setAttributes($this->getSettings()); if ($this->getAttribute('classes')) { - $classes = explode(' ', $this->getAttribute('classes')); - - foreach ($classes as $class) { - $class = trim($class); - $class = preg_replace('/[^a-zA-Z0-9\-]/', '', $class); - - $Control->addCSSClass($class); - } + $Control->addCSSClass($this->getAttribute('classes')); } if ($this->id) { @@ -413,8 +406,24 @@ public function getCustomFields() */ public function addCSSClass($cssClass) { - if (!empty($cssClass)) { - $this->cssClasses[] = $cssClass; + if (!is_string($cssClass)) { + return; + } + + if (empty($cssClass)) { + return; + } + + $classes = preg_replace('/[^_a-zA-Z0-9-]/', ' ', $cssClass); + $classes = explode(' ', $classes); + + $keys = array_flip($this->cssClasses); + + foreach ($classes as $cssClass) { + if (!isset($keys[$cssClass])) { + $this->cssClasses[] = $cssClass; + $keys[$cssClass] = true; + } } }