diff options
Diffstat (limited to 'app/GedcomTag.php')
| -rw-r--r-- | app/GedcomTag.php | 85 |
1 files changed, 71 insertions, 14 deletions
diff --git a/app/GedcomTag.php b/app/GedcomTag.php index 6495d9d4ed..0d2ad9bd49 100644 --- a/app/GedcomTag.php +++ b/app/GedcomTag.php @@ -1819,20 +1819,77 @@ class GedcomTag { * * @return string[] */ - public static function getPicklistFacts() { - // Just include facts that can be used at level 1 in a record - $tags = array( - 'ABBR', 'ADOP', 'AFN', 'ALIA', 'ANUL', 'ASSO', 'AUTH', 'BAPL', 'BAPM', 'BARM', - 'BASM', 'BIRT', 'BLES', 'BURI', 'CAST', 'CENS', 'CHAN', 'CHR', 'CHRA', 'CITN', - 'CONF', 'CONL', 'CREM', 'DEAT', 'DIV', 'DIVF', 'DSCR', 'EDUC', 'EMIG', 'ENDL', - 'ENGA', 'EVEN', 'FACT', 'FCOM', 'FORM', 'GRAD', 'IDNO', 'IMMI', 'LEGA', 'MARB', - 'MARC', 'MARL', 'MARR', 'MARS', 'NAME', 'NATI', 'NATU', 'NCHI', 'NICK', 'NMR', - 'OCCU', 'ORDI', 'ORDN', 'PROB', 'PROP', 'REFN', 'RELI', 'REPO', 'RESI', 'RESN', - 'RETI', 'RFN', 'RIN', 'SEX', 'SLGC', 'SLGS', 'SSN', 'SUBM', 'TITL', 'WILL', 'WWW', - '_BRTM', '_COML', '_DEG', '_EYEC', '_FNRL', '_HAIR', '_HEIG', '_HNM', '_HOL', - '_INTE', '_MARI', '_MBON', '_MDCL', '_MEDC', '_MILI', '_MILT', '_NAME', '_NAMS', - '_NLIV', '_NMAR', '_NMR', '_PRMN', '_SEPR', '_TODO', '_UID', '_WEIG', '_YART', - ); + public static function getPicklistFacts($factType) { + switch ($factType) { + case "sour": + $tags = array( + // Facts for sources + 'DATA', 'AUTH', 'TITL', 'ABBR', 'PUBL', 'TEXT', 'REPO', 'REFN', 'RIN', + 'CHAN', 'NOTE', 'SHARED_NOTE', 'OBJE', + // non standard tags + 'RESN', + ); + break; + case "fam": + $tags = array( + // Facts for families, left out HUSB, WIFE & CHIL links + 'RESN', 'ANUL', 'CENS', 'DIV', 'DIVF', 'ENGA', 'MARB', 'MARC', + 'MARR', 'MARL', 'MARS', 'RESI', 'EVEN', 'NCHI', 'SUBM', 'SLGS', + 'REFN', 'RIN', 'CHAN', 'NOTE', 'SHARED_NOTE', 'SOUR', 'OBJE', + // non standard tags + '_NMR', 'MARR_CIVIL', 'MARR_RELIGIOUS', 'MARR_PARTNERS', 'MARR_UNKNOWN', + '_COML', '_MBON', '_MARI', '_SEPR', '_TODO', + ); + break; + case "repo": + $tags = array( + // Facts for repositories + 'NAME', 'ADDR', 'PHON', 'EMAIL', 'FAX', 'WWW', + 'NOTE', 'SHARED_NOTE', 'REFN', 'RIN', 'CHAN', + // non standard tags + 'RESN', + ); + break; + case "place": + $tags = array( + // Facts for places + 'PLAC', 'FONE', 'ROMN', 'MAP', 'NOTE', 'SHARED_NOTE', + // non standard tags + '_HEB', + ); + break; + case "name": + $tags = array( + // Facts subordinate to NAME + 'TYPE', 'NPFX', 'GIVN', 'NICK', 'SPFX', 'SURN', 'NSFX', + 'NOTE', 'SHARED_NOTE', 'SOUR', 'FONE', 'ROMN', + // non standard tbDefinedTags + '_HEB', '_AKA', + ); + break; + case "indi": + $tags = array( + // Facts, attributes for individuals (no links to FAMs) + 'RESN', 'NAME', 'SEX', 'BIRT', 'CHR', 'DEAT', 'BURI', 'CREM', + 'ADOP', 'BAPM', 'BARM', 'BASM', 'BLES', 'CHRA', 'CONF', 'FCOM', 'ORDN', + 'NATU', 'EMIG', 'IMMI', 'CENS', 'PROB', 'WILL', 'GRAD', 'RETI', 'EVEN', + 'CAST', 'DSCR', 'EDUC', 'IDNO', 'NATI', 'NCHI', 'NMR', + 'OCCU', 'PROP', 'RELI', 'RESI', 'SSN', 'TITL', 'FACT', + 'BAPL', 'CONL', 'ENDL', 'SLGC', + 'SUBM', 'ASSO', 'ALIA', 'ANCI', 'DESI', 'RFN', 'AFN', + 'REFN', 'RIN', 'CHAN', 'NOTE', 'SHARED_NOTE', 'SOUR', 'OBJE', + // non standard tags + '_BRTM', '_DEG', '_EYEC', '_FNRL', '_HAIR', '_HEIG', '_HNM', '_HOL', + '_INTE', '_MDCL', '_MEDC', '_MILI', '_MILT', '_NAME', '_NAMS', + '_NLIV', '_NMAR', '_PRMN', '_TODO', '_UID', '_WEIG', '_YART', + ); + break; + default: + // This should only appear if an unknown field was used + $tags = array( + '_TODO', + ); + } $facts = array(); foreach ($tags as $tag) { $facts[$tag] = self::getLabel($tag, null); |
