Completed
Push — develop ( 310a97...fb0d91 )
by Greg
31:19 queued 19:49
created
app/Functions/FunctionsPrintFacts.php 2 patches
Switch Indentation   +290 added lines, -290 removed lines patch added patch discarded remove patch
@@ -60,34 +60,34 @@  discard block
 block discarded – undo
60 60
 
61 61
 		// Some facts don't get printed here ...
62 62
 		switch ($fact->getTag()) {
63
-			case 'NOTE':
64
-				self::printMainNotes($fact, 1);
63
+		case 'NOTE':
64
+			self::printMainNotes($fact, 1);
65 65
 
66
-				return;
67
-			case 'SOUR':
68
-				self::printMainSources($fact, 1);
66
+			return;
67
+		case 'SOUR':
68
+			self::printMainSources($fact, 1);
69 69
 
70
-				return;
71
-			case 'OBJE':
72
-				self::printMainMedia($fact, 1);
70
+			return;
71
+		case 'OBJE':
72
+			self::printMainMedia($fact, 1);
73 73
 
74
+			return;
75
+		case 'FAMC':
76
+		case 'FAMS':
77
+		case 'CHIL':
78
+		case 'HUSB':
79
+		case 'WIFE':
80
+			// These are internal links, not facts
81
+			return;
82
+		case '_WT_OBJE_SORT':
83
+			// These links are used internally to record the sort order.
84
+			return;
85
+		default:
86
+			// Hide unrecognized/custom tags?
87
+			if ($fact->getParent()->getTree()->getPreference('HIDE_GEDCOM_ERRORS') && !GedcomTag::isTag($fact->getTag())) {
74 88
 				return;
75
-			case 'FAMC':
76
-			case 'FAMS':
77
-			case 'CHIL':
78
-			case 'HUSB':
79
-			case 'WIFE':
80
-				// These are internal links, not facts
81
-				return;
82
-			case '_WT_OBJE_SORT':
83
-				// These links are used internally to record the sort order.
84
-				return;
85
-			default:
86
-				// Hide unrecognized/custom tags?
87
-				if ($fact->getParent()->getTree()->getPreference('HIDE_GEDCOM_ERRORS') && !GedcomTag::isTag($fact->getTag())) {
88
-					return;
89
-				}
90
-				break;
89
+			}
90
+			break;
91 91
 		}
92 92
 
93 93
 		// Who is this fact about? Need it to translate fact label correctly
@@ -131,35 +131,35 @@  discard block
 block discarded – undo
131 131
 		}
132 132
 
133 133
 		switch ($fact->getTag()) {
134
-			case 'EVEN':
135
-			case 'FACT':
136
-				if (GedcomTag::isTag($type)) {
137
-					// Some users (just Meliza?) use "1 EVEN/2 TYPE BIRT". Translate the TYPE.
138
-					$label = GedcomTag::getLabel($type, $label_person);
139
-					$type  = ''; // Do not print this again
140
-				} elseif ($type) {
141
-					// We don't have a translation for $type - but a custom translation might exist.
142
-					$label = I18N::translate(Filter::escapeHtml($type));
143
-					$type  = ''; // Do not print this again
144
-				} else {
145
-					// An unspecified fact/event
146
-					$label = $fact->getLabel();
147
-				}
148
-				break;
149
-			case 'MARR':
150
-				// This is a hack for a proprietory extension. Is it still used/needed?
151
-				$utype = strtoupper($type);
152
-				if ($utype == 'CIVIL' || $utype == 'PARTNERS' || $utype == 'RELIGIOUS') {
153
-					$label = GedcomTag::getLabel('MARR_' . $utype, $label_person);
154
-					$type  = ''; // Do not print this again
155
-				} else {
156
-					$label = $fact->getLabel();
157
-				}
158
-				break;
159
-			default:
160
-				// Normal fact/event
134
+		case 'EVEN':
135
+		case 'FACT':
136
+			if (GedcomTag::isTag($type)) {
137
+				// Some users (just Meliza?) use "1 EVEN/2 TYPE BIRT". Translate the TYPE.
138
+				$label = GedcomTag::getLabel($type, $label_person);
139
+				$type  = ''; // Do not print this again
140
+			} elseif ($type) {
141
+				// We don't have a translation for $type - but a custom translation might exist.
142
+				$label = I18N::translate(Filter::escapeHtml($type));
143
+				$type  = ''; // Do not print this again
144
+			} else {
145
+				// An unspecified fact/event
161 146
 				$label = $fact->getLabel();
162
-				break;
147
+			}
148
+			break;
149
+		case 'MARR':
150
+			// This is a hack for a proprietory extension. Is it still used/needed?
151
+			$utype = strtoupper($type);
152
+			if ($utype == 'CIVIL' || $utype == 'PARTNERS' || $utype == 'RELIGIOUS') {
153
+				$label = GedcomTag::getLabel('MARR_' . $utype, $label_person);
154
+				$type  = ''; // Do not print this again
155
+			} else {
156
+				$label = $fact->getLabel();
157
+			}
158
+			break;
159
+		default:
160
+			// Normal fact/event
161
+			$label = $fact->getLabel();
162
+			break;
163 163
 		}
164 164
 
165 165
 		echo '<tr class="', $styleadd, '">';
@@ -208,15 +208,15 @@  discard block
 block discarded – undo
