summaryrefslogtreecommitdiff
path: root/app/GedcomTag.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/GedcomTag.php')
-rw-r--r--app/GedcomTag.php85
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);