Projekt

Obecné

Profil

Stáhnout (3.38 KB) Statistiky
| Větev: | Tag: | Revize:
1
<?php
2

    
3
namespace App\FrontModule\Presenters;
4

    
5

    
6

    
7
use App\FrontModule\Components\ITransliterationSearchFormFactory;
8
use App\Model\Repository\LineRepository;
9
use App\Model\Repository\LitReferenceRepository;
10
use App\Model\Repository\RevHistoryRepository;
11
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
    /** @var LitReferenceRepository */
27
    private $litReferenceRepository;
28

    
29
    /** @var RevHistoryRepository */
30
    private $revHistoryRepository;
31

    
32
    /** @var LineRepository */
33
    private $lineRepository;
34

    
35
    public function __construct(
36
        ITransliterationSearchFormFactory $transliterationSearchFormFactory,
37
        TransliterationRepository $transliterationRepository,
38
        TransliterationSearchModel $transliterationSearchModel,
39
        LitReferenceRepository $litReferenceRepository,
40
        RevHistoryRepository $revHistoryRepository,
41
        LineRepository $lineRepository
42
    )
43
    {
44
        parent::__construct();
45

    
46
        $this->transliterationSearchFormFactory = $transliterationSearchFormFactory;
47
        $this->transliterationRepository = $transliterationRepository;
48
        $this->transliterationSearchModel = $transliterationSearchModel;
49
        $this->litReferenceRepository = $litReferenceRepository;
50
        $this->revHistoryRepository = $revHistoryRepository;
51
        $this->lineRepository = $lineRepository;
52
    }
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
    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
    public function createComponentTransliterationSearchForm()
101
    {
102
        return $this->transliterationSearchFormFactory->create();
103
    }
104
}
(4-4/4)