208 208
 		}
209 209
 
210 210
 		switch ($fact->getTag()) {
211
-			case '_BIRT_CHIL':
212
-				echo '<br>', /* I18N: Abbreviation for "number %s" */
213
-				I18N::translate('#%s', ++$n_chil);
214
-				break;
215
-			case '_BIRT_GCHI':
216
-			case '_BIRT_GCH1':
217
-			case '_BIRT_GCH2':
218
-				echo '<br>', I18N::translate('#%s', ++$n_gchi);
219
-				break;
211
+		case '_BIRT_CHIL':
212
+			echo '<br>', /* I18N: Abbreviation for "number %s" */
213
+			I18N::translate('#%s', ++$n_chil);
214
+			break;
215
+		case '_BIRT_GCHI':
216
+		case '_BIRT_GCH1':
217
+		case '_BIRT_GCH2':
218
+			echo '<br>', I18N::translate('#%s', ++$n_gchi);
219
+			break;
220 220
 		}
221 221
 
222 222
 		echo '</td><td class="optionbox ', $styleadd, ' wrap">';
@@ -237,92 +237,92 @@  discard block
 block discarded – undo
237 237
 
238 238
 		// Print the value of this fact/event
239 239
 		switch ($fact->getTag()) {
240
-			case 'ADDR':
241
-				echo $fact->getValue();
242
-				break;
243
-			case 'AFN':
244
-				echo '<div class="field"><a href="https://familysearch.org/search/tree/results#count=20&query=afn:', Filter::escapeUrl($fact->getValue()), '">', Filter::escapeHtml($fact->getValue()), '</a></div>';
245
-				break;
246
-			case 'ASSO':
247
-				// we handle this later, in format_asso_rela_record()
248
-				break;
249
-			case 'EMAIL':
250
-			case 'EMAI':
251
-			case '_EMAIL':
252
-				echo '<div class="field"><a href="mailto:', Filter::escapeHtml($fact->getValue()), '">', Filter::escapeHtml($fact->getValue()), '</a></div>';
253
-				break;
254
-			case 'FILE':
255
-				if (Auth::isEditor($fact->getParent()->getTree())) {
256
-					echo '<div class="field">', Filter::escapeHtml($fact->getValue()), '</div>';
257
-				}
258
-				break;
259
-			case 'RESN':
260
-				echo '<div class="field">';
261
-				switch ($fact->getValue()) {
262
-					case 'none':
263
-						// Note: "1 RESN none" is not valid gedcom.
264
-						// However, webtrees privacy rules will interpret it as "show an otherwise private record to public".
265
-						echo '<i class="icon-resn-none"></i> ', I18N::translate('Show to visitors');
266
-						break;
267
-					case 'privacy':
268
-						echo '<i class="icon-class-none"></i> ', I18N::translate('Show to members');
269
-						break;
270
-					case 'confidential':
271
-						echo '<i class="icon-confidential-none"></i> ', I18N::translate('Show to managers');
272
-						break;
273
-					case 'locked':
274
-						echo '<i class="icon-locked-none"></i> ', I18N::translate('Only managers can edit');
275
-						break;
276
-					default:
277
-						echo Filter::escapeHtml($fact->getValue());
278
-						break;
279
-				}
240
+		case 'ADDR':
241
+			echo $fact->getValue();
242
+			break;
243
+		case 'AFN':
244
+			echo '<div class="field"><a href="https://familysearch.org/search/tree/results#count=20&query=afn:', Filter::escapeUrl($fact->getValue()), '">', Filter::escapeHtml($fact->getValue()), '</a></div>';
245
+			break;
246
+		case 'ASSO':
247
+			// we handle this later, in format_asso_rela_record()
248
+			break;
249
+		case 'EMAIL':
250
+		case 'EMAI':
251
+		case '_EMAIL':
252
+			echo '<div class="field"><a href="mailto:', Filter::escapeHtml($fact->getValue()), '">', Filter::escapeHtml($fact->getValue()), '</a></div>';
253
+			break;
254
+		case 'FILE':
255
+			if (Auth::isEditor($fact->getParent()->getTree())) {
256
+				echo '<div class="field">', Filter::escapeHtml($fact->getValue()), '</div>';
257
+			}
258
+			break;
259
+		case 'RESN':
260
+			echo '<div class="field">';
261
+			switch ($fact->getValue()) {
262
+			case 'none':
263
+			// Note: "1 RESN none" is not valid gedcom.
264
+			// However, webtrees privacy rules will interpret it as "show an otherwise private record to public".
265
+			echo '<i class="icon-resn-none"></i> ', I18N::translate('Show to visitors');
266
+			break;
267
+			case 'privacy':
268
+			echo '<i class="icon-class-none"></i> ', I18N::translate('Show to members');
269
+			break;
270
+			case 'confidential':
271
+			echo '<i class="icon-confidential-none"></i> ', I18N::translate('Show to managers');
272
+			break;
273
+			case 'locked':
274
+			echo '<i class="icon-locked-none"></i> ', I18N::translate('Only managers can edit');
275
+			break;
276
+			default:
277
+			echo Filter::escapeHtml($fact->getValue());
278
+			break;
279
+			}
280 280
 				echo '</div>';
281 281
 				break;
282
-			case 'PUBL': // Publication details might contain URLs.
283
-				echo '<div class="field">', Filter::expandUrls($fact->getValue()), '</div>';
284
-				break;
285
-			case 'REPO':
286
-				if (preg_match('/^@(' . WT_REGEX_XREF . ')@$/', $fact->getValue(), $match)) {
287
-					self::printRepositoryRecord($match[1]);
288
-				} else {
289
-					echo '<div class="error">', Filter::escapeHtml($fact->getValue()), '</div>';
290
-				}
291
-				break;
292
-			case 'URL':
293
-			case '_URL':
294
-			case 'WWW':
295
-				echo '<div class="field"><a href="', Filter::escapeHtml($fact->getValue()), '">', Filter::escapeHtml($fact->getValue()), '</a></div>';
296
-				break;
297
-			case 'TEXT': // 0 SOUR / 1 TEXT
298
-				echo '<div class="field">', nl2br(Filter::escapeHtml($fact->getValue()), false), '</div>';
299
-				break;
282
+		case 'PUBL': // Publication details might contain URLs.
283
+			echo '<div class="field">', Filter::expandUrls($fact->getValue()), '</div>';
284
+			break;
285
+		case 'REPO':
286
+			if (preg_match('/^@(' . WT_REGEX_XREF . ')@$/', $fact->getValue(), $match)) {
287
+				self::printRepositoryRecord($match[1]);
288
+			} else {
289
+				echo '<div class="error">', Filter::escapeHtml($fact->getValue()), '</div>';
290
+			}
291
+			break;
292
+		case 'URL':
293
+		case '_URL':
294
+		case 'WWW':
295
+			echo '<div class="field"><a href="', Filter::escapeHtml($fact->getValue()), '">', Filter::escapeHtml($fact->getValue()), '</a></div>';
296
+			break;
297
+		case 'TEXT': // 0 SOUR / 1 TEXT
298
+			echo '<div class="field">', nl2br(Filter::escapeHtml($fact->getValue()), false), '</div>';
299
+			break;
300
+		default:
301
+			// Display the value for all other facts/events
302
+			switch ($fact->getValue()) {
303
+			case '':
304
+			// Nothing to display
305
+			break;
306
+			case 'N':
307
+			// Not valid GEDCOM
308
+			echo '<div class="field">', I18N::translate('No'), '</div>';
309
+			break;
310
+			case 'Y':
311
+			// Do not display "Yes".
312
+			break;
300 313
 			default:
301
-				// Display the value for all other facts/events
302
-				switch ($fact->getValue()) {
303
-					case '':
304
-						// Nothing to display
305
-						break;
306
-					case 'N':
307
-						// Not valid GEDCOM
308
-						echo '<div class="field">', I18N::translate('No'), '</div>';
309
-						break;
310
-					case 'Y':
311
-						// Do not display "Yes".
312
-						break;
313
-					default:
314
-						if (preg_match('/^@(' . WT_REGEX_XREF . ')@$/', $fact->getValue(), $match)) {
315
-							$target = GedcomRecord::getInstance($match[1], $fact->getParent()->getTree());
316
-							if ($target) {
317
-								echo '<div><a href="', $target->getHtmlUrl(), '">', $target->getFullName(), '</a></div>';
318
-							} else {
319
-								echo '<div class="error">', Filter::escapeHtml($fact->getValue()), '</div>';
320
-							}
321
-						} else {
322
-							echo '<div class="field"><span dir="auto">', Filter::escapeHtml($fact->getValue()), '</span></div>';
323
-						}
324
-						break;
325
-				}
314
+			if (preg_match('/^@(' . WT_REGEX_XREF . ')@$/', $fact->getValue(), $match)) {
315
+			$target = GedcomRecord::getInstance($match[1], $fact->getParent()->getTree());
316
+			if ($target) {
317
+				echo '<div><a href="', $target->getHtmlUrl(), '">', $target->getFullName(), '</a></div>';
318
+			} else {
319
+				echo '<div class="error">', Filter::escapeHtml($fact->getValue()), '</div>';
320
+			}
321
+			} else {
322
+			echo '<div class="field"><span dir="auto">', Filter::escapeHtml($fact->getValue()), '</span></div>';
323
+			}
324
+			break;
325
+			}
326 326
 				break;
327 327
 		}
