Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
Link
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 5
132
0.00% covered (danger)
0.00%
0 / 1
 loadData
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 parseData
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
12
 fetchList
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 fetchPath
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
12
 readSearchResultList
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3/**
4 * @package 115Mandant
5 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
6 **/
7
8namespace BO\Zmsdldb\File;
9
10use BO\Zmsdldb\Entity\Link as Entity;
11use BO\Zmsdldb\Collection\Links as Collection;
12
13/**
14 * Common methods shared by access classes
15 */
16class Link extends Base
17{
18    /**
19     * @return void
20     */
21    #[\Override]
22    public function loadData()
23    {
24        $data = $this->access()
25            ->fromTopic()
26            ->fetchList();
27        $this->setItemList($this->parseData($data));
28    }
29
30    /**
31     * @return Collection
32     */
33    #[\Override]
34    protected function parseData($data)
35    {
36        $itemList = new Collection();
37        foreach ($data as $topic) {
38            foreach ($topic['links'] as $item) {
39                $itemList[$item['link']] = new Entity($item);
40            }
41        }
42        return $itemList;
43    }
44
45    /**
46     *
47     * @return Collection
48     */
49    public function fetchList()
50    {
51        return $this->getItemList();
52    }
53
54    /**
55     *
56     * @return Entity
57     * @psalm-api
58     */
59    public function fetchPath($topic_path)
60    {
61        $topiclist = $this->fetchList();
62        foreach ($topiclist as $topic) {
63            if ($topic['path'] == $topic_path) {
64                return $topic;
65            }
66        }
67        return false;
68    }
69
70    /**
71     * @psalm-api
72     *
73     * @return Collection
74     */
75    public function readSearchResultList($query)
76    {
77        $list = $this->getItemList();
78        $result = new Collection();
79        foreach ($list as $link) {
80            if (false !== strpos($link['name'], $query)) {
81                $result[] = $link;
82            }
83        }
84        return $result;
85    }
86}