aboutsummaryrefslogtreecommitdiff
path: root/lib/classes/forms/SelectedRangesInput.php
blob: 8e17fe8be2ee903b00b13e1e0b49217e9cb7cbc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php

namespace Studip\Forms;

class SelectedRangesInput extends Input
{
    protected $selectable_items = [];

    protected $selected_items = [];

    protected $search_type = null;


    public function render()
    {
        $template = $GLOBALS['template_factory']->open('forms/selected_ranges_input');
        $template->name = $this->name;
        $template->selectable_items = $this->selectable_items;
        $template->selected_items = [];
        foreach ($this->selected_items as $item) {
            $item_data = [];
            if ($item instanceof \Range) {
                $item_data['name'] = $item->getFullName();
                $item_data['id'] = $item->getRangeId();
            } elseif ($item instanceof \StudipItem) {
                $item_data['name'] = $item->getItemName();
                $item_data['id'] = $item->id;
            } elseif (
                is_array($item)
                && array_key_exists('name', $item)
                && array_key_exists('id', $item)
            ) {
                $item_data['name'] = $item['name'];
                $item_data['id'] = $item['id'];
            }
            if ($item_data) {
                $template->selected_items[] = $item_data;
            }
        }
        $template->searchtype = $this->search_type;
        return $template->render();
    }

    public function getRequestValue()
    {
        return \Request::getArray($this->name);
    }

    public function setSelectedItems(array $items)
    {
        $this->selected_items = $items;
    }

    public function setSearchType(\SearchType $search_type)
    {
        $this->search_type = $search_type;
    }
}