Updated FML to newest version
This commit is contained in:
		
							
								
								
									
										487
									
								
								libs/FML/Stylesheet/Style.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										487
									
								
								libs/FML/Stylesheet/Style.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,487 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace FML\Stylesheet; | ||||||
|  |  | ||||||
|  | use FML\Controls\Control; | ||||||
|  | use FML\Types\BackgroundColorable; | ||||||
|  | use FML\Types\BgColorable; | ||||||
|  | use FML\Types\Colorable; | ||||||
|  | use FML\Types\Renderable; | ||||||
|  | use FML\Types\Styleable; | ||||||
|  | use FML\Types\SubStyleable; | ||||||
|  | use FML\Types\TextFormatable; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Class representing a Style | ||||||
|  |  * (Note: This class doesn't support all style attributes yet. This will be improved in FML v2.) | ||||||
|  |  * | ||||||
|  |  * @author    steeffeen <mail@steeffeen.com> | ||||||
|  |  * @copyright FancyManiaLinks Copyright © 2017 Steffen Schröder | ||||||
|  |  * @license   http://www.gnu.org/licenses/ GNU General Public License, Version 3 | ||||||
|  |  */ | ||||||
|  | class Style implements BackgroundColorable, BgColorable, Colorable, Renderable, Styleable, SubStyleable, TextFormatable | ||||||
|  | { | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string[] $styleIds Style Ids | ||||||
|  |      */ | ||||||
|  |     protected $styleIds = array(); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string[] $styleClasses Style classes | ||||||
|  |      */ | ||||||
|  |     protected $styleClasses = array(); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string $backgroundColor Background color | ||||||
|  |      */ | ||||||
|  |     protected $backgroundColor = null; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string $focusBackgroundColor Focus background color | ||||||
|  |      */ | ||||||
|  |     protected $focusBackgroundColor = null; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string $color Color | ||||||
|  |      */ | ||||||
|  |     protected $color = null; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string $style Style | ||||||
|  |      */ | ||||||
|  |     protected $style = null; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string $subStyle SubStyle | ||||||
|  |      */ | ||||||
|  |     protected $subStyle = null; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var int $textSize Text size | ||||||
|  |      */ | ||||||
|  |     protected $textSize = null; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string $textFont Text font | ||||||
|  |      */ | ||||||
|  |     protected $textFont = null; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string $textColor Text color | ||||||
|  |      */ | ||||||
|  |     protected $textColor = null; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string $areaColor Area color | ||||||
|  |      */ | ||||||
|  |     protected $areaColor = null; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @var string $focusAreaColor Focus area color | ||||||
|  |      */ | ||||||
|  |     protected $focusAreaColor = null; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Create a new Style | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public static function create() | ||||||
|  |     { | ||||||
|  |         return new static(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get style Ids | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @return string[] | ||||||
|  |      */ | ||||||
|  |     public function getStyleIds() | ||||||
|  |     { | ||||||
|  |         return $this->styleIds; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Add style Id | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @param string $styleId Style Id | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public function addStyleId($styleId) | ||||||
|  |     { | ||||||
|  |         $styleId = (string)$styleId; | ||||||
|  |         if (!in_array($styleId, $this->styleIds)) { | ||||||
|  |             array_push($this->styleIds, $styleId); | ||||||
|  |         } | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Add style Ids | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @param string[] $styleIds Style Ids | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public function addStyleIds(array $styleIds) | ||||||
|  |     { | ||||||
|  |         foreach ($styleIds as $styleId) { | ||||||
|  |             $this->addStyleId($styleId); | ||||||
|  |         } | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set style Ids | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @param string[] $styleIds Style Ids | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public function setStyleIds(array $styleIds) | ||||||
|  |     { | ||||||
|  |         return $this->removeAllStyleIds() | ||||||
|  |                     ->addStyleIds($styleIds); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Remove all style Ids | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public function removeAllStyleIds() | ||||||
|  |     { | ||||||
|  |         $this->styleIds = array(); | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Apply style to the given control using its Id | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @param Control $control Control that should be styled | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public function applyToControl(Control $control) | ||||||
|  |     { | ||||||
|  |         return $this->addStyleId($control->checkId()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get style classes | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @return string[] | ||||||
|  |      */ | ||||||
|  |     public function getStyleClasses() | ||||||
|  |     { | ||||||
|  |         return $this->styleClasses; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Add style class | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @param string $styleClass Style class | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public function addStyleClass($styleClass) | ||||||
|  |     { | ||||||
|  |         $styleClass = (string)$styleClass; | ||||||
|  |         if (!in_array($styleClass, $this->styleClasses)) { | ||||||
|  |             array_push($this->styleClasses, $styleClass); | ||||||
|  |         } | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Add style classes | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @param string[] $styleClasses Style classes | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public function addStyleClasses(array $styleClasses) | ||||||
|  |     { | ||||||
|  |         foreach ($styleClasses as $styleClass) { | ||||||
|  |             $this->addStyleClass($styleClass); | ||||||
|  |         } | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set style classes | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @param string[] $styleIds Style classes | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public function setStyleClasses(array $styleClasses) | ||||||
|  |     { | ||||||
|  |         return $this->removeAllStyleClasses() | ||||||
|  |                     ->addStyleClasses($styleClasses); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Remove all style classes | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public function removeAllStyleClasses() | ||||||
|  |     { | ||||||
|  |         $this->styleClasses = array(); | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Apply style to the given control using its classes | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @param Control $control Control that should be styled | ||||||
|  |      * @return static | ||||||
|  |      */ | ||||||
|  |     public function applyToControlViaClasses(Control $control) | ||||||
|  |     { | ||||||
|  |         return $this->addStyleClasses($control->getClasses()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see BackgroundColorable::getBackgroundColor() | ||||||
|  |      */ | ||||||
|  |     public function getBackgroundColor() | ||||||
|  |     { | ||||||
|  |         return $this->backgroundColor; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see BackgroundColorable::setBackgroundColor() | ||||||
|  |      */ | ||||||
|  |     public function setBackgroundColor($backgroundColor) | ||||||
|  |     { | ||||||
|  |         $this->backgroundColor = (string)$backgroundColor; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @deprecated Use setBackgroundColor() | ||||||
|  |      * @see        Style::setBackgroundColor() | ||||||
|  |      */ | ||||||
|  |     public function setBgColor($bgdColor) | ||||||
|  |     { | ||||||
|  |         return $this->setBackgroundColor($bgdColor); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see BackgroundColorable::getFocusBackgroundColor() | ||||||
|  |      */ | ||||||
|  |     public function getFocusBackgroundColor() | ||||||
|  |     { | ||||||
|  |         return $this->focusBackgroundColor; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see BackgroundColorable::setFocusBackgroundColor() | ||||||
|  |      */ | ||||||
|  |     public function setFocusBackgroundColor($focusBackgroundColor) | ||||||
|  |     { | ||||||
|  |         $this->focusBackgroundColor = (string)$focusBackgroundColor; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see Colorable::getColor | ||||||
|  |      */ | ||||||
|  |     public function getColor() | ||||||
|  |     { | ||||||
|  |         return $this->color; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see Colorable::setColor | ||||||
|  |      */ | ||||||
|  |     public function setColor($color) | ||||||
|  |     { | ||||||
|  |         $this->color = (string)$color; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see Styleable::getStyle() | ||||||
|  |      */ | ||||||
|  |     public function getStyle() | ||||||
|  |     { | ||||||
|  |         return $this->style; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see Styleable::setStyle() | ||||||
|  |      */ | ||||||
|  |     public function setStyle($style) | ||||||
|  |     { | ||||||
|  |         $this->style = (string)$style; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see Styleable::getSubStyle() | ||||||
|  |      */ | ||||||
|  |     public function getSubStyle() | ||||||
|  |     { | ||||||
|  |         return $this->subStyle; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see SubStyleable::setSubStyle() | ||||||
|  |      */ | ||||||
|  |     public function setSubStyle($subStyle) | ||||||
|  |     { | ||||||
|  |         $this->subStyle = (string)$subStyle; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see SubStyleable::setStyles() | ||||||
|  |      */ | ||||||
|  |     public function setStyles($style, $subStyle) | ||||||
|  |     { | ||||||
|  |         return $this->setStyle($style) | ||||||
|  |                     ->setSubStyle($subStyle); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see TextFormatable::getTextSize() | ||||||
|  |      */ | ||||||
|  |     public function getTextSize() | ||||||
|  |     { | ||||||
|  |         return $this->textSize; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see TextFormatable::setTextSize() | ||||||
|  |      */ | ||||||
|  |     public function setTextSize($textSize) | ||||||
|  |     { | ||||||
|  |         $this->textSize = (int)$textSize; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see TextFormatable::getTextFont() | ||||||
|  |      */ | ||||||
|  |     public function getTextFont() | ||||||
|  |     { | ||||||
|  |         return $this->textFont; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see TextFormatable::setTextFont() | ||||||
|  |      */ | ||||||
|  |     public function setTextFont($textFont) | ||||||
|  |     { | ||||||
|  |         $this->textFont = (string)$textFont; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see TextFormatable::getTextColor() | ||||||
|  |      */ | ||||||
|  |     public function getTextColor() | ||||||
|  |     { | ||||||
|  |         return $this->textColor; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see TextFormatable::setTextColor() | ||||||
|  |      */ | ||||||
|  |     public function setTextColor($textColor) | ||||||
|  |     { | ||||||
|  |         $this->textColor = (string)$textColor; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see TextFormatable::getAreaColor() | ||||||
|  |      */ | ||||||
|  |     public function getAreaColor() | ||||||
|  |     { | ||||||
|  |         return $this->areaColor; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see TextFormatable::setAreaColor() | ||||||
|  |      */ | ||||||
|  |     public function setAreaColor($areaColor) | ||||||
|  |     { | ||||||
|  |         $this->areaColor = (string)$areaColor; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see TextFormatable::getAreaFocusColor() | ||||||
|  |      */ | ||||||
|  |     public function getAreaFocusColor() | ||||||
|  |     { | ||||||
|  |         return $this->focusAreaColor; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see TextFormatable::setAreaFocusColor() | ||||||
|  |      */ | ||||||
|  |     public function setAreaFocusColor($areaFocusColor) | ||||||
|  |     { | ||||||
|  |         $this->focusAreaColor = (string)$areaFocusColor; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @see Renderable::render() | ||||||
|  |      */ | ||||||
|  |     public function render(\DOMDocument $domDocument) | ||||||
|  |     { | ||||||
|  |         $domElement = $domDocument->createElement("style"); | ||||||
|  |         if (!empty($this->styleIds)) { | ||||||
|  |             $domElement->setAttribute("id", implode(" ", $this->styleIds)); | ||||||
|  |         } | ||||||
|  |         if (!empty($this->styleClasses)) { | ||||||
|  |             $domElement->setAttribute("class", implode(" ", $this->styleClasses)); | ||||||
|  |         } | ||||||
|  |         if ($this->backgroundColor) { | ||||||
|  |             $domElement->setAttribute("bgcolor", $this->backgroundColor); | ||||||
|  |         } | ||||||
|  |         if ($this->focusBackgroundColor) { | ||||||
|  |             $domElement->setAttribute("bgcolorfocus", $this->focusBackgroundColor); | ||||||
|  |         } | ||||||
|  |         if ($this->color) { | ||||||
|  |             $domElement->setAttribute("color", $this->color); | ||||||
|  |         } | ||||||
|  |         if ($this->style) { | ||||||
|  |             $domElement->setAttribute("style", $this->style); | ||||||
|  |         } | ||||||
|  |         if ($this->subStyle) { | ||||||
|  |             $domElement->setAttribute("substyle", $this->subStyle); | ||||||
|  |         } | ||||||
|  |         if ($this->textSize) { | ||||||
|  |             $domElement->setAttribute("textsize", $this->textSize); | ||||||
|  |         } | ||||||
|  |         if ($this->textFont) { | ||||||
|  |             $domElement->setAttribute("textfont", $this->textFont); | ||||||
|  |         } | ||||||
|  |         if ($this->textColor) { | ||||||
|  |             $domElement->setAttribute("textcolor", $this->textColor); | ||||||
|  |         } | ||||||
|  |         if ($this->areaColor) { | ||||||
|  |             $domElement->setAttribute("focusareacolor1", $this->areaColor); | ||||||
|  |         } | ||||||
|  |         if ($this->focusAreaColor) { | ||||||
|  |             $domElement->setAttribute("focusareacolor2", $this->focusAreaColor); | ||||||
|  |         } | ||||||
|  |         return $domElement; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
							
								
								
									
										28
									
								
								libs/FML/Types/BgColorable.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								libs/FML/Types/BgColorable.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace FML\Types; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Interface for Elements with background color attribute | ||||||
|  |  * | ||||||
|  |  * @author     steeffeen | ||||||
|  |  * @copyright  FancyManiaLinks Copyright © 2017 Steffen Schröder | ||||||
|  |  * @license    http://www.gnu.org/licenses/ GNU General Public License, Version 3 | ||||||
|  |  * @deprecated Use BackgroundColorable | ||||||
|  |  * @see        BackgroundColorable | ||||||
|  |  */ | ||||||
|  | interface BgColorable | ||||||
|  | { | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set the background color | ||||||
|  |      * | ||||||
|  |      * @api | ||||||
|  |      * @param string $bgColor Background color | ||||||
|  |      * @return static | ||||||
|  |      * @deprecated Use BackgroundColorable::setBackgroundColor() | ||||||
|  |      * @see        BackgroundColorable::setBackgroundColor() | ||||||
|  |      */ | ||||||
|  |     public function setBgColor($bgColor); | ||||||
|  |  | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user