Archived
1
0
Fork 0
This repository has been archived on 2026-04-03. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
httpcb/app/library/ViewHelper/UrlStyle.php

69 lines
1.4 KiB
PHP

<?php
namespace ViewHelper;
/**
* Class UrlStyle
*
* Tags diffrent parts in a url around <span> 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 '<span class="' . $class . '">' . $content . '</span>';
}
}