1<?php 2 3/** 4 * webtrees: online genealogy 5 * Copyright (C) 2022 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 Fisharebest\Webtrees\Registry; 25 26use function strtoupper; 27use function uasort; 28 29/** 30 * An event which never happened. 31 */ 32class FamilyNonEvent extends AbstractElement 33{ 34 protected const SUBTAGS = [ 35 'DATE' => '0:1', 36 'NOTE' => '0:1', 37 'SOUR' => '0:1', 38 ]; 39 40 /** 41 * Convert a value to a canonical form. 42 * 43 * @param string $value 44 * 45 * @return string 46 */ 47 public function canonical(string $value): string 48 { 49 return strtoupper(parent::canonical($value)); 50 } 51 52 /** 53 * A list of controlled values for this element 54 * 55 * @return array<int|string,string> 56 */ 57 public function values(): array 58 { 59 $values = [ 60 '' => '', 61 'ANUL' => Registry::elementFactory()->make('FAM:ANUL')->label(), 62 'CENS' => Registry::elementFactory()->make('FAM:CENS')->label(), 63 'DIV' => Registry::elementFactory()->make('FAM:DIV')->label(), 64 'DIVF' => Registry::elementFactory()->make('FAM:DIVF')->label(), 65 'ENGA' => Registry::elementFactory()->make('FAM:ENGA')->label(), 66 'MARB' => Registry::elementFactory()->make('FAM:MARB')->label(), 67 'MARC' => Registry::elementFactory()->make('FAM:MARC')->label(), 68 'MARL' => Registry::elementFactory()->make('FAM:MARL')->label(), 69 'MARS' => Registry::elementFactory()->make('FAM:MARS')->label(), 70 'MARR' => Registry::elementFactory()->make('FAM:MARR')->label(), 71 ]; 72 73 uasort($values, I18N::comparator()); 74 75 return $values; 76 } 77} 78