. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Elements; use Fisharebest\Webtrees\I18N; use function array_key_exists; use function strtoupper; /** * For Gedcom-L * Programs with internal data fields "not married" or "never married" or a data field * "Status", should introduce a user-defined tag _STAT directly below of FAM: * _STAT can have the following values: * := [NOT MARRIED | NEVER MARRIED | UNKNOWN |] */ class FamilyStatusText extends AbstractElement { protected const SUBTAGS = [ 'DATE' => '0:1', 'PLAC' => '0:1', 'NOTE' => '0:M', 'SOUR' => '0:M', ]; /** * Convert a value to a canonical form. * * @param string $value * * @return string */ public function canonical(string $value): string { $value = parent::canonical($value); $upper = strtoupper($value); if (array_key_exists($upper, $this->values())) { return $upper; } return $value; } /** * A list of controlled values for this element * * @return array */ public function values(): array { return [ '' => '', 'NOT MARRIED' => I18N::translate('Not married'), 'NEVER MARRIED' => I18N::translate('Never married'), 'UNKNOWN' => I18N::translate('Unknown'), ]; } }