328 328
 
@@ -362,118 +362,118 @@  discard block
 block discarded – undo
362 362
 		preg_match_all('/\n2 (' . WT_REGEX_TAG . ') (.+)/', $fact->getGedcom(), $matches, PREG_SET_ORDER);
363 363
 		foreach ($matches as $match) {
364 364
 			switch ($match[1]) {
365
-				case 'DATE':
366
-				case 'TIME':
367
-				case 'AGE':
368
-				case 'PLAC':
369
-				case 'ADDR':
370
-				case 'ALIA':
371
-				case 'ASSO':
372
-				case '_ASSO':
373
-				case 'DESC':
374
-				case 'RELA':
375
-				case 'STAT':
376
-				case 'TEMP':
377
-				case 'TYPE':
378
-				case 'FAMS':
379
-				case 'CONT':
380
-					// These were already shown at the beginning
381
-					break;
382
-				case 'NOTE':
383
-				case 'OBJE':
384
-				case 'SOUR':
385
-					// These will be shown at the end
386
-					break;
387
-				case 'EVEN': // 0 SOUR / 1 DATA / 2 EVEN / 3 DATE / 3 PLAC
388
-					$events = array();
389
-					foreach (preg_split('/ *, */', $match[2]) as $event) {
390
-						$events[] = GedcomTag::getLabel($event);
391
-					}
392
-					if (count($events) == 1) {
393
-						echo GedcomTag::getLabelValue('EVEN', $event);
394
-					} else {
395
-						echo GedcomTag::getLabelValue('EVEN', implode(I18N::$list_separator, $events));
396
-					}
397
-					if (preg_match('/\n3 DATE (.+)/', $fact->getGedcom(), $date_match)) {
398
-						$date = new Date($date_match[1]);
399
-						echo GedcomTag::getLabelValue('DATE', $date->display());
400
-					}
401
-					if (preg_match('/\n3 PLAC (.+)/', $fact->getGedcom(), $plac_match)) {
402
-						echo GedcomTag::getLabelValue('PLAC', $plac_match[1]);
403
-					}
404
-					break;
405
-				case 'FAMC': // 0 INDI / 1 ADOP / 2 FAMC / 3 ADOP
406
-					$family = Family::getInstance(str_replace('@', '', $match[2]), $fact->getParent()->getTree());
407
-					if ($family) {
408
-						echo GedcomTag::getLabelValue('FAM', '<a href="' . $family->getHtmlUrl() . '">' . $family->getFullName() . '</a>');
409
-						if (preg_match('/\n3 ADOP (HUSB|WIFE|BOTH)/', $fact->getGedcom(), $match)) {
410
-							echo GedcomTag::getLabelValue('ADOP', GedcomCodeAdop::getValue($match[1], $label_person));
411
-						}
412
-					} else {
413
-						echo GedcomTag::getLabelValue('FAM', '<span class="error">' . $match[2] . '</span>');
414
-					}
415
-					break;
416
-				case '_WT_USER':
417
-					$user = User::findByIdentifier($match[2]); // may not exist
418
-					if ($user) {
419
-						echo GedcomTag::getLabelValue('_WT_USER', $user->getRealNameHtml());
420
-					} else {
421
-						echo GedcomTag::getLabelValue('_WT_USER', Filter::escapeHtml($match[2]));
422
-					}
423
-					break;
424
-				case 'RESN':
425
-					switch ($match[2]) {
426
-						case 'none':
427
-							// Note: "2 RESN none" is not valid gedcom.
428
-							// However, webtrees privacy rules will interpret it as "show an otherwise private fact to public".
429
-							echo GedcomTag::getLabelValue('RESN', '<i class="icon-resn-none"></i> ' . I18N::translate('Show to visitors'));
430
-							break;
431
-						case 'privacy':
432
-							echo GedcomTag::getLabelValue('RESN', '<i class="icon-resn-privacy"></i> ' . I18N::translate('Show to members'));
433
-							break;
434
-						case 'confidential':
435
-							echo GedcomTag::getLabelValue('RESN', '<i class="icon-resn-confidential"></i> ' . I18N::translate('Show to managers'));
436
-							break;
437
-						case 'locked':
438
-							echo GedcomTag::getLabelValue('RESN', '<i class="icon-resn-locked"></i> ' . I18N::translate('Only managers can edit'));
439
-							break;
440
-						default:
441
-							echo GedcomTag::getLabelValue('RESN', Filter::escapeHtml($match[2]));
442
-							break;
443
-					}
444
-					break;
445
-				case 'CALN':
446
-					echo GedcomTag::getLabelValue('CALN', Filter::expandUrls($match[2]));
447
-					break;
448
-				case 'FORM': // 0 OBJE / 1 FILE / 2 FORM / 3 TYPE
449
-					echo GedcomTag::getLabelValue('FORM', $match[2]);
450
-					if (preg_match('/\n3 TYPE (.+)/', $fact->getGedcom(), $type_match)) {
451
-						echo GedcomTag::getLabelValue('TYPE', GedcomTag::getFileFormTypeValue($type_match[1]));
365
+			case 'DATE':
366
+			case 'TIME':
367
+			case 'AGE':
368
+			case 'PLAC':
369
+			case 'ADDR':
370
+			case 'ALIA':
371
+			case 'ASSO':
372
+			case '_ASSO':
373
+			case 'DESC':
374
+			case 'RELA':
375
+			case 'STAT':
376
+			case 'TEMP':
377
+			case 'TYPE':
378
+			case 'FAMS':
379
+			case 'CONT':
380
+				// These were already shown at the beginning
381
+				break;
382
+			case 'NOTE':
383
+			case 'OBJE':
384
+			case 'SOUR':
385
+				// These will be shown at the end
386
+				break;
387
+			case 'EVEN': // 0 SOUR / 1 DATA / 2 EVEN / 3 DATE / 3 PLAC
388
+				$events = array();
389
+				foreach (preg_split('/ *, */', $match[2]) as $event) {
390
+					$events[] = GedcomTag::getLabel($event);
391
+				}
392
+				if (count($events) == 1) {
393
+					echo GedcomTag::getLabelValue('EVEN', $event);
394
+				} else {
395
+					echo GedcomTag::getLabelValue('EVEN', implode(I18N::$list_separator, $events));
396
+				}
397
+				if (preg_match('/\n3 DATE (.+)/', $fact->getGedcom(), $date_match)) {
398
+					$date = new Date($date_match[1]);
399
+					echo GedcomTag::getLabelValue('DATE', $date->display());
400
+				}
401
+				if (preg_match('/\n3 PLAC (.+)/', $fact->getGedcom(), $plac_match)) {
402
+					echo GedcomTag::getLabelValue('PLAC', $plac_match[1]);
403
+				}
404
+				break;
405
+			case 'FAMC': // 0 INDI / 1 ADOP / 2 FAMC / 3 ADOP
406
+				$family = Family::getInstance(str_replace('@', '', $match[2]), $fact->getParent()->getTree());
407
+				if ($family) {
408
+					echo GedcomTag::getLabelValue('FAM', '<a href="' . $family->getHtmlUrl() . '">' . $family->getFullName() . '</a>');
409
+					if (preg_match('/\n3 ADOP (HUSB|WIFE|BOTH)/', $fact->getGedcom(), $match)) {
410
+						echo GedcomTag::getLabelValue('ADOP', GedcomCodeAdop::getValue($match[1], $label_person));
452 411
 					}
453
-					break;
454
-				case 'URL':
455
-				case '_URL':
456
-				case 'WWW':
457
-					$link = '<a href="' . Filter::escapeHtml($match[2]) . '">' . Filter::escapeHtml($match[2]) . '</a>';
458
-					echo GedcomTag::getLabelValue($fact->getTag() . ':' . $match[1], $link);
459
-					break;
412
+				} else {
413
+					echo GedcomTag::getLabelValue('FAM', '<span class="error">' . $match[2] . '</span>');
414
+				}
415
+				break;
416
+			case '_WT_USER':
417
+				$user = User::findByIdentifier($match[2]); // may not exist
418
+				if ($user) {
419
+					echo GedcomTag::getLabelValue('_WT_USER', $user->getRealNameHtml());
420
+				} else {
421
+					echo GedcomTag::getLabelValue('_WT_USER', Filter::escapeHtml($match[2]));
422
+				}
423
+				break;
424
+			case 'RESN':
425
+				switch ($match[2]) {
426
+				case 'none':
427
+				// Note: "2 RESN none" is not valid gedcom.
428
+				// However, webtrees privacy rules will interpret it as "show an otherwise private fact to public".
429
+				echo GedcomTag::getLabelValue('RESN', '<i class="icon-resn-none"></i> ' . I18N::translate('Show to visitors'));
430
+				break;
431
+				case 'privacy':
432
+				echo GedcomTag::getLabelValue('RESN', '<i class="icon-resn-privacy"></i> ' . I18N::translate('Show to members'));
433
+				break;
434
+				case 'confidential':
435
+				echo GedcomTag::getLabelValue('RESN', '<i class="icon-resn-confidential"></i> ' . I18N::translate('Show to managers'));
436
+				break;
437
+				case 'locked':
438
+				echo GedcomTag::getLabelValue('RESN', '<i class="icon-resn-locked"></i> ' . I18N::translate('Only managers can edit'));
439
+				break;
460 440
 				default:
461
-					if (!$fact->getParent()->getTree()->getPreference('HIDE_GEDCOM_ERRORS') || GedcomTag::isTag($match[1])) {
462
-						if (preg_match('/^@(' . WT_REGEX_XREF . ')@$/', $match[2], $xmatch)) {
463
-							// Links
464
-							$linked_record = GedcomRecord::getInstance($xmatch[1], $fact->getParent()->getTree());
465
-							if ($linked_record) {
466
-								$link = '<a href="' . $linked_record->getHtmlUrl() . '">' . $linked_record->getFullName() . '</a>';
467
-								echo GedcomTag::getLabelValue($fact->getTag() . ':' . $match[1], $link);
468
-							} else {
469
-								echo GedcomTag::getLabelValue($fact->getTag() . ':' . $match[1], Filter::escapeHtml($match[2]));
470
-							}
441
+				echo GedcomTag::getLabelValue('RESN', Filter::escapeHtml($match[2]));
442
+				break;
443
+				}
444
+					break;
445
+			case 'CALN':
446
+				echo GedcomTag::getLabelValue('CALN', Filter::expandUrls($match[2]));
447
+				break;
448
+			case 'FORM': // 0 OBJE / 1 FILE / 2 FORM / 3 TYPE
449
+				echo GedcomTag::getLabelValue('FORM', $match[2]);
450
+				if (preg_match('/\n3 TYPE (.+)/', $fact->getGedcom(), $type_match)) {
451
+					echo GedcomTag::getLabelValue('TYPE', GedcomTag::getFileFormTypeValue($type_match[1]));
452
+				}
453
+				break;
454
+			case 'URL':
455
+			case '_URL':
456
+			case 'WWW':
457
+				$link = '<a href="' . Filter::escapeHtml($match[2]) . '">' . Filter::escapeHtml($match[2]) . '</a>';
458
+				echo GedcomTag::getLabelValue($fact->getTag() . ':' . $match[1], $link);
459
+				break;
460
+			default:
461
+				if (!$fact->getParent()->getTree()->getPreference('HIDE_GEDCOM_ERRORS') || GedcomTag::isTag($match[1])) {
462
+					if (preg_match('/^@(' . WT_REGEX_XREF . ')@$/', $match[2], $xmatch)) {
463
+						// Links
464
+						$linked_record = GedcomRecord::getInstance($xmatch[1], $fact->getParent()->getTree());
465
+						if ($linked_record) {
466
+							$link = '<a href="' . $linked_record->getHtmlUrl() . '">' . $linked_record->getFullName() . '</a>';
467
+							echo GedcomTag::getLabelValue($fact->getTag() . ':' . $match[1], $link);
471 468
 						} else {
472
-							// Non links
473 469
 							echo GedcomTag::getLabelValue($fact->getTag() . ':' . $match[1], Filter::escapeHtml($match[2]));
474 470
 						}
471
+					} else {
472
+						// Non links
473
+						echo GedcomTag::getLabelValue($fact->getTag() . ':' . $match[1], Filter::escapeHtml($match[2]));
475 474
 					}
476
-					break;
475
+				}
476
+				break;
477 477
 			}
478 478
 		}
479 479
 		echo self::printFactSources($fact->getGedcom(), 2);
@@ -815,23 +815,23 @@  discard block
 block discarded – undo
815 815
 						foreach ($rmatches[1] as $rmatch) {
816 816
 							echo '<br><span class="label">', GedcomTag::getLabel('RESN'), ':</span> <span class="field">';
817 817
 							switch ($rmatch) {
818
-								case 'none':
819
-									// Note: "2 RESN none" is not valid gedcom, and the GUI will not let you add it.
820
-									// However, webtrees privacy rules will interpret it as "show an otherwise private fact to public".
821
-									echo '<i class="icon-resn-none"></i> ', I18N::translate('Show to visitors');
822
-									break;
823
-								case 'privacy':
824
-									echo '<i class="icon-resn-privacy"></i> ', I18N::translate('Show to members');
825
-									break;
826
-								case 'confidential':
827
-									echo '<i class="icon-resn-confidential"></i> ', I18N::translate('Show to managers');
828
-									break;
829
-								case 'locked':
830
-									echo '<i class="icon-resn-locked"></i> ', I18N::translate('Only managers can edit');
831
-									break;
832
-								default:
833
-									echo $rmatch;
834
-									break;
818
+							case 'none':
819
+								// Note: "2 RESN none" is not valid gedcom, and the GUI will not let you add it.
820
+								// However, webtrees privacy rules will interpret it as "show an otherwise private fact to public".
821
+								echo '<i class="icon-resn-none"></i> ', I18N::translate('Show to visitors');
822
+								break;
823
+							case 'privacy':
824
+								echo '<i class="icon-resn-privacy"></i> ', I18N::translate('Show to members');
825
+								break;
826
+							case 'confidential':
827
+								echo '<i class="icon-resn-confidential"></i> ', I18N::translate('Show to managers');
828
+								break;
829
+							case 'locked':
830
+								echo '<i class="icon-resn-locked"></i> ', I18N::translate('Only managers can edit');
831
+								break;
832
+							default:
833
+								echo $rmatch;
834
+								break;
835 835
 							}
836 836
 							echo '</span>';
837 837
 						}
@@ -1081,23 +1081,23 @@  discard block
 block discarded – undo
1081 1081
 				foreach ($matches[1] as $match) {
1082 1082
 					echo '<br><span class="label">', GedcomTag::getLabel('RESN'), ':</span> <span class="field">';
1083 1083
 					switch ($match) {
1084
-						case 'none':
1085
-							// Note: "2 RESN none" is not valid gedcom, and the GUI will not let you add it.
1086
-							// However, webtrees privacy rules will interpret it as "show an otherwise private fact to public".
1087
-							echo '<i class="icon-resn-none"></i> ', I18N::translate('Show to visitors');
1088
-							break;
1089
-						case 'privacy':
1090
-							echo '<i class="icon-resn-privacy"></i> ', I18N::translate('Show to members');
1091
-							break;
1092
-						case 'confidential':
1093
-							echo '<i class="icon-resn-confidential"></i> ', I18N::translate('Show to managers');
1094
-							break;
1095
-						case 'locked':
1096
-							echo '<i class="icon-resn-locked"></i> ', I18N::translate('Only managers can edit');
1097
-							break;
1098
-						default:
1099
-							echo $match;
1100
-							break;
1084
+					case 'none':
1085
+						// Note: "2 RESN none" is not valid gedcom, and the GUI will not let you add it.
1086
+						// However, webtrees privacy rules will interpret it as "show an otherwise private fact to public".
1087
+						echo '<i class="icon-resn-none"></i> ', I18N::translate('Show to visitors');
1088
+						break;
1089
+					case 'privacy':
1090
+						echo '<i class="icon-resn-privacy"></i> ', I18N::translate('Show to members');
1091
+						break;
1092
+					case 'confidential':
1093
+						echo '<i class="icon-resn-confidential"></i> ', I18N::translate('Show to managers');
1094
+						break;
1095
+					case 'locked':
1096
+						echo '<i class="icon-resn-locked"></i> ', I18N::translate('Only managers can edit');
1097
+						break;
1098
+					default:
1099
+						echo $match;
1100
+						break;
1101 1101
 					}
1102 1102
 					echo '</span>';
1103 1103
 				}
@@ -1198,12 +1198,12 @@  discard block
 block discarded – undo
1198 1198
 					}
1199 1199
 
1200 1200
 					switch ($media->isPrimary()) {
1201
-						case 'Y':
1202
-							echo GedcomTag::getLabelValue('_PRIM', I18N::translate('yes'));
1203
-							break;
1204
-						case 'N':
1205
-							echo GedcomTag::getLabelValue('_PRIM', I18N::translate('no'));
1206
-							break;
1201
+					case 'Y':
1202
+						echo GedcomTag::getLabelValue('_PRIM', I18N::translate('yes'));
1203
+						break;
1204
+					case 'N':
1205
+						echo GedcomTag::getLabelValue('_PRIM', I18N::translate('no'));
1206
+						break;
1207 1207
 					}
1208 1208
 					echo FunctionsPrint::printFactNotes($media->getGedcom(), 1);
1209 1209
 					echo self::printFactSources($media->getGedcom(), 1);
Please login to merge, or discard this patch.
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -1,18 +1,18 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * webtrees: online genealogy
4
- * Copyright (C) 2016 webtrees development team
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- * You should have received a copy of the GNU General Public License
14
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
- */
3
+	 * webtrees: online genealogy
4
+	 * Copyright (C) 2016 webtrees development team
5
+	 * This program is free software: you can redistribute it and/or modify
6
+	 * it under the terms of the GNU General Public License as published by
7
+	 * the Free Software Foundation, either version 3 of the License, or
8
+	 * (at your option) any later version.
9
+	 * This program is distributed in the hope that it will be useful,
10
+	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+	 * GNU General Public License for more details.
13
+	 * You should have received a copy of the GNU General Public License
14
+	 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+	 */
16 16
 namespace Fisharebest\Webtrees;
17 17
 
18 18
 use Fisharebest\Webtrees\Theme\AdministrationTheme;
Please login to merge, or discard this patch.
app/GedcomTag.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -1829,13 +1829,13 @@
 block discarded – undo
1829 1829
 				'NATU', 'EMIG', 'IMMI', 'CENS', 'PROB', 'WILL', 'GRAD', 'RETI', 'EVEN',
1830 1830
 				'CAST', 'DSCR', 'EDUC', 'IDNO', 'NATI', 'NCHI', 'NMR',
1831 1831
 				'OCCU', 'PROP', 'RELI', 'RESI', 'SSN', 'TITL', 'FACT',
1832
-				'BAPL', 'CONL', 'ENDL',	'SLGC',
1832
+				'BAPL', 'CONL', 'ENDL', 'SLGC',
1833 1833
 				'SUBM', 'ASSO', 'ALIA', 'ANCI', 'DESI', 'RFN', 'AFN',
1834 1834
 				'REFN', 'RIN', 'CHAN', 'NOTE', 'SHARED_NOTE', 'SOUR', 'OBJE',
1835 1835
 				// non standard tags
1836 1836
 				'_BRTM', '_DEG', '_EYEC', '_FNRL', '_HAIR', '_HEIG', '_HNM', '_HOL',
1837 1837
 				'_INTE', '_MDCL', '_MEDC', '_MILI', '_MILT', '_NAME', '_NAMS',
1838
-				'_NLIV', '_NMAR', '_PRMN',  '_TODO', '_UID', '_WEIG', '_YART',
1838
+				'_NLIV', '_NMAR', '_PRMN', '_TODO', '_UID', '_WEIG', '_YART',
1839 1839
 			);
1840 1840
 			break;
1841 1841
 		case 'FAM':
Please login to merge, or discard this patch.
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -1,18 +1,18 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * webtrees: online genealogy
4
- * Copyright (C) 2016 webtrees development team
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- * You should have received a copy of the GNU General Public License
14
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
- */
3
+	 * webtrees: online genealogy
4
+	 * Copyright (C) 2016 webtrees development team
5
+	 * This program is free software: you can redistribute it and/or modify
6
+	 * it under the terms of the GNU General Public License as published by
7
+	 * the Free Software Foundation, either version 3 of the License, or
8
+	 * (at your option) any later version.
9
+	 * This program is distributed in the hope that it will be useful,
10
+	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+	 * GNU General Public License for more details.
13
+	 * You should have received a copy of the GNU General Public License
14
+	 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+	 */
16 16
 namespace Fisharebest\Webtrees;
17 17
 
18 18
 use Fisharebest\Webtrees\Theme\AdministrationTheme;
Please login to merge, or discard this patch.
admin_trees_renumber.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -1,18 +1,18 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * webtrees: online genealogy
4
- * Copyright (C) 2016 webtrees development team
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- * You should have received a copy of the GNU General Public License
14
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
- */
3
+	 * webtrees: online genealogy
4
+	 * Copyright (C) 2016 webtrees development team
5
+	 * This program is free software: you can redistribute it and/or modify
6
+	 * it under the terms of the GNU General Public License as published by
7
+	 * the Free Software Foundation, either version 3 of the License, or
8
+	 * (at your option) any later version.
9
+	 * This program is distributed in the hope that it will be useful,
10
+	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+	 * GNU General Public License for more details.
13
+	 * You should have received a copy of the GNU General Public License
14
+	 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+	 */
16 16
 namespace Fisharebest\Webtrees;
17 17
 
18 18
 use Fisharebest\Webtrees\Theme\AdministrationTheme;
Please login to merge, or discard this patch.
admin_users_bulk.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -1,18 +1,18 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * webtrees: online genealogy
4
- * Copyright (C) 2016 webtrees development team
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- * You should have received a copy of the GNU General Public License
14
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
- */
3
+	 * webtrees: online genealogy
4
+	 * Copyright (C) 2016 webtrees development team
5
+	 * This program is free software: you can redistribute it and/or modify
6
+	 * it under the terms of the GNU General Public License as published by
7
+	 * the Free Software Foundation, either version 3 of the License, or
8
+	 * (at your option) any later version.
9
+	 * This program is distributed in the hope that it will be useful,
10
+	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+	 * GNU General Public License for more details.
13
+	 * You should have received a copy of the GNU General Public License
14
+	 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+	 */
16 16
 namespace Fisharebest\Webtrees;
17 17
 
18 18
 use Fisharebest\Webtrees\Theme\AdministrationTheme;
Please login to merge, or discard this patch.
app/Auth.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -1,18 +1,18 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * webtrees: online genealogy
4
- * Copyright (C) 2016 webtrees development team
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- * You should have received a copy of the GNU General Public License
14
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
- */
3
+	 * webtrees: online genealogy
4
+	 * Copyright (C) 2016 webtrees development team
5
+	 * This program is free software: you can redistribute it and/or modify
6
+	 * it under the terms of the GNU General Public License as published by
7
+	 * the Free Software Foundation, either version 3 of the License, or
8
+	 * (at your option) any later version.
9
+	 * This program is distributed in the hope that it will be useful,
10
+	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+	 * GNU General Public License for more details.
13
+	 * You should have received a copy of the GNU General Public License
14
+	 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+	 */
16 16
 namespace Fisharebest\Webtrees;
17 17
 
18 18
 use Fisharebest\Webtrees\Theme\AdministrationTheme;
Please login to merge, or discard this patch.
app/Census/AbstractCensusColumn.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -1,18 +1,18 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * webtrees: online genealogy
4
- * Copyright (C) 2016 webtrees development team
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- * You should have received a copy of the GNU General Public License
14
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
- */
3
+	 * webtrees: online genealogy
4
+	 * Copyright (C) 2016 webtrees development team
5
+	 * This program is free software: you can redistribute it and/or modify
6
+	 * it under the terms of the GNU General Public License as published by
7
+	 * the Free Software Foundation, either version 3 of the License, or
8
+	 * (at your option) any later version.
9
+	 * This program is distributed in the hope that it will be useful,
10
+	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+	 * GNU General Public License for more details.
13
+	 * You should have received a copy of the GNU General Public License
14
+	 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+	 */
16 16
 namespace Fisharebest\Webtrees;
17 17
 
18 18
 use Fisharebest\Webtrees\Theme\AdministrationTheme;
Please login to merge, or discard this patch.
app/Census/Census.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -1,18 +1,18 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * webtrees: online genealogy
4
- * Copyright (C) 2016 webtrees development team
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- * You should have received a copy of the GNU General Public License
14
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
- */
3
+	 * webtrees: online genealogy
4
+	 * Copyright (C) 2016 webtrees development team
5
+	 * This program is free software: you can redistribute it and/or modify
6
+	 * it under the terms of the GNU General Public License as published by
7
+	 * the Free Software Foundation, either version 3 of the License, or
8
+	 * (at your option) any later version.
9
+	 * This program is distributed in the hope that it will be useful,
10
+	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+	 * GNU General Public License for more details.
13
+	 * You should have received a copy of the GNU General Public License
14
+	 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+	 */
16 16
 namespace Fisharebest\Webtrees;
17 17
 
18 18
 use Fisharebest\Webtrees\Theme\AdministrationTheme;
Please login to merge, or discard this patch.
app/Census/CensusColumnAge.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -1,18 +1,18 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * webtrees: online genealogy
4
- * Copyright (C) 2016 webtrees development team
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- * You should have received a copy of the GNU General Public License
14
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
- */
3
+	 * webtrees: online genealogy
4
+	 * Copyright (C) 2016 webtrees development team
5
+	 * This program is free software: you can redistribute it and/or modify
6
+	 * it under the terms of the GNU General Public License as published by
7
+	 * the Free Software Foundation, either version 3 of the License, or
8
+	 * (at your option) any later version.
9
+	 * This program is distributed in the hope that it will be useful,
10
+	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+	 * GNU General Public License for more details.
13
+	 * You should have received a copy of the GNU General Public License
14
+	 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+	 */
16 16
 namespace Fisharebest\Webtrees;
17 17
 
18 18
 use Fisharebest\Webtrees\Theme\AdministrationTheme;
Please login to merge, or discard this patch.
app/Census/CensusColumnAgeFemale.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -1,18 +1,18 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * webtrees: online genealogy
4
- * Copyright (C) 2016 webtrees development team
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- * You should have received a copy of the GNU General Public License
14
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
- */
3
+	 * webtrees: online genealogy
4
+	 * Copyright (C) 2016 webtrees development team
5
+	 * This program is free software: you can redistribute it and/or modify
6
+	 * it under the terms of the GNU General Public License as published by
7
+	 * the Free Software Foundation, either version 3 of the License, or
8
+	 * (at your option) any later version.
9
+	 * This program is distributed in the hope that it will be useful,
10
+	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+	 * GNU General Public License for more details.
13
+	 * You should have received a copy of the GNU General Public License
14
+	 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+	 */
16 16
 namespace Fisharebest\Webtrees;
17 17
 
18 18
 use Fisharebest\Webtrees\Theme\AdministrationTheme;
Please login to merge, or discard this patch.