@@ -77,7 +77,7 @@ |
||
77 | 77 | <br> |
78 | 78 | <br> |
79 | 79 | |
80 | -<table class="table table-bordered table-sm" id="media-table-<?= e($table_id) ?>" data-ajax="<?= e(route('admin-media-data', ['files' => $files, 'media_folder' => $media_folder, 'media_path' => $media_path, 'subfolders' => $subfolders ])) ?>"> |
|
80 | +<table class="table table-bordered table-sm" id="media-table-<?= e($table_id) ?>" data-ajax="<?= e(route('admin-media-data', ['files' => $files, 'media_folder' => $media_folder, 'media_path' => $media_path, 'subfolders' => $subfolders])) ?>"> |
|
81 | 81 | <thead> |
82 | 82 | <tr> |
83 | 83 | <th><?= I18N::translate('Media file') ?></th> |
@@ -46,7 +46,7 @@ |
||
46 | 46 | <select name="tree_name" class="form-control" id="import-server-file"> |
47 | 47 | <option value=""></option> |
48 | 48 | <?php foreach ($gedcom_files as $gedcom_file): ?> |
49 | - <option value="<?= e($gedcom_file) ?>" <?= $gedcom_file === $default_gedcom_file? 'selected' : '' ?>> |
|
49 | + <option value="<?= e($gedcom_file) ?>" <?= $gedcom_file === $default_gedcom_file ? 'selected' : '' ?>> |
|
50 | 50 | <?= e($gedcom_file) ?> |
51 | 51 | </option> |
52 | 52 | <?php endforeach ?> |
@@ -14,7 +14,7 @@ |
||
14 | 14 | $count_media = Database::prepare( |
15 | 15 | "SELECT l_to, COUNT(*) FROM `##media` JOIN `##link` ON l_from = m_id AND l_file = m_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
16 | 16 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
17 | -$count_sources = Database::prepare( |
|
17 | +$count_sources = Database::prepare( |
|
18 | 18 | "SELECT l_to, COUNT(*) FROM `##sources` JOIN `##link` ON l_from = s_id AND l_file = s_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
19 | 19 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
20 | 20 | ?> |
@@ -6,29 +6,29 @@ |
||
6 | 6 | // It is not good to bypass privacy, but many servers do not have the resources |
7 | 7 | // to process privacy for every record in the tree |
8 | 8 | $count_individuals = Database::prepare( |
9 | - "SELECT l_to, COUNT(*) FROM `##individuals` JOIN `##link` ON l_from = i_id AND l_file = i_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
9 | + "SELECT l_to, COUNT(*) FROM `##individuals` JOIN `##link` ON l_from = i_id AND l_file = i_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
10 | 10 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
11 | 11 | $count_families = Database::prepare( |
12 | - "SELECT l_to, COUNT(*) FROM `##families` JOIN `##link` ON l_from = f_id AND l_file = f_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
12 | + "SELECT l_to, COUNT(*) FROM `##families` JOIN `##link` ON l_from = f_id AND l_file = f_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
13 | 13 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
14 | 14 | $count_media = Database::prepare( |
15 | - "SELECT l_to, COUNT(*) FROM `##media` JOIN `##link` ON l_from = m_id AND l_file = m_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
15 | + "SELECT l_to, COUNT(*) FROM `##media` JOIN `##link` ON l_from = m_id AND l_file = m_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
16 | 16 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
17 | 17 | $count_sources = Database::prepare( |
18 | - "SELECT l_to, COUNT(*) FROM `##sources` JOIN `##link` ON l_from = s_id AND l_file = s_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
18 | + "SELECT l_to, COUNT(*) FROM `##sources` JOIN `##link` ON l_from = s_id AND l_file = s_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
19 | 19 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
20 | 20 | ?> |
21 | 21 | |
22 | 22 | <table |
23 | 23 | class="table table-bordered table-sm wt-table-note datatables" |
24 | 24 | data-columns="<?= e(json_encode([ |
25 | - null, |
|
26 | - ['visible' => array_sum($count_individuals) > 0], |
|
27 | - ['visible' => array_sum($count_families) > 0], |
|
28 | - ['visible' => array_sum($count_media) > 0], |
|
29 | - ['visible' => array_sum($count_sources) > 0], |
|
30 | - ['visible' => (bool) $tree->getPreference('SHOW_LAST_CHANGE'), 'searchable' => false], |
|
31 | - ])) ?>" |
|
25 | + null, |
|
26 | + ['visible' => array_sum($count_individuals) > 0], |
|
27 | + ['visible' => array_sum($count_families) > 0], |
|
28 | + ['visible' => array_sum($count_media) > 0], |
|
29 | + ['visible' => array_sum($count_sources) > 0], |
|
30 | + ['visible' => (bool) $tree->getPreference('SHOW_LAST_CHANGE'), 'searchable' => false], |
|
31 | + ])) ?>" |
|
32 | 32 | data-state-save="true" |
33 | 33 | > |
34 | 34 | <caption class="sr-only"> |
@@ -24,7 +24,7 @@ |
||
24 | 24 | } |
25 | 25 | $chart_url .= '|1:||' . rawurlencode(I18N::percentage($vmax / $count)); // y axis |
26 | 26 | $chart_url .= '|2:||'; |
27 | -$step = $vmax; |
|
27 | +$step = $vmax; |
|
28 | 28 | for ($d = $vmax; $d > 0; $d--) { |
29 | 29 | if ($vmax < ($d * 10 + 1) && ($vmax % $d) == 0) { |
30 | 30 | $step = $d; |
@@ -4,12 +4,12 @@ discard block |
||
4 | 4 | $count = 0; |
5 | 5 | $vmax = 0; |
6 | 6 | foreach ($data as $v) { |
7 | - $n = strlen($v); |
|
8 | - $vmax = max($vmax, $n); |
|
9 | - $count += $n; |
|
7 | + $n = strlen($v); |
|
8 | + $vmax = max($vmax, $n); |
|
9 | + $count += $n; |
|
10 | 10 | } |
11 | 11 | if ($count < 1) { |
12 | - return ''; |
|
12 | + return ''; |
|
13 | 13 | } |
14 | 14 | $chart_url = 'https://chart.googleapis.com/chart?cht=bvs'; // chart type |
15 | 15 | $chart_url .= '&chs=360x150'; // size |
@@ -20,36 +20,36 @@ discard block |
||
20 | 20 | $chart_url .= '&chxt=x,y,r'; // axis labels specification |
21 | 21 | $chart_url .= '&chxl=0:|<|||'; // <1570 |
22 | 22 | for ($y = 1600; $y < 2030; $y += 50) { |
23 | - $chart_url .= $y . '|||||'; // x axis |
|
23 | + $chart_url .= $y . '|||||'; // x axis |
|
24 | 24 | } |
25 | 25 | $chart_url .= '|1:||' . rawurlencode(I18N::percentage($vmax / $count)); // y axis |
26 | 26 | $chart_url .= '|2:||'; |
27 | 27 | $step = $vmax; |
28 | 28 | for ($d = $vmax; $d > 0; $d--) { |
29 | - if ($vmax < ($d * 10 + 1) && ($vmax % $d) == 0) { |
|
30 | - $step = $d; |
|
31 | - } |
|
29 | + if ($vmax < ($d * 10 + 1) && ($vmax % $d) == 0) { |
|
30 | + $step = $d; |
|
31 | + } |
|
32 | 32 | } |
33 | 33 | if ($step == $vmax) { |
34 | - for ($d = $vmax - 1; $d > 0; $d--) { |
|
35 | - if (($vmax - 1) < ($d * 10 + 1) && (($vmax - 1) % $d) == 0) { |
|
36 | - $step = $d; |
|
37 | - } |
|
38 | - } |
|
34 | + for ($d = $vmax - 1; $d > 0; $d--) { |
|
35 | + if (($vmax - 1) < ($d * 10 + 1) && (($vmax - 1) % $d) == 0) { |
|
36 | + $step = $d; |
|
37 | + } |
|
38 | + } |
|
39 | 39 | } |
40 | 40 | for ($n = $step; $n < $vmax; $n += $step) { |
41 | - $chart_url .= $n . '|'; |
|
41 | + $chart_url .= $n . '|'; |
|
42 | 42 | } |
43 | 43 | $chart_url .= rawurlencode($vmax . ' / ' . $count); // r axis |
44 | 44 | $chart_url .= '&chg=100,' . round(100 * $step / $vmax, 1) . ',1,5'; // grid |
45 | 45 | $chart_url .= '&chd=s:'; // data : simple encoding from A=0 to 9=61 |
46 | 46 | $CHART_ENCODING61 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; |
47 | 47 | for ($y = 1570; $y < 2030; $y += 10) { |
48 | - $chart_url .= $CHART_ENCODING61[(int) (substr_count($data[$y], 'M') * 61 / $vmax)]; |
|
48 | + $chart_url .= $CHART_ENCODING61[(int) (substr_count($data[$y], 'M') * 61 / $vmax)]; |
|
49 | 49 | } |
50 | 50 | $chart_url .= ','; |
51 | 51 | for ($y = 1570; $y < 2030; $y += 10) { |
52 | - $chart_url .= $CHART_ENCODING61[(int) (substr_count($data[$y], 'F') * 61 / $vmax)]; |
|
52 | + $chart_url .= $CHART_ENCODING61[(int) (substr_count($data[$y], 'F') * 61 / $vmax)]; |
|
53 | 53 | } |
54 | 54 | $html = '<img src="' . $chart_url . '" alt="' . $title . '" title="' . $title . '" class="gchart">'; |
55 | 55 |
@@ -39,7 +39,7 @@ |
||
39 | 39 | 'level' => 2, |
40 | 40 | 'full_citations' => $tree->getPreference('FULL_SOURCES'), |
41 | 41 | 'tree' => $tree, |
42 | - ]); } |
|
42 | + ]); } |
|
43 | 43 | if ($level1type !== 'OBJE') { |
44 | 44 | if ($tree->getPreference('MEDIA_UPLOAD') >= Auth::accessLevel($tree)) { |
45 | 45 | echo view('cards/add-media-object', [ |
@@ -14,76 +14,76 @@ discard block |
||
14 | 14 | <?php FunctionsEdit::createEditForm($edit_fact) ?> |
15 | 15 | |
16 | 16 | <?php |
17 | - $level1type = $edit_fact->getTag(); |
|
18 | - switch ($record::RECORD_TYPE) { |
|
19 | - case 'REPO': |
|
20 | - // REPO:NAME facts may take a NOTE (but the REPO record may not). |
|
21 | - if ($level1type === 'NAME') { |
|
22 | - echo view('cards/add-note', [ |
|
23 | - 'level' => 2, |
|
24 | - 'tree' => $tree, |
|
25 | - ]); |
|
26 | - echo view('addSimpleTag($tree, ', [ |
|
27 | - 'level' => 2, |
|
28 | - 'tree' => $tree, |
|
29 | - ]); |
|
30 | - } |
|
31 | - break; |
|
32 | - case 'FAM': |
|
33 | - case 'INDI': |
|
34 | - // FAM and INDI records have real facts. They can take NOTE/SOUR/OBJE/etc. |
|
35 | - if ($level1type !== 'SEX' && $level1type !== 'NOTE' && $level1type !== 'ALIA') { |
|
36 | - if ($level1type !== 'SOUR') { |
|
37 | - echo view('cards/add-source-citation', [ |
|
38 | - 'level' => 2, |
|
39 | - 'full_citations' => $tree->getPreference('FULL_SOURCES'), |
|
40 | - 'tree' => $tree, |
|
41 | - ]); } |
|
42 | - if ($level1type !== 'OBJE') { |
|
43 | - if ($tree->getPreference('MEDIA_UPLOAD') >= Auth::accessLevel($tree)) { |
|
44 | - echo view('cards/add-media-object', [ |
|
45 | - 'level' => 2, |
|
46 | - 'tree' => $tree, |
|
47 | - ]); |
|
48 | - } |
|
49 | - } |
|
50 | - echo view('cards/add-note', [ |
|
51 | - 'level' => 2, |
|
52 | - 'tree' => $tree, |
|
53 | - ]); |
|
54 | - echo view('cards/add-shared-note', [ |
|
55 | - 'level' => 2, |
|
56 | - 'tree' => $tree, |
|
57 | - ]); |
|
58 | - if ($level1type !== 'ASSO' && $level1type !== 'NOTE' && $level1type !== 'SOUR') { |
|
59 | - echo view('cards/add-associate', [ |
|
60 | - 'id' => Uuid::uuid4()->toString(), |
|
61 | - 'level' => 2, |
|
62 | - 'tree' => $tree, |
|
63 | - ]); |
|
64 | - } |
|
65 | - // allow to add godfather and godmother for CHR fact or best man and bridesmaid for MARR fact in one window |
|
66 | - if (in_array($level1type, Config::twoAssociates())) { |
|
67 | - echo view('cards/add-associate', [ |
|
68 | - 'id' => Uuid::uuid4()->toString(), |
|
69 | - 'level' => 2, |
|
70 | - 'tree' => $tree, |
|
71 | - ]); |
|
72 | - } |
|
73 | - if ($level1type !== 'SOUR') { |
|
74 | - echo view('cards/add-restriction', [ |
|
75 | - 'level' => 2, |
|
76 | - 'tree' => $tree, |
|
77 | - ]); |
|
78 | - } |
|
79 | - } |
|
80 | - break; |
|
81 | - default: |
|
82 | - // Other types of record do not have these lower-level records |
|
83 | - break; |
|
84 | - } |
|
17 | + $level1type = $edit_fact->getTag(); |
|
18 | + switch ($record::RECORD_TYPE) { |
|
19 | + case 'REPO': |
|
20 | + // REPO:NAME facts may take a NOTE (but the REPO record may not). |
|
21 | + if ($level1type === 'NAME') { |
|
22 | + echo view('cards/add-note', [ |
|
23 | + 'level' => 2, |
|
24 | + 'tree' => $tree, |
|
25 | + ]); |
|
26 | + echo view('addSimpleTag($tree, ', [ |
|
27 | + 'level' => 2, |
|
28 | + 'tree' => $tree, |
|
29 | + ]); |
|
30 | + } |
|
31 | + break; |
|
32 | + case 'FAM': |
|
33 | + case 'INDI': |
|
34 | + // FAM and INDI records have real facts. They can take NOTE/SOUR/OBJE/etc. |
|
35 | + if ($level1type !== 'SEX' && $level1type !== 'NOTE' && $level1type !== 'ALIA') { |
|
36 | + if ($level1type !== 'SOUR') { |
|
37 | + echo view('cards/add-source-citation', [ |
|
38 | + 'level' => 2, |
|
39 | + 'full_citations' => $tree->getPreference('FULL_SOURCES'), |
|
40 | + 'tree' => $tree, |
|
41 | + ]); } |
|
42 | + if ($level1type !== 'OBJE') { |
|
43 | + if ($tree->getPreference('MEDIA_UPLOAD') >= Auth::accessLevel($tree)) { |
|
44 | + echo view('cards/add-media-object', [ |
|
45 | + 'level' => 2, |
|
46 | + 'tree' => $tree, |
|
47 | + ]); |
|
48 | + } |
|
49 | + } |
|
50 | + echo view('cards/add-note', [ |
|
51 | + 'level' => 2, |
|
52 | + 'tree' => $tree, |
|
53 | + ]); |
|
54 | + echo view('cards/add-shared-note', [ |
|
55 | + 'level' => 2, |
|
56 | + 'tree' => $tree, |
|
57 | + ]); |
|
58 | + if ($level1type !== 'ASSO' && $level1type !== 'NOTE' && $level1type !== 'SOUR') { |
|
59 | + echo view('cards/add-associate', [ |
|
60 | + 'id' => Uuid::uuid4()->toString(), |
|
61 | + 'level' => 2, |
|
62 | + 'tree' => $tree, |
|
63 | + ]); |
|
64 | + } |
|
65 | + // allow to add godfather and godmother for CHR fact or best man and bridesmaid for MARR fact in one window |
|
66 | + if (in_array($level1type, Config::twoAssociates())) { |
|
67 | + echo view('cards/add-associate', [ |
|
68 | + 'id' => Uuid::uuid4()->toString(), |
|
69 | + 'level' => 2, |
|
70 | + 'tree' => $tree, |
|
71 | + ]); |
|
72 | + } |
|
73 | + if ($level1type !== 'SOUR') { |
|
74 | + echo view('cards/add-restriction', [ |
|
75 | + 'level' => 2, |
|
76 | + 'tree' => $tree, |
|
77 | + ]); |
|
78 | + } |
|
79 | + } |
|
80 | + break; |
|
81 | + default: |
|
82 | + // Other types of record do not have these lower-level records |
|
83 | + break; |
|
84 | + } |
|
85 | 85 | |
86 | - ?> |
|
86 | + ?> |
|
87 | 87 | |
88 | 88 | <div class="form-group row"> |
89 | 89 | <label class="col-sm-3 col-form-label" for="keep_chan"> |
@@ -103,12 +103,12 @@ discard block |
||
103 | 103 | <button class="btn btn-primary" type="submit"> |
104 | 104 | <?= FontAwesome::decorativeIcon('save') ?> |
105 | 105 | <?= /* I18N: A button label. */ |
106 | - I18N::translate('save') ?> |
|
106 | + I18N::translate('save') ?> |
|
107 | 107 | </button> |
108 | 108 | <a class="btn btn-secondary" href="<?= e($record->url()) ?>"> |
109 | 109 | <?= FontAwesome::decorativeIcon('cancel') ?> |
110 | 110 | <?= /* I18N: A button label. */ |
111 | - I18N::translate('cancel') ?> |
|
111 | + I18N::translate('cancel') ?> |
|
112 | 112 | </a> |
113 | 113 | <?php if ($can_edit_raw): ?> |
114 | 114 | <a class="btn btn-link" href="<?= e(route('edit-raw-fact', ['xref' => $record->getXref(), 'fact_id' => $edit_fact->getFactId(), 'ged' => $tree->getName()])) ?>"> |
@@ -60,7 +60,7 @@ |
||
60 | 60 | */ |
61 | 61 | public function getOptions(Request $request) |
62 | 62 | { |
63 | - $this->chan = (bool)$request->get('chan'); |
|
63 | + $this->chan = (bool) $request->get('chan'); |
|
64 | 64 | } |
65 | 65 | |
66 | 66 | /** |
@@ -74,7 +74,7 @@ |
||
74 | 74 | $content = $stats->embedTags($content); |
75 | 75 | |
76 | 76 | if ($show_timestamp === '1') { |
77 | - $content .= '<br>' . FunctionsDate::formatTimestamp((int)$this->getBlockSetting($block_id, 'timestamp', WT_TIMESTAMP) + WT_TIMESTAMP_OFFSET); |
|
77 | + $content .= '<br>' . FunctionsDate::formatTimestamp((int) $this->getBlockSetting($block_id, 'timestamp', WT_TIMESTAMP) + WT_TIMESTAMP_OFFSET); |
|
78 | 78 | } |
79 | 79 | |
80 | 80 | if ($template) { |
@@ -161,7 +161,7 @@ discard block |
||
161 | 161 | $this->checkModuleAccess($tree); |
162 | 162 | |
163 | 163 | $privatize_export = $request->get('privatize_export'); |
164 | - $convert = (bool)$request->get('convert'); |
|
164 | + $convert = (bool) $request->get('convert'); |
|
165 | 165 | |
166 | 166 | $cart = Session::get('cart', []); |
167 | 167 | |
@@ -274,7 +274,7 @@ discard block |
||
274 | 274 | |
275 | 275 | // Create a source, to indicate the source of the data. |
276 | 276 | $filetext .= "0 @WEBTREES@ SOUR\n1 TITL " . WT_BASE_URL . "\n"; |
277 | - $author = User::find($tree->getPreference('CONTACT_EMAIL')); |
|
277 | + $author = User::find($tree->getPreference('CONTACT_EMAIL')); |
|
278 | 278 | if ($author !== null) { |
279 | 279 | $filetext .= '1 AUTH ' . $author->getRealName() . "\n"; |
280 | 280 | } |
@@ -110,8 +110,8 @@ discard block |
||
110 | 110 | public function postAdminAction(Request $request): RedirectResponse |
111 | 111 | { |
112 | 112 | foreach (Tree::getAll() as $tree) { |
113 | - $include_in_sitemap = (bool)$request->get('sitemap' . $tree->getTreeId()); |
|
114 | - $tree->setPreference('include_in_sitemap', (string)$include_in_sitemap); |
|
113 | + $include_in_sitemap = (bool) $request->get('sitemap' . $tree->getTreeId()); |
|
114 | + $tree->setPreference('include_in_sitemap', (string) $include_in_sitemap); |
|
115 | 115 | } |
116 | 116 | |
117 | 117 | FlashMessages::addMessage(I18N::translate('The preferences for the module ā%sā have been updated.', $this->getTitle()), 'success'); |
@@ -126,7 +126,7 @@ discard block |
||
126 | 126 | */ |
127 | 127 | public function getIndexAction(Request $request): Response |
128 | 128 | { |
129 | - $timestamp = (int)$this->getPreference('sitemap.timestamp'); |
|
129 | + $timestamp = (int) $this->getPreference('sitemap.timestamp'); |
|
130 | 130 | |
131 | 131 | if ($timestamp > WT_TIMESTAMP - self::CACHE_LIFE) { |
132 | 132 | $content = $this->getPreference('sitemap.xml'); |
@@ -183,12 +183,12 @@ discard block |
||
183 | 183 | throw new NotFoundHttpException('Bad sitemap file'); |
184 | 184 | } |
185 | 185 | |
186 | - $timestamp = (int)$this->getPreference('sitemap-' . $file . '.timestamp'); |
|
186 | + $timestamp = (int) $this->getPreference('sitemap-' . $file . '.timestamp'); |
|
187 | 187 | |
188 | 188 | if ($timestamp > WT_TIMESTAMP - self::CACHE_LIFE) { |
189 | 189 | $content = $this->getPreference('sitemap-' . $file . '.xml'); |
190 | 190 | } else { |
191 | - $tree = Tree::findById((int)$match[1]); |
|
191 | + $tree = Tree::findById((int) $match[1]); |
|
192 | 192 | |
193 | 193 | if ($tree === null) { |
194 | 194 | throw new NotFoundHttpException('No such tree'); |