From 8635eb2a1d007b1266a4a54f517f51b529eab7aa Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Mar 2018 12:12:16 +0100 Subject: [PATCH] adding app/library/ViewHelper/UrlStyle.php --- app/library/ViewHelper/UrlStyle.php | 69 +++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 app/library/ViewHelper/UrlStyle.php diff --git a/app/library/ViewHelper/UrlStyle.php b/app/library/ViewHelper/UrlStyle.php new file mode 100644 index 0000000..de358d4 --- /dev/null +++ b/app/library/ViewHelper/UrlStyle.php @@ -0,0 +1,69 @@ + tags with class names. + * + * classes/parts are: + * scheme + * host + * port + * path + * query + * fragment + * + * @package ViewHelper + */ +class UrlStyle extends AbstractHelper +{ + /** + * Prefix (or namespace) for css classes. + * + * @var string + */ + protected $_classPrefix = 'url-'; + + public function urlStyle($url) + { + $parts = parse_url($url); + + if ($parts === null) { + return $url; + } + + $xhtml = ''; + + if (isset($parts['scheme'])) { + $xhtml .= $this->_htmlElement('scheme', $parts['scheme'] . '://'); + } + + if (isset($parts['host'])) { + $xhtml .= $this->_htmlElement('host', $parts['host']); + } + + if (isset($parts['port'])) { + $xhtml .= $this->_htmlElement('port', ':' . $parts['port']); + } + + $xhtml .= $this->_htmlElement('path', $parts['path']); + + if (isset($parts['query'])) { + $xhtml .= $this->_htmlElement('query', '?' . $parts['query']); + } + + if (isset($parts['fragment'])) { + $xhtml .= $this->_htmlElement('fragment', '#' . $parts['fragment']); + } + + return $xhtml; + } + + protected function _htmlElement($class, $content) + { + $class = $this->_classPrefix . $class; + return '' . $content . ''; + } +}