summaryrefslogtreecommitdiff
path: root/app/Functions/FunctionsEdit.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Functions/FunctionsEdit.php')
-rw-r--r--app/Functions/FunctionsEdit.php307
1 files changed, 154 insertions, 153 deletions
diff --git a/app/Functions/FunctionsEdit.php b/app/Functions/FunctionsEdit.php
index e11e08c4aa..ea18bbb44b 100644
--- a/app/Functions/FunctionsEdit.php
+++ b/app/Functions/FunctionsEdit.php
@@ -616,16 +616,17 @@ class FunctionsEdit {
break;
}
- echo '<div class="' . $row_class . '">';
- echo '<label class="col-sm-3 col-form-label" for="' . $id . '">';
+ $html = '';
+ $html .= '<div class="' . $row_class . '">';
+ $html .= '<label class="col-sm-3 col-form-label" for="' . $id . '">';
// tag name
if ($label) {
- echo $label;
+ $html .= $label;
} elseif ($upperlevel) {
- echo GedcomTag::getLabel($upperlevel . ':' . $fact);
+ $html .= GedcomTag::getLabel($upperlevel . ':' . $fact);
} else {
- echo GedcomTag::getLabel($fact);
+ $html .= GedcomTag::getLabel($fact);
}
// If using GEDFact-assistant window
@@ -636,26 +637,26 @@ class FunctionsEdit {
switch ($fact) {
case 'NAME':
if ($upperlevel !== 'REPO' && $upperlevel !== 'UNKNOWN') {
- echo FunctionsPrint::helpLink($fact);
+ $html .= FunctionsPrint::helpLink($fact);
}
break;
case 'ROMN':
case 'SURN':
case '_HEB':
- echo FunctionsPrint::helpLink($fact);
+ $html .= FunctionsPrint::helpLink($fact);
break;
}
}
// tag level
if ($level !== '0') {
- echo '<input type="hidden" name="glevels[]" value="', $level, '">';
- echo '<input type="hidden" name="islink[]" value="', $islink, '">';
- echo '<input type="hidden" name="tag[]" value="', $fact, '">';
+ $html .= '<input type="hidden" name="glevels[]" value="' . $level . '">';
+ $html .= '<input type="hidden" name="islink[]" value="' . $islink . '">';
+ $html .= '<input type="hidden" name="tag[]" value="' . $fact . '">';
}
- echo '</label>';
+ $html .= '</label>';
// value
- echo '<div class="col-sm-9">';
+ $html .= '<div class="col-sm-9">';
// Show names for spouses in MARR/HUSB/AGE and MARR/WIFE/AGE
if ($fact === 'HUSB' || $fact === 'WIFE') {
@@ -665,17 +666,17 @@ class FunctionsEdit {
if ($spouse_link) {
$spouse = $spouse_link->getTarget();
if ($spouse) {
- echo $spouse->getFullName();
+ $html .= $spouse->getFullName();
}
}
}
}
if (in_array($fact, Config::emptyFacts()) && ($value === '' || $value === 'Y' || $value === 'y')) {
- echo '<input type="hidden" id="', $id, '" name="', $name, '" value="', $value, '">';
+ $html .= '<input type="hidden" id="' . $id . '" name="' . $name . '" value="' . $value . '">';
if ($fact === 'CENS' && $value === 'Y') {
- echo self::censusDateSelector(WT_LOCALE, $xref);
+ $html .= self::censusDateSelector(WT_LOCALE, $xref);
/** @var CensusAssistantModule $census_assistant */
$census_assistant = Module::getModuleByName('GEDFact_assistant');
@@ -685,165 +686,165 @@ class FunctionsEdit {
}
}
} elseif ($fact === 'NPFX' || $fact === 'NSFX' || $fact === 'SPFX' || $fact === 'NICK') {
- echo '<input class="form-control" type="text" id="', $id, '" name="', $name, '" value="', Html::escape($value), '" oninput="updatewholename()">';
+ $html .= '<input class="form-control" type="text" id="' . $id . '" name="' . $name . '" value="' . Html::escape($value) . '" oninput="updatewholename()">';
} elseif ($fact === 'GIVN') {
- echo '<input class="form-control" type="text" id="', $id, '" name="', $name, '" value="', Html::escape($value), '" data-autocomplete-type="GIVN" oninput="updatewholename()" autofocus>';
+ $html .= '<input class="form-control" type="text" id="' . $id . '" name="' . $name . '" value="' . Html::escape($value) . '" data-autocomplete-type="GIVN" oninput="updatewholename()" autofocus>';
} elseif ($fact === 'SURN' || $fact === '_MARNM_SURN') {
- echo '<input class="form-control" type="text" id="', $id, '" name="', $name, '" value="', Html::escape($value), '" data-autocomplete-type="SURN" oninput="updatewholename()">';
+ $html .= '<input class="form-control" type="text" id="' . $id . '" name="' . $name . '" value="' . Html::escape($value) . '" data-autocomplete-type="SURN" oninput="updatewholename()">';
} elseif ($fact === 'ADOP') {
- echo Bootstrap4::select(GedcomCodeAdop::getValues($person), $value, ['id' => $id, 'name' => $name]);
+ $html .= Bootstrap4::select(GedcomCodeAdop::getValues($person), $value, ['id' => $id, 'name' => $name]);
} elseif ($fact === 'ALIA') {
- echo self::formControlIndividual(Individual::getInstance($value, $WT_TREE), ['id' => $id, 'name' => $name]);
+ $html .= self::formControlIndividual(Individual::getInstance($value, $WT_TREE), ['id' => $id, 'name' => $name]);
} elseif ($fact === 'ASSO' || $fact === '_ASSO') {
- echo
+ $html .=
'<div class="input-group">' .
'<span class="input-group-btn"><button class="btn btn-secondary" type="button" onclick="createNewRecord(' . $id . ')" title="' . I18N::translate('Create an individual') . '"><i class="fa fa-plus"></i></button></span>' .
self::formControlIndividual(Individual::getInstance($value, $WT_TREE), ['id' => $id, 'name' => $name]) .
'</div>';
if ($level === '1') {
- echo '<p class="small text-muted">' . I18N::translate('An associate is another individual who was involved with this individual, such as a friend or an employer.') . '</p>';
+ $html .= '<p class="small text-muted">' . I18N::translate('An associate is another individual who was involved with this individual, such as a friend or an employer.') . '</p>';
} else {
- echo '<p class="small text-muted">' . I18N::translate('An associate is another individual who was involved with this fact or event, such as a witness or a priest.') . '</p>';
+ $html .= '<p class="small text-muted">' . I18N::translate('An associate is another individual who was involved with this fact or event, such as a witness or a priest.') . '</p>';
}
} elseif ($fact === 'DATE') {
- echo '<div class="input-group">';
- echo '<input class="form-control" type="text" id="', $id, '" name="', $name, '" value="', Html::escape($value), '" oninput="valid_date(this)">';
- echo self::inputAddonCalendar($id);
- echo self::inputAddonHelp('DATE');
- echo '</div>';
- echo '<div id="caldiv' . $id . '" style="position:absolute;visibility:hidden;background-color:white;z-index:1000"></div>';
- echo '<p class="text-muted">' . (new Date($value))->display() . '</p>';
+ $html .= '<div class="input-group">';
+ $html .= '<input class="form-control" type="text" id="' . $id . '" name="' . $name . '" value="' . Html::escape($value) . '" oninput="valid_date(this)">';
+ $html .= self::inputAddonCalendar($id);
+ $html .= self::inputAddonHelp('DATE');
+ $html .= '</div>';
+ $html .= '<div id="caldiv' . $id . '" style="position:absolute;visibility:hidden;background-color:white;z-index:1000"></div>';
+ $html .= '<p class="text-muted">' . (new Date($value))->display() . '</p>';
} elseif ($fact === 'FAMC') {
- echo
+ $html .=
'<div class="input-group">' .
'<span class="input-group-btn"><button class="btn btn-secondary" type="button" data-toggle="modal" data-target="#modal-create-family" data-element-id="' . $id . '" title="' . I18N::translate('Create a family') . '"><i class="fa fa-plus"></i></button></span>' .
self::formControlFamily(Family::getInstance($value, $WT_TREE), ['id' => $id, 'name' => $name]) .
'</div>';
} elseif ($fact === 'LATI') {
- echo '<input class="form-control" type="text" id="', $id, '" name="', $name, '" value="', Html::escape($value), '" oninput="valid_lati_long(this, \'N\', \'S\')">';
+ $html .= '<input class="form-control" type="text" id="' . $id . '" name="' . $name . '" value="' . Html::escape($value) . '" oninput="valid_lati_long(this, \'N\', \'S\')">';
} elseif ($fact === 'LONG') {
- echo '<input class="form-control" type="text" id="', $id, '" name="', $name, '" value="', Html::escape($value), '" oninput="valid_lati_long(this, \'E\', \'W\')">';
+ $html .= '<input class="form-control" type="text" id="' . $id . '" name="' . $name . '" value="' . Html::escape($value) . '" oninput="valid_lati_long(this, \'E\', \'W\')">';
} elseif ($fact === 'NOTE' && $islink) {
- echo
+ $html .=
'<div class="input-group">' .
'<span class="input-group-btn"><button class="btn btn-secondary" type="button" data-toggle="modal" data-target="#modal-create-note-object" data-element-id="' . $id . '" title="' . I18N::translate('Create a shared note') . '"><i class="fa fa-plus"></i></button></span>' .
self::formControlNote(Note::getInstance($value, $WT_TREE), ['id' => $id, 'name' => $name]) .
'</div>';
} elseif ($fact === 'OBJE') {
- echo
+ $html .=
'<div class="input-group">' .
'<span class="input-group-btn"><button class="btn btn-secondary" type="button" data-toggle="modal" data-target="#modal-create-media-object" data-element-id="' . $id . '" title="' . I18N::translate('Create a media object') . '"><i class="fa fa-plus"></i></button></span>' .
self::formControlMediaObject(Media::getInstance($value, $WT_TREE), ['id' => $id, 'name' => $name]) .
'</div>';
} elseif ($fact === 'PAGE') {
- echo '<input class="form-control" type="text" id="', $id, '" name="', $name, '" value="', Html::escape($value), '" data-autocomplete-type="PAGE" data-autocomplete-extra="#' . $previous_ids['SOUR'] . '">';
+ $html .= '<input class="form-control" type="text" id="' . $id . '" name="' . $name . '" value="' . Html::escape($value) . '" data-autocomplete-type="PAGE" data-autocomplete-extra="#' . $previous_ids['SOUR'] . '">';
} elseif ($fact === 'PEDI') {
- echo Bootstrap4::select(GedcomCodePedi::getValues($person), $value, ['id' => $id, 'name' => $name]);
+ $html .= Bootstrap4::select(GedcomCodePedi::getValues($person), $value, ['id' => $id, 'name' => $name]);
} elseif ($fact === 'PLAC') {
- echo '<div class="input-group">';
- echo self::formControlPlace($value, ['id' => $id, 'name' => $name]);
- echo '<span class="input-group-addon">' . FontAwesome::linkIcon('coordinates', I18N::translate('Latitude') . ' / ' . I18N::translate('Longitude'), ['data-toggle' => 'collapse', 'data-target' => '.child_of_' . $id]) . '</span>';
- echo self::inputAddonHelp('PLAC');
- echo '</div>';
+ $html .= '<div class="input-group">';
+ $html .= self::formControlPlace($value, ['id' => $id, 'name' => $name]);
+ $html .= '<span class="input-group-addon">' . FontAwesome::linkIcon('coordinates', I18N::translate('Latitude') . ' / ' . I18N::translate('Longitude'), ['data-toggle' => 'collapse', 'data-target' => '.child_of_' . $id]) . '</span>';
+ $html .= self::inputAddonHelp('PLAC');
+ $html .= '</div>';
if (Module::getModuleByName('places_assistant')) {
\PlacesAssistantModule::setup_place_subfields($id);
\PlacesAssistantModule::print_place_subfields($id);
}
} elseif ($fact === 'QUAY') {
- echo Bootstrap4::select(GedcomCodeQuay::getValues(), $value, ['id' => $id, 'name' => $name]);
+ $html .= Bootstrap4::select(GedcomCodeQuay::getValues(), $value, ['id' => $id, 'name' => $name]);
} elseif ($fact === 'RELA') {
- echo Bootstrap4::select(FunctionsEdit::optionsRelationships($value), $value, ['id' => $id, 'name' => $name]);
+ $html .= Bootstrap4::select(FunctionsEdit::optionsRelationships($value), $value, ['id' => $id, 'name' => $name]);
} elseif ($fact === 'REPO') {
- echo
+ $html .=
'<div class="input-group">' .
'<span class="input-group-btn"><button class="btn btn-secondary" type="button" data-toggle="modal" data-target="#modal-create-repository" data-element-id="' . $id . '" title="' . I18N::translate('Create a repository') . '"><i class="fa fa-plus"></i></button></span>' . self::formControlRepository(Individual::getInstance($value, $WT_TREE), ['id' => $id, 'name' => $name]) .
'</div>';
} elseif ($fact === 'RESN') {
- echo '<div class="input-group">';
- echo Bootstrap4::select(FunctionsEdit::optionsRestrictions(true), $value, ['id' => $id, 'name' => $name]);
- echo self::inputAddonHelp('RESN');
- echo '</span>';
- echo '</div>';
+ $html .= '<div class="input-group">';
+ $html .= Bootstrap4::select(FunctionsEdit::optionsRestrictions(true), $value, ['id' => $id, 'name' => $name]);
+ $html .= self::inputAddonHelp('RESN');
+ $html .= '</span>';
+ $html .= '</div>';
} elseif ($fact === 'SEX') {
- echo Bootstrap4::radioButtons($name, ['M' => I18N::translate('Male'), 'F' => I18N::translate('Female'), 'U' => I18N::translateContext('unknown gender', 'Unknown')], $value, true);
+ $html .= Bootstrap4::radioButtons($name, ['M' => I18N::translate('Male'), 'F' => I18N::translate('Female'), 'U' => I18N::translateContext('unknown gender', 'Unknown')], $value, true);
} elseif ($fact === 'SOUR') {
- echo
+ $html .=
'<div class="input-group">' .
'<span class="input-group-btn"><button class="btn btn-secondary" type="button" data-toggle="modal" data-target="#modal-create-source" data-element-id="' . $id . '" title="' . I18N::translate('Create a source') . '"><i class="fa fa-plus"></i></button></span>' .
self::formControlSource(Source::getInstance($value, $WT_TREE), ['id' => $id, 'name' => $name]) .
'</div>';
} elseif ($fact === 'STAT') {
- echo Bootstrap4::select(GedcomCodeStat::statusNames($upperlevel), $value);
+ $html .= Bootstrap4::select(GedcomCodeStat::statusNames($upperlevel), $value);
} elseif ($fact === 'SUBM') {
- echo
+ $html .=
'<div class="input-group">' .
'<span class="input-group-btn"><button class="btn btn-secondary" type="button" data-toggle="modal" data-target="#modal-create-submitter" data-element-id="' . $id . '" title="' . I18N::translate('Create a submitter') . '"><i class="fa fa-plus"></i></button></span>' .
self::formControlSubmitter(GedcomRecord::getInstance($value, $WT_TREE), ['id' => $id, 'name' => $name]) .
'</div>';
} elseif ($fact === 'TEMP') {
- echo Bootstrap4::select(FunctionsEdit::optionsTemples(), $value, ['id' => $id, 'name' => $name]);
+ $html .= Bootstrap4::select(FunctionsEdit::optionsTemples(), $value, ['id' => $id, 'name' => $name]);
} elseif ($fact === 'TIME') {
- echo '<input class="form-control" type="text" id="', $id, '" name="', $name, '" value="', Html::escape($value), '" pattern="([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?" dir="ltr" placeholder="' . /* I18N: Examples of valid time formats (hours:minutes:seconds) */ I18N::translate('hh:mm or hh:mm:ss') . '">';
+ $html .= '<input class="form-control" type="text" id="' . $id . '" name="' . $name . '" value="' . Html::escape($value) . '" pattern="([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?" dir="ltr" placeholder="' . /* I18N: Examples of valid time formats (hours:minutes:seconds) */ I18N::translate('hh:mm or hh:mm:ss') . '">';
} elseif ($fact === '_WT_USER') {
- echo Bootstrap4::select(FunctionsEdit::optionsUsers(), $value, ['id' => $id, 'name' => $name]);
+ $html .= Bootstrap4::select(FunctionsEdit::optionsUsers(), $value, ['id' => $id, 'name' => $name]);
} elseif ($fact === '_PRIM') {
- echo Bootstrap4::select(['' => '', 'Y' => I18N::translate('always'), 'N' => I18N::translate('never')], $value, ['id' => $id, 'name' => $name]);
- echo '<p class="small text-muted">', I18N::translate('Use this image for charts and on the individual’s page.'), '</p>';
+ $html .= Bootstrap4::select(['' => '', 'Y' => I18N::translate('always'), 'N' => I18N::translate('never')], $value, ['id' => $id, 'name' => $name]);
+ $html .= '<p class="small text-muted">' . I18N::translate('Use this image for charts and on the individual’s page.') . '</p>';
} elseif ($fact === 'TYPE' && $level === '3') {
//-- Build the selector for the Media 'TYPE' Fact
- echo '<select name="text[]"><option selected value="" ></option>';
+ $html .= '<select name="text[]"><option selected value="" ></option>';
$selectedValue = strtolower($value);
if (!array_key_exists($selectedValue, GedcomTag::getFileFormTypes())) {
- echo '<option selected value="', Html::escape($value), '" >', Html::escape($value), '</option>';
+ $html .= '<option selected value="' . Html::escape($value) . '" >' . Html::escape($value) . '</option>';
}
foreach (GedcomTag::getFileFormTypes() as $typeName => $typeValue) {
- echo '<option value="', $typeName, '" ';
+ $html .= '<option value="' . $typeName . '" ';
if ($selectedValue === $typeName) {
- echo 'selected';
+ $html .= 'selected';
}
- echo '>', $typeValue, '</option>';
+ $html .= '>' . $typeValue . '</option>';
}
- echo '</select>';
+ $html .= '</select>';
} elseif (($fact !== 'NAME' || $upperlevel === 'REPO' || $upperlevel === 'UNKNOWN') && $fact !== '_MARNM') {
if ($fact === 'TEXT' || $fact === 'ADDR' || ($fact === 'NOTE' && !$islink)) {
- echo '<div class="input-group">';
- echo '<textarea class="form-control" id="', $id, '" name="', $name, '" dir="auto">', Html::escape($value), '</textarea>';
- echo self::inputAddonKeyboard($id);
- echo '</div>';
+ $html .= '<div class="input-group">';
+ $html .= '<textarea class="form-control" id="' . $id . '" name="' . $name . '" dir="auto">' . Html::escape($value) . '</textarea>';
+ $html .= self::inputAddonKeyboard($id);
+ $html .= '</div>';
} else {
// If using GEDFact-assistant window
- echo '<input class="form-control" type="text" id="', $id, '" name="', $name, '" value="', Html::escape($value), '">';
+ $html .= '<input class="form-control" type="text" id="' . $id . '" name="' . $name . '" value="' . Html::escape($value) . '">';
}
} else {
// Populated in javascript from sub-tags
- echo '<input type="hidden" id="', $id, '" name="', $name, '" oninput="updateTextName(\'', $id, '\')" value="', Html::escape($value), '" class="', $fact, '">';
- echo '<span id="', $id, '_display" dir="auto">', Html::escape($value), '</span>';
- echo ' <a href="#edit_name" onclick="convertHidden(\'', $id, '\'); return false" class="icon-edit_indi" title="' . I18N::translate('Edit the name') . '"></a>';
+ $html .= '<input type="hidden" id="' . $id . '" name="' . $name . '" oninput="updateTextName(\'' . $id . '\')" value="' . Html::escape($value) . '" class="' . $fact . '">';
+ $html .= '<span id="' . $id . '_display" dir="auto">' . Html::escape($value) . '</span>';
+ $html .= ' <a href="#edit_name" onclick="convertHidden(\'' . $id . '\'); return false" class="icon-edit_indi" title="' . I18N::translate('Edit the name') . '"></a>';
}
// MARRiage TYPE : hide text field and show a selection list
if ($fact === 'TYPE' && $level === '2' && $tags[0] === 'MARR') {
- echo '<script>';
- echo 'document.getElementById(\'', $id, '\').style.display=\'none\'';
- echo '</script>';
- echo '<select id="', $id, '_sel" oninput="document.getElementById(\'', $id, '\').value=this.value" >';
+ $html .= '<script>';
+ $html .= 'document.getElementById(\'' . $id . '\').style.display=\'none\'';
+ $html .= '</script>';
+ $html .= '<select id="' . $id . '_sel" oninput="document.getElementById(\'' . $id . '\').value=this.value" >';
foreach (['Unknown', 'Civil', 'Religious', 'Partners'] as $key) {
if ($key === 'Unknown') {
- echo '<option value="" ';
+ $html .= '<option value="" ';
} else {
- echo '<option value="', $key, '" ';
+ $html .= '<option value="' . $key . '" ';
}
$a = strtolower($key);
$b = strtolower($value);
if ($b !== '' && strpos($a, $b) !== false || strpos($b, $a) !== false) {
- echo 'selected';
+ $html .= 'selected';
}
- echo '>', GedcomTag::getLabel('MARR_' . strtoupper($key)), '</option>';
+ $html .= '>' . GedcomTag::getLabel('MARR_' . strtoupper($key)) . '</option>';
}
- echo '</select>';
+ $html .= '</select>';
} elseif ($fact === 'TYPE' && $level === 0) {
// NAME TYPE : hide text field and show a selection list
- echo Bootstrap4::select(GedcomCodeName::getValues($person), $value, ['id' => $id, 'name' => $name, 'oninput' => 'document.getElementById(\'' . $id . '\').value=this.value"']);
- echo '<script>document.getElementById("', $id, '").style.display="none";</script>';
+ $html .= Bootstrap4::select(GedcomCodeName::getValues($person), $value, ['id' => $id, 'name' => $name, 'oninput' => 'document.getElementById(\'' . $id . '\').value=this.value"']);
+ $html .= '<script>document.getElementById("' . $id . '").style.display="none";</script>';
}
// popup links
@@ -851,7 +852,7 @@ class FunctionsEdit {
case 'SOUR':
//-- checkboxes to apply '1 SOUR' to BIRT/MARR/DEAT as '2 SOUR'
if ($level === '1') {
- echo '<br>';
+ $html .= '<br>';
switch ($WT_TREE->getPreference('PREFER_LEVEL2_SOURCES')) {
case '2': // records
$level1_checked = 'checked';
@@ -868,11 +869,11 @@ class FunctionsEdit {
break;
}
if (strpos($bdm, 'B') !== false) {
- echo ' <label><input type="checkbox" name="SOUR_INDI" ', $level1_checked, ' value="1">', I18N::translate('Individual'), '</label>';
+ $html .= ' <label><input type="checkbox" name="SOUR_INDI" ' . $level1_checked . ' value="1">' . I18N::translate('Individual') . '</label>';
if (preg_match_all('/(' . WT_REGEX_TAG . ')/', $WT_TREE->getPreference('QUICK_REQUIRED_FACTS'), $matches)) {
foreach ($matches[1] as $match) {
if (!in_array($match, explode('|', WT_EVENTS_DEAT))) {
- echo ' <label><input type="checkbox" name="SOUR_', $match, '" ', $level2_checked, ' value="1">', GedcomTag::getLabel($match), '</label>';
+ $html .= ' <label><input type="checkbox" name="SOUR_' . $match . '" ' . $level2_checked . ' value="1">' . GedcomTag::getLabel($match) . '</label>';
}
}
}
@@ -881,16 +882,16 @@ class FunctionsEdit {
if (preg_match_all('/(' . WT_REGEX_TAG . ')/', $WT_TREE->getPreference('QUICK_REQUIRED_FACTS'), $matches)) {
foreach ($matches[1] as $match) {
if (in_array($match, explode('|', WT_EVENTS_DEAT))) {
- echo ' <label><input type="checkbox" name="SOUR_', $match, '"', $level2_checked, ' value="1">', GedcomTag::getLabel($match), '</label>';
+ $html .= ' <label><input type="checkbox" name="SOUR_' . $match . '"' . $level2_checked . ' value="1">' . GedcomTag::getLabel($match) . '</label>';
}
}
}
}
if (strpos($bdm, 'M') !== false) {
- echo ' <label><input type="checkbox" name="SOUR_FAM" ', $level1_checked, ' value="1">', I18N::translate('Family'), '</label>';
+ $html .= ' <label><input type="checkbox" name="SOUR_FAM" ' . $level1_checked . ' value="1">' . I18N::translate('Family') . '</label>';
if (preg_match_all('/(' . WT_REGEX_TAG . ')/', $WT_TREE->getPreference('QUICK_REQUIRED_FAMFACTS'), $matches)) {
foreach ($matches[1] as $match) {
- echo ' <label><input type="checkbox" name="SOUR_', $match, '"', $level2_checked, ' value="1">', GedcomTag::getLabel($match), '</label>';
+ $html .= ' <label><input type="checkbox" name="SOUR_' . $match . '"' . $level2_checked . ' value="1">' . GedcomTag::getLabel($match) . '</label>';
}
}
}
@@ -898,15 +899,15 @@ class FunctionsEdit {
break;
}
- echo '<div id="' . $id . '_description">';
+ $html .= '<div id="' . $id . '_description">';
// pastable values
if ($fact === 'FORM' && $upperlevel === 'OBJE') {
FunctionsPrint::printAutoPasteLink($id, Config::fileFormats());
}
- echo '</div>', $extra, '</div></div>';
+ $html .= '</div>' . $extra . '</div></div>';
- return $id;
+ return $html;
}
/**
@@ -994,47 +995,47 @@ class FunctionsEdit {
switch ($tag) {
case 'SOUR':
echo '<h3>', I18N::translate('Add a source citation'), '</h3>';
- self::addSimpleTag($level . ' SOUR @');
- self::addSimpleTag(($level + 1) . ' PAGE');
- self::addSimpleTag(($level + 1) . ' DATA');
- self::addSimpleTag(($level + 2) . ' TEXT');
+ echo self::addSimpleTag($level . ' SOUR @');
+ echo self::addSimpleTag(($level + 1) . ' PAGE');
+ echo self::addSimpleTag(($level + 1) . ' DATA');
+ echo self::addSimpleTag(($level + 2) . ' TEXT');
if ($WT_TREE->getPreference('FULL_SOURCES')) {
- self::addSimpleTag(($level + 2) . ' DATE', '', GedcomTag::getLabel('DATA:DATE'));
- self::addSimpleTag(($level + 1) . ' QUAY');
+ echo self::addSimpleTag(($level + 2) . ' DATE', '', GedcomTag::getLabel('DATA:DATE'));
+ echo self::addSimpleTag(($level + 1) . ' QUAY');
}
- self::addSimpleTag(($level + 1) . ' OBJE');
- self::addSimpleTag(($level + 1) . ' SHARED_NOTE');
+ echo self::addSimpleTag(($level + 1) . ' OBJE');
+ echo self::addSimpleTag(($level + 1) . ' SHARED_NOTE');
break;
case 'ASSO':
case 'ASSO2':
echo '<h3>', I18N::translate('Add an associate'), '</h3>';
- self::addSimpleTag($level . ' _ASSO @');
- self::addSimpleTag(($level + 1) . ' RELA');
- self::addSimpleTag(($level + 1) . ' NOTE');
- self::addSimpleTag(($level + 1) . ' SHARED_NOTE');
+ echo self::addSimpleTag($level . ' _ASSO @');
+ echo self::addSimpleTag(($level + 1) . ' RELA');
+ echo self::addSimpleTag(($level + 1) . ' NOTE');
+ echo self::addSimpleTag(($level + 1) . ' SHARED_NOTE');
break;
case 'NOTE':
echo '<h3>', I18N::translate('Add a note'), '</h3>';
- self::addSimpleTag($level . ' NOTE');
+ echo self::addSimpleTag($level . ' NOTE');
break;
case 'SHARED_NOTE':
echo '<h3>', I18N::translate('Add a shared note'), '</h3>';
- self::addSimpleTag($level . ' SHARED_NOTE', $parent_tag);
+ echo self::addSimpleTag($level . ' SHARED_NOTE', $parent_tag);
break;
case 'OBJE':
if ($WT_TREE->getPreference('MEDIA_UPLOAD') >= Auth::accessLevel($WT_TREE)) {
echo '<h3>', I18N::translate('Add a media object'), '</h3>';
- self::addSimpleTag($level . ' OBJE');
+ echo self::addSimpleTag($level . ' OBJE');
}
break;
case 'RESN':
echo '<h3>', I18N::translate('Add a restriction'), '</h3>';
- self::addSimpleTag($level . ' RESN');
+ echo self::addSimpleTag($level . ' RESN');
break;
}
}
@@ -1049,26 +1050,26 @@ class FunctionsEdit {
// For new individuals, these facts default to "Y"
if ($fact === 'MARR') {
- self::addSimpleTag('0 ' . $fact . ' Y');
+ echo self::addSimpleTag('0 ' . $fact . ' Y');
} else {
- self::addSimpleTag('0 ' . $fact);
+ echo self::addSimpleTag('0 ' . $fact);
}
if (!in_array($fact, Config::nonDateFacts())) {
- self::addSimpleTag('0 DATE', $fact, GedcomTag::getLabel($fact . ':DATE'));
+ echo self::addSimpleTag('0 DATE', $fact, GedcomTag::getLabel($fact . ':DATE'));
}
if (!in_array($fact, Config::nonPlaceFacts())) {
- self::addSimpleTag('0 PLAC', $fact, GedcomTag::getLabel($fact . ':PLAC'));
+ echo self::addSimpleTag('0 PLAC', $fact, GedcomTag::getLabel($fact . ':PLAC'));
if (preg_match_all('/(' . WT_REGEX_TAG . ')/', $WT_TREE->getPreference('ADVANCED_PLAC_FACTS'), $match)) {
foreach ($match[1] as $tag) {
- self::addSimpleTag('0 ' . $tag, $fact, GedcomTag::getLabel($fact . ':PLAC:' . $tag));
+ echo self::addSimpleTag('0 ' . $tag, $fact, GedcomTag::getLabel($fact . ':PLAC:' . $tag));
}
}
- self::addSimpleTag('0 MAP', $fact);
- self::addSimpleTag('0 LATI', $fact);
- self::addSimpleTag('0 LONG', $fact);
+ echo self::addSimpleTag('0 MAP', $fact);
+ echo self::addSimpleTag('0 LATI', $fact);
+ echo self::addSimpleTag('0 LONG', $fact);
}
}
@@ -1432,7 +1433,7 @@ class FunctionsEdit {
// handle MARRiage TYPE
if (substr($fact, 0, 5) === 'MARR_') {
$tags[0] = 'MARR';
- self::addSimpleTag('1 MARR');
+ echo self::addSimpleTag('1 MARR');
self::insertMissingSubtags($fact);
} else {
$tags[0] = $fact;
@@ -1444,18 +1445,18 @@ class FunctionsEdit {
$fact .= ' @';
}
if (in_array($fact, Config::emptyFacts())) {
- self::addSimpleTag('1 ' . $fact . ' Y');
+ echo self::addSimpleTag('1 ' . $fact . ' Y');
} else {
- self::addSimpleTag('1 ' . $fact);
+ echo self::addSimpleTag('1 ' . $fact);
}
self::insertMissingSubtags($tags[0]);
//-- handle the special SOURce case for level 1 sources [ 1759246 ]
if ($fact === 'SOUR') {
- self::addSimpleTag('2 PAGE');
- self::addSimpleTag('3 TEXT');
+ echo self::addSimpleTag('2 PAGE');
+ echo self::addSimpleTag('3 TEXT');
if ($WT_TREE->getPreference('FULL_SOURCES')) {
- self::addSimpleTag('3 DATE', '', GedcomTag::getLabel('DATA:DATE'));
- self::addSimpleTag('2 QUAY');
+ echo self::addSimpleTag('3 DATE', '', GedcomTag::getLabel('DATA:DATE'));
+ echo self::addSimpleTag('2 QUAY');
}
}
}
@@ -1544,17 +1545,17 @@ class FunctionsEdit {
$tags[] = $type;
$subrecord = $level . ' ' . $type . ' ' . $text;
if ($inSource && $type === 'DATE') {
- self::addSimpleTag($subrecord, '', GedcomTag::getLabel($label, $record));
+ echo self::addSimpleTag($subrecord, '', GedcomTag::getLabel($label, $record));
} elseif (!$inSource && $type === 'DATE') {
- self::addSimpleTag($subrecord, $level1type, GedcomTag::getLabel($label, $record));
+ echo self::addSimpleTag($subrecord, $level1type, GedcomTag::getLabel($label, $record));
if ($level === '2') {
// We already have a date - no need to add one.
$add_date = false;
}
} elseif ($type === 'STAT') {
- self::addSimpleTag($subrecord, $level1type, GedcomTag::getLabel($label, $record));
+ echo self::addSimpleTag($subrecord, $level1type, GedcomTag::getLabel($label, $record));
} else {
- self::addSimpleTag($subrecord, $level0type, GedcomTag::getLabel($label, $record));
+ echo self::addSimpleTag($subrecord, $level0type, GedcomTag::getLabel($label, $record));
}
}
@@ -1570,10 +1571,10 @@ class FunctionsEdit {
if (!empty($expected_subtags[$type])) {
foreach ($expected_subtags[$type] as $subtag) {
if (!in_array($subtag, $subtags)) {
- self::addSimpleTag(($level + 1) . ' ' . $subtag, '', GedcomTag::getLabel($label . ':' . $subtag));
+ echo self::addSimpleTag(($level + 1) . ' ' . $subtag, '', GedcomTag::getLabel($label . ':' . $subtag));
if (!empty($expected_subtags[$subtag])) {
foreach ($expected_subtags[$subtag] as $subsubtag) {
- self::addSimpleTag(($level + 2) . ' ' . $subsubtag, '', GedcomTag::getLabel($label . ':' . $subtag . ':' . $subsubtag));
+ echo self::addSimpleTag(($level + 2) . ' ' . $subsubtag, '', GedcomTag::getLabel($label . ':' . $subtag . ':' . $subsubtag));
}
}
}
@@ -1624,76 +1625,76 @@ class FunctionsEdit {
}
if (in_array($level1tag, $value) && !in_array($key, $tags)) {
if ($key === 'TYPE') {
- self::addSimpleTag('2 TYPE ' . $type_val, $level1tag);
+ echo self::addSimpleTag('2 TYPE ' . $type_val, $level1tag);
} elseif ($level1tag === '_TODO' && $key === 'DATE') {
- self::addSimpleTag('2 ' . $key . ' ' . strtoupper(date('d M Y')), $level1tag);
+ echo self::addSimpleTag('2 ' . $key . ' ' . strtoupper(date('d M Y')), $level1tag);
} elseif ($level1tag === '_TODO' && $key === '_WT_USER') {
- self::addSimpleTag('2 ' . $key . ' ' . Auth::user()->getUserName(), $level1tag);
+ echo self::addSimpleTag('2 ' . $key . ' ' . Auth::user()->getUserName(), $level1tag);
} elseif ($level1tag === 'TITL' && strstr($WT_TREE->getPreference('ADVANCED_NAME_FACTS'), $key) !== false) {
- self::addSimpleTag('2 ' . $key, $level1tag);
+ echo self::addSimpleTag('2 ' . $key, $level1tag);
} elseif ($level1tag === 'NAME' && strstr($WT_TREE->getPreference('ADVANCED_NAME_FACTS'), $key) !== false) {
- self::addSimpleTag('2 ' . $key, $level1tag);
+ echo self::addSimpleTag('2 ' . $key, $level1tag);
} elseif ($level1tag !== 'TITL' && $level1tag !== 'NAME') {
- self::addSimpleTag('2 ' . $key, $level1tag);
+ echo self::addSimpleTag('2 ' . $key, $level1tag);
}
// Add level 3/4 tags as appropriate
switch ($key) {
case 'PLAC':
if (preg_match_all('/(' . WT_REGEX_TAG . ')/', $WT_TREE->getPreference('ADVANCED_PLAC_FACTS'), $match)) {
foreach ($match[1] as $tag) {
- self::addSimpleTag('3 ' . $tag, '', GedcomTag::getLabel($level1tag . ':PLAC:' . $tag));
+ echo self::addSimpleTag('3 ' . $tag, '', GedcomTag::getLabel($level1tag . ':PLAC:' . $tag));
}
}
- self::addSimpleTag('3 MAP');
- self::addSimpleTag('4 LATI');
- self::addSimpleTag('4 LONG');
+ echo self::addSimpleTag('3 MAP');
+ echo self::addSimpleTag('4 LATI');
+ echo self::addSimpleTag('4 LONG');
break;
case 'FILE':
- self::addSimpleTag('3 FORM');
+ echo self::addSimpleTag('3 FORM');
break;
case 'EVEN':
- self::addSimpleTag('3 DATE');
- self::addSimpleTag('3 PLAC');
+ echo self::addSimpleTag('3 DATE');
+ echo self::addSimpleTag('3 PLAC');
break;
case 'STAT':
if (GedcomCodeTemp::isTagLDS($level1tag)) {
- self::addSimpleTag('3 DATE', '', GedcomTag::getLabel('STAT:DATE'));
+ echo self::addSimpleTag('3 DATE', '', GedcomTag::getLabel('STAT:DATE'));
}
break;
case 'DATE':
// TIME is NOT a valid 5.5.1 tag
if (in_array($level1tag, Config::dateAndTime())) {
- self::addSimpleTag('3 TIME');
+ echo self::addSimpleTag('3 TIME');
}
break;
case 'HUSB':
case 'WIFE':
- self::addSimpleTag('3 AGE');
+ echo self::addSimpleTag('3 AGE');
break;
case 'FAMC':
if ($level1tag === 'ADOP') {
- self::addSimpleTag('3 ADOP BOTH');
+ echo self::addSimpleTag('3 ADOP BOTH');
}
break;
}
} elseif ($key === 'DATE' && $add_date) {
- self::addSimpleTag('2 DATE', $level1tag, GedcomTag::getLabel($level1tag . ':DATE'));
+ echo self::addSimpleTag('2 DATE', $level1tag, GedcomTag::getLabel($level1tag . ':DATE'));
}
}
// Do something (anything!) with unrecognized custom tags
if (substr($level1tag, 0, 1) === '_' && $level1tag !== '_UID' && $level1tag !== '_PRIM' && $level1tag !== '_TODO') {
foreach (['DATE', 'PLAC', 'ADDR', 'AGNC', 'TYPE', 'AGE'] as $tag) {
if (!in_array($tag, $tags)) {
- self::addSimpleTag('2 ' . $tag);
+ echo self::addSimpleTag('2 ' . $tag);
if ($tag === 'PLAC') {
if (preg_match_all('/(' . WT_REGEX_TAG . ')/', $WT_TREE->getPreference('ADVANCED_PLAC_FACTS'), $match)) {
foreach ($match[1] as $ptag) {
- self::addSimpleTag('3 ' . $ptag, '', GedcomTag::getLabel($level1tag . ':PLAC:' . $ptag));
+ echo self::addSimpleTag('3 ' . $ptag, '', GedcomTag::getLabel($level1tag . ':PLAC:' . $ptag));
}
}
- self::addSimpleTag('3 MAP');
- self::addSimpleTag('4 LATI');
- self::addSimpleTag('4 LONG');
+ echo self::addSimpleTag('3 MAP');
+ echo self::addSimpleTag('4 LATI');
+ echo self::addSimpleTag('4 LONG');
}
}
}