", $alpha = WT_Filter::get('alpha'); // All surnames beginning with this letter where "@"=unknown and ","=none $surname = WT_Filter::get('surname'); // All indis with this surname $show_all = WT_Filter::get('show_all', 'no|yes', 'no'); // All indis // Long lists can be broken down by given name $show_all_firstnames = WT_Filter::get('show_all_firstnames', 'no|yes', 'no'); if ($show_all_firstnames=='yes') { $falpha=''; } else { $falpha = WT_Filter::get('falpha'); // All first names beginning with this letter } switch (WT_Filter::get('show_marnm', 'no|yes')) { case 'no': $show_marnm = false; Auth::user()->setPreference(WT_SCRIPT_NAME . '_show_marnm', $show_marnm); break; case 'yes': $show_marnm = true; Auth::user()->setPreference(WT_SCRIPT_NAME . '_show_marnm', $show_marnm); break; default: $show_marnm = Auth::user()->getPreference(WT_SCRIPT_NAME . '_show_marnm'); } // Make sure selections are consistent. // i.e. can’t specify show_all and surname at the same time. if ($show_all=='yes') { if ($show_all_firstnames=='yes') { $alpha = ''; $surname = ''; $legend = WT_I18N::translate('All'); $url = WT_SCRIPT_NAME.'?show_all=yes&ged='.WT_GEDURL; $show = 'indi'; } else if ($falpha) { $alpha = ''; $surname = ''; $legend = WT_I18N::translate('All').', '.WT_Filter::escapeHtml($falpha).'…'; $url = WT_SCRIPT_NAME.'?show_all=yes&ged='.WT_GEDURL; $show = 'indi'; } else { $alpha = ''; $surname = ''; $legend = WT_I18N::translate('All'); $url = WT_SCRIPT_NAME.'?show_all=yes'.'&ged='.WT_GEDURL; $show = WT_Filter::get('show', 'surn|indi', 'surn'); } } elseif ($surname) { $alpha=WT_Query_Name::initialLetter($surname); // so we can highlight the initial letter $show_all='no'; if ($surname=='@N.N.') { $legend=$UNKNOWN_NN; } else { $legend=WT_Filter::escapeHtml($surname); } $url=WT_SCRIPT_NAME.'?surname='.rawurlencode($surname).'&ged='.WT_GEDURL; switch($falpha) { case '': break; case '@': $legend.=', '.$UNKNOWN_PN; $url.='&falpha='.rawurlencode($falpha).'&ged='.WT_GEDURL; break; default: $legend.=', '.WT_Filter::escapeHtml($falpha).'…'; $url.='&falpha='.rawurlencode($falpha).'&ged='.WT_GEDURL; break; } $show='indi'; // SURN list makes no sense here } elseif ($alpha=='@') { $show_all = 'no'; $legend = $UNKNOWN_NN; $url = WT_SCRIPT_NAME.'?alpha='.rawurlencode($alpha).'&ged='.WT_GEDURL; $show = 'indi'; // SURN list makes no sense here } elseif ($alpha==',') { $show_all = 'no'; $legend = WT_I18N::translate('None'); $url = WT_SCRIPT_NAME.'?alpha='.rawurlencode($alpha).'&ged='.WT_GEDURL; $show = 'indi'; // SURN list makes no sense here } elseif ($alpha) { $show_all = 'no'; $legend = WT_Filter::escapeHtml($alpha).'…'; $url = WT_SCRIPT_NAME.'?alpha='.rawurlencode($alpha).'&ged='.WT_GEDURL; $show = WT_Filter::get('show', 'surn|indi', 'surn'); } else { $show_all = 'no'; $legend = '…'; $url = WT_SCRIPT_NAME.'?ged='.WT_GEDURL; $show = 'none'; // Don't show lists until something is chosen } $legend=''.$legend.''; $controller ->setPageTitle(WT_I18N::translate('Families').' : '.$legend) ->pageHeader(); echo '

', WT_I18N::translate('Families'), '

'; // Print a selection list of initial letters $list=array(); foreach (WT_Query_Name::surnameAlpha($show_marnm, true, WT_GED_ID) as $letter=>$count) { switch ($letter) { case '@': $html=$UNKNOWN_NN; break; case ',': $html=WT_I18N::translate('None'); break; default: $html=WT_Filter::escapeHtml($letter); break; } if ($count) { if ($letter==$alpha) { $list[]=''.$html.''; } else { $list[]=''.$html.''; } } else { $list[]=$html; } } // Search spiders don't get the "show all" option as the other links give them everything. if (!$SEARCH_SPIDER) { if ($show_all=='yes') { $list[]=''.WT_I18N::translate('All').''; } else { $list[]=''.WT_I18N::translate('All').''; } } echo '

', join(' | ', $list), '

'; // Search spiders don't get an option to show/hide the surname sublists, // nor does it make sense on the all/unknown/surname views if (!$SEARCH_SPIDER) { echo '

'; if ($show!='none') { if ($show_marnm) { echo '', WT_I18N::translate('Exclude individuals with “%s” as a married name', $legend), ''; } else { echo '', WT_I18N::translate('Include individuals with “%s” as a married name', $legend), ''; } if ($alpha!='@' && $alpha!=',' && !$surname) { if ($show=='surn') { echo '
', WT_I18N::translate('Show the list of individuals'), ''; } else { echo '
', WT_I18N::translate('Show the list of surnames'), ''; } } } echo '

'; } if ($show=='indi' || $show=='surn') { $surns=WT_Query_Name::surnames($surname, $alpha, $show_marnm, true, WT_GED_ID); if ($show=='surn') { // Show the surname list switch ($SURNAME_LIST_STYLE) { case 'style1'; echo format_surname_list($surns, 3, true, WT_SCRIPT_NAME); break; case 'style3': echo format_surname_tagcloud($surns, WT_SCRIPT_NAME, true); break; case 'style2': default: echo format_surname_table($surns, WT_SCRIPT_NAME); break; } } else { // Show the list $count=0; foreach ($surns as $surnames) { foreach ($surnames as $list) { $count+=count($list); } } // Don't sublists short lists. if ($count < $WT_TREE->getPreference('SUBLIST_TRIGGER_I')) { $falpha=''; $show_all_firstnames='no'; } else { $givn_initials=WT_Query_Name::givenAlpha($surname, $alpha, $show_marnm, true, WT_GED_ID); // Break long lists by initial letter of given name if ($surname || $show_all=='yes') { // Don't show the list until we have some filter criteria $show=($falpha || $show_all_firstnames=='yes') ? 'indi' : 'none'; $list=array(); foreach ($givn_initials as $givn_initial=>$count) { switch ($givn_initial) { case '@': $html=$UNKNOWN_PN; break; default: $html=WT_Filter::escapeHtml($givn_initial); break; } if ($count) { if ($show=='indi' && $givn_initial==$falpha && $show_all_firstnames=='no') { $list[]=''.$html.''; } else { $list[]=''.$html.''; } } else { $list[]=$html; } } // Search spiders don't get the "show all" option as the other links give them everything. if (!$SEARCH_SPIDER) { if ($show_all_firstnames=='yes') { $list[]=''.WT_I18N::translate('All').''; } else { $list[]=''.WT_I18N::translate('All').''; } } if ($show_all=='no') { echo '

', WT_I18N::translate('Individuals with surname %s', $legend), '

'; } echo '

', join(' | ', $list), '

'; } } if ($show=='indi') { echo format_fam_table( WT_Query_Name::families($surname, $alpha, $falpha, $show_marnm, WT_GED_ID) ); } } }