本文整理汇总了PHP中Fisharebest\Webtrees\Individual::getFirstFact方法的典型用法代码示例。如果您正苦于以下问题:PHP Individual::getFirstFact方法的具体用法?PHP Individual::getFirstFact怎么用?PHP Individual::getFirstFact使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Fisharebest\Webtrees\Individual
的用法示例。
在下文中一共展示了Individual::getFirstFact方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: print_indi_form
/**
* Print a form to add an individual or edit an individual’s name
*
* @param string $nextaction
* @param Individual $person
* @param Family $family
* @param Fact $name_fact
* @param string $famtag
* @param string $gender
*/
function print_indi_form($nextaction, Individual $person = null, Family $family = null, Fact $name_fact = null, $famtag = 'CHIL', $gender = 'U')
{
global $WT_TREE, $bdm, $controller;
if ($person) {
$xref = $person->getXref();
} elseif ($family) {
$xref = $family->getXref();
} else {
$xref = 'new';
}
// Different cultures do surnames differently
$surname_tradition = SurnameTradition::create($WT_TREE->getPreference('SURNAME_TRADITION'));
$name_fields = array();
if ($name_fact) {
// Editing an existing name
$name_fact_id = $name_fact->getFactId();
$name_type = $name_fact->getAttribute('TYPE');
$namerec = $name_fact->getGedcom();
foreach (Config::standardNameFacts() as $tag) {
if ($tag === 'NAME') {
$name_fields[$tag] = $name_fact->getValue();
} else {
$name_fields[$tag] = $name_fact->getAttribute($tag);
}
}
// Populate any missing 2 XXXX fields from the 1 NAME field
$npfx_accept = implode('|', Config::namePrefixes());
if (preg_match('/(((' . $npfx_accept . ')\\.? +)*)([^\\n\\/"]*)("(.*)")? *\\/(([a-z]{2,3} +)*)(.*)\\/ *(.*)/i', $name_fields['NAME'], $name_bits)) {
if (empty($name_fields['NPFX'])) {
$name_fields['NPFX'] = $name_bits[1];
}
if (empty($name_fields['SPFX']) && empty($name_fields['SURN'])) {
$name_fields['SPFX'] = trim($name_bits[7]);
// For names with two surnames, there will be four slashes.
// Turn them into a list
$name_fields['SURN'] = preg_replace('~/[^/]*/~', ',', $name_bits[9]);
}
if (empty($name_fields['GIVN'])) {
$name_fields['GIVN'] = $name_bits[4];
}
if (empty($name_fields['NICK']) && !empty($name_bits[6]) && !preg_match('/^2 NICK/m', $namerec)) {
$name_fields['NICK'] = $name_bits[6];
}
}
} else {
// Creating a new name
$name_fact_id = null;
$name_type = null;
$namerec = null;
// Populate the standard NAME field and subfields
foreach (Config::standardNameFacts() as $tag) {
$name_fields[$tag] = '';
}
// Inherit surname from parents, spouse or child
if ($family) {
$father = $family->getHusband();
if ($father && $father->getFirstFact('NAME')) {
$father_name = $father->getFirstFact('NAME')->getValue();
} else {
$father_name = '';
}
$mother = $family->getWife();
if ($mother && $mother->getFirstFact('NAME')) {
$mother_name = $mother->getFirstFact('NAME')->getValue();
} else {
$mother_name = '';
}
} else {
$father = null;
$mother = null;
$father_name = '';
$mother_name = '';
}
if ($person && $person->getFirstFact('NAME')) {
$indi_name = $person->getFirstFact('NAME')->getValue();
} else {
$indi_name = '';
}
switch ($nextaction) {
case 'add_child_to_family_action':
$name_fields = $surname_tradition->newChildNames($father_name, $mother_name, $gender) + $name_fields;
break;
case 'add_child_to_individual_action':
if ($person->getSex() === 'F') {
$name_fields = $surname_tradition->newChildNames('', $indi_name, $gender) + $name_fields;
} else {
$name_fields = $surname_tradition->newChildNames($indi_name, '', $gender) + $name_fields;
}
break;
case 'add_parent_to_individual_action':
//.........这里部分代码省略.........
示例2: individualBoxFacts
/**
* Generate the facts, for display in charts.
*
* @param Individual $individual
*
* @return string
*/
protected function individualBoxFacts(Individual $individual)
{
$html = '';
$opt_tags = preg_split('/\\W/', $individual->getTree()->getPreference('CHART_BOX_TAGS'), 0, PREG_SPLIT_NO_EMPTY);
// Show BIRT or equivalent event
foreach (explode('|', WT_EVENTS_BIRT) as $birttag) {
if (!in_array($birttag, $opt_tags)) {
$event = $individual->getFirstFact($birttag);
if ($event) {
$html .= $event->summary();
break;
}
}
}
// Show optional events (before death)
foreach ($opt_tags as $key => $tag) {
if (!preg_match('/^(' . WT_EVENTS_DEAT . ')$/', $tag)) {
$event = $individual->getFirstFact($tag);
if (!is_null($event)) {
$html .= $event->summary();
unset($opt_tags[$key]);
}
}
}
// Show DEAT or equivalent event
foreach (explode('|', WT_EVENTS_DEAT) as $deattag) {
$event = $individual->getFirstFact($deattag);
if ($event) {
$html .= $event->summary();
if (in_array($deattag, $opt_tags)) {
unset($opt_tags[array_search($deattag, $opt_tags)]);
}
break;
}
}
// Show remaining optional events (after death)
foreach ($opt_tags as $tag) {
$event = $individual->getFirstFact($tag);
if ($event) {
$html .= $event->summary();
}
}
return $html;
}