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 . ''; + } +}