Revize 8ef808c0
Přidáno uživatelem Jan Šedivý před asi 6 roky(ů)
app/FrontModule/presenters/TransliterationPresenter.php | ||
---|---|---|
5 | 5 |
|
6 | 6 |
|
7 | 7 |
use App\FrontModule\Components\ITransliterationSearchFormFactory; |
8 |
use App\Model\Repository\LineRepository; |
|
9 |
use App\Model\Repository\LitReferenceRepository; |
|
10 |
use App\Model\Repository\RevHistoryRepository; |
|
8 | 11 |
use App\Model\Repository\TransliterationRepository; |
9 | 12 |
use App\Model\TransliterationSearchModel; |
10 | 13 |
use Nette\Application\UI\Presenter; |
14 |
use Nette\SmartObject; |
|
15 |
use Tracy\Debugger; |
|
11 | 16 |
|
12 | 17 |
class TransliterationPresenter extends Presenter |
13 | 18 |
{ |
... | ... | |
20 | 25 |
/** @var TransliterationSearchModel */ |
21 | 26 |
private $transliterationSearchModel; |
22 | 27 |
|
28 |
/** @var LitReferenceRepository */ |
|
29 |
private $litReferenceRepository; |
|
30 |
|
|
31 |
/** @var RevHistoryRepository */ |
|
32 |
private $revHistoryRepository; |
|
33 |
|
|
34 |
/** @var LineRepository */ |
|
35 |
private $lineRepository; |
|
36 |
|
|
23 | 37 |
public function __construct( |
24 | 38 |
ITransliterationSearchFormFactory $transliterationSearchFormFactory, |
25 | 39 |
TransliterationRepository $transliterationRepository, |
26 |
TransliterationSearchModel $transliterationSearchModel |
|
40 |
TransliterationSearchModel $transliterationSearchModel, |
|
41 |
LitReferenceRepository $litReferenceRepository, |
|
42 |
RevHistoryRepository $revHistoryRepository, |
|
43 |
LineRepository $lineRepository |
|
27 | 44 |
) |
28 | 45 |
{ |
29 | 46 |
parent::__construct(); |
... | ... | |
31 | 48 |
$this->transliterationSearchFormFactory = $transliterationSearchFormFactory; |
32 | 49 |
$this->transliterationRepository = $transliterationRepository; |
33 | 50 |
$this->transliterationSearchModel = $transliterationSearchModel; |
51 |
$this->litReferenceRepository = $litReferenceRepository; |
|
52 |
$this->revHistoryRepository = $revHistoryRepository; |
|
53 |
$this->lineRepository = $lineRepository; |
|
34 | 54 |
} |
35 | 55 |
|
36 | 56 |
|
... | ... | |
58 | 78 |
$this->template->resultRows = $resultRows; |
59 | 79 |
} |
60 | 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 |
|
|
61 | 102 |
public function createComponentTransliterationSearchForm() |
62 | 103 |
{ |
63 | 104 |
return $this->transliterationSearchFormFactory->create(); |
app/FrontModule/templates/Transliteration/searchResult.latte | ||
---|---|---|
31 | 31 |
{foreach $resultRows as $result} |
32 | 32 |
<hr> |
33 | 33 |
|
34 |
<a href="transliteration-info.html">
|
|
34 |
<a n:href="Transliteration:view $result->id">
|
|
35 | 35 |
{$result->book_abrev}, {$result->chapter} |
36 | 36 |
</a> |
37 | 37 |
<div> |
app/FrontModule/templates/Transliteration/view.latte | ||
---|---|---|
1 |
{block content} |
|
2 |
<div class="display-5">Transliteration info</div> |
|
3 |
<hr> |
|
4 |
|
|
5 |
<div class="display-6"> |
|
6 |
<div class="text-muted">Catalogue information</div> |
|
7 |
</div> |
|
8 |
<div> |
|
9 |
|
|
10 |
<div> |
|
11 |
<a href="#">edit book</a> | |
|
12 |
<a href="#">edit transliteration info</a> |
|
13 |
</div> |
|
14 |
|
|
15 |
</div> |
|
16 |
<div class="container-fluid"> |
|
17 |
<dl class="row"> |
|
18 |
|
|
19 |
<dt class="col-sm-3">Book abrev.</dt> |
|
20 |
<dd class="col-sm-9">{$transliteration->book_abrev}</dd> |
|
21 |
|
|
22 |
<dt class="col-sm-3">Book name</dt> |
|
23 |
<dd class="col-sm-9">{$transliteration->book_name}</dd> |
|
24 |
|
|
25 |
<dt class="col-sm-3">Book subtitle</dt> |
|
26 |
<dd class="col-sm-9">{$transliteration->book_subtitle}</dd> |
|
27 |
|
|
28 |
<dt class="col-sm-3">Book author</dt> |
|
29 |
<dd class="col-sm-9">{$transliteration->book_autor}</dd> |
|
30 |
|
|
31 |
<dt class="col-sm-3">Place of publication</dt> |
|
32 |
<dd class="col-sm-9">{$transliteration->place_of_pub}</dd> |
|
33 |
|
|
34 |
<dt class="col-sm-3">Date of publication</dt> |
|
35 |
<dd class="col-sm-9">{$transliteration->date_of_pub}</dd> |
|
36 |
|
|
37 |
<dt class="col-sm-3">Pages</dt> |
|
38 |
<dd class="col-sm-9">{$transliteration->pages}</dd> |
|
39 |
|
|
40 |
<dt class="col-sm-3">Book description</dt> |
|
41 |
<dd class="col-sm-9">{$transliteration->book_description}</dd> |
|
42 |
|
|
43 |
<dt class="col-sm-3">Volume</dt> |
|
44 |
<dd class="col-sm-9">{$transliteration->volume}</dd> |
|
45 |
|
|
46 |
<dt class="col-sm-3">Volume number</dt> |
|
47 |
<dd class="col-sm-9">{$transliteration->volume_no}</dd> |
|
48 |
|
|
49 |
<dt class="col-sm-3">Book type</dt> |
|
50 |
<dd class="col-sm-9">{$transliteration->book_type}</dd> |
|
51 |
|
|
52 |
<dt class="col-sm-3">Chapter</dt> |
|
53 |
<dd class="col-sm-9">{$transliteration->chapter}</dd> |
|
54 |
|
|
55 |
<dt class="col-sm-3">Museum</dt> |
|
56 |
<dd class="col-sm-9">{$transliteration->museum}{ifset $transliteration->place}, {$transliteration->place}{/ifset}</dd> |
|
57 |
|
|
58 |
<dt class="col-sm-3">Museum no.</dt> |
|
59 |
<dd class="col-sm-9">{$transliteration->museum_no}</dd> |
|
60 |
|
|
61 |
<dt class="col-sm-3">Reg. (Excavation) no.</dt> |
|
62 |
<dd class="col-sm-9">{$transliteration->reg_no}</dd> |
|
63 |
|
|
64 |
<dt class="col-sm-3">Date</dt> |
|
65 |
<dd class="col-sm-9">{$transliteration->date}</dd> |
|
66 |
|
|
67 |
<dt class="col-sm-3">Origin (Ancient name / Modern name)</dt> |
|
68 |
<dd class="col-sm-9">{$transliteration->old_name}/{$transliteration->origin}</dd> |
|
69 |
|
|
70 |
<dt class="col-sm-3">Note</dt> |
|
71 |
<dd class="col-sm-9">{$transliteration->note}</dd> |
|
72 |
|
|
73 |
<dt class="col-sm-3">References (handcopy)</dt> |
|
74 |
<dd class="col-sm-9"> |
|
75 |
{foreach $litReferences as $reference} |
|
76 |
{$reference->series} {$reference->number}, {$reference->plate}<br> |
|
77 |
{/foreach} |
|
78 |
</dd> |
|
79 |
|
|
80 |
</dl> |
|
81 |
</div> |
|
82 |
|
|
83 |
<hr> |
|
84 |
<div class="display-6"> |
|
85 |
<div class="text-muted">Transliteration data</div> |
|
86 |
</div> |
|
87 |
|
|
88 |
|
|
89 |
<a href="#">edit</a> |
|
90 |
|
|
91 |
<div class="container-fluid"> |
|
92 |
{foreach $lineArray as $objectType => $surface} |
|
93 |
<b>{$objectType}</b> <br> |
|
94 |
{foreach $surface as $surfaceType => $lines} |
|
95 |
<div class="noname" id="tablet-div"> |
|
96 |
<hr> |
|
97 |
|
|
98 |
<i>{$surfaceType}</i> <br> |
|
99 |
{foreach $lines as $line} |
|
100 |
{$line['line_number']}. {$line['transliteration']} <br> |
|
101 |
{/foreach} |
|
102 |
</div> |
|
103 |
{/foreach} |
|
104 |
{/foreach} |
|
105 |
</div> |
|
106 |
<hr> |
|
107 |
<div class="display-6"> |
|
108 |
<div class="text-muted">Revision history</div> |
|
109 |
</div> |
|
110 |
<div class="container-fluid"> |
|
111 |
{foreach $revisionHistory as $revisionRecord} |
|
112 |
{$revisionRecord->date|date:'Y-m-d'} {ifset $revisionRecord->name} - {$revisionRecord->name}{/ifset} - {$revisionRecord->description}<br> |
|
113 |
{/foreach} |
|
114 |
</div> |
|
115 |
{/block} |
app/model/repository/LineRepository.php | ||
---|---|---|
20 | 20 |
const COLUMN_BROKEN = 'broken'; |
21 | 21 |
const COLUMN_OLD_BOOKANDCHAPTER = 'old_bookandchapter'; |
22 | 22 |
const COLUMN_LINE_NUMBER = 'line_number'; |
23 |
|
|
24 |
public function getAllLinesForTransliteration($transliterationId) |
|
25 |
{ |
|
26 |
return $this->context->query( |
|
27 |
"SELECT |
|
28 |
l.line_number, |
|
29 |
l.transliteration, |
|
30 |
st.surface_type, |
|
31 |
o.object_type |
|
32 |
FROM line l |
|
33 |
LEFT JOIN surface s on l.id_surface = s.id_surface |
|
34 |
LEFT JOIN surface_type st on s.id_surface_type = st.id_surface_type |
|
35 |
LEFT JOIN transliteration t on s.id_transliteration = t.id_transliteration |
|
36 |
LEFT JOIN object_type o on s.id_object_type = o.id_object_type |
|
37 |
WHERE t.id_transliteration = ? |
|
38 |
ORDER BY st.sorter ASC, line_number ASC", |
|
39 |
$transliterationId |
|
40 |
); |
|
41 |
} |
|
23 | 42 |
} |
app/model/repository/TransliterationRepository.php | ||
---|---|---|
3 | 3 |
namespace App\Model\Repository; |
4 | 4 |
|
5 | 5 |
use App\Enum\ELogicalConditions; |
6 |
use Tracy\Debugger; |
|
6 | 7 |
|
7 | 8 |
/** |
8 | 9 |
* Repository pro práci s tabulkou `transliteration` |
... | ... | |
63 | 64 |
$whereArgs[] = "%" . $queryParams['word3'] . "%"; |
64 | 65 |
} |
65 | 66 |
|
66 |
$query = "SELECT b.book_abrev, t.chapter, l.transliteration, l.line_number FROM transliteration t |
|
67 |
$query = "SELECT |
|
68 |
t.id_transliteration as id, |
|
69 |
b.book_abrev, |
|
70 |
t.chapter, |
|
71 |
l.transliteration, |
|
72 |
l.line_number |
|
73 |
FROM transliteration t |
|
67 | 74 |
LEFT JOIN surface s ON s.id_transliteration = t.id_transliteration |
68 | 75 |
LEFT JOIN line l ON l.id_surface = s.id_surface |
69 | 76 |
LEFT JOIN book b on t.id_book = b.id_book |
... | ... | |
71 | 78 |
|
72 | 79 |
return $this->context->queryArgs($query, $whereArgs); |
73 | 80 |
} |
81 |
|
|
82 |
public function getTransliterationDetail($id) |
|
83 |
{ |
|
84 |
return $this->context->query( |
|
85 |
"SELECT |
|
86 |
t.id_transliteration as id, |
|
87 |
t.chapter, |
|
88 |
t.museum_no, |
|
89 |
t.reg_no, |
|
90 |
t.date, |
|
91 |
t.note, |
|
92 |
b.*, |
|
93 |
bt.book_type, |
|
94 |
m.museum, |
|
95 |
m.place, |
|
96 |
o.* |
|
97 |
FROM transliteration t |
|
98 |
LEFT JOIN surface s ON s.id_transliteration = t.id_transliteration |
|
99 |
LEFT JOIN book b on t.id_book = b.id_book |
|
100 |
LEFT JOIN book_type bt on t.id_book_type =bt.id_book_type |
|
101 |
LEFT JOIN museum m on t.id_museum = m.id_museum |
|
102 |
LEFT JOIN origin o on t.id_origin = o.id_origin |
|
103 |
WHERE t.id_transliteration = ?", $id |
|
104 |
)->fetch(); |
|
105 |
} |
|
74 | 106 |
} |
Také k dispozici: Unified diff
Re #7327 Detail transliterace