(int) $x, $levels); $keys = array_keys($levels); $elements = []; $private_level = PHP_INT_MAX; foreach ($keys as $key) { $hierarchy[$levels[$key]] = $tags[$key]; $full_tag = implode(':', array_slice($hierarchy, 0, 1 + $levels[$key])); $elements[$key] = Registry::elementFactory()->make($full_tag); if ($elements[$key] instanceof AbstractXrefElement && preg_match('/^@(' . Gedcom::REGEX_XREF . ')@$/', $values[$key], $match) === 1) { $record = Registry::gedcomRecordFactory()->make($match[1], $tree); if ($record instanceof GedcomRecord && !$record->canShow()) { $private_level = min($private_level, $levels[$key]); } } if ($levels[$key] >= $private_level) { $values[$key] = ''; } else { $private_level = PHP_INT_MAX; } } ?> make($match[1], $tree) ?> id() ?> getPreference('EXPAND_SOURCES') === '1' ?>