Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
23 / 23 |
TwbBundleGlyphicon | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
9 | |
100.00% |
23 / 23 |
__invoke($sGlyphicon = null, array $aGlyphiconAttributes = null) | |
100.00% |
1 / 1 |
2 | |
100.00% |
3 / 3 |
|||
render($sGlyphicon,array $aGlyphiconAttributes = null) | |
100.00% |
1 / 1 |
7 | |
100.00% |
20 / 20 |
<?php | |
namespace TwbBundle\View\Helper; | |
class TwbBundleGlyphicon extends \Zend\Form\View\Helper\AbstractHelper{ | |
/** | |
* @var string | |
*/ | |
private static $glyphiconFormat = '<span %s></span>'; | |
/** | |
* Invoke helper as functor, proxies to {@link render()}. | |
* @param string $sGlyphicon | |
* @param array $aGlyphiconAttributes : [optionnal] | |
* @return string|\TwbBundle\View\Helper\TwbBundleGlyphicon | |
*/ | |
public function __invoke($sGlyphicon = null, array $aGlyphiconAttributes = null){ | |
if (!$sGlyphicon) { | |
return $this; | |
} | |
return $this->render($sGlyphicon,$aGlyphiconAttributes); | |
} | |
/** | |
* Retrieve glyphicon markup | |
* @param string $sGlyphicon | |
* @param array $aGlyphiconAttributes : [optionnal] | |
* @throws \InvalidArgumentException | |
* @return string | |
*/ | |
public function render($sGlyphicon,array $aGlyphiconAttributes = null){ | |
if (!is_scalar($sGlyphicon)) { | |
throw new \InvalidArgumentException('Glyphicon expects a scalar value, "' . gettype($sGlyphicon) . '" given'); | |
} | |
if (empty($aGlyphiconAttributes)) { | |
$aGlyphiconAttributes = array('class' => 'glyphicon'); | |
} else { | |
if (empty($aGlyphiconAttributes['class'])) { | |
$aGlyphiconAttributes['class'] = 'glyphicon'; | |
} elseif (!preg_match('/(\s|^)glyphicon(\s|$)/', $aGlyphiconAttributes['class'])) { | |
$aGlyphiconAttributes['class'] .= ' glyphicon'; | |
} | |
} | |
if(strpos('glyphicon-', $sGlyphicon) !== 0) { | |
$sGlyphicon = 'glyphicon-'.$sGlyphicon; | |
} | |
if (!preg_match('/(\s|^)'. preg_quote($sGlyphicon, '/').'(\s|$)/', $aGlyphiconAttributes['class'])) { | |
$aGlyphiconAttributes['class'] .= ' '.$sGlyphicon; | |
} | |
return sprintf( | |
self::$glyphiconFormat, | |
$this->createAttributesString($aGlyphiconAttributes) | |
); | |
} | |
} |