• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Cecilapp / Cecil / 7127397479

07 Dec 2023 11:13AM UTC coverage: 80.668% (-1.9%) from 82.534%
7127397479

Pull #1676

github

web-flow
Merge 7de1aa9ff into 814daa587
Pull Request #1676: 8.x dev

174 of 212 new or added lines in 28 files covered. (82.08%)

102 existing lines in 10 files now uncovered.

2779 of 3445 relevant lines covered (80.67%)

0.81 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

92.0
/src/Generator/Alias.php
1
<?php
2

3
declare(strict_types=1);
4

5
/*
6
 * This file is part of Cecil.
7
 *
8
 * Copyright (c) Arnaud Ligny <arnaud@ligny.fr>
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13

14
namespace Cecil\Generator;
15

16
use Cecil\Collection\Page\Page;
17

18
/**
19
 * Class Generator\Alias.
20
 */
21
class Alias extends AbstractGenerator implements GeneratorInterface
22
{
23
    /**
24
     * {@inheritdoc}
25
     */
26
    public function generate(): void
27
    {
28
        /** @var Page $page */
29
        foreach ($this->builder->getPages() as $page) {
1✔
30
            $aliases = $this->getPageAliases($page);
1✔
31

32
            if (!empty($aliases)) {
1✔
33
                foreach ($aliases as $alias) {
1✔
34
                    /** @var Page $aliasPage */
35
                    $pageId = $path = Page::slugify($alias);
1✔
36
                    // i18n
37
                    if ($page->getVariable('language') != $this->config->getLanguageDefault()) {
1✔
UNCOV
38
                        $pageId = sprintf('%s/%s', $page->getVariable('language'), $pageId);
×
39
                    }
40
                    $aliasPage = (new Page($pageId))
1✔
41
                        ->setPath($path)
1✔
42
                        ->setVariables([
1✔
43
                            'layout'   => 'redirect',
1✔
44
                            'redirect' => $page,
1✔
45
                            'title'    => $alias,
1✔
46
                            'date'     => $page->getVariable('date'),
1✔
47
                            'language' => $page->getVariable('language'),
1✔
48
                        ]);
1✔
49
                    $this->generatedPages->add($aliasPage);
1✔
50
                }
51
            }
52
        }
53
    }
54

55
    /**
56
     * Returns aliases array.
57
     */
58
    protected function getPageAliases(Page $page): array
59
    {
60
        $aliases = [];
1✔
61

62
        if ($page->hasVariable('alias')) {
1✔
63
            $aliases = $page->getVariable('alias');
1✔
64
        }
65
        if ($page->hasVariable('aliases')) { // backward compatibility
1✔
66
            $aliases = $page->getVariable('aliases');
1✔
67
        }
68
        if (!\is_array($aliases)) {
1✔
69
            $aliases = [$aliases];
×
70
        }
71

72
        return $aliases;
1✔
73
    }
74
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc