Passed
Push — master ( 1d5e3d...ccca4c )
by Christian
11:26
created

HomeUrlProvider::getHost()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 14
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
eloc 7
c 1
b 0
f 0
nc 3
nop 1
dl 0
loc 14
rs 10
1
<?php declare(strict_types=1);
2
3
namespace Shopware\Core\Content\Sitemap\Provider;
4
5
use Shopware\Core\Content\Sitemap\Struct\Url;
6
use Shopware\Core\Content\Sitemap\Struct\UrlResult;
7
use Shopware\Core\System\SalesChannel\Aggregate\SalesChannelDomain\SalesChannelDomainCollection;
8
use Shopware\Core\System\SalesChannel\SalesChannelContext;
9
10
class HomeUrlProvider implements UrlProviderInterface
11
{
12
    public const CHANGE_FREQ = 'daily';
13
    public const PRIORITY = 1.0;
14
15
    public function getName(): string
16
    {
17
        return 'home';
18
    }
19
20
    /**
21
     * {@inheritdoc}
22
     */
23
    public function getUrls(SalesChannelContext $salesChannelContext, int $limit, ?int $offset = null): UrlResult
24
    {
25
        if (empty($this->getHost($salesChannelContext))) {
26
            return new UrlResult([], null);
27
        }
28
29
        $homepageUrl = new Url();
30
        $homepageUrl->setLoc($this->getHost($salesChannelContext));
31
        $homepageUrl->setLastmod(new \DateTime());
32
        $homepageUrl->setChangefreq(self::CHANGE_FREQ);
33
        $homepageUrl->setPriority(self::PRIORITY);
34
        $homepageUrl->setResource($this->getName());
35
        $homepageUrl->setIdentifier('');
36
37
        return new UrlResult([$homepageUrl], null);
38
    }
39
40
    private function getHost(SalesChannelContext $salesChannelContext): string
41
    {
42
        $domains = $salesChannelContext->getSalesChannel()->getDomains();
43
        $languageId = $salesChannelContext->getSalesChannel()->getLanguageId();
44
45
        if ($domains instanceof SalesChannelDomainCollection) {
46
            foreach ($domains as $domain) {
47
                if ($domain->getLanguageId() === $languageId) {
48
                    return $domain->getUrl();
49
                }
50
            }
51
        }
52
53
        return '';
54
    }
55
}
56