1<?php 2 3/** 4 * webtrees: online genealogy 5 * Copyright (C) 2023 webtrees development team 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <https://www.gnu.org/licenses/>. 16 */ 17 18declare(strict_types=1); 19 20namespace Fisharebest\Webtrees\Elements; 21 22use Fisharebest\Webtrees\I18N; 23 24use function strtoupper; 25 26/** 27 * CHILD_LINKAGE_STATUS := {Size=1:15} 28 * [challenged | disproven | proven] 29 * A status code that allows passing on the users opinion of the status of a 30 * child to family link. 31 * challenged = Linking this child to this family is suspect, but the linkage 32 * has been neither proven nor disproven. 33 * disproven = There has been a claim by some that this child belongs to this 34 * family, but the linkage has been disproven. 35 * proven = There has been a claim by some that this child does not belongs 36 * to this family, but the linkage has been proven. 37 */ 38class ChildLinkageStatus extends AbstractElement 39{ 40 public const VALUE_CHALLENGED = 'CHALLENGED'; 41 public const VALUE_DISPROVEN = 'DISPROVEN'; 42 public const VALUE_PROVEN = 'PROVEN'; 43 44 /** 45 * Convert a value to a canonical form. 46 * 47 * @param string $value 48 * 49 * @return string 50 */ 51 public function canonical(string $value): string 52 { 53 return strtoupper(parent::canonical($value)); 54 } 55 56 /** 57 * A list of controlled values for this element 58 * 59 * @return array<int|string,string> 60 */ 61 public function values(): array 62 { 63 return [ 64 '' => '', 65 self::VALUE_CHALLENGED => /* I18N: Status of child-parent link */ I18N::translate('challenged'), 66 self::VALUE_DISPROVEN => /* I18N: Status of child-parent link */ I18N::translate('disproven'), 67 self::VALUE_PROVEN => /* I18N: Status of child-parent link */ I18N::translate('proven'), 68 ]; 69 } 70} 71