From a1ec78bf0dc93d0e05e5f066f1949dc3baecea06 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 14:44:51 +0200 Subject: Adding upstream version 0.20.0. Signed-off-by: Daniel Baumann --- vendor/gipfl/icingaweb2/src/Img.php | 83 +++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 vendor/gipfl/icingaweb2/src/Img.php (limited to 'vendor/gipfl/icingaweb2/src/Img.php') diff --git a/vendor/gipfl/icingaweb2/src/Img.php b/vendor/gipfl/icingaweb2/src/Img.php new file mode 100644 index 0000000..3c68adb --- /dev/null +++ b/vendor/gipfl/icingaweb2/src/Img.php @@ -0,0 +1,83 @@ + ''); + + protected function __construct() + { + } + + /** + * @param Url|string $url + * @param array $urlParams + * @param array $attributes + * + * @return static + */ + public static function create($url, $urlParams = null, array $attributes = null) + { + /** @var Img $img */ + $img = new static(); + $img->setAttributes($attributes); + $img->getAttributes()->registerAttributeCallback('src', array($img, 'getSrcAttribute')); + $img->setUrl($url, $urlParams); + return $img; + } + + public function setUrl($url, $urlParams) + { + if ($url instanceof WebUrl) { // Hint: Url is also a WebUrl + if ($urlParams !== null) { + $url->addParams($urlParams); + } + + $this->url = $url; + } else { + if ($urlParams === null) { + if (is_string($url) && substr($url, 0, 5) === 'data:') { + $this->url = $url; + return; + } else { + $this->url = Url::fromPath($url); + } + } else { + $this->url = Url::fromPath($url, $urlParams); + } + } + + $this->url->getParams(); + } + + /** + * @return Attribute + */ + public function getSrcAttribute() + { + if (is_string($this->url)) { + return new Attribute('src', $this->url); + } else { + return new Attribute('src', $this->getUrl()->getAbsoluteUrl('&')); + } + } + + /** + * @return Url + */ + public function getUrl() + { + // TODO: What if null? #? + return $this->url; + } +} -- cgit v1.2.3