本文整理汇总了PHP中Fisharebest\Webtrees\Individual::getFullName方法的典型用法代码示例。如果您正苦于以下问题:PHP Individual::getFullName方法的具体用法?PHP Individual::getFullName怎么用?PHP Individual::getFullName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Fisharebest\Webtrees\Individual
的用法示例。
在下文中一共展示了Individual::getFullName方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getEditMenu
/**
* get edit menu
*/
public function getEditMenu()
{
if (!$this->record || $this->record->isPendingDeletion()) {
return null;
}
// edit menu
$menu = new Menu(I18N::translate('Edit'), '#', 'menu-record');
// edit raw
if (Auth::isAdmin() || Auth::isEditor($this->record->getTree()) && $this->record->getTree()->getPreference('SHOW_GEDCOM_RECORD')) {
$menu->addSubmenu(new Menu(I18N::translate('Edit raw GEDCOM'), '#', 'menu-record-editraw', array('onclick' => 'return edit_raw("' . $this->record->getXref() . '");')));
}
// delete
if (Auth::isEditor($this->record->getTree())) {
$menu->addSubmenu(new Menu(I18N::translate('Delete'), '#', 'menu-record-del', array('onclick' => 'return delete_record("' . I18N::translate('Are you sure you want to delete “%s”?', Filter::escapeJs(Filter::unescapeHtml($this->record->getFullName()))) . '", "' . $this->record->getXref() . '");')));
}
// add to favorites
if (Module::getModuleByName('user_favorites')) {
$menu->addSubmenu(new Menu(I18N::translate('Add to favorites'), '#', 'menu-record-addfav', array('onclick' => 'jQuery.post("module.php?mod=user_favorites&mod_action=menu-add-favorite" ,{xref:"' . $this->record->getXref() . '"},function(){location.reload();})')));
}
// Get the link for the first submenu and set it as the link for the main menu
if ($menu->getSubmenus()) {
$submenus = $menu->getSubmenus();
$menu->setLink($submenus[0]->getLink());
$menu->setAttrs($submenus[0]->getAttrs());
}
return $menu;
}
示例2: __construct
/**
* Startup activity
*/
public function __construct()
{
// Automatically fix broken links
if ($this->record && $this->record->canEdit()) {
$broken_links = 0;
foreach ($this->record->getFacts('HUSB|WIFE|CHIL|FAMS|FAMC|REPO') as $fact) {
if (!$fact->isPendingDeletion() && $fact->getTarget() === null) {
$this->record->deleteFact($fact->getFactId(), false);
FlashMessages::addMessage(I18N::translate('The link from “%1$s” to “%2$s” has been deleted.', $this->record->getFullName(), $fact->getValue()));
$broken_links = true;
}
}
foreach ($this->record->getFacts('NOTE|SOUR|OBJE') as $fact) {
// These can be links or inline. Only delete links.
if (!$fact->isPendingDeletion() && $fact->getTarget() === null && preg_match('/^@.*@$/', $fact->getValue())) {
$this->record->deleteFact($fact->getFactId(), false);
FlashMessages::addMessage(I18N::translate('The link from “%1$s” to “%2$s” has been deleted.', $this->record->getFullName(), $fact->getValue()));
$broken_links = true;
}
}
if ($broken_links) {
// Reload the updated family
$this->record = GedcomRecord::getInstance($this->record->getXref(), $this->record->getTree());
}
}
parent::__construct();
// We want robots to index this page
$this->setMetaRobots('index,follow');
// Set a page title
if ($this->record) {
if ($this->record->canShowName()) {
// e.g. "John Doe" or "1881 Census of Wales"
$this->setPageTitle($this->record->getFullName());
} else {
// e.g. "Individual" or "Source"
$record = $this->record;
$this->setPageTitle(GedcomTag::getLabel($record::RECORD_TYPE));
}
} else {
// No such record
$this->setPageTitle(I18N::translate('Private'));
}
}
示例3: getEditMenu
/**
* get edit menu
*/
public function getEditMenu()
{
if (!$this->record || $this->record->isPendingDeletion()) {
return null;
}
// edit menu
$menu = new Menu(I18N::translate('Edit'), '#', 'menu-record');
// edit raw
if (Auth::isAdmin() || Auth::isEditor($this->record->getTree()) && $this->record->getTree()->getPreference('SHOW_GEDCOM_RECORD')) {
$menu->addSubmenu(new Menu(I18N::translate('Edit the raw GEDCOM'), '#', 'menu-record-editraw', array('onclick' => 'return edit_raw("' . $this->record->getXref() . '");')));
}
// delete
if (Auth::isEditor($this->record->getTree())) {
$menu->addSubmenu(new Menu(I18N::translate('Delete'), '#', 'menu-record-del', array('onclick' => 'return delete_record("' . I18N::translate('Are you sure you want to delete “%s”?', Filter::escapeJs(Filter::unescapeHtml($this->record->getFullName()))) . '", "' . $this->record->getXref() . '");')));
}
return $menu;
}
示例4: printNameRecord
/**
* print information for a name record
*
* @param Fact $event the event object
*/
public function printNameRecord(Fact $event)
{
$factrec = $event->getGedcom();
// Create a dummy record, so we can extract the formatted NAME value from the event.
$dummy = new Individual('xref', "0 @xref@ INDI\n1 DEAT Y\n" . $factrec, null, $event->getParent()->getTree());
$all_names = $dummy->getAllNames();
$primary_name = $all_names[0];
$this->name_count++;
if ($this->name_count > 1) {
echo '<h3 class="name_two">', $dummy->getFullName(), '</h3>';
}
//Other names accordion element
echo '<div class="indi_name_details';
if ($event->isPendingDeletion()) {
echo ' old';
}
if ($event->isPendingAddition()) {
echo ' new';
}
echo '">';
echo '<div class="name1">';
echo '<dl><dt class="label">', I18N::translate('Name'), '</dt>';
$dummy->setPrimaryName(0);
echo '<dd class="field">', $dummy->getFullName();
if ($this->name_count == 1) {
if (Auth::isAdmin()) {
$user = User::findByGenealogyRecord($this->record);
if ($user) {
echo '<span> - <a class="warning" href="admin_users.php?filter=' . Filter::escapeHtml($user->getUserName()) . '">' . Filter::escapeHtml($user->getUserName()) . '</a></span>';
}
}
}
if ($this->record->canEdit() && !$event->isPendingDeletion()) {
echo "<div class=\"deletelink\"><a class=\"deleteicon\" href=\"#\" onclick=\"return delete_fact('" . I18N::translate('Are you sure you want to delete this fact?') . "', '" . $this->record->getXref() . "', '" . $event->getFactId() . "');\" title=\"" . I18N::translate('Delete this name') . "\"><span class=\"link_text\">" . I18N::translate('Delete this name') . "</span></a></div>";
echo "<div class=\"editlink\"><a href=\"#\" class=\"editicon\" onclick=\"edit_name('" . $this->record->getXref() . "', '" . $event->getFactId() . "'); return false;\" title=\"" . I18N::translate('Edit name') . "\"><span class=\"link_text\">" . I18N::translate('Edit name') . "</span></a></div>";
}
echo '</dd>';
echo '</dl>';
echo '</div>';
$ct = preg_match_all('/\\n2 (\\w+) (.*)/', $factrec, $nmatch, PREG_SET_ORDER);
for ($i = 0; $i < $ct; $i++) {
echo '<div>';
$fact = $nmatch[$i][1];
if ($fact != 'SOUR' && $fact != 'NOTE' && $fact != 'SPFX') {
echo '<dl><dt class="label">', GedcomTag::getLabel($fact, $this->record), '</dt>';
echo '<dd class="field">';
// Before using dir="auto" on this field, note that Gecko treats this as an inline element but WebKit treats it as a block element
if (isset($nmatch[$i][2])) {
$name = Filter::escapeHtml($nmatch[$i][2]);
$name = str_replace('/', '', $name);
$name = preg_replace('/(\\S*)\\*/', '<span class="starredname">\\1</span>', $name);
switch ($fact) {
case 'TYPE':
echo GedcomCodeName::getValue($name, $this->record);
break;
case 'SURN':
// The SURN field is not necessarily the surname.
// Where it is not a substring of the real surname, show it after the real surname.
$surname = Filter::escapeHtml($primary_name['surname']);
if (strpos($primary_name['surname'], str_replace(',', ' ', $nmatch[$i][2])) !== false) {
echo '<span dir="auto">' . $surname . '</span>';
} else {
echo I18N::translate('%1$s (%2$s)', '<span dir="auto">' . $surname . '</span>', '<span dir="auto">' . $name . '</span>');
}
break;
default:
echo '<span dir="auto">' . $name . '</span>';
break;
}
}
echo '</dd>';
echo '</dl>';
}
echo '</div>';
}
if (preg_match("/\n2 SOUR/", $factrec)) {
echo '<div id="indi_sour" class="clearfloat">', FunctionsPrintFacts::printFactSources($factrec, 2), '</div>';
}
if (preg_match("/\n2 NOTE/", $factrec)) {
echo '<div id="indi_note" class="clearfloat">', FunctionsPrint::printFactNotes($factrec, 2), '</div>';
}
echo '</div>';
}
示例5: getDescendantsHtml
/**
* Generate a recursive list of descendants of an individual.
* If parents are specified, we can also show the pedigree (adopted, etc.).
*
* @param Individual $individual
* @param Family|null $parents
*
* @return string
*/
private function getDescendantsHtml(Individual $individual, Family $parents = null)
{
// A person has many names. Select the one that matches the searched surname
$person_name = '';
foreach ($individual->getAllNames() as $name) {
list($surn1) = explode(",", $name['sort']);
if (stripos($surn1, $this->surname) !== false || stripos($this->surname, $surn1) !== false || $this->soundex_std && Soundex::compare(Soundex::russell($surn1), Soundex::russell($this->surname)) || $this->soundex_dm && Soundex::compare(Soundex::daitchMokotoff($surn1), Soundex::daitchMokotoff($this->surname))) {
$person_name = $name['full'];
break;
}
}
// No matching name? Typically children with a different surname. The branch stops here.
if (!$person_name) {
return '<li title="' . strip_tags($individual->getFullName()) . '">' . $individual->getSexImage() . '…</li>';
}
// Is this individual one of our ancestors?
$sosa = array_search($individual, $this->ancestors, true);
if ($sosa) {
$sosa_class = 'search_hit';
$sosa_html = ' <a class="details1 ' . $individual->getBoxStyle() . '" title="' . I18N::translate('Sosa') . '" href="relationship.php?pid2=' . $this->ancestors[1]->getXref() . '&pid1=' . $individual->getXref() . '">' . $sosa . '</a>' . self::sosaGeneration($sosa);
} else {
$sosa_class = '';
$sosa_html = '';
}
// Generate HTML for this individual, and all their descendants
$indi_html = $individual->getSexImage() . '<a class="' . $sosa_class . '" href="' . $individual->getHtmlUrl() . '">' . $person_name . '</a> ' . $individual->getLifeSpan() . $sosa_html;
// If this is not a birth pedigree (e.g. an adoption), highlight it
if ($parents) {
$pedi = '';
foreach ($individual->getFacts('FAMC') as $fact) {
if ($fact->getTarget() === $parents) {
$pedi = $fact->getAttribute('PEDI');
break;
}
}
if ($pedi && $pedi != 'birth') {
$indi_html = '<span class="red">' . GedcomCodePedi::getValue($pedi, $individual) . '</span> ' . $indi_html;
}
}
// spouses and children
$spouse_families = $individual->getSpouseFamilies();
if ($spouse_families) {
usort($spouse_families, '\\Fisharebest\\Webtrees\\Family::compareMarrDate');
$fam_html = '';
foreach ($spouse_families as $family) {
$fam_html .= $indi_html;
// Repeat the individual details for each spouse.
$spouse = $family->getSpouse($individual);
if ($spouse) {
$sosa = array_search($spouse, $this->ancestors, true);
if ($sosa) {
$sosa_class = 'search_hit';
$sosa_html = ' <a class="details1 ' . $spouse->getBoxStyle() . '" title="' . I18N::translate('Sosa') . '" href="relationship.php?pid2=' . $this->ancestors[1]->getXref() . '&pid1=' . $spouse->getXref() . '"> ' . $sosa . ' </a>' . self::sosaGeneration($sosa);
} else {
$sosa_class = '';
$sosa_html = '';
}
$marriage_year = $family->getMarriageYear();
if ($marriage_year) {
$fam_html .= ' <a href="' . $family->getHtmlUrl() . '" title="' . strip_tags($family->getMarriageDate()->display()) . '"><i class="icon-rings"></i>' . $marriage_year . '</a>';
} elseif ($family->getFirstFact('MARR')) {
$fam_html .= ' <a href="' . $family->getHtmlUrl() . '" title="' . GedcomTag::getLabel('MARR') . '"><i class="icon-rings"></i></a>';
} elseif ($family->getFirstFact('_NMR')) {
$fam_html .= ' <a href="' . $family->getHtmlUrl() . '" title="' . GedcomTag::getLabel('_NMR') . '"><i class="icon-rings"></i></a>';
}
$fam_html .= ' ' . $spouse->getSexImage() . '<a class="' . $sosa_class . '" href="' . $spouse->getHtmlUrl() . '">' . $spouse->getFullName() . '</a> ' . $spouse->getLifeSpan() . ' ' . $sosa_html;
}
$fam_html .= '<ol>';
foreach ($family->getChildren() as $child) {
$fam_html .= $this->getDescendantsHtml($child, $family);
}
$fam_html .= '</ol>';
}
return '<li>' . $fam_html . '</li>';
} else {
// No spouses - just show the individual
return '<li>' . $indi_html . '</li>';
}
}
示例6: generate
/**
* Generate the likely value of this census column, based on available information.
*
* @param Individual $individual
* @param Individual|null $head
*
* @return string
*/
public function generate(Individual $individual, Individual $head = null)
{
return strip_tags($individual->getFullName());
}
示例7: printFamilyBook
/**
* Print a “Family Book” for an individual
*
* @param Individual $person
* @param int $descent_steps
*/
public function printFamilyBook(Individual $person, $descent_steps)
{
if ($descent_steps == 0 || !$person->canShowName()) {
return;
}
$families = $person->getSpouseFamilies();
if ($families) {
echo '<h3>', I18N::translate('Family of %s', $person->getFullName()), '</h3>', '<table class="t0"><tr><td class="tdmid">';
$this->dgenerations = $this->generations;
$this->printDescendency($person, 1);
echo '</td><td class="tdmid">';
$this->printPersonPedigree($person, 1);
echo '</td></tr></table><br><br><hr style="page-break-after:always;"><br><br>';
foreach ($families as $family) {
foreach ($family->getChildren() as $child) {
$this->printFamilyBook($child, $descent_steps - 1);
}
}
}
}
示例8: individualBoxSmall
/**
* Display an individual in a box - for charts, etc.
*
* @param Individual $individual
*
* @return string
*/
public function individualBoxSmall(Individual $individual)
{
$personBoxClass = array_search($individual->getSex(), array('person_box' => 'M', 'person_boxF' => 'F', 'person_boxNN' => 'U'));
if ($individual->getTree()->getPreference('SHOW_HIGHLIGHT_IMAGES')) {
$thumbnail = $individual->displayImage();
} else {
$thumbnail = '';
}
return '<div data-pid="' . $individual->getXref() . '" class="person_box_template ' . $personBoxClass . ' iconz box-style0" style="width: ' . $this->parameter('compact-chart-box-x') . 'px; min-height: ' . $this->parameter('compact-chart-box-y') . 'px">' . '<div class="compact_view">' . $thumbnail . '<a href="' . $individual->getHtmlUrl() . '">' . '<span class="namedef name0">' . $individual->getFullName() . '</span>' . '</a>' . '<div class="inout2 details0">' . $individual->getLifeSpan() . '</div>' . '</div>' . '<div class="inout"></div>' . '</div>';
}
示例9: drawPersonName
/**
* Draw a person name preceded by sex icon, with parents as tooltip
*
* @param Individual $individual an individual
* @param string $dashed if = 'dashed' print dashed top border to separate multiple spuses
*
* @return string
*/
private function drawPersonName(Individual $individual, $dashed = '')
{
if ($this->all_partners === 'true') {
$family = $individual->getPrimaryChildFamily();
if ($family) {
$family_name = strip_tags($family->getFullName());
} else {
$family_name = I18N::translateContext('unknown family', 'unknown');
}
switch ($individual->getSex()) {
case 'M':
$title = ' title="' . I18N::translate('Son of %s', $family_name) . '"';
break;
case 'F':
$title = ' title="' . I18N::translate('Daughter of %s', $family_name) . '"';
break;
default:
$title = ' title="' . I18N::translate('Child of %s', $family_name) . '"';
break;
}
} else {
$title = '';
}
$sex = $individual->getSex();
return '<div class="tv' . $sex . ' ' . $dashed . '"' . $title . '><a href="' . $individual->getHtmlUrl() . '"></a>' . $individual->getFullName() . ' <span class="dates">' . $individual->getLifeSpan() . '</span></div>';
}
示例10: htmlIndividualForList
/**
* Return HTML Code to display individual in non structured list (e.g. Patronymic Lineages)
*
* @param \Fisharebest\Webtrees\Individual $individual Individual to print
* @param bool $isStrong Bolden the name ?
* @return string HTML Code for individual item
*/
public static function htmlIndividualForList(\Fisharebest\Webtrees\Individual $individual, $isStrong = true)
{
$html = '';
$tag = 'em';
if ($isStrong) {
$tag = 'strong';
}
if ($individual && $individual->canShow()) {
$dindi = new Individual($individual);
$html = $individual->getSexImage();
$html .= '<a class="list_item" href="' . $individual->getHtmlUrl() . '" title="' . I18N::translate('Informations for individual %s', $individual->getXref()) . '">';
$html .= '<' . $tag . '>' . $individual->getFullName() . '</' . $tag . '> (' . $individual->getXref() . ') ';
$html .= FunctionsPrint::formatSosaNumbers($dindi->getSosaNumbers(), 1, 'small');
$html .= ' <span><small><em>' . $dindi->formatFirstMajorFact(WT_EVENTS_BIRT, 10) . '</em></small></span>';
$html .= ' <span><small><em>' . $dindi->formatFirstMajorFact(WT_EVENTS_DEAT, 10) . '</em></small></span>';
$html .= '</a>';
} else {
$html .= '<span class=\\"list_item\\"><' . $tag . '>' . I18N::translate('Private') . '</' . $tag . '></span>';
}
return $html;
}