From 0d902a579bcf747fff9a4f0afbae20ce77394184 Mon Sep 17 00:00:00 2001 From: Henning Leutz <leutz@pcsg.de> Date: Wed, 30 Mar 2016 12:49:44 +0200 Subject: [PATCH] =?UTF-8?q?Issue=20#32=20=20In=20den=20Bausteinen=20werden?= =?UTF-8?q?=20keine=20CSS-Klassen=20=C3=BCbernommen=20->=20verbesseurng:?= =?UTF-8?q?=20keine=20doppelten=20css=20klassen=20erlaubt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/BrickEdit.js | 2 +- src/QUI/Bricks/Brick.php | 29 +++++++++++++++++++---------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/bin/BrickEdit.js b/bin/BrickEdit.js index fdffb30..14b4ab6 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 d15990a..b642953 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; + } } } -- GitLab