@@ -106,12 +106,12 @@ |
||
106 | 106 | </legend> |
107 | 107 | <div class="col-sm-8"> |
108 | 108 | <?php |
109 | - echo |
|
110 | - /* I18N: Extend privacy to dead individuals who were… */ I18N::translate( |
|
111 | - 'born in the last %1$s years or died in the last %2$s years', |
|
112 | - '<input type="text" name="KEEP_ALIVE_YEARS_BIRTH" value="' . $tree->getPreference('KEEP_ALIVE_YEARS_BIRTH') . '" size="5" maxlength="3">', |
|
113 | - '<input type="text" name="KEEP_ALIVE_YEARS_DEATH" value="' . $tree->getPreference('KEEP_ALIVE_YEARS_DEATH') . '" size="5" maxlength="3">' |
|
114 | - ) ?> |
|
109 | + echo |
|
110 | + /* I18N: Extend privacy to dead individuals who were… */ I18N::translate( |
|
111 | + 'born in the last %1$s years or died in the last %2$s years', |
|
112 | + '<input type="text" name="KEEP_ALIVE_YEARS_BIRTH" value="' . $tree->getPreference('KEEP_ALIVE_YEARS_BIRTH') . '" size="5" maxlength="3">', |
|
113 | + '<input type="text" name="KEEP_ALIVE_YEARS_DEATH" value="' . $tree->getPreference('KEEP_ALIVE_YEARS_DEATH') . '" size="5" maxlength="3">' |
|
114 | + ) ?> |
|
115 | 115 | <p class="small text-muted"> |
116 | 116 | <?= /* I18N: Help text for the “Extend privacy to dead individuals” configuration setting */ I18N::translate('In some countries, privacy laws apply not only to living individuals, but also to those who have died recently. This option will allow you to extend the privacy rules for living individuals to those who were born or died within a specified number of years. Leave these values empty to disable this feature.') ?> |
117 | 117 | </p> |
@@ -16,7 +16,7 @@ |
||
16 | 16 | <div class="card-body"> |
17 | 17 | <p> |
18 | 18 | <?= /* I18N: %s is a URL/link to the project website */ |
19 | - I18N::translate('Support and documentation can be found at %s.', '<a href="https://webtrees.net/">webtrees.net</a>') ?> |
|
19 | + I18N::translate('Support and documentation can be found at %s.', '<a href="https://webtrees.net/">webtrees.net</a>') ?> |
|
20 | 20 | </p> |
21 | 21 | </div> |
22 | 22 | </div> |
@@ -31,10 +31,10 @@ |
||
31 | 31 | <?= csrf_field() ?> |
32 | 32 | <p class="form-inline"> |
33 | 33 | <?= I18N::translate(/* I18N: Copy all the records from [family tree 1] into [family tree 2] */ |
34 | - 'Copy all the records from %1$s into %2$s.', |
|
35 | - Bootstrap4::select($tree_list, $tree1 ? $tree1->getName() : '', ['name' => 'tree1_name']), |
|
36 | - Bootstrap4::select($tree_list, $tree2 ? $tree2->getName() : '', ['name' => 'tree2_name']) |
|
37 | - ) ?> |
|
34 | + 'Copy all the records from %1$s into %2$s.', |
|
35 | + Bootstrap4::select($tree_list, $tree1 ? $tree1->getName() : '', ['name' => 'tree1_name']), |
|
36 | + Bootstrap4::select($tree_list, $tree2 ? $tree2->getName() : '', ['name' => 'tree2_name']) |
|
37 | + ) ?> |
|
38 | 38 | </p> |
39 | 39 | |
40 | 40 | <button type="submit" class="btn btn-primary"> |
@@ -65,7 +65,7 @@ |
||
65 | 65 | <div class="row form-group my-3"> |
66 | 66 | <div class="form-row mx-auto"> |
67 | 67 | <input type="submit" class="btn btn-primary" value="<?= /* I18N: A button label. */ |
68 | - I18N::translate('search') ?>"> |
|
68 | + I18N::translate('search') ?>"> |
|
69 | 69 | </div> |
70 | 70 | </div> |
71 | 71 | </form> |
@@ -43,7 +43,7 @@ |
||
43 | 43 | <div class="col-form-label col-sm-3 wt-page-options-label"></div> |
44 | 44 | <div class="col-sm-9 wt-page-options-value"> |
45 | 45 | <input class="btn btn-primary" type="submit" value="<?= /* I18N: A button label. */ |
46 | - I18N::translate('view') ?>"> |
|
46 | + I18N::translate('view') ?>"> |
|
47 | 47 | </div> |
48 | 48 | </div> |
49 | 49 | </form> |
@@ -20,9 +20,9 @@ discard block |
||
20 | 20 | </label> |
21 | 21 | <div class="col-sm-9 wt-page-options-value"> |
22 | 22 | <?= FunctionsEdit::formControlIndividual($tree, null, [ |
23 | - 'id' => 'xref-add', |
|
24 | - 'name' => 'xrefs[]', |
|
25 | - ]) ?> |
|
23 | + 'id' => 'xref-add', |
|
24 | + 'name' => 'xrefs[]', |
|
25 | + ]) ?> |
|
26 | 26 | </div> |
27 | 27 | </div> |
28 | 28 | |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | <div class="col-form-label col-sm-3 wt-page-options-label"></div> |
31 | 31 | <div class="col-sm-9 wt-page-options-value"> |
32 | 32 | <input class="btn btn-primary" type="submit" value="<?= /* I18N: A button label. */ |
33 | - I18N::translate('add') ?>"> |
|
33 | + I18N::translate('add') ?>"> |
|
34 | 34 | <a class="btn btn-secondary" href="<?= e(route('timeline', ['ged' => $tree->getName()])) ?>"> |
35 | 35 | <?= /* I18N: A button label. */ I18N::translate('reset') ?> |
36 | 36 | </a> |
@@ -6,26 +6,26 @@ |
||
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_sources = Database::prepare( |
15 | - "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" |
|
15 | + "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" |
|
16 | 16 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
17 | 17 | ?> |
18 | 18 | |
19 | 19 | <table |
20 | 20 | class="table table-bordered table-sm wt-table-media datatables" |
21 | 21 | data-columns="<?= e(json_encode([ |
22 | - null, |
|
23 | - null, |
|
24 | - ['visible' => array_sum($count_individuals) > 0], |
|
25 | - ['visible' => array_sum($count_families) > 0], |
|
26 | - ['visible' => array_sum($count_sources) > 0], |
|
27 | - ['visible' => (bool) $tree->getPreference('SHOW_LAST_CHANGE'), 'searchable' => false], |
|
28 | - ])) ?>" |
|
22 | + null, |
|
23 | + null, |
|
24 | + ['visible' => array_sum($count_individuals) > 0], |
|
25 | + ['visible' => array_sum($count_families) > 0], |
|
26 | + ['visible' => array_sum($count_sources) > 0], |
|
27 | + ['visible' => (bool) $tree->getPreference('SHOW_LAST_CHANGE'), 'searchable' => false], |
|
28 | + ])) ?>" |
|
29 | 29 | data-state-save="true" |
30 | 30 | > |
31 | 31 | <caption class="sr-only"> |
@@ -6,30 +6,30 @@ |
||
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 = 'SOUR' 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 = 'SOUR' 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 = 'SOUR' 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 = 'SOUR' 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 = 'SOUR' 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 = 'SOUR' AND l_file = :tree_id GROUP BY l_to" |
|
16 | 16 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
17 | 17 | $count_notes = Database::prepare( |
18 | - "SELECT l_to, COUNT(*) FROM `##other` JOIN `##link` ON l_from = o_id AND l_file = o_file AND o_type = 'NOTE' AND l_type = 'SOUR' AND l_file = :tree_id GROUP BY l_to" |
|
18 | + "SELECT l_to, COUNT(*) FROM `##other` JOIN `##link` ON l_from = o_id AND l_file = o_file AND o_type = 'NOTE' AND l_type = 'SOUR' 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-source datatables d-none" |
24 | 24 | data-columns="<?= e(json_encode([ |
25 | - null, |
|
26 | - null, |
|
27 | - ['visible' => array_sum($count_individuals) > 0], |
|
28 | - ['visible' => array_sum($count_families) > 0], |
|
29 | - ['visible' => array_sum($count_media) > 0], |
|
30 | - ['visible' => array_sum($count_notes) > 0], |
|
31 | - ['visible' => (bool) $tree->getPreference('SHOW_LAST_CHANGE'), 'searchable' => false], |
|
32 | - ])) ?>" |
|
25 | + null, |
|
26 | + null, |
|
27 | + ['visible' => array_sum($count_individuals) > 0], |
|
28 | + ['visible' => array_sum($count_families) > 0], |
|
29 | + ['visible' => array_sum($count_media) > 0], |
|
30 | + ['visible' => array_sum($count_notes) > 0], |
|
31 | + ['visible' => (bool) $tree->getPreference('SHOW_LAST_CHANGE'), 'searchable' => false], |
|
32 | + ])) ?>" |
|
33 | 33 | data-state-save="true" |
34 | 34 | > |
35 | 35 | <caption class="sr-only"> |
@@ -78,13 +78,13 @@ discard block |
||
78 | 78 | // Inititialise chart data |
79 | 79 | $deat_by_age = []; |
80 | 80 | for ($age = 0; $age <= $max_age; $age++) { |
81 | - $deat_by_age[$age] = ''; |
|
81 | + $deat_by_age[$age] = ''; |
|
82 | 82 | } |
83 | 83 | $birt_by_decade = []; |
84 | 84 | $deat_by_decade = []; |
85 | 85 | for ($year = 1550; $year < 2030; $year += 10) { |
86 | - $birt_by_decade[$year] = ''; |
|
87 | - $deat_by_decade[$year] = ''; |
|
86 | + $birt_by_decade[$year] = ''; |
|
87 | + $deat_by_decade[$year] = ''; |
|
88 | 88 | } |
89 | 89 | ?> |
90 | 90 | |
@@ -197,7 +197,7 @@ discard block |
||
197 | 197 | <th><?= I18N::translate('Given names') ?></th> |
198 | 198 | <th><?= I18N::translate('Surname') ?></th> |
199 | 199 | <th><?= /* I18N: Abbreviation for “Sosa-Stradonitz number”. This is an individual’s surname, so may need transliterating into non-latin alphabets. */ |
200 | - I18N::translate('Sosa') ?></th> |
|
200 | + I18N::translate('Sosa') ?></th> |
|
201 | 201 | <th><?= I18N::translate('Birth') ?></th> |
202 | 202 | <th> |
203 | 203 | <i class="icon-reminder" title="<?= I18N::translate('Anniversary') ?>"></i> |
@@ -319,8 +319,11 @@ |
||
319 | 319 | <?php if (!isset($unique_indis[$individual->getXref()]) && $age_at_death >= 0 && $age_at_death <= $max_age): ?> |
320 | 320 | <?php $deat_by_age[$age_at_death] .= $individual->getSex(); ?> |
321 | 321 | <?php endif ?> |
322 | - <?php else: ?> |
|
323 | - <?php $age_at_death = ''; ?> |
|
322 | + <?php else { |
|
323 | + : ?> |
|
324 | + <?php $age_at_death = ''; |
|
325 | +} |
|
326 | +?> |
|
324 | 327 | <?php $age_at_death_sort = PHP_INT_MAX; ?> |
325 | 328 | <?php endif ?> |
326 | 329 | <td class="center" data-sort="<?= e($age_at_death_sort) ?>"> |