TbHtml::medias PHP Method

medias() public static method

Generates multiple media objects.
public static medias ( array $items, string $tag = 'div' ) : string
$items array item configurations.
$tag string the item tag name.
return string generated objects.
    public static function medias(array $items, $tag = 'div')
    {
        if (!empty($items)) {
            $output = '';
            foreach ($items as $itemOptions) {
                if (isset($itemOptions['visible']) && $itemOptions['visible'] === false) {
                    continue;
                }
                // todo: consider removing the support for htmlOptions.
                $options = TbArray::popValue('htmlOptions', $itemOptions, array());
                if (!empty($options)) {
                    $itemOptions = TbArray::merge($options, $itemOptions);
                }
                $image = TbArray::popValue('image', $itemOptions);
                $heading = TbArray::popValue('heading', $itemOptions, '');
                $content = TbArray::popValue('content', $itemOptions, '');
                TbArray::defaultValue('tag', $tag, $itemOptions);
                $output .= self::media($image, $heading, $content, $itemOptions);
            }
            return $output;
        }
        return '';
    }

Usage Example

Example #1
0
 public function testMedias()
 {
     $I = $this->codeGuy;
     $items = array(array('image' => 'image.png', 'heading' => 'Media heading', 'content' => 'Content text', 'items' => array(array('image' => '#', 'heading' => 'Media heading', 'content' => 'Content text'), array('image' => '#', 'heading' => 'Media heading', 'content' => 'Content text', 'visible' => false))), array('heading' => 'Media heading', 'content' => 'Content text'));
     $html = TbHtml::medias($items);
     $body = $I->createNode($html, 'body');
     $medias = $body->filter('div.media');
     $first = $medias->first();
     $I->seeNodeChildren($first, array('a.pull-left', 'div.media-body'));
     $img = $first->filter('img.media-object');
     $I->seeNodeAttribute($img, 'src', 'image.png');
     $mediaBody = $first->filter('div.media-body');
     $I->seeNodeChildren($mediaBody, array('h4.media-heading', 'div.media'));
     $I->seeNodeText($mediaBody, 'Content text');
     $h4 = $body->filter('h4.media-heading');
     $I->seeNodeText($h4, 'Media heading');
     $I->seeNodeNumChildren($mediaBody, 1, 'div.media');
     $last = $medias->last();
     $I->seeNodeChildren($last, array('div.media-body'));
     $html = TbHtml::medias(array());
     $this->assertEquals('', $html);
 }
TbHtml