Completed
Pull Request — master (#241)
by
unknown
04:00 queued 01:53
created

functions.php ➔ getShareProviders()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 10
nc 1
nop 3
dl 0
loc 12
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Flynt\Components\HeroPostHeader;
4
use Timber\Timber;
5
6
use Flynt\Features\Components\Component;
7
use Flynt\Utils\Asset;
8
9
add_action('wp_enqueue_scripts', function () {
10
    Component::enqueueAssets('HeroPostHeader', []);
11
});
12
13
add_filter('Flynt/addComponentData?name=HeroPostHeader', function ($data) {
14
    $data['post'] = Timber::get_post();
15
    $data['providers'] = getShareProviders(
16
        $data['post']->post_title,
17
        $data['post']->link,
18
        $data['post']->post_excerpt
19
    );
20
    return $data;
21
});
22
23
function getShareProviders($postTitle, $postUrl, $postExcerpt)
24
{
25
    $providers = json_decode(file_get_contents(Asset::requirePath('Components/HeroPostHeader/Partials/Share/providers.json')), true);
26
    $providers = array_map(function($provider) use ($postTitle, $postUrl, $postExcerpt) {
27
        $finalUrl = str_replace('<%= url %>', $postUrl, $provider['url']);
28
        $finalUrl = str_replace('<%= title %>', $postTitle, $finalUrl);
29
        $finalUrl = str_replace('<%= summary %>', $postExcerpt, $finalUrl);
30
        $provider['finalUrl'] = $finalUrl;
31
        return $provider;
32
    }, $providers);
33
    return $providers;
34
}
35