@@ -23,6 +23,21 @@ public function parse(string $filename, string $slug, bool $progressBar = false)
2323 $ parser = new \PhpGedcom \Parser ();
2424 $ gedcom = @$ parser ->parse ($ filename );
2525
26+ /**
27+ * work
28+ */
29+
30+ $ head = $ gedcom ->getHead ();
31+ $ subn = $ gedcom ->getSubn ();
32+ $ subm = $ gedcom ->getSubm ();
33+ $ sour = $ gedcom ->getSour ();
34+ $ note = $ gedcom ->getNote ();
35+ $ repo = $ gedcom ->getRepo ();
36+ $ obje = $ gedcom ->getObje ();
37+
38+ /**
39+ * work end
40+ */
2641 $ individuals = $ gedcom ->getIndi ();
2742 $ families = $ gedcom ->getFam ();
2843 $ total = count ($ individuals ) + count ($ families );
@@ -89,14 +104,42 @@ private function getPerson($individual)
89104 $ name = current ($ individual ->getName ())->getName ();
90105 }
91106
92- $ sex = $ individual ->getSex ();
93- $ attr = $ individual ->getAttr ();
94- $ events = $ individual ->getEven ();
107+ // string value
108+ $ uid = $ individual ->getUid ();
109+ $ chan = $ individual ->getChan ();
110+ $ rin = $ individual ->getRin ();
111+ $ resn = $ individual ->getResn ();
112+ $ rfn = $ individual ->getRfn ();
113+ $ afn = $ individual ->getAfn ();
114+
115+ // array value
116+ $ note = $ individual ->getNote ();
117+ $ obje = $ individual ->getObje ();
118+ $ sour = $ individual ->getSour ();
119+ $ fams = $ individual ->getFams ();
120+ $ famc = $ individual ->getFamc ();
121+ $ alia = $ individual ->getAlia ();
122+ $ asso = $ individual ->getAsso ();
123+ $ subm = $ individual ->getSubm ();
124+ $ anci = $ individual ->getAnci ();
125+ $ desi = $ individual ->getDesi ();
126+ $ refn = $ individual ->getRefn ();
127+
128+ // object
129+ $ bapl = $ individual ->getBapl ();
130+ $ conl = $ individual ->getConl ();
131+ $ endl = $ individual ->getEndl ();
132+ $ slgc = $ individual ->getSlgc ();
133+
134+
135+ $ sex = preg_replace ("/[^MF]/ " , "" , $ individual ->getSex ());
136+ $ attr = $ individual ->getAllAttr ();
137+ $ events = $ individual ->getAllEven ();
95138
96139 if ($ givn == "" ) {
97140 $ givn = $ name ;
98141 }
99- $ person = Person::create (compact ('name ' , 'givn ' , 'surn ' , 'sex ' ));
142+ $ person = Person::updateOrCreate (compact ('name ' , 'givn ' , 'surn ' , 'sex ' ), compact ( ' name ' , ' givn ' , ' surn ' , ' sex ' , ' uid ' , ' chan ' , ' rin ' , ' resn ' , ' rfn ' , ' afn ' ));
100143 $ this ->persons_id [$ g_id ] = $ person ->id ;
101144
102145 if ($ events !== null ) {
@@ -126,15 +169,29 @@ private function getFamily($family)
126169 $ g_id = $ family ->getId ();
127170 $ husb = $ family ->getHusb ();
128171 $ wife = $ family ->getWife ();
129- $ description = NULL ;
130- $ type_id = 0 ;
172+
173+ // string
174+ $ chan = $ family ->getChan ();
175+ $ nchi = $ family ->getNchi ();
176+
177+ // array
178+ $ _slgs = $ family ->getSlgs ();
179+ $ _subm = $ family ->getSubm ();
180+ $ _refn = $ family ->getRefn ();
181+ $ _rin = $ family ->getRin ();
182+ $ _note = $ family ->getNote ();
183+ $ _sour = $ family ->getSour ();
184+ $ _obje = $ family ->getObje ();
185+
186+ $ description = NULL ;
187+ $ type_id = 0 ;
131188 $ children = $ family ->getChil ();
132- $ events = $ family ->getEven ();
189+ $ events = $ family ->getAllEven ();
133190
134191 $ husband_id = (isset ($ this ->persons_id [$ husb ])) ? $ this ->persons_id [$ husb ] : 0 ;
135192 $ wife_id = (isset ($ this ->persons_id [$ wife ])) ? $ this ->persons_id [$ wife ] : 0 ;
136193
137- $ family = Family::create (compact ('husband_id ' , 'wife_id ' , ' description ' , 'type_id ' ));
194+ $ family = Family::updateOrCreate (compact ('husband_id ' , 'wife_id ' ), compact ( ' husband_id ' , ' wife_id ' , ' description ' , 'type_id ' , ' chan ' , ' nchi ' ));
138195
139196 if ($ children !== null ) {
140197 foreach ($ children as $ child ) {
0 commit comments