support de multiples définitions pour border
This commit is contained in:
		
							parent
							
								
									8d7512e2bf
								
							
						
					
					
						commit
						12664f7270
					
				@ -86,20 +86,23 @@ class SpoutBuilder extends AbstractBuilder {
 | 
				
			|||||||
    if (($wrap = $cell["wrap"] ?? null) !== null) $style->setShouldWrapText($wrap);
 | 
					    if (($wrap = $cell["wrap"] ?? null) !== null) $style->setShouldWrapText($wrap);
 | 
				
			||||||
    if (($format = $cell["format"] ?? null) !== null) $style->setFormat($format);
 | 
					    if (($format = $cell["format"] ?? null) !== null) $style->setFormat($format);
 | 
				
			||||||
    if (($border = $cell["border"] ?? null) !== null) {
 | 
					    if (($border = $cell["border"] ?? null) !== null) {
 | 
				
			||||||
      if (is_string($border)) {
 | 
					      if (is_array($border)) $borderDefs = $border;
 | 
				
			||||||
        $parts = explode(" ", $border);
 | 
					      else $borderDefs = preg_split('/\s*,\s*/', trim(strval($border)));
 | 
				
			||||||
        $border = [];
 | 
					      $border = null;
 | 
				
			||||||
 | 
					      foreach ($borderDefs as $borderDef) {
 | 
				
			||||||
 | 
					        $parts = preg_split('/\s+/', $borderDef);
 | 
				
			||||||
 | 
					        $borderDef = [];
 | 
				
			||||||
        $styleAll = null;
 | 
					        $styleAll = null;
 | 
				
			||||||
        $widthAll = null;
 | 
					        $widthAll = null;
 | 
				
			||||||
        $colorAll = null;
 | 
					        $colorAll = null;
 | 
				
			||||||
        foreach ($parts as $part) {
 | 
					        foreach ($parts as $part) {
 | 
				
			||||||
          if ($part === "all") {
 | 
					          if ($part === "all") {
 | 
				
			||||||
            $border["left"] = [];
 | 
					            $borderDef["left"] = [];
 | 
				
			||||||
            $border["top"] = [];
 | 
					            $borderDef["top"] = [];
 | 
				
			||||||
            $border["right"] = [];
 | 
					            $borderDef["right"] = [];
 | 
				
			||||||
            $border["bottom"] = [];
 | 
					            $borderDef["bottom"] = [];
 | 
				
			||||||
          } elseif (preg_match('/^(left|top|right|bottom)$/', $part)) {
 | 
					          } elseif (preg_match('/^(left|top|right|bottom)$/', $part)) {
 | 
				
			||||||
            $border[$part] = [];
 | 
					            $borderDef[$part] = [];
 | 
				
			||||||
          } elseif (preg_match('/^(none|solid|dashed|dotted|double)$/', $part)) {
 | 
					          } elseif (preg_match('/^(none|solid|dashed|dotted|double)$/', $part)) {
 | 
				
			||||||
            $styleAll = $part;
 | 
					            $styleAll = $part;
 | 
				
			||||||
          } elseif (preg_match('/^(thin|medium|thick)$/', $part)) {
 | 
					          } elseif (preg_match('/^(thin|medium|thick)$/', $part)) {
 | 
				
			||||||
@ -108,22 +111,22 @@ class SpoutBuilder extends AbstractBuilder {
 | 
				
			|||||||
            $colorAll = $part;
 | 
					            $colorAll = $part;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        foreach ($border as &$part) {
 | 
					        foreach ($borderDef as &$part) {
 | 
				
			||||||
          if ($styleAll !== null) $part["style"] = $styleAll;
 | 
					          if ($styleAll !== null) $part["style"] = $styleAll;
 | 
				
			||||||
          if ($widthAll !== null) $part["width"] = $widthAll;
 | 
					          if ($widthAll !== null) $part["width"] = $widthAll;
 | 
				
			||||||
          if ($colorAll !== null) $part["color"] = $colorAll;
 | 
					          if ($colorAll !== null) $part["color"] = $colorAll;
 | 
				
			||||||
        }; unset($part);
 | 
					        }; unset($part);
 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      $top = $border["top"] ?? null;
 | 
					        $top = $borderDef["top"] ?? null;
 | 
				
			||||||
      $right = $border["right"] ?? null;
 | 
					        $right = $borderDef["right"] ?? null;
 | 
				
			||||||
      $bottom = $border["bottom"] ?? null;
 | 
					        $bottom = $borderDef["bottom"] ?? null;
 | 
				
			||||||
      $left = $border["left"] ?? null;
 | 
					        $left = $borderDef["left"] ?? null;
 | 
				
			||||||
      $border = null;
 | 
					      
 | 
				
			||||||
      self::add_border_part($border, "top", $top);
 | 
					        self::add_border_part($border, "top", $top);
 | 
				
			||||||
      self::add_border_part($border, "right", $right);
 | 
					        self::add_border_part($border, "right", $right);
 | 
				
			||||||
      self::add_border_part($border, "bottom", $bottom);
 | 
					        self::add_border_part($border, "bottom", $bottom);
 | 
				
			||||||
      self::add_border_part($border, "left", $left);
 | 
					        self::add_border_part($border, "left", $left);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      if ($border !== null) $style->setBorder($border);
 | 
					      if ($border !== null) $style->setBorder($border);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return $style;
 | 
					    return $style;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user