Completed
Push — master ( 650d4b...e332e4 )
by Doğa
03:54
created

Oembed   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 2
c 2
b 0
f 1
lcom 0
cbo 0
dl 0
loc 30
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A setSrcAsDataAttribute() 0 16 2
1
<?php
2
3
namespace Flynt\Utils;
4
5
use DOMDocument;
6
7
class Oembed
8
{
9
    /**
10
     * Sets an oembed source as data attribute.
11
     * Possibility to append query variables to the URL by using additional get parameters.
12
     *
13
     * @since 0.2.0
14
     *
15
     * @param $iframeTagHtml string The oembed iframe HTML tag.
16
     * @param $additionalGetParams array Associative array of key/values of additional query variables to append to the url.
17
     *
18
     * @return string The modified oembed iframe HTML tag.
19
     */
20
    public static function setSrcAsDataAttribute($iframeTagHtml, $additionalGetParams)
21
    {
22
        $output = '';
23
        $Dom = new DOMDocument();
24
        $Dom->loadHTML($iframeTagHtml);
25
        $domNodes = $Dom->getElementsByTagName('iframe');
26
        foreach ($domNodes as $node) {
27
            $src = $node->getAttribute('src');
28
            // add additional get parameters to existing oembed url
29
            $src = add_query_arg($additionalGetParams, $src);
30
            $node->removeAttribute('src');
31
            $node->setAttribute('data-src', $src);
32
            $output .= $Dom->saveHTML($node);
33
        }
34
        return $output;
35
    }
36
}
37