public static function media($image, $heading, $content, $htmlOptions = array())
{
$tag = TbArray::popValue('tag', $htmlOptions, 'div');
self::addCssClass('media', $htmlOptions);
$linkOptions = TbArray::popValue('linkOptions', $htmlOptions, array());
TbArray::defaultValue('pull', self::PULL_LEFT, $linkOptions);
$imageOptions = TbArray::popValue('imageOptions', $htmlOptions, array());
self::addCssClass('media-object', $imageOptions);
$contentOptions = TbArray::popValue('contentOptions', $htmlOptions, array());
self::addCssClass('media-body', $contentOptions);
$headingOptions = TbArray::popValue('headingOptions', $htmlOptions, array());
self::addCssClass('media-heading', $headingOptions);
$items = TbArray::popValue('items', $htmlOptions);
$output = self::openTag($tag, $htmlOptions);
$alt = TbArray::popValue('alt', $imageOptions, '');
$href = TbArray::popValue('href', $linkOptions, '#');
if (!empty($image)) {
$output .= self::link(parent::image($image, $alt, $imageOptions), $href, $linkOptions);
}
$output .= self::openTag('div', $contentOptions);
$output .= self::tag('h4', $headingOptions, $heading);
$output .= $content;
if (!empty($items)) {
$output .= self::medias($items);
}
$output .= '</div>';
$output .= self::closeTag($tag);
return $output;
}
public function testMedia() { $I = $this->codeGuy; $html = TbHtml::media('image.png', 'Heading text', 'Content text', array('class' => 'div', 'linkOptions' => array('class' => 'link'), 'imageOptions' => array('class' => 'image', 'alt' => 'Alternative text'), 'contentOptions' => array('class' => 'content'), 'headingOptions' => array('class' => 'heading'))); $div = $I->createNode($html, 'div.media'); $I->seeNodeCssClass($div, 'div'); $I->seeNodeChildren($div, array('a.pull-left', 'div.media-body')); $a = $div->filter('a.pull-left'); $I->seeNodeCssClass($a, 'link'); $I->seeNodeAttribute($a, 'href', '#'); $img = $a->filter('img.media-object'); $I->seeNodeCssClass($img, 'image'); $I->seeNodeAttributes($img, array('src' => 'image.png', 'alt' => 'Alternative text')); $content = $div->filter('div.media-body'); $I->seeNodeCssClass($content, 'content'); $I->seeNodeText($content, 'Content text'); $h4 = $content->filter('h4.media-heading'); $I->seeNodeCssClass($h4, 'heading'); $I->seeNodeText($h4, 'Heading text'); }