Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
4 / 4 |
CRAP | |
100.00% |
22 / 22 |
NoticeView | |
100.00% |
1 / 1 |
|
100.00% |
4 / 4 |
6 | |
100.00% |
22 / 22 |
render | |
100.00% |
1 / 1 |
2 | |
100.00% |
13 / 13 |
|||
prepareCssClasses | |
100.00% |
1 / 1 |
2 | |
100.00% |
6 / 6 |
|||
getCssClasses | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
setCssClasses | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
<?php | |
declare(strict_types=1); | |
namespace Korobochkin\WPKit\Notices; | |
/** | |
* Class NoticeView | |
*/ | |
class NoticeView implements NoticeViewInterface | |
{ | |
/** | |
* @var NoticeInterface | |
*/ | |
protected $notice; | |
/** | |
* @var array | |
*/ | |
protected $cssClasses = array('notice', 'wp-kit-notice'); | |
/** | |
* @inheritdoc | |
*/ | |
public function render(NoticeInterface $notice) | |
{ | |
$this->notice = $notice; | |
$this->prepareCssClasses(); | |
if ($notice->getTitle()) { | |
$title = '<p class="notice-title">' . $notice->getTitle() . '</p>'; | |
} else { | |
$title = ''; | |
} | |
$id = 'wp-kit-notice-' . $notice->getName(); | |
$cssClasses = implode(' ', $this->cssClasses); | |
printf( | |
'<div id="%1$s" class="%2$s">%3$s</div>', | |
esc_attr($id), | |
esc_attr($cssClasses), | |
$title . $notice->getContent() | |
); | |
} | |
/** | |
* @return $this For chain calls. | |
*/ | |
protected function prepareCssClasses() | |
{ | |
$classes = $this->cssClasses; | |
if ($this->notice->isDismissible()) { | |
$classes[] = 'is-dismissible'; | |
} | |
$classes[] = 'wp-kit-notice-' . $this->notice->getName(); | |
$this->cssClasses = $classes; | |
return $this; | |
} | |
/** | |
* Returns list of CSS classes. | |
* | |
* @return array List of CSS classes. | |
*/ | |
public function getCssClasses() | |
{ | |
return $this->cssClasses; | |
} | |
/** | |
* Sets list of CSS classes. | |
* | |
* @param array $cssClasses List of CSS classes. | |
* | |
* @return $this For chain calls. | |
*/ | |
public function setCssClasses(array $cssClasses) | |
{ | |
$this->cssClasses = $cssClasses; | |
return $this; | |
} | |
} |