Projekt

Obecné

Profil

Stáhnout (3.42 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
use Nette\SmartObject;
15
use Tracy\Debugger;
16

    
17
class TransliterationPresenter extends Presenter
18
{
19
    /** @var ITransliterationSearchFormFactory */
20
    private $transliterationSearchFormFactory;
21

    
22
    /** @var TransliterationRepository */
23
    private $transliterationRepository;
24

    
25
    /** @var TransliterationSearchModel */
26
    private $transliterationSearchModel;
27

    
28
    /** @var LitReferenceRepository */
29
    private $litReferenceRepository;
30

    
31
    /** @var RevHistoryRepository */
32
    private $revHistoryRepository;
33

    
34
    /** @var LineRepository */
35
    private $lineRepository;
36

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

    
48
        $this->transliterationSearchFormFactory = $transliterationSearchFormFactory;
49
        $this->transliterationRepository = $transliterationRepository;
50
        $this->transliterationSearchModel = $transliterationSearchModel;
51
        $this->litReferenceRepository = $litReferenceRepository;
52
        $this->revHistoryRepository = $revHistoryRepository;
53
        $this->lineRepository = $lineRepository;
54
    }
55

    
56

    
57
    public function actionSearch()
58
    {
59

    
60
    }
61

    
62
    public function actionSearchResult()
63
    {
64
        $searchTerms = $this->transliterationSearchModel->getSearchTerms();
65

    
66
        if (!$searchTerms)
67
        {
68
            $this->redirect('Transliteration:search');
69
        }
70

    
71
        if(!$searchTerms['word1'])
72
        {
73
            $this->redirect('Transliteration:search');
74
        }
75

    
76
        $resultRows = $this->transliterationRepository->transliterationsFulltextSearch($searchTerms);
77

    
78
        $this->template->resultRows = $resultRows;
79
    }
80

    
81
    public function actionView($id)
82
    {
83
        $transliteration = $this->transliterationRepository->getTransliterationDetail($id);
84
        if(!$transliteration)
85
        {
86
            $this->presenter->flashMessage('Transliteration not found');
87
            $this->redirect('Transliteration:search');
88
        }
89
        $lines = $this->lineRepository->getAllLinesForTransliteration($id);
90
        $lineArray = [];
91
        foreach ($lines as $line)
92
        {
93
            $lineArray[$line->object_type][$line->surface_type][] = array('transliteration' => $line->transliteration, 'line_number' => $line->line_number);
94
        }
95

    
96
        $this->template->transliteration = $transliteration;
97
        $this->template->litReferences = $this->litReferenceRepository->findBy([LitReferenceRepository::COLUMN_TRANSLITERATION_ID => $id]);
98
        $this->template->revisionHistory = $this->revHistoryRepository->findBy([RevHistoryRepository::COLUMN_TRANSLITERATION_ID => $id]);
99
        $this->template->lineArray = $lineArray;
100
    }
101

    
102
    public function createComponentTransliterationSearchForm()
103
    {
104
        return $this->transliterationSearchFormFactory->create();
105
    }
106
}
(4-4/4)