Passed
Push — master ( e8097c...9fd6b6 )
by Jonathan
05:26
created
src/Webtrees/Module/Sosa/SosaStatsController.php 1 patch
Spacing   +37 added lines, -38 removed lines patch added patch discarded remove patch
@@ -62,7 +62,7 @@  discard block
 block discarded – undo
62 62
         $view_bag->set('title', $controller->getPageTitle());
63 63
         $view_bag->set('is_setup', false);
64 64
         
65
-        if($this->sosa_provider->isSetup()) {
65
+        if ($this->sosa_provider->isSetup()) {
66 66
             $view_bag->set('is_setup', true);
67 67
             
68 68
             $view_bag->set('root_indi', $this->sosa_provider->getRootIndi());
@@ -83,23 +83,23 @@  discard block
 block discarded – undo
83 83
             $view_bag->set('missinganc_url', 'module.php?mod='.$this->module->getName().'&mod_action=SosaList@missing&ged='.$wt_tree->getNameUrl().'&gen=');
84 84
             $view_bag->set('sosaanc_url', 'module.php?mod='.$this->module->getName().'&mod_action=SosaList&ged='.$wt_tree->getNameUrl().'&gen=');
85 85
             
86
-            $gen_theoretical=1;
87
-            $total_theoretical=0;
88
-            $prev_diff=0;
89
-            $prev_known=0.5;
90
-            $gen_equiv=0;            
86
+            $gen_theoretical = 1;
87
+            $total_theoretical = 0;
88
+            $prev_diff = 0;
89
+            $prev_known = 0.5;
90
+            $gen_equiv = 0;            
91 91
             $generation_stats = array();
92 92
             
93
-            foreach($stats_gen as $gen => $tab){
94
-                $genY1= I18N::translate('-');
95
-                $genY2= I18N::translate('-');
96
-                if($tab['firstBirth']>0) $genY1=$tab['firstEstimatedBirth'];
97
-                if($tab['lastBirth']>0) $genY2=$tab['lastEstimatedBirth'];
93
+            foreach ($stats_gen as $gen => $tab) {
94
+                $genY1 = I18N::translate('-');
95
+                $genY2 = I18N::translate('-');
96
+                if ($tab['firstBirth'] > 0) $genY1 = $tab['firstEstimatedBirth'];
97
+                if ($tab['lastBirth'] > 0) $genY2 = $tab['lastEstimatedBirth'];
98 98
                 $total_theoretical += $gen_theoretical;
99 99
                 $perc_sosa_count_theor = Functions::safeDivision($tab['sosaCount'], $gen_theoretical);
100 100
                 $gen_equiv += $perc_sosa_count_theor;
101
-                $missing=2*$prev_known - $tab['sosaCount'];
102
-                $gen_diff=$tab['diffSosaTotalCount']-$prev_diff;
101
+                $missing = 2 * $prev_known - $tab['sosaCount'];
102
+                $gen_diff = $tab['diffSosaTotalCount'] - $prev_diff;
103 103
                 
104 104
                 $generation_stats[$gen] = array(
105 105
                     'gen_min_birth' => $genY1,
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
                     'known' => $tab['sosaCount'],
109 109
                     'perc_known' => $perc_sosa_count_theor,
110 110
                     'missing' => $missing,
111
-                    'perc_missing' => 1-Functions::safeDivision($tab['sosaCount'], 2*$prev_known),
111
+                    'perc_missing' => 1 - Functions::safeDivision($tab['sosaCount'], 2 * $prev_known),
112 112
                     'total_known' => $tab['sosaTotalCount'],
113 113
                     'perc_total_known' => Functions::safeDivision($tab['sosaTotalCount'], $total_theoretical),
114 114
                     'different' => $gen_diff,
@@ -118,8 +118,8 @@  discard block
 block discarded – undo
118 118
                 );
119 119
                 
120 120
                 $gen_theoretical = $gen_theoretical * 2;
121
-                $prev_known=$tab['sosaCount'];
122
-                $prev_diff=$tab['diffSosaTotalCount'];
121
+                $prev_known = $tab['sosaCount'];
122
+                $prev_diff = $tab['diffSosaTotalCount'];
123 123
             }
124 124
             
125 125
             $view_bag->set('generation_stats', $generation_stats);
@@ -127,13 +127,12 @@  discard block
 block discarded – undo
127 127
             
128 128
             $top10multiancestors = $this->sosa_provider->getTopMultiSosaAncestorsNoTies(10);
129 129
             $top10ancestors = array();
130
-            if($top10multiancestors !== null && count($top10multiancestors)) {
131
-                foreach($top10multiancestors as $pid => $count) {
130
+            if ($top10multiancestors !== null && count($top10multiancestors)) {
131
+                foreach ($top10multiancestors as $pid => $count) {
132 132
                     $indi = Individual::getInstance($pid, $wt_tree);
133
-                    if($indi !== null && $indi->canShowName()) {
133
+                    if ($indi !== null && $indi->canShowName()) {
134 134
                         array_key_exists($count, $top10ancestors) ?
135
-                            $top10ancestors[$count][] = $indi:
136
-                            $top10ancestors[$count] = array($count => $indi);
135
+                            $top10ancestors[$count][] = $indi : $top10ancestors[$count] = array($count => $indi);
137 136
                     }
138 137
                 }
139 138
             }
@@ -154,27 +153,27 @@  discard block
 block discarded – undo
154 153
      private function htmlAncestorDispersionG2()
155 154
     {
156 155
         $ancestorsDispGen2 = $this->sosa_provider->getAncestorDispersionForGen(2);
157
-        if(count($ancestorsDispGen2) == 0) return;
156
+        if (count($ancestorsDispGen2) == 0) return;
158 157
         
159 158
         $size = '600x300';
160 159
         
161 160
         $total = array_sum($ancestorsDispGen2);
162 161
         $father_count = array_key_exists(1, $ancestorsDispGen2) ? $ancestorsDispGen2[1] : 0;
163
-        $father = array (
162
+        $father = array(
164 163
             'color' => '84beff', 
165 164
             'count' => $father_count, 
166 165
             'perc' => Functions::safeDivision($father_count, $total), 
167 166
             'name' => \Fisharebest\Webtrees\Functions\Functions::getRelationshipNameFromPath('fat')            
168 167
         );
169 168
         $mother_count = array_key_exists(2, $ancestorsDispGen2) ? $ancestorsDispGen2[2] : 0;
170
-        $mother = array (
169
+        $mother = array(
171 170
             'color' => 'ffd1dc', 
172 171
             'count' => $mother_count, 
173 172
             'perc' => Functions::safeDivision($mother_count, $total),
174 173
             'name' => \Fisharebest\Webtrees\Functions\Functions::getRelationshipNameFromPath('mot')
175 174
         );
176 175
         $shared_count = array_key_exists(-1, $ancestorsDispGen2) ? $ancestorsDispGen2[-1] : 0;
177
-        $shared = array (
176
+        $shared = array(
178 177
             'color' => '777777', 
179 178
             'count' => $shared_count, 
180 179
             'perc' => Functions::safeDivision($shared_count, $total),
@@ -184,10 +183,10 @@  discard block
 block discarded – undo
184 183
         $chd = $this->arrayToExtendedEncoding(array(4095 * $father['perc'], 4095 * $shared['perc'], 4095 * $mother['perc']));
185 184
         $chart_title = I18N::translate('Known Sosa ancestors\' dispersion');
186 185
         $chl = 
187
-             $father['name'] . ' - ' . I18N::percentage($father['perc'], 1) . '|' .
188
-             $shared['name'] . ' - ' . I18N::percentage($shared['perc'], 1) . '|' .
189
-             $mother['name'] . ' - ' . I18N::percentage($mother['perc'], 1);
190
-        return "<img src=\"https://chart.googleapis.com/chart?cht=p&chp=1.5708&amp;chd=e:{$chd}&amp;chs={$size}&amp;chco={$father['color']},{$shared['color']},{$mother['color']}&amp;chf=bg,s,ffffff00&amp;chl={$chl}\" alt=\"" . $chart_title . "\" title=\"" . $chart_title . "\" />";
186
+             $father['name'].' - '.I18N::percentage($father['perc'], 1).'|'.
187
+             $shared['name'].' - '.I18N::percentage($shared['perc'], 1).'|'.
188
+             $mother['name'].' - '.I18N::percentage($mother['perc'], 1);
189
+        return "<img src=\"https://chart.googleapis.com/chart?cht=p&chp=1.5708&amp;chd=e:{$chd}&amp;chs={$size}&amp;chco={$father['color']},{$shared['color']},{$mother['color']}&amp;chf=bg,s,ffffff00&amp;chl={$chl}\" alt=\"".$chart_title."\" title=\"".$chart_title."\" />";
191 190
     }
192 191
     
193 192
     /**
@@ -211,7 +210,7 @@  discard block
 block discarded – undo
211 210
         $total_motfat = array_key_exists(4, $ancestorsDispGen2) ? $ancestorsDispGen2[4] : 0;
212 211
         $total_motmot = array_key_exists(8, $ancestorsDispGen2) ? $ancestorsDispGen2[8] : 0;
213 212
         $total_sha = array_key_exists(-1, $ancestorsDispGen2) ? $ancestorsDispGen2[-1] : 0;
214
-        $total = $total_fatfat + $total_fatmot + $total_motfat+ $total_motmot + $total_sha;
213
+        $total = $total_fatfat + $total_fatmot + $total_motfat + $total_motmot + $total_sha;
215 214
     
216 215
         $chd = $this->arrayToExtendedEncoding(array(
217 216
 	    4095 * Functions::safeDivision($total_fatfat, $total), 
@@ -222,12 +221,12 @@  discard block
 block discarded – undo
222 221
         ));
223 222
         $chart_title = I18N::translate('Known Sosa ancestors\' dispersion - G3');
224 223
         $chl =
225
-            \Fisharebest\Webtrees\Functions\Functions::getRelationshipNameFromPath('fatfat') . ' - ' . I18N::percentage(Functions::safeDivision($total_fatfat, $total), 1) . '|' .
226
-            \Fisharebest\Webtrees\Functions\Functions::getRelationshipNameFromPath('fatmot') . ' - ' . I18N::percentage(Functions::safeDivision($total_fatmot, $total), 1) . '|' .
227
-            I18N::translate('Shared') . ' - ' . I18N::percentage(Functions::safeDivision($total_sha, $total), 1) . '|' .
228
-            \Fisharebest\Webtrees\Functions\Functions::getRelationshipNameFromPath('motfat') . ' - ' . I18N::percentage(Functions::safeDivision($total_motfat, $total), 1) . '|' .
229
-            \Fisharebest\Webtrees\Functions\Functions::getRelationshipNameFromPath('motmot') . ' - ' . I18N::percentage(Functions::safeDivision($total_motmot, $total), 1);
230
-         return "<img src=\"https://chart.googleapis.com/chart?cht=p&chp=1.5708&amp;chd=e:{$chd}&amp;chs={$size}&amp;chco={$color_fatfat},{$color_fatmot},{$color_shared},{$color_motfat},{$color_motmot}&amp;chf=bg,s,ffffff00&amp;chl={$chl}\" alt=\"" . $chart_title . "\" title=\"" . $chart_title . "\" />";
224
+            \Fisharebest\Webtrees\Functions\Functions::getRelationshipNameFromPath('fatfat').' - '.I18N::percentage(Functions::safeDivision($total_fatfat, $total), 1).'|'.
225
+            \Fisharebest\Webtrees\Functions\Functions::getRelationshipNameFromPath('fatmot').' - '.I18N::percentage(Functions::safeDivision($total_fatmot, $total), 1).'|'.
226
+            I18N::translate('Shared').' - '.I18N::percentage(Functions::safeDivision($total_sha, $total), 1).'|'.
227
+            \Fisharebest\Webtrees\Functions\Functions::getRelationshipNameFromPath('motfat').' - '.I18N::percentage(Functions::safeDivision($total_motfat, $total), 1).'|'.
228
+            \Fisharebest\Webtrees\Functions\Functions::getRelationshipNameFromPath('motmot').' - '.I18N::percentage(Functions::safeDivision($total_motmot, $total), 1);
229
+         return "<img src=\"https://chart.googleapis.com/chart?cht=p&chp=1.5708&amp;chd=e:{$chd}&amp;chs={$size}&amp;chco={$color_fatfat},{$color_fatmot},{$color_shared},{$color_motfat},{$color_motmot}&amp;chf=bg,s,ffffff00&amp;chl={$chl}\" alt=\"".$chart_title."\" title=\"".$chart_title."\" />";
231 230
     }
232 231
 
233 232
     /**
@@ -243,9 +242,9 @@  discard block
 block discarded – undo
243 242
             if ($value < 0) {
244 243
                 $value = 0;
245 244
             }
246
-            $first  = (int) ($value / 64);
245
+            $first  = (int)($value / 64);
247 246
             $second = $value % 64;
248
-            $encoding .= $xencoding[(int) $first] . $xencoding[(int) $second];
247
+            $encoding .= $xencoding[(int)$first].$xencoding[(int)$second];
249 248
         }
250 249
     
251 250
         return $encoding;
Please login to merge, or discard this patch.
src/Webtrees/Module/Sosa/Schema/Migration1.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -22,8 +22,8 @@
 block discarded – undo
22 22
 	public function upgrade() {
23 23
 
24 24
 		Database::exec(
25
-		    'ALTER TABLE `##maj_sosa`' . 
26
-		    ' ADD COLUMN majs_birth_year_est SMALLINT NULL AFTER majs_birth_year,' .
25
+		    'ALTER TABLE `##maj_sosa`'. 
26
+		    ' ADD COLUMN majs_birth_year_est SMALLINT NULL AFTER majs_birth_year,'.
27 27
 		    ' ADD COLUMN majs_death_year_est SMALLINT NULL AFTER majs_death_year'
28 28
 		);
29 29
 	}
Please login to merge, or discard this patch.
src/Webtrees/Module/Sosa/Model/SosaProvider.php 1 patch
Spacing   +82 added lines, -82 removed lines patch added patch discarded remove patch
@@ -84,18 +84,18 @@  discard block
 block discarded – undo
84 84
      * @param User $user
85 85
      */
86 86
     public function __construct(Tree $tree, User $user = null) {
87
-        if(self::$default_user === null) 
87
+        if (self::$default_user === null) 
88 88
             self::$default_user = User::find(-1);
89 89
         
90 90
         $this->tree = $tree;
91 91
         $this->user = $user;
92 92
         $this->is_setup = true;
93
-        if($this->user === null) $this->user = Auth::user();
94
-        if(strlen($this->user->getUserId()) == 0) $this->user = self::$default_user;
93
+        if ($this->user === null) $this->user = Auth::user();
94
+        if (strlen($this->user->getUserId()) == 0) $this->user = self::$default_user;
95 95
         
96 96
         // Check if the user, or the default user, has a root already setup;
97
-        if(empty($this->getRootIndiId())) {
98
-            if($this->user == self::$default_user) {  // If the default user is not setup
97
+        if (empty($this->getRootIndiId())) {
98
+            if ($this->user == self::$default_user) {  // If the default user is not setup
99 99
                 $this->is_setup = false;
100 100
             }
101 101
             else {
@@ -127,7 +127,7 @@  discard block
 block discarded – undo
127 127
      */
128 128
     public function getRootIndi() {
129 129
         $root_indi_id = $this->getRootIndiId();
130
-        if(!empty($root_indi_id)) {
130
+        if (!empty($root_indi_id)) {
131 131
             return Individual::getInstance($root_indi_id, $this->tree);
132 132
         }
133 133
         return null;
@@ -141,7 +141,7 @@  discard block
 block discarded – undo
141 141
      * Remove all Sosa entries related to the gedcom file and user
142 142
      */
143 143
     public function deleteAll() {
144
-        if(!$this->is_setup) return;
144
+        if (!$this->is_setup) return;
145 145
         Database::prepare(
146 146
             'DELETE FROM `##maj_sosa`'.
147 147
             ' WHERE majs_gedcom_id= :tree_id and majs_user_id = :user_id ')
@@ -157,12 +157,12 @@  discard block
 block discarded – undo
157 157
      * @param int $sosa
158 158
      */
159 159
     public function deleteAncestors($sosa) {
160
-        if(!$this->is_setup) return;
160
+        if (!$this->is_setup) return;
161 161
         $gen = Functions::getGeneration($sosa);
162 162
         Database::prepare(
163 163
             'DELETE FROM `##maj_sosa`'.
164
-            ' WHERE majs_gedcom_id=:tree_id and majs_user_id = :user_id' .
165
-            ' AND majs_gen >= :gen' .
164
+            ' WHERE majs_gedcom_id=:tree_id and majs_user_id = :user_id'.
165
+            ' AND majs_gen >= :gen'.
166 166
             ' AND FLOOR(majs_sosa / (POW(2, (majs_gen - :gen)))) = :sosa'
167 167
         )->execute(array(
168 168
             'tree_id' => $this->tree->getTreeId(), 
@@ -177,7 +177,7 @@  discard block
 block discarded – undo
177 177
      * @param array $sosa_records
178 178
      */
179 179
     public function insertOrUpdate($sosa_records) {
180
-        if(!$this->is_setup) return;
180
+        if (!$this->is_setup) return;
181 181
         
182 182
         $treeid = $this->tree->getTreeId();
183 183
         $userid = $this->user->getUserId();
@@ -185,9 +185,9 @@  discard block
 block discarded – undo
185 185
         $values_table = array();
186 186
         
187 187
         $i = 0;
188
-        foreach  ($sosa_records as $row) {
188
+        foreach ($sosa_records as $row) {
189 189
             $gen = Functions::getGeneration($row['sosa']);
190
-            if($gen <= self::MAX_DB_GENERATIONS) {
190
+            if ($gen <= self::MAX_DB_GENERATIONS) {
191 191
                 $questionmarks_table[] = 
192 192
                     '(:tree_id'.$i.', :user_id'.$i.', :sosa'.$i.', :indi_id'.$i.', :gen'.$i.', :byear'.$i.', :byearest'.$i.', :dyear'.$i.', :dyearest'.$i.')';
193 193
                 $values_table = array_merge(
@@ -208,9 +208,9 @@  discard block
 block discarded – undo
208 208
             $i++;
209 209
         }
210 210
         
211
-        $sql = 'REPLACE INTO `##maj_sosa`' .
212
-            ' (majs_gedcom_id, majs_user_id, majs_sosa, majs_i_id, majs_gen, majs_birth_year, majs_birth_year_est, majs_death_year, majs_death_year_est)' .
213
-            ' VALUES '. implode(',', $questionmarks_table);
211
+        $sql = 'REPLACE INTO `##maj_sosa`'.
212
+            ' (majs_gedcom_id, majs_user_id, majs_sosa, majs_i_id, majs_gen, majs_birth_year, majs_birth_year_est, majs_death_year, majs_death_year_est)'.
213
+            ' VALUES '.implode(',', $questionmarks_table);
214 214
         Database::prepare($sql)->execute($values_table);
215 215
     }
216 216
     
@@ -226,7 +226,7 @@  discard block
 block discarded – undo
226 226
      * @return array Array of sosa numbers
227 227
      */
228 228
     public function getSosaNumbers(Individual $indi) {
229
-        if(!$this->is_setup) return array();
229
+        if (!$this->is_setup) return array();
230 230
         return Database::prepare(
231 231
                 'SELECT majs_sosa, majs_gen FROM `##maj_sosa`'.
232 232
                 ' WHERE majs_i_id=:indi_id AND majs_gedcom_id=:tree_id AND majs_user_id=:user_id'
@@ -243,7 +243,7 @@  discard block
 block discarded – undo
243 243
      * @return number Last generation if found, 1 otherwise
244 244
      */
245 245
     public function getLastGeneration() {
246
-        if(!$this->is_setup) return;
246
+        if (!$this->is_setup) return;
247 247
         return Database::prepare(
248 248
                 'SELECT MAX(majs_gen) FROM `##maj_sosa`'.
249 249
                 ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'
@@ -262,13 +262,13 @@  discard block
 block discarded – undo
262 262
      *
263 263
      * @return array Associative array of Sosa ancestors, with their generation, comma separated
264 264
      */
265
-    public function getAllSosaWithGenerations(){
266
-        if(!$this->is_setup) return array();
265
+    public function getAllSosaWithGenerations() {
266
+        if (!$this->is_setup) return array();
267 267
         return Database::prepare(
268
-            'SELECT majs_i_id AS indi,' .
269
-            ' GROUP_CONCAT(DISTINCT majs_gen ORDER BY majs_gen ASC SEPARATOR ",") AS generations' .
270
-            ' FROM `##maj_sosa`' .
271
-            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id' .
268
+            'SELECT majs_i_id AS indi,'.
269
+            ' GROUP_CONCAT(DISTINCT majs_gen ORDER BY majs_gen ASC SEPARATOR ",") AS generations'.
270
+            ' FROM `##maj_sosa`'.
271
+            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
272 272
             ' GROUP BY majs_i_id'
273 273
         )->execute(array(
274 274
             'tree_id' => $this->tree->getTreeId(),
@@ -282,13 +282,13 @@  discard block
 block discarded – undo
282 282
      * @param number $gen Generation
283 283
      * @return array Array of Sosa individuals
284 284
      */
285
-    public function getSosaListAtGeneration($gen){
286
-        if(!$this->is_setup) return array();
287
-        if(!$this->sosa_list_by_gen)
285
+    public function getSosaListAtGeneration($gen) {
286
+        if (!$this->is_setup) return array();
287
+        if (!$this->sosa_list_by_gen)
288 288
             $this->sosa_list_by_gen = array();
289 289
         
290
-        if($gen){
291
-            if(!isset($this->sosa_list_by_gen[$gen])){
290
+        if ($gen) {
291
+            if (!isset($this->sosa_list_by_gen[$gen])) {
292 292
                 $this->sosa_list_by_gen[$gen] = Database::prepare(
293 293
                     'SELECT majs_sosa AS sosa, majs_i_id AS indi'.
294 294
                     ' FROM `##maj_sosa`'.
@@ -313,13 +313,13 @@  discard block
 block discarded – undo
313 313
      * @param number $gen Generation
314 314
      * @return array Array of Sosa families
315 315
      */
316
-    public function getFamilySosaListAtGeneration($gen){
317
-        if(!$this->is_setup) return array();
318
-        if(!$this->sosa_fam_list_by_gen)
316
+    public function getFamilySosaListAtGeneration($gen) {
317
+        if (!$this->is_setup) return array();
318
+        if (!$this->sosa_fam_list_by_gen)
319 319
             $this->sosa_fam_list_by_gen = array();
320 320
         
321
-        if($gen){
322
-            if(!isset($this->sosa_fam_list_by_gen[$gen])){
321
+        if ($gen) {
322
+            if (!isset($this->sosa_fam_list_by_gen[$gen])) {
323 323
                 $this->sosa_fam_list_by_gen[$gen] = Database::prepare(
324 324
                     'SELECT s1.majs_sosa AS sosa, f_id AS fam'.
325 325
                     ' FROM `##families`'.
@@ -349,9 +349,9 @@  discard block
 block discarded – undo
349 349
      * @param number $gen Generation
350 350
      * @return array Array of Sosa individuals
351 351
      */
352
-    public function getMissingSosaListAtGeneration($gen){
353
-        if(!$this->is_setup) return array();    
354
-        if($gen){
352
+    public function getMissingSosaListAtGeneration($gen) {
353
+        if (!$this->is_setup) return array();    
354
+        if ($gen) {
355 355
             return $this->sosa_list_by_gen[$gen] = Database::prepare(
356 356
                 'SELECT schild.majs_sosa sosa, schild.majs_i_id indi, sfat.majs_sosa IS NOT NULL has_father, smot.majs_sosa IS NOT NULL has_mother'.
357 357
                 ' FROM `##maj_sosa` schild'.
@@ -390,10 +390,10 @@  discard block
 block discarded – undo
390 390
      * @return array Statistics array
391 391
      */
392 392
     public function getStatisticsByGeneration() {
393
-        if(!$this->is_setup) return array();
394
-        if(!$this->statistics_tab) {
393
+        if (!$this->is_setup) return array();
394
+        if (!$this->statistics_tab) {
395 395
             $this->statistics_tab = array();
396
-            if($maxGeneration = $this->getLastGeneration()) {
396
+            if ($maxGeneration = $this->getLastGeneration()) {
397 397
                 for ($gen = 1; $gen <= $maxGeneration; $gen++) {
398 398
                     $birthStats = $this->getStatsBirthYearInGeneration($gen);
399 399
                     $this->statistics_tab[$gen] = array(
@@ -418,9 +418,9 @@  discard block
 block discarded – undo
418 418
 	 * @return int
419 419
 	 */
420 420
 	public function getTotalIndividuals() {
421
-	    if(!$this->is_setup) return 0;
421
+	    if (!$this->is_setup) return 0;
422 422
 	    return Database::prepare(
423
-	        'SELECT COUNT(*) FROM `##individuals`' .
423
+	        'SELECT COUNT(*) FROM `##individuals`'.
424 424
 	        ' WHERE i_file = :tree_id')
425 425
 	        ->execute(array('tree_id' => $this->tree->getTreeId()))
426 426
 	        ->fetchOne() ?: 0;
@@ -431,10 +431,10 @@  discard block
 block discarded – undo
431 431
      *
432 432
      * @return number Number of Sosas
433 433
      */
434
-    public function getSosaCount(){
435
-        if(!$this->is_setup) return 0;
434
+    public function getSosaCount() {
435
+        if (!$this->is_setup) return 0;
436 436
         return Database::prepare(
437
-            'SELECT COUNT(majs_sosa) FROM `##maj_sosa`' .
437
+            'SELECT COUNT(majs_sosa) FROM `##maj_sosa`'.
438 438
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id')
439 439
             ->execute(array(
440 440
                 'tree_id' => $this->tree->getTreeId(), 
@@ -448,10 +448,10 @@  discard block
 block discarded – undo
448 448
      * @param number $gen Generation
449 449
      * @return number Number of Sosas in generation
450 450
      */
451
-    public function getSosaCountAtGeneration($gen){
452
-        if(!$this->is_setup) return 0;
451
+    public function getSosaCountAtGeneration($gen) {
452
+        if (!$this->is_setup) return 0;
453 453
         return Database::prepare(
454
-            'SELECT COUNT(majs_sosa) FROM `##maj_sosa`' .
454
+            'SELECT COUNT(majs_sosa) FROM `##maj_sosa`'.
455 455
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
456 456
             ' AND majs_gen= :gen')
457 457
         ->execute(array(
@@ -467,10 +467,10 @@  discard block
 block discarded – undo
467 467
      * @param number $gen Generation
468 468
      * @return number Total number of Sosas up to generation
469 469
      */
470
-    public function getSosaCountUpToGeneration($gen){
471
-        if(!$this->is_setup) return 0;
470
+    public function getSosaCountUpToGeneration($gen) {
471
+        if (!$this->is_setup) return 0;
472 472
         return Database::prepare(
473
-            'SELECT COUNT(majs_sosa) FROM `##maj_sosa`' .
473
+            'SELECT COUNT(majs_sosa) FROM `##maj_sosa`'.
474 474
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
475 475
             ' AND majs_gen <= :gen')
476 476
         ->execute(array(
@@ -485,10 +485,10 @@  discard block
 block discarded – undo
485 485
      *
486 486
      * @return number Total number of distinct individual
487 487
      */
488
-    public function getDifferentSosaCount(){
489
-        if(!$this->is_setup) return 0;
488
+    public function getDifferentSosaCount() {
489
+        if (!$this->is_setup) return 0;
490 490
         return Database::prepare(
491
-            'SELECT COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' .
491
+            'SELECT COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`'.
492 492
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id')
493 493
         ->execute(array(
494 494
                 'tree_id' => $this->tree->getTreeId(), 
@@ -502,10 +502,10 @@  discard block
 block discarded – undo
502 502
      * @param number $gen Generation
503 503
      * @return number Number of distinct Sosa individuals up to generation
504 504
      */
505
-    public function getDifferentSosaCountUpToGeneration($gen){
506
-        if(!$this->is_setup) return 0;
505
+    public function getDifferentSosaCountUpToGeneration($gen) {
506
+        if (!$this->is_setup) return 0;
507 507
         return Database::prepare(
508
-            'SELECT COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' .
508
+            'SELECT COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`'.
509 509
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
510 510
             ' AND majs_gen <= :gen')
511 511
         ->execute(array(
@@ -527,8 +527,8 @@  discard block
 block discarded – undo
527 527
      * @param number $gen Generation
528 528
      * @return array Birth statistics array
529 529
      */
530
-    public function getStatsBirthYearInGeneration($gen){
531
-        if(!$this->is_setup) return array('first' => 0, 'first_est' => 0, 'avg' => 0, 'last' => 0, 'last_est' => 0);
530
+    public function getStatsBirthYearInGeneration($gen) {
531
+        if (!$this->is_setup) return array('first' => 0, 'first_est' => 0, 'avg' => 0, 'last' => 0, 'last_est' => 0);
532 532
         return Database::prepare(
533 533
             'SELECT'.
534 534
             ' MIN(majs_birth_year) AS first, MIN(majs_birth_year_est) AS first_est,'.
@@ -549,26 +549,26 @@  discard block
 block discarded – undo
549 549
      *
550 550
      * @return number|NULL Mean generation time
551 551
      */
552
-    public function getMeanGenerationTime(){
553
-        if(!$this->is_setup) return;
554
-        if(!$this->statistics_tab){
552
+    public function getMeanGenerationTime() {
553
+        if (!$this->is_setup) return;
554
+        if (!$this->statistics_tab) {
555 555
             $this->getStatisticsByGeneration();
556 556
         }
557 557
         //Linear regression on x=generation and y=birthdate
558 558
         $sum_xy = 0;
559
-        $sum_x=0;
560
-        $sum_y=0;
561
-        $sum_x2=0;
562
-        $n=count($this->statistics_tab);
563
-        foreach($this->statistics_tab as $gen=>$stats){
564
-            $sum_xy+=$gen*$stats['avgBirth'];
565
-            $sum_x+=$gen;
566
-            $sum_y+=$stats['avgBirth'];
567
-            $sum_x2+=$gen*$gen;
559
+        $sum_x = 0;
560
+        $sum_y = 0;
561
+        $sum_x2 = 0;
562
+        $n = count($this->statistics_tab);
563
+        foreach ($this->statistics_tab as $gen=>$stats) {
564
+            $sum_xy += $gen * $stats['avgBirth'];
565
+            $sum_x += $gen;
566
+            $sum_y += $stats['avgBirth'];
567
+            $sum_x2 += $gen * $gen;
568 568
         }
569
-        $denom=($n*$sum_x2)-($sum_x*$sum_x);
570
-        if($denom!=0){
571
-            return -(($n*$sum_xy)-($sum_x*$sum_y))/($denom);
569
+        $denom = ($n * $sum_x2) - ($sum_x * $sum_x);
570
+        if ($denom != 0) {
571
+            return -(($n * $sum_xy) - ($sum_x * $sum_y)) / ($denom);
572 572
         }
573 573
         return null;
574 574
     }
@@ -596,14 +596,14 @@  discard block
 block discarded – undo
596 596
      * @return array
597 597
      */
598 598
     public function getAncestorDispersionForGen($gen) {
599
-        if(!$this->is_setup || $gen > 11) return array();  // Going further than 11 gen will be out of range in the query
599
+        if (!$this->is_setup || $gen > 11) return array(); // Going further than 11 gen will be out of range in the query
600 600
         return Database::prepare(
601 601
             'SELECT branches, count(i_id)'.
602 602
             ' FROM ('.
603 603
             '   SELECT i_id,'.
604 604
             '       CASE'.
605 605
             '           WHEN CEIL(LOG2(SUM(branch))) = LOG2(SUM(branch)) THEN SUM(branch)'.
606
-            '           ELSE -1'.   // We put all ancestors shared between some branches in the same bucket
606
+            '           ELSE -1'.// We put all ancestors shared between some branches in the same bucket
607 607
             '       END branches'.
608 608
             '   FROM ('.
609 609
             '       SELECT DISTINCT majs_i_id i_id,'.
@@ -636,7 +636,7 @@  discard block
 block discarded – undo
636 636
      * @return array 
637 637
      */
638 638
     public function getTopMultiSosaAncestorsNoTies($limit) {
639
-        if(!$this->is_setup) return array();
639
+        if (!$this->is_setup) return array();
640 640
         return Database::prepare(
641 641
             'SELECT sosa_i_id, sosa_count FROM ('.
642 642
             '   SELECT'.
@@ -649,20 +649,20 @@  discard block
 block discarded – undo
649 649
             '           COUNT(sosa.majs_sosa) sosa_count,'.
650 650
             '           MIN(sosa.majs_sosa) sosa_min'.
651 651
             '       FROM ##maj_sosa AS sosa'.
652
-            '       LEFT JOIN ##maj_sosa AS sosa_fat ON sosa_fat.majs_sosa = 2 * sosa.majs_sosa'.   // Link to sosa's father
652
+            '       LEFT JOIN ##maj_sosa AS sosa_fat ON sosa_fat.majs_sosa = 2 * sosa.majs_sosa'.// Link to sosa's father
653 653
             '           AND sosa.majs_gedcom_id = sosa_fat.majs_gedcom_id'.
654 654
             '           AND sosa.majs_user_id = sosa_fat.majs_user_id'.
655
-            '       LEFT JOIN ##maj_sosa AS sosa_mot on sosa_mot.majs_sosa = (2 * sosa.majs_sosa + 1)'.  // Link to sosa's mother
655
+            '       LEFT JOIN ##maj_sosa AS sosa_mot on sosa_mot.majs_sosa = (2 * sosa.majs_sosa + 1)'.// Link to sosa's mother
656 656
             '           AND sosa.majs_gedcom_id = sosa_fat.majs_gedcom_id'.
657 657
             '           AND sosa.majs_user_id = sosa_fat.majs_user_id'.
658 658
             '       WHERE sosa.majs_gedcom_id = :tree_id'.
659 659
             '       AND sosa.majs_user_id = :user_id'.
660
-            '       AND sosa_fat.majs_sosa IS NULL'.    // We keep only root individuals, i.e. those with no father or mother
660
+            '       AND sosa_fat.majs_sosa IS NULL'.// We keep only root individuals, i.e. those with no father or mother
661 661
             '       AND sosa_mot.majs_sosa IS NULL'. 
662 662
             '       GROUP BY sosa.majs_i_id'.
663
-            '       HAVING COUNT(sosa.majs_sosa) > 1'.   // Limit to the duplicate sosas.
663
+            '       HAVING COUNT(sosa.majs_sosa) > 1'.// Limit to the duplicate sosas.
664 664
             '       ORDER BY COUNT(sosa.majs_sosa) DESC'.
665
-            '       LIMIT ' . ($limit + 1) . // We want to select one more than required
665
+            '       LIMIT '.($limit + 1).// We want to select one more than required
666 666
             '   ) AS top_sosa,'.
667 667
             '   (SELECT @prev_count := 0, @keep := 0) x'.
668 668
             '   ORDER BY top_sosa.sosa_count ASC'.
Please login to merge, or discard this patch.