summaryrefslogtreecommitdiff
path: root/modules_v3
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2013-10-05 18:42:17 +0100
committerGreg Roach <fisharebest@gmail.com>2013-10-05 18:42:17 +0100
commitd85e27bc83c4fa50299becdb0d6e389b90f0f9b3 (patch)
tree95d71cedfb88ed6b2f5024a7530666c7d1805473 /modules_v3
parentbddd202e8e3ef83bb1baef1418b4eaec21bbe52e (diff)
downloadwebtrees-d85e27bc83c4fa50299becdb0d6e389b90f0f9b3.tar.gz
webtrees-d85e27bc83c4fa50299becdb0d6e389b90f0f9b3.tar.bz2
webtrees-d85e27bc83c4fa50299becdb0d6e389b90f0f9b3.zip
Age difference between children was lost in the rewrite - add it back
Diffstat (limited to 'modules_v3')
-rw-r--r--modules_v3/relatives/module.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/modules_v3/relatives/module.php b/modules_v3/relatives/module.php
index e51c22d54a..0fe7d7986d 100644
--- a/modules_v3/relatives/module.php
+++ b/modules_v3/relatives/module.php
@@ -42,6 +42,32 @@ class relatives_WT_Module extends WT_Module implements WT_Module_Tab {
return 20;
}
+ static function ageDifference(WT_Date $prev, WT_Date $next, $child_number=0) {
+ if ($prev->isOK() && $next->isOK()) {
+ $days = $next->MaxJD() - $prev->MinJD();
+ if ($days<0) {
+ // Show warning triangle if dates in reverse order
+ $diff = '<i class="icon-warning"></i> ';
+ } elseif ($child_number>1 && $days>1 && $days<240) {
+ // Show warning triangle if children born too close together
+ $diff = '<i class="icon-warning"></i> ';
+ } else {
+ $diff = '';
+ }
+
+ $months = round($days * 12 / 365.25); // Approximate - we do not know the calendar
+ if (abs($months)==12 || abs($months)>=24) {
+ $diff .= WT_I18N::plural('%d year', '%d years', round($months / 12), round($months / 12));
+ } elseif ($gap!=0) {
+ $diff .= WT_I18N::plural('%d month', '%d months', $months, $months);
+ }
+
+ return '<div class="elderdate age">' . $diff . '</div>';
+ } else {
+ return '';
+ }
+ }
+
// print parents informations
function printFamily(WT_Family $family, $type, $label) {
global $controller;
@@ -105,6 +131,7 @@ class relatives_WT_Module extends WT_Module implements WT_Module_Tab {
///// MARR /////
$found = false;
+ $prev = new WT_Date('');
foreach ($family->getFacts(WT_EVENTS_MARR) as $fact) {
$found |= !$fact->isOld();
if ($fact->isNew()) {
@@ -124,6 +151,9 @@ class relatives_WT_Module extends WT_Module implements WT_Module_Tab {
</td>
</tr>
<?php
+ if (!$prev->isOK() && $fact->getDate()->isOK()) {
+ $prev = $fact->getDate();
+ }
}
if (!$found && $family->canShow() && $family->canEdit()) {
// Add a new marriage
@@ -176,19 +206,30 @@ class relatives_WT_Module extends WT_Module implements WT_Module_Tab {
}
///// CHIL /////
+ $child_number = 0;
foreach ($family->getFacts('CHIL', $access_level) as $fact) {
$person = $fact->getTarget();
if ($person instanceof WT_Individual) {
if ($fact->isNew()) {
+ $child_number++;
$class = 'facts_label new';
} elseif ($fact->isOld()) {
$class = 'facts_label old';
} else {
+ $child_number++;
$class = 'facts_label';
}
+ $next = new WT_Date('');
+ foreach ($person->getFacts(WT_EVENTS_BIRT) as $fact) {
+ if ($fact->getDate()->isOK()) {
+ $next=$fact->getDate();
+ break;
+ }
+ }
?>
<tr>
<td class="<?php echo $class; ?>">
+ <?php echo self::ageDifference($prev, $next, $child_number); ?>
<?php echo get_close_relationship_name($controller->record, $person); ?>
</td>
<td class="<?php echo $controller->getPersonStyle($person); ?>">
@@ -196,6 +237,7 @@ class relatives_WT_Module extends WT_Module implements WT_Module_Tab {
</td>
</tr>
<?php
+ $prev = $next;
}
}
// Re-order children / add a new child