本文整理汇总了PHP中Fisharebest\Webtrees\Filter::formatText方法的典型用法代码示例。如果您正苦于以下问题:PHP Filter::formatText方法的具体用法?PHP Filter::formatText怎么用?PHP Filter::formatText使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Fisharebest\Webtrees\Filter
的用法示例。
在下文中一共展示了Filter::formatText方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: printNoteRecord
/**
* print a note record
*
* @param string $text
* @param int $nlevel the level of the note record
* @param string $nrec the note record to print
* @param bool $textOnly Don't print the "Note: " introduction
*
* @return string
*/
public static function printNoteRecord($text, $nlevel, $nrec, $textOnly = false)
{
global $WT_TREE;
$text .= Functions::getCont($nlevel, $nrec);
// Check if shared note (we have already checked that it exists)
if (preg_match('/^0 @(' . WT_REGEX_XREF . ')@ NOTE/', $nrec, $match)) {
$note = Note::getInstance($match[1], $WT_TREE);
$label = 'SHARED_NOTE';
// If Census assistant installed, allow it to format the note
if (Module::getModuleByName('GEDFact_assistant')) {
$html = CensusAssistantModule::formatCensusNote($note);
} else {
$html = Filter::formatText($note->getNote(), $WT_TREE);
}
} else {
$note = null;
$label = 'NOTE';
$html = Filter::formatText($text, $WT_TREE);
}
if ($textOnly) {
return strip_tags($text);
}
if (strpos($text, "\n") === false) {
// A one-line note? strip the block-level tags, so it displays inline
return GedcomTag::getLabelValue($label, strip_tags($html, '<a><strong><em>'));
} elseif ($WT_TREE->getPreference('EXPAND_NOTES')) {
// A multi-line note, and we're expanding notes by default
return GedcomTag::getLabelValue($label, $html);
} else {
// A multi-line note, with an expand/collapse option
$element_id = Uuid::uuid4();
// NOTE: class "note-details" is (currently) used only by some third-party themes
if ($note) {
$first_line = '<a href="' . $note->getHtmlUrl() . '">' . $note->getFullName() . '</a>';
} else {
list($text) = explode("\n", strip_tags($html));
$first_line = strlen($text) > 100 ? mb_substr($text, 0, 100) . I18N::translate('…') : $text;
}
return '<div class="fact_NOTE"><span class="label">' . '<a href="#" onclick="expand_layer(\'' . $element_id . '\'); return false;"><i id="' . $element_id . '_img" class="icon-plus"></i></a> ' . GedcomTag::getLabel($label) . ':</span> ' . '<span id="' . $element_id . '-alt">' . $first_line . '</span>' . '</div>' . '<div class="note-details" id="' . $element_id . '" style="display:none">' . $html . '</div>';
}
}
示例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: formatCensusNote
/**
* Convert custom markup into HTML
*
* @param Note $note
*
* @return string
*/
public static function formatCensusNote(Note $note)
{
global $WT_TREE;
if (preg_match('/(.*)((?:\\n.*)*)\\n\\.start_formatted_area\\.\\n(.+)\\n(.+(?:\\n.+)*)\\n.end_formatted_area\\.((?:\\n.*)*)/', $note->getNote(), $match)) {
// This looks like a census-assistant shared note
$title = Filter::escapeHtml($match[1]);
$preamble = Filter::escapeHtml($match[2]);
$header = Filter::escapeHtml($match[3]);
$data = Filter::escapeHtml($match[4]);
$postamble = Filter::escapeHtml($match[5]);
// Get the column headers for the census to which this note refers
// requires the fact place & date to match the specific census
// censusPlace() (Soundex match) and censusDate() functions
$fmt_headers = array();
$linkedRecords = array_merge($note->linkedIndividuals('NOTE'), $note->linkedFamilies('NOTE'));
$firstRecord = array_shift($linkedRecords);
if ($firstRecord) {
$countryCode = '';
$date = '';
foreach ($firstRecord->getFacts('CENS') as $fact) {
if (trim($fact->getAttribute('NOTE'), '@') === $note->getXref()) {
$date = $fact->getAttribute('DATE');
$place = explode(',', strip_tags($fact->getPlace()->getFullName()));
$countryCode = Soundex::daitchMokotoff(array_pop($place));
break;
}
}
foreach (Census::allCensusPlaces() as $censusPlace) {
if (Soundex::compare($countryCode, Soundex::daitchMokotoff($censusPlace->censusPlace()))) {
foreach ($censusPlace->allCensusDates() as $census) {
if ($census->censusDate() == $date) {
foreach ($census->columns() as $column) {
$abbrev = $column->abbreviation();
if ($abbrev) {
$description = $column->title() ? $column->title() : I18N::translate('Description unavailable');
$fmt_headers[$abbrev] = '<span title="' . $description . '">' . $abbrev . '</span>';
}
}
break 2;
}
}
}
}
}
// Substitute header labels and format as HTML
$thead = '<tr><th>' . strtr(str_replace('|', '</th><th>', $header), $fmt_headers) . '</th></tr>';
$thead = str_replace('.b.', '', $thead);
// Format data as HTML
$tbody = '';
foreach (explode("\n", $data) as $row) {
$tbody .= '<tr>';
foreach (explode('|', $row) as $column) {
$tbody .= '<td>' . $column . '</td>';
}
$tbody .= '</tr>';
}
return $title . "\n" . '<div class="markdown">' . '<p>' . $preamble . '</p>' . '<table>' . '<thead>' . $thead . '</thead>' . '<tbody>' . $tbody . '</tbody>' . '</table>' . '<p>' . $postamble . '</p>' . '</div>';
} else {
// Not a census-assistant shared note - apply default formatting
return Filter::formatText($note->getNote(), $WT_TREE);
}
}
示例4: formatCensusNote
/**
* Convert custom markup into HTML
*
* @param Note $note
*
* @return string
*/
public static function formatCensusNote(Note $note)
{
global $WT_TREE;
$headers = array('AgM' => 'Age at first marriage', 'Age' => 'Age at last birthday', 'Assets' => 'Assets = Owned,Rented - Value,Rent - Radio - Farm', 'BIC' => 'Born in County', 'BOE' => 'Born outside England', 'BP' => 'Birthplace - (Chapman format)', 'Birthplace' => 'Birthplace (Full format)', 'Bmth' => 'Month of birth - If born within Census year', 'ChB' => 'Children born alive', 'ChD' => 'Children who have died', 'ChL' => 'Children still living', 'DOB' => 'Date of birth', 'Edu' => 'Education - At School, Can Read, Can Write', 'EmD' => 'Employed?', 'EmN' => 'Unemployed?', 'EmR' => 'Employer?', 'Employ' => 'Employment', 'Eng?' => 'English spoken?', 'EngL' => 'English spoken?, if not, Native Language', 'FBP' => 'Father’s Birthplace - (Chapman format)', 'Health' => 'Health - 1.Blind, 2.Deaf & Dumb, 3.Idiotic, 4.Insane, 5.Disabled etc', 'Home' => 'Home Ownership - Owned/Rented-Free/Mortgaged-Farm/House-Farm Schedule number', 'Industry' => 'Industry', 'Infirm' => 'Infirmities - 1. Deaf & Dumb, 2. Blind, 3. Lunatic, 4. Imbecile/feeble-minded', 'Lang' => 'If Foreign Born - Native Language', 'MBP' => 'Mother’s Birthplace - (Chapman format)', 'MC' => 'Marital Condition - Married, Single, Unmarried, Widowed or Divorced', 'Mmth' => 'Month of marriage - If married during Census Year', 'MnsE' => 'Months employed during Census Year', 'MnsU' => 'Months unemployed during Census Year', 'N/A' => 'If Foreign Born - Naturalized, Alien', 'NL' => 'If Foreign Born - Native Language', 'Name' => 'Full Name or Married name if married', 'Occupation' => 'Occupation', 'Par' => 'Parentage - Father if foreign born, Mother if foreign born', 'Race' => 'Race or Color - Black, White, Mulatto, Asian, Indian, Chinese etc', 'Relation' => 'Relationship to Head of Household', 'Sex' => 'Male or Female', 'Situ' => 'Situation - Disease, Infirmity, Convict, Pauper etc', 'Ten' => 'Tenure - Owned/Rented, (if owned)Free/Morgaged', 'Vet' => 'War Veteran?', 'WH' => 'Working at Home?', 'War' => 'War or Expedition', 'WksU' => 'Weeks unemployed during Census Year', 'YOI' => 'If Foreign Born - Year of immigration', 'YON' => 'If Foreign Born - Year of naturalization', 'YUS' => 'If Foreign Born - Years in the USA', 'YrsM' => 'Years Married, or Y if married in Census Year');
if (preg_match('/(.*)((?:\\n.*)*)\\n\\.start_formatted_area\\.\\n(.*)((?:\\n.*)*)\\n.end_formatted_area\\.((?:\\n.*)*)/', $note->getNote(), $match)) {
// This looks like a census-assistant shared note
$title = Filter::escapeHtml($match[1]);
$preamble = Filter::escapeHtml($match[2]);
$header = Filter::escapeHtml($match[3]);
$data = Filter::escapeHtml($match[4]);
$postamble = Filter::escapeHtml($match[5]);
$fmt_headers = array();
foreach ($headers as $key => $value) {
$fmt_headers[$key] = '<span title="' . Filter::escapeHtml($value) . '">' . $key . '</span>';
}
// Substitue header labels and format as HTML
$thead = '<tr><th>' . strtr(str_replace('|', '</th><th>', $header), $fmt_headers) . '</th></tr>';
$thead = str_replace('.b.', '', $thead);
// Format data as HTML
$tbody = '';
foreach (explode("\n", $data) as $row) {
$tbody .= '<tr>';
foreach (explode('|', $row) as $column) {
$tbody .= '<td>' . $column . '</td>';
}
$tbody .= '</tr>';
}
return $title . "\n" . '<p>' . $preamble . '</p>' . '<table class="table-census-assistant">' . '<thead>' . $thead . '</thead>' . '<tbody>' . $tbody . '</tbody>' . '</table>' . '<p>' . $postamble . '</p>';
} else {
// Not a census-assistant shared note - apply default formatting
return Filter::formatText($note->getNote(), $WT_TREE);
}
}
示例5: gedcomValueStartHandler
/**
* XML <GedcomValue/>
*
* @param array $attrs an array of key value pairs for the attributes
*/
private function gedcomValueStartHandler($attrs)
{
global $WT_TREE;
$id = "";
$match = array();
if (preg_match("/0 @(.+)@/", $this->gedrec, $match)) {
$id = $match[1];
}
if (isset($attrs['newline']) && $attrs['newline'] == "1") {
$useBreak = "1";
} else {
$useBreak = "0";
}
$tag = $attrs['tag'];
if (!empty($tag)) {
if ($tag == "@desc") {
$value = $this->desc;
$value = trim($value);
$this->current_element->addText($value);
}
if ($tag == "@id") {
$this->current_element->addText($id);
} else {
$tag = str_replace("@fact", $this->fact, $tag);
if (empty($attrs['level'])) {
$temp = explode(" ", trim($this->gedrec));
$level = $temp[0];
if ($level == 0) {
$level++;
}
} else {
$level = $attrs['level'];
}
$tags = preg_split('/[: ]/', $tag);
$value = $this->getGedcomValue($tag, $level, $this->gedrec);
switch (end($tags)) {
case 'DATE':
$tmp = new Date($value);
$value = $tmp->display();
break;
case 'PLAC':
$tmp = new Place($value, $WT_TREE);
$value = $tmp->getShortName();
break;
}
if ($useBreak == "1") {
// Insert <br> when multiple dates exist.
// This works around a TCPDF bug that incorrectly wraps RTL dates on LTR pages
$value = str_replace('(', '<br>(', $value);
$value = str_replace('<span dir="ltr"><br>', '<br><span dir="ltr">', $value);
$value = str_replace('<span dir="rtl"><br>', '<br><span dir="rtl">', $value);
if (substr($value, 0, 6) == '<br>') {
$value = substr($value, 6);
}
}
$tmp = explode(':', $tag);
if (in_array(end($tmp), array('NOTE', 'TEXT'))) {
$value = Filter::formatText($value, $WT_TREE);
// We'll strip HTML in addText()
}
$this->current_element->addText($value);
}
}
}
示例6: array
');
$linked_indi = $controller->record->linkedIndividuals('NOTE');
$linked_fam = $controller->record->linkedFamilies('NOTE');
$linked_obje = $controller->record->linkedMedia('NOTE');
$linked_sour = $controller->record->linkedSources('NOTE');
$facts = array();
foreach ($controller->record->getFacts() as $fact) {
if ($fact->getTag() != 'CONT') {
$facts[] = $fact;
}
}
// Legacy formatting, created by the census assistant
if (Module::getModuleByName('GEDFact_assistant')) {
$text = CensusAssistantModule::formatCensusNote($controller->record);
} else {
$text = Filter::formatText($controller->record->getNote(), $controller->record->getTree());
}
?>
<div id="note-details">
<h2><?php
echo $controller->record->getFullName();
?>
</h2>
<div id="note-tabs">
<ul>
<li>
<a href="#note-edit">
<span><?php
echo I18N::translate('Details');
?>
</span>