Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
11 / 11 |
TwbBundleBadge | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
8 | |
100.00% |
11 / 11 |
__invoke($sBadgeMessage = null, array $aBadgeAttributes = null) | |
100.00% |
1 / 1 |
2 | |
100.00% |
2 / 2 |
|||
render($sBadgeMessage,array $aBadgeAttributes = null) | |
100.00% |
1 / 1 |
6 | |
100.00% |
9 / 9 |
<?php | |
namespace TwbBundle\View\Helper; | |
class TwbBundleBadge extends \Zend\Form\View\Helper\AbstractHelper{ | |
/** | |
* @var string | |
*/ | |
private static $badgeFormat = '<span %s>%s</span>'; | |
/** | |
* Invoke helper as functor, proxies to {@link render()}. | |
* @param string $sBadgeMessage | |
* @param array $aBadgeAttributes : [optionnal] | |
* @return string|\TwbBundle\View\Helper\TwbBundleBadge | |
*/ | |
public function __invoke($sBadgeMessage = null, array $aBadgeAttributes = null){ | |
if(!$sBadgeMessage)return $this; | |
return $this->render($sBadgeMessage,$aBadgeAttributes); | |
} | |
/** | |
* Retrieve badge markup | |
* @param string $sBadgeMessage | |
* @param array $aBadgeAttributes : [optionnal] | |
* @throws \InvalidArgumentException | |
* @return string | |
*/ | |
public function render($sBadgeMessage,array $aBadgeAttributes = null){ | |
if(!is_scalar($sBadgeMessage))throw new \InvalidArgumentException('Badge message expects a scalar value, "'.gettype($sBadgeMessage).'" given'); | |
if(empty($aBadgeAttributes))$aBadgeAttributes = array('class' => 'badge'); | |
else{ | |
if(empty($aBadgeAttributes['class']))$aBadgeAttributes['class'] = 'badge'; | |
elseif(!preg_match('/(\s|^)badge(\s|$)/',$aBadgeAttributes['class']))$aBadgeAttributes['class'] .= ' badge'; | |
} | |
if(null !== ($oTranslator = $this->getTranslator()))$sBadgeMessage = $oTranslator->translate($sBadgeMessage, $this->getTranslatorTextDomain()); | |
return sprintf( | |
self::$badgeFormat, | |
$this->createAttributesString($aBadgeAttributes), | |
$sBadgeMessage | |
); | |
} | |
} |