Forráskód Böngészése

Button Class: Apply margin* styles only to anchor tag (when present).

Nate 5 éve
szülő
commit
4bee0a0bff
1 módosított fájl, 32 hozzáadás és 1 törlés
  1. 32 1
      resources/classes/button.php

+ 32 - 1
resources/classes/button.php

@@ -32,6 +32,18 @@ if (!class_exists('button')) {
 
 		static function create($array) {
 			$button_icons = $_SESSION['theme']['button_icons']['text'] != '' ? $_SESSION['theme']['button_icons']['text'] : 'auto';
+			//parse styles into array
+				if ($array['style']) {
+					$tmp = explode(';',$array['style']);
+					foreach ($tmp as $style) {
+						if ($style) {
+							$style = explode(':', $style);
+							$styles[trim($style[0])] = trim($style[1]);
+						}
+					}
+					$array['style'] = $styles;
+					unset($styles);
+				}
 			//button: open
 				$button = "<button ";
 				$button .= "type='".($array['type'] ? $array['type'] : 'button')."' ";
@@ -48,7 +60,16 @@ if (!class_exists('button')) {
 				$button .= $array['onmouseover'] ? "onmouseenter=".self::quote($array['onmouseover'])." " : null;
  				$button .= $array['onmouseout'] ? "onmouseleave=".self::quote($array['onmouseout'])." " : null;
 				$button .= "class='btn btn-".($array['class'] ? $array['class'] : 'default')." ".($array['disabled'] ? 'disabled' : null)."' ";
-				$button .= $array['style'] ? "style=".self::quote($array['style'])." " : null;
+				//ensure margin* styles are not applied to the button element
+				if (is_array($array['style']) && @sizeof($array['style']) != 0) {
+					foreach ($array['style'] as $property => $value) {
+						if (!$array['link'] || !substr_count($property, 'margin')) {
+							$styles .= $property.': '.$value.'; ';
+						}
+					}
+					$button .= $styles ? "style=".self::quote($styles)." " : null;
+					unset($styles);
+				}
 				$button .= $array['disabled'] ? "disabled='disabled' " : null;
 				$button .= ">";
 			//icon
@@ -85,6 +106,16 @@ if (!class_exists('button')) {
 					$anchor = "<a ";
 					$anchor .= "href='".$array['link']."' ";
 					$anchor .= "target='".($array['target'] ? $array['target'] : '_self')."' ";
+					//ensure only margin* styles are applied to the anchor element
+					if (is_array($array['style']) && @sizeof($array['style']) != 0) {
+						foreach ($array['style'] as $property => $value) {
+							if (substr_count($property, 'margin')) {
+								$styles .= $property.': '.$value.'; ';
+							}
+						}
+						$anchor .= $styles ? "style=".self::quote($styles)." " : null;
+						unset($styles);
+					}
 					$anchor .= $array['disabled'] ? "class='disabled' onclick='return false;' " : null;
 					$anchor .= ">";
 					$button = $anchor.$button."</a>";