function getStepFamilyLabel(WT_Family $step_family) { foreach ($this->getChildFamilies() as $family) { if ($family !== $step_family) { // Must be a step-family foreach ($family->getSpouses() as $parent) { foreach ($step_family->getSpouses() as $step_parent) { if ($parent === $step_parent) { // One common parent - must be a step family if ($parent->getSex() == 'M') { // Father’s family with someone else if ($step_family->getSpouse($step_parent)) { return WT_I18N::translate('Father’s family with %s', $step_family->getSpouse($step_parent)->getFullName()); } else { return WT_I18N::translate('Father’s family with an unknown individual'); } } else { // Mother’s family with someone else if ($step_family->getSpouse($step_parent)) { return WT_I18N::translate('Mother’s family with %s', $step_family->getSpouse($step_parent)->getFullName()); } else { return WT_I18N::translate('Mother’s family with an unknown individual'); } } } } } } } // Perahps same parents - but a different family record? return WT_I18N::translate('Family with parents'); }
function addFamilyDescendancy(WT_Family $family = null, $level = PHP_INT_MAX) { if (!$family) { return; } foreach ($family->getSpouses() as $spouse) { $this->addClipping($spouse); } foreach ($family->getChildren() as $child) { $this->addClipping($child); foreach ($child->getSpouseFamilies() as $child_family) { $this->addClipping($child_family); if ($level > 0) { $this->addFamilyDescendancy($child_family, $level - 1); // recurse on the childs family } } } }