diff options
| author | Łukasz Wilenski <wooc@gazeta.pl> | 2010-04-25 19:08:55 +0000 |
|---|---|---|
| committer | Łukasz Wilenski <wooc@gazeta.pl> | 2010-04-25 19:08:55 +0000 |
| commit | 0deceefa188647aeda1eabe87b2895291a422897 (patch) | |
| tree | b4cb38b9bd52c55e5ab7d61e6be955955cef3369 | |
| parent | 4f437bb190d940af76e681d4619e3f4b0e9990d4 (diff) | |
| download | webtrees-0deceefa188647aeda1eabe87b2895291a422897.tar.gz webtrees-0deceefa188647aeda1eabe87b2895291a422897.tar.bz2 webtrees-0deceefa188647aeda1eabe87b2895291a422897.zip | |
correct some statistics
| -rw-r--r-- | includes/classes/class_stats.php | 142 |
1 files changed, 58 insertions, 84 deletions
diff --git a/includes/classes/class_stats.php b/includes/classes/class_stats.php index 4ee1d5da4e..5bcfd2d93f 100644 --- a/includes/classes/class_stats.php +++ b/includes/classes/class_stats.php @@ -1729,63 +1729,51 @@ class stats { if (empty($rows)) return ''; $func="century_localisation_".WT_LOCALE; $chxl = "0:|"; - $male = true; - $temp = ""; $countsm = ""; $countsf = ""; $countsa = ""; foreach ($rows as $values) { - if ($temp!=$values['century']) { - $temp = $values['century']; - if ($sizes[0]<980) $sizes[0] += 50; - if (function_exists($func)) { - $century = $func($values['century'], false); - } else { - $century = $values['century']; - } - $chxl .= $century."|"; - if ($values['sex'] == "F") { - if (!$male) { - $countsm .= "0,"; - $countsa .= $fage.","; - } - $countsf .= $values['age'].","; - $fage = $values['age']; - $male = false; - } else if ($values['sex'] == "M") { - $countsf .= "0,"; - $countsm .= $values['age'].","; - $countsa .= $values['age'].","; - } else if ($values['sex'] == "U") { - $countsf .= "0,"; - $countsm .= "0,"; - $countsa .= "0,"; - } + $out[$values['century']][$values['sex']]=$values['age']; + } + foreach ($out as $century=>$values) { + if ($sizes[0]<980) $sizes[0] += 50; + if (function_exists($func)) { + $century = $func($century, false); } - else if ($values['sex'] == "M") { - $countsm .= $values['age'].","; - $countsa .= round(($fage+$values['age'])/2,1).","; - $male = true; + $chxl .= $century."|"; + $average = 0; + if (isset($values['F'])) { + $countsf .= $values['F'].","; + $average = $values['F']; + } else { + $countsf .= "0,"; + } + if (isset($values['M'])) { + $countsm .= $values['M'].","; + if ($average==0) $countsa .= $values['M'].","; + else $countsa .= (($values['M']+$average)/2).","; + } else { + $countsm .= "0,"; + if ($average==0) $countsa .= "0,"; + else $countsa .= $values['F'].","; } - } - if (!$male) { - $countsa .= $fage.","; } $countsm = substr($countsm,0,-1); $countsf = substr($countsf,0,-1); $countsa = substr($countsa,0,-1); $chd = "t2:{$countsm}|{$countsf}|{$countsa}"; $chxl .= "1:||".i18n::translate('century')."|2:|0|10|20|30|40|50|60|70|80|90|100|3:||".i18n::translate('Age')."|"; - if (count($rows)>4 || utf8_strlen(i18n::translate('Average age related to death century'))<30) { - $chtt = i18n::translate('Average age related to death century'); + $title = i18n::translate('Average age related to death century'); + if (count($rows)>6 || utf8_strlen($title)<30) { + $chtt = $title; } else { $offset = 0; $counter = array(); - while($offset = strpos(i18n::translate('Average age related to death century'), " ", $offset + 1)){ + while($offset = strpos($title, " ", $offset + 1)){ $counter[] = $offset; } $half = floor(count($counter)/2); - $chtt = substr_replace(i18n::translate('Average age related to death century'), '|', $counter[$half], 1); + $chtt = substr_replace($title, '|', $counter[$half], 1); } return '<img src="'.encode_url("http://chart.apis.google.com/chart?cht=bvg&chs={$sizes[0]}x{$sizes[1]}&chm=D,FF0000,2,0,3,1|N*f1*,000000,0,-1,11,1|N*f1*,000000,1,-1,11,1&chf=bg,s,ffffff00|c,s,ffffff00&chtt={$chtt}&chd={$chd}&chco=0000FF,FFA0CB,FF0000&chbh=20,3&chxt=x,x,y,y&chxl={$chxl}&chdl=".i18n::translate('Males').'|'.i18n::translate('Females').'|'.i18n::translate('Average age at death'))."\" width=\"{$sizes[0]}\" height=\"{$sizes[1]}\" alt=\"".i18n::translate('Average age related to death century')."\" title=\"".i18n::translate('Average age related to death century')."\" />"; } else { @@ -2597,57 +2585,43 @@ class stats { $chmm = ""; $chmf = ""; $i = 0; - $male = true; - $temp = ""; $countsm = ""; $countsf = ""; $countsa = ""; foreach ($rows as $values) { - if ($max<=50) $chage = $values['age']*2; - else $chage = $values['age']; - if ($temp!=$values['century']) { - $temp = $values['century']; - if ($sizes[0]<1000) $sizes[0] += 50; - if (function_exists($func)) { - $century = $func($values['century'], false); - } else { - $century = $values['century']; - } - $chxl .= $century."|"; - if ($values['sex'] == "F") { - if (!$male) { - $countsm .= "0,"; - $chmm .= 't0,000000,0,'.($i-1).',11,1|'; - $countsa .= $fage.","; - } - $countsf .= $chage.","; - $chmf .= 't'.$values['age'].',000000,1,'.$i.',11,1|'; - $fage = $chage; - $male = false; - } else if ($values['sex'] == "M") { - $countsf .= "0,"; - $chmf .= 't0,000000,1,'.$i.',11,1|'; - $countsm .= $chage.","; - $chmm .= 't'.$values['age'].',000000,0,'.$i.',11,1|'; - $countsa .= $chage.","; - } else if ($values['sex'] == "U") { - $countsf .= "0,"; - $chmf .= 't0,000000,1,'.$i.',11,1|'; - $countsm .= "0,"; - $chmm .= 't0,000000,0,'.$i.',11,1|'; - $countsa .= "0,"; - } - $i++; + $out[$values['century']][$values['sex']]=$values['age']; + } + foreach ($out as $century=>$values) { + if ($sizes[0]<1000) $sizes[0] += 50; + if (function_exists($func)) { + $century = $func($century, false); } - else if ($values['sex'] == "M") { - $countsm .= $chage.","; - $chmm .= 't'.$values['age'].',000000,0,'.($i-1).',11,1|'; - $countsa .= round(($fage+$chage)/2,1).","; - $male = true; + $chxl .= $century."|"; + $average = 0; + if (isset($values['F'])) { + if ($max<=50) $value = $values['F']*2; + else $value = $values['F']; + $countsf .= $value.","; + $average = $value; + $chmf .= 't'.$values['F'].',000000,1,'.$i.',11,1|'; + } else { + $countsf .= "0,"; + $chmf .= 't0,000000,1,'.$i.',11,1|'; } - } - if (!$male) { - $countsa .= $fage.","; + if (isset($values['M'])) { + if ($max<=50) $value = $values['M']*2; + else $value = $values['M']; + $countsm .= $value.","; + if ($average==0) $countsa .= $value.","; + else $countsa .= (($value+$average)/2).","; + $chmm .= 't'.$values['M'].',000000,0,'.$i.',11,1|'; + } else { + $countsm .= "0,"; + if ($average==0) $countsa .= "0,"; + else $countsa .= $value.","; + $chmm .= 't0,000000,0,'.$i.',11,1|'; + } + $i++; } $countsm = substr($countsm,0,-1); $countsf = substr($countsf,0,-1); |
