Projekt

Obecné

Profil

Stáhnout (3.38 KB) Statistiky
| Větev: | Tag: | Revize:
1 3416b114 Jan Šedivý
<?php
2
3
namespace App\FrontModule\Presenters;
4
5
6
7
use App\FrontModule\Components\ITransliterationSearchFormFactory;
8 8ef808c0 Jan Šedivý
use App\Model\Repository\LineRepository;
9
use App\Model\Repository\LitReferenceRepository;
10
use App\Model\Repository\RevHistoryRepository;
11 3416b114 Jan Šedivý
use App\Model\Repository\TransliterationRepository;
12
use App\Model\TransliterationSearchModel;
13
use Nette\Application\UI\Presenter;
14
15
class TransliterationPresenter extends Presenter
16
{
17
    /** @var ITransliterationSearchFormFactory */
18
    private $transliterationSearchFormFactory;
19
20
    /** @var TransliterationRepository */
21
    private $transliterationRepository;
22
23
    /** @var TransliterationSearchModel */
24
    private $transliterationSearchModel;
25
26 8ef808c0 Jan Šedivý
    /** @var LitReferenceRepository */
27
    private $litReferenceRepository;
28
29
    /** @var RevHistoryRepository */
30
    private $revHistoryRepository;
31
32
    /** @var LineRepository */
33
    private $lineRepository;
34
35 3416b114 Jan Šedivý
    public function __construct(
36
        ITransliterationSearchFormFactory $transliterationSearchFormFactory,
37
        TransliterationRepository $transliterationRepository,
38 8ef808c0 Jan Šedivý
        TransliterationSearchModel $transliterationSearchModel,
39
        LitReferenceRepository $litReferenceRepository,
40
        RevHistoryRepository $revHistoryRepository,
41
        LineRepository $lineRepository
42 3416b114 Jan Šedivý
    )
43
    {
44
        parent::__construct();
45
46
        $this->transliterationSearchFormFactory = $transliterationSearchFormFactory;
47
        $this->transliterationRepository = $transliterationRepository;
48
        $this->transliterationSearchModel = $transliterationSearchModel;
49 8ef808c0 Jan Šedivý
        $this->litReferenceRepository = $litReferenceRepository;
50
        $this->revHistoryRepository = $revHistoryRepository;
51
        $this->lineRepository = $lineRepository;
52 3416b114 Jan Šedivý
    }
53
54
55
    public function actionSearch()
56
    {
57
58
    }
59
60
    public function actionSearchResult()
61
    {
62
        $searchTerms = $this->transliterationSearchModel->getSearchTerms();
63
64
        if (!$searchTerms)
65
        {
66
            $this->redirect('Transliteration:search');
67
        }
68
69
        if(!$searchTerms['word1'])
70
        {
71
            $this->redirect('Transliteration:search');
72
        }
73
74
        $resultRows = $this->transliterationRepository->transliterationsFulltextSearch($searchTerms);
75
76
        $this->template->resultRows = $resultRows;
77
    }
78
79 8ef808c0 Jan Šedivý
    public function actionView($id)
80
    {
81
        $transliteration = $this->transliterationRepository->getTransliterationDetail($id);
82
        if(!$transliteration)
83
        {
84
            $this->presenter->flashMessage('Transliteration not found');
85
            $this->redirect('Transliteration:search');
86
        }
87
        $lines = $this->lineRepository->getAllLinesForTransliteration($id);
88
        $lineArray = [];
89
        foreach ($lines as $line)
90
        {
91
            $lineArray[$line->object_type][$line->surface_type][] = array('transliteration' => $line->transliteration, 'line_number' => $line->line_number);
92
        }
93
94
        $this->template->transliteration = $transliteration;
95
        $this->template->litReferences = $this->litReferenceRepository->findBy([LitReferenceRepository::COLUMN_TRANSLITERATION_ID => $id]);
96
        $this->template->revisionHistory = $this->revHistoryRepository->findBy([RevHistoryRepository::COLUMN_TRANSLITERATION_ID => $id]);
97
        $this->template->lineArray = $lineArray;
98
    }
99
100 3416b114 Jan Šedivý
    public function createComponentTransliterationSearchForm()
101
    {
102
        return $this->transliterationSearchFormFactory->create();
103
    }
104
}