Completed
Push — rework ( 30a2d6...381fae )
by Markus
02:34
created

BrowserPackageListHandler::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 4
ccs 0
cts 3
cp 0
crap 2
rs 10
c 1
b 0
f 0
1
<?php
2
3
namespace SSpkS\Handler;
4
5
use \SSpkS\Output\HtmlOutput;
6
use \SSpkS\Output\UrlFixer;
7
use \SSpkS\Package\PackageFilter;
8
use \SSpkS\Package\PackageFinder;
9
10
class BrowserPackageListHandler extends AbstractHandler
11
{
12
    public function handle()
13
    {
14
        // Architecture is set --> show packages for that arch
15
        $arch     = trim($_GET['arch']);
16
        $channel  = trim($_GET['channel']);
17
        if ($channel != 'beta') {
18
            $channel = 'stable';
19
        }
20
21
        $output = new HtmlOutput($this->config);
22
        $output->setVariable('arch', $arch);
23
        $output->setVariable('channel', ($channel == 'beta'));
24
25
        $pkgs = new PackageFinder($this->config->paths['packages']);
26
        $pkgf = new PackageFilter($pkgs->getAllPackages());
27
        $pkgf->setArchitectureFilter($arch);
28
        $pkgf->setChannelFilter($channel);
29
        $pkgf->setFirmwareVersionFilter(false);
30
        $pkgf->setOldVersionFilter(true);
31
        $filteredPkgList = $pkgf->getFilteredPackageList();
32
33
        $uf = new UrlFixer($this->config->baseUrl);
34
        $uf->fixPackageList($filteredPkgList);
35
36
        $packages = array();
37
        foreach ($filteredPkgList as $pkg) {
38
            $packages[] = $pkg->getMetadata();
39
        }
40
41
        $output->setVariable('packagelist', array_values($packages));
42
        $output->setTemplate('html_packagelist');
43
        $output->output();
44
    }
45
}
46