本文整理汇总了PHP中Fisharebest\Webtrees\Functions\Functions::getSubRecord方法的典型用法代码示例。如果您正苦于以下问题:PHP Functions::getSubRecord方法的具体用法?PHP Functions::getSubRecord怎么用?PHP Functions::getSubRecord使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Fisharebest\Webtrees\Functions\Functions
的用法示例。
在下文中一共展示了Functions::getSubRecord方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: formatFactPlace
/**
* print fact PLACe TEMPle STATus
*
* @param Fact $event gedcom fact record
* @param bool $anchor to print a link to placelist
* @param bool $sub_records to print place subrecords
* @param bool $lds to print LDS TEMPle and STATus
*
* @return string HTML
*/
public static function formatFactPlace(Fact $event, $anchor = false, $sub_records = false, $lds = false)
{
if ($anchor) {
// Show the full place name, for facts/events tab
$html = '<a href="' . $event->getPlace()->getURL() . '">' . $event->getPlace()->getFullName() . '</a>';
} else {
// Abbreviate the place name, for chart boxes
return ' - ' . $event->getPlace()->getShortName();
}
if ($sub_records) {
$placerec = Functions::getSubRecord(2, '2 PLAC', $event->getGedcom());
if (!empty($placerec)) {
if (preg_match_all('/\\n3 (?:_HEB|ROMN) (.+)/', $placerec, $matches)) {
foreach ($matches[1] as $match) {
$wt_place = new Place($match, $event->getParent()->getTree());
$html .= ' - ' . $wt_place->getFullName();
}
}
$map_lati = "";
$cts = preg_match('/\\d LATI (.*)/', $placerec, $match);
if ($cts > 0) {
$map_lati = $match[1];
$html .= '<br><span class="label">' . GedcomTag::getLabel('LATI') . ': </span>' . $map_lati;
}
$map_long = '';
$cts = preg_match('/\\d LONG (.*)/', $placerec, $match);
if ($cts > 0) {
$map_long = $match[1];
$html .= ' <span class="label">' . GedcomTag::getLabel('LONG') . ': </span>' . $map_long;
}
if ($map_lati && $map_long) {
$map_lati = trim(strtr($map_lati, "NSEW,�", " - -. "));
// S5,6789 ==> -5.6789
$map_long = trim(strtr($map_long, "NSEW,�", " - -. "));
// E3.456� ==> 3.456
$html .= ' <a rel="nofollow" href="https://maps.google.com/maps?q=' . $map_lati . ',' . $map_long . '" class="icon-googlemaps" title="' . I18N::translate('Google Maps™') . '"></a>';
$html .= ' <a rel="nofollow" href="https://www.bing.com/maps/?lvl=15&cp=' . $map_lati . '~' . $map_long . '" class="icon-bing" title="' . I18N::translate('Bing Maps™') . '"></a>';
$html .= ' <a rel="nofollow" href="https://www.openstreetmap.org/#map=15/' . $map_lati . '/' . $map_long . '" class="icon-osm" title="' . I18N::translate('OpenStreetMap™') . '"></a>';
}
if (preg_match('/\\d NOTE (.*)/', $placerec, $match)) {
$html .= '<br>' . self::printFactNotes($placerec, 3);
}
}
}
if ($lds) {
if (preg_match('/2 TEMP (.*)/', $event->getGedcom(), $match)) {
$html .= '<br>' . I18N::translate('LDS temple') . ': ' . GedcomCodeTemp::templeName($match[1]);
}
if (preg_match('/2 STAT (.*)/', $event->getGedcom(), $match)) {
$html .= '<br>' . I18N::translate('Status') . ': ' . GedcomCodeStat::statusName($match[1]);
if (preg_match('/3 DATE (.*)/', $event->getGedcom(), $match)) {
$date = new Date($match[1]);
$html .= ', ' . GedcomTag::getLabel('STAT:DATE') . ': ' . $date->display();
}
}
}
return $html;
}
示例2: printMainNotes
//.........这里部分代码省略.........
}
if ($note) {
echo GedcomTag::getLabel('SHARED_NOTE');
} else {
echo GedcomTag::getLabel('NOTE');
}
echo '</a>';
echo '<div class="editfacts">';
echo "<div class=\"editlink\"><a class=\"editicon\" onclick=\"return edit_record('{$pid}', '{$fact_id}');\" href=\"#\" title=\"" . I18N::translate('Edit') . "\"><span class=\"link_text\">" . I18N::translate('Edit') . "</span></a></div>";
echo '<div class="copylink"><a class="copyicon" href="#" onclick="return copy_fact(\'', $pid, '\', \'', $fact_id, '\');" title="' . I18N::translate('Copy') . '"><span class="link_text">' . I18N::translate('Copy') . '</span></a></div>';
echo "<div class=\"deletelink\"><a class=\"deleteicon\" onclick=\"return delete_fact('" . I18N::translate('Are you sure you want to delete this fact?') . "', '{$pid}', '{$fact_id}');\" href=\"#\" title=\"" . I18N::translate('Delete') . "\"><span class=\"link_text\">" . I18N::translate('Delete') . "</span></a></div>";
if ($note) {
echo '<a class="icon-note" href="', $note->getHtmlUrl(), '" title="' . I18N::translate('View') . '"><span class="link_text">' . I18N::translate('View') . '</span></a>';
}
echo '</div>';
}
} else {
if ($level < 2) {
if ($fact->getParent()->getTree()->getPreference('SHOW_FACT_ICONS')) {
echo '<i class="icon-note"></i> ';
}
if ($note) {
echo GedcomTag::getLabel('SHARED_NOTE');
} else {
echo GedcomTag::getLabel('NOTE');
}
}
$factlines = explode("\n", $factrec);
// 1 BIRT Y\n2 NOTE ...
$factwords = explode(" ", $factlines[0]);
// 1 BIRT Y
$factname = $factwords[1];
// BIRT
$parent = GedcomRecord::getInstance($pid, $fact->getParent()->getTree());
if ($factname == 'EVEN' || $factname == 'FACT') {
// Add ' EVEN' to provide sensible output for an event with an empty TYPE record
$ct = preg_match("/2 TYPE (.*)/", $factrec, $ematch);
if ($ct > 0) {
$factname = trim($ematch[1]);
echo $factname;
} else {
echo GedcomTag::getLabel($factname, $parent);
}
} elseif ($factname != 'NOTE') {
// Note is already printed
echo GedcomTag::getLabel($factname, $parent);
if ($note) {
echo '<div class="editfacts"><a class="icon-note" href="', $note->getHtmlUrl(), '" title="' . I18N::translate('View') . '"><span class="link_text">' . I18N::translate('View') . '</span></a></div>';
}
}
}
echo '</td>';
if ($note) {
// Note objects
if (Module::getModuleByName('GEDFact_assistant')) {
// If Census assistant installed, allow it to format the note
$text = CensusAssistantModule::formatCensusNote($note);
} else {
$text = Filter::formatText($note->getNote(), $fact->getParent()->getTree());
}
} else {
// Inline notes
$nrec = Functions::getSubRecord($level, "{$level} NOTE", $factrec, $j + 1);
$text = $match[$j][1] . Functions::getCont($level + 1, $nrec);
$text = Filter::formatText($text, $fact->getParent()->getTree());
}
echo '<td class="optionbox', $styleadd, ' wrap">';
echo $text;
if (!empty($noterec)) {
echo self::printFactSources($noterec, 1);
}
// 2 RESN tags. Note, there can be more than one, such as "privacy" and "locked"
if (preg_match_all("/\n2 RESN (.+)/", $factrec, $matches)) {
foreach ($matches[1] as $match) {
echo '<br><span class="label">', GedcomTag::getLabel('RESN'), ':</span> <span class="field">';
switch ($match) {
case 'none':
// Note: "2 RESN none" is not valid gedcom, and the GUI will not let you add it.
// However, webtrees privacy rules will interpret it as "show an otherwise private fact to public".
echo '<i class="icon-resn-none"></i> ', I18N::translate('Show to visitors');
break;
case 'privacy':
echo '<i class="icon-resn-privacy"></i> ', I18N::translate('Show to members');
break;
case 'confidential':
echo '<i class="icon-resn-confidential"></i> ', I18N::translate('Show to managers');
break;
case 'locked':
echo '<i class="icon-resn-locked"></i> ', I18N::translate('Only managers can edit');
break;
default:
echo $match;
break;
}
echo '</span>';
}
}
echo '</td></tr>';
}
}
示例3: adminPlaces
//.........这里部分代码省略.........
<a href="?mod=googlemap&mod_action=admin_config" role="tab">
<?php
echo I18N::translate('Google Maps™ preferences');
?>
</a>
</li>
<li role="presentation" class="active">
<a href="#">
<?php
echo I18N::translate('Geographic data');
?>
</a>
</li>
<li role="presentation">
<a href="?mod=googlemap&mod_action=admin_placecheck">
<?php
echo I18N::translate('Place check');
?>
</a>
</li>
</ul>
<h2><?php
echo I18N::translate('Geographic data');
?>
</h2>
<?php
if ($action == 'ImportGedcom') {
$placelist = array();
$j = 0;
$gedcom_records = Database::prepare("SELECT i_gedcom FROM `##individuals` WHERE i_file=? UNION ALL SELECT f_gedcom FROM `##families` WHERE f_file=?")->execute(array($WT_TREE->getTreeId(), $WT_TREE->getTreeId()))->fetchOneColumn();
foreach ($gedcom_records as $gedrec) {
$i = 1;
$placerec = Functions::getSubRecord(2, '2 PLAC', $gedrec, $i);
while (!empty($placerec)) {
if (preg_match("/2 PLAC (.+)/", $placerec, $match)) {
$placelist[$j] = array();
$placelist[$j]['place'] = trim($match[1]);
if (preg_match("/4 LATI (.*)/", $placerec, $match)) {
$placelist[$j]['lati'] = trim($match[1]);
if ($placelist[$j]['lati'][0] != 'N' && $placelist[$j]['lati'][0] != 'S') {
if ($placelist[$j]['lati'] < 0) {
$placelist[$j]['lati'][0] = 'S';
} else {
$placelist[$j]['lati'] = 'N' . $placelist[$j]['lati'];
}
}
} else {
$placelist[$j]['lati'] = null;
}
if (preg_match("/4 LONG (.*)/", $placerec, $match)) {
$placelist[$j]['long'] = trim($match[1]);
if ($placelist[$j]['long'][0] != 'E' && $placelist[$j]['long'][0] != 'W') {
if ($placelist[$j]['long'] < 0) {
$placelist[$j]['long'][0] = 'W';
} else {
$placelist[$j]['long'] = 'E' . $placelist[$j]['long'];
}
}
} else {
$placelist[$j]['long'] = null;
}
$j = $j + 1;
}
$i = $i + 1;
$placerec = Functions::getSubRecord(2, '2 PLAC', $gedrec, $i);
示例4: getGedcomValue
/**
* get gedcom tag value
*
* @param string $tag The tag to find, use : to delineate subtags
* @param int $level The gedcom line level of the first tag to find, setting level to 0 will cause it to use 1+ the level of the incoming record
* @param string $gedrec The gedcom record to get the value from
*
* @return string the value of a gedcom tag from the given gedcom record
*/
private function getGedcomValue($tag, $level, $gedrec)
{
global $WT_TREE;
if (empty($gedrec)) {
return '';
}
$tags = explode(':', $tag);
$origlevel = $level;
if ($level == 0) {
$level = $gedrec[0] + 1;
}
$subrec = $gedrec;
foreach ($tags as $t) {
$lastsubrec = $subrec;
$subrec = Functions::getSubRecord($level, "{$level} {$t}", $subrec);
if (empty($subrec) && $origlevel == 0) {
$level--;
$subrec = Functions::getSubRecord($level, "{$level} {$t}", $lastsubrec);
}
if (empty($subrec)) {
if ($t == "TITL") {
$subrec = Functions::getSubRecord($level, "{$level} ABBR", $lastsubrec);
if (!empty($subrec)) {
$t = "ABBR";
}
}
if (empty($subrec)) {
if ($level > 0) {
$level--;
}
$subrec = Functions::getSubRecord($level, "@ {$t}", $gedrec);
if (empty($subrec)) {
return '';
}
}
}
$level++;
}
$level--;
$ct = preg_match("/{$level} {$t}(.*)/", $subrec, $match);
if ($ct == 0) {
$ct = preg_match("/{$level} @.+@ (.+)/", $subrec, $match);
}
if ($ct == 0) {
$ct = preg_match("/@ {$t} (.+)/", $subrec, $match);
}
if ($ct > 0) {
$value = trim($match[1]);
if ($t == 'NOTE' && preg_match('/^@(.+)@$/', $value, $match)) {
$note = Note::getInstance($match[1], $WT_TREE);
if ($note) {
$value = $note->getNote();
} else {
//-- set the value to the id without the @
$value = $match[1];
}
}
if ($level != 0 || $t != "NOTE") {
$value .= Functions::getCont($level + 1, $subrec);
}
return $value;
}
return "";
}