Completed
Push — feature/code-analysis ( a26fec...c314d5 )
by Jonathan
07:11
created
src/Webtrees/Module/AdminTasksModule.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
     public function getConfigLink() {
68 68
         Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
69 69
         
70
-        return 'module.php?mod=' . $this->getName() . '&mod_action=AdminConfig';
70
+        return 'module.php?mod='.$this->getName().'&mod_action=AdminConfig';
71 71
     }
72 72
     
73 73
     /**
@@ -129,7 +129,7 @@  discard block
 block discarded – undo
129 129
 	 * @return \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface
130 130
 	 */
131 131
     public function getProvider() {        
132
-        if(!$this->provider) {
132
+        if (!$this->provider) {
133 133
             $this->provider = new TaskProvider(WT_ROOT.WT_MODULES_DIR.$this->getName().'/tasks/');
134 134
         }
135 135
         return $this->provider;
Please login to merge, or discard this patch.
Indentation   +85 added lines, -85 removed lines patch added patch discarded remove patch
@@ -23,62 +23,62 @@  discard block
 block discarded – undo
23 23
 class AdminTasksModule extends AbstractModule 
24 24
 implements ModuleConfigInterface, ModuleBlockInterface
25 25
 {
26
-    // How to update the database schema for this module
27
-    const SCHEMA_TARGET_VERSION   = 1;
28
-    const SCHEMA_SETTING_NAME     = 'MAJ_ADMTASKS_SCHEMA_VERSION';
29
-    const SCHEMA_MIGRATION_PREFIX = '\MyArtJaub\Webtrees\Module\AdminTasks\Schema';
26
+	// How to update the database schema for this module
27
+	const SCHEMA_TARGET_VERSION   = 1;
28
+	const SCHEMA_SETTING_NAME     = 'MAJ_ADMTASKS_SCHEMA_VERSION';
29
+	const SCHEMA_MIGRATION_PREFIX = '\MyArtJaub\Webtrees\Module\AdminTasks\Schema';
30 30
     
31
-    /** @var string For custom modules - link for support, upgrades, etc. */
32
-    const CUSTOM_WEBSITE = 'https://github.com/jon48/webtrees-lib';
31
+	/** @var string For custom modules - link for support, upgrades, etc. */
32
+	const CUSTOM_WEBSITE = 'https://github.com/jon48/webtrees-lib';
33 33
     
34
-    /**
35
-     * Admin Task provider
36
-     * @var \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface $provider
37
-     */
38
-    protected $provider;
34
+	/**
35
+	 * Admin Task provider
36
+	 * @var \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface $provider
37
+	 */
38
+	protected $provider;
39 39
     
40
-    /**
41
-     * {@inheritDoc}
42
-     * @see \Fisharebest\Webtrees\Module\AbstractModule::getTitle()
43
-     */
44
-    public function getTitle() {
45
-        return I18N::translate('Administration Tasks');
46
-    }
40
+	/**
41
+	 * {@inheritDoc}
42
+	 * @see \Fisharebest\Webtrees\Module\AbstractModule::getTitle()
43
+	 */
44
+	public function getTitle() {
45
+		return I18N::translate('Administration Tasks');
46
+	}
47 47
     
48 48
    /**
49 49
     * {@inheritDoc}
50 50
     * @see \Fisharebest\Webtrees\Module\AbstractModule::getDescription()
51 51
     */
52
-    public function getDescription() {
53
-        return I18N::translate('Manage and run nearly-scheduled administration tasks.');
54
-    }
52
+	public function getDescription() {
53
+		return I18N::translate('Manage and run nearly-scheduled administration tasks.');
54
+	}
55 55
     
56
-    /**
57
-     * {@inheritDoc}
58
-     * @see \Fisharebest\Webtrees\Module\AbstractModule::modAction()
59
-     */
60
-    public function modAction($mod_action) {
61
-        Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
56
+	/**
57
+	 * {@inheritDoc}
58
+	 * @see \Fisharebest\Webtrees\Module\AbstractModule::modAction()
59
+	 */
60
+	public function modAction($mod_action) {
61
+		Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
62 62
                 
63
-        \MyArtJaub\Webtrees\Mvc\Dispatcher::getInstance()->handle($this, $mod_action);
64
-    }
63
+		\MyArtJaub\Webtrees\Mvc\Dispatcher::getInstance()->handle($this, $mod_action);
64
+	}
65 65
     
66
-    /**
67
-     * {@inheritDoc}
68
-     * @see \Fisharebest\Webtrees\Module\ModuleConfigInterface::getConfigLink()
69
-     */
70
-    public function getConfigLink() {
71
-        Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
66
+	/**
67
+	 * {@inheritDoc}
68
+	 * @see \Fisharebest\Webtrees\Module\ModuleConfigInterface::getConfigLink()
69
+	 */
70
+	public function getConfigLink() {
71
+		Database::updateSchema(self::SCHEMA_MIGRATION_PREFIX, self::SCHEMA_SETTING_NAME, self::SCHEMA_TARGET_VERSION);
72 72
         
73
-        return 'module.php?mod=' . $this->getName() . '&mod_action=AdminConfig';
74
-    }
73
+		return 'module.php?mod=' . $this->getName() . '&mod_action=AdminConfig';
74
+	}
75 75
     
76
-    /**
77
-     * {@inheritDoc}
78
-     * @see \Fisharebest\Webtrees\Module\ModuleBlockInterface::getBlock()
79
-     */
80
-    public function getBlock($block_id, $template = true, $cfg = array()) {
81
-        Globals::getController()->addInlineJavascript('
76
+	/**
77
+	 * {@inheritDoc}
78
+	 * @see \Fisharebest\Webtrees\Module\ModuleBlockInterface::getBlock()
79
+	 */
80
+	public function getBlock($block_id, $template = true, $cfg = array()) {
81
+		Globals::getController()->addInlineJavascript('
82 82
 			$(document).ready(function(){
83 83
 				$.ajax({
84 84
 					url: "module.php",
@@ -89,60 +89,60 @@  discard block
 block discarded – undo
89 89
 				});
90 90
 			});
91 91
 		');
92
-        return '';
93
-    }
92
+		return '';
93
+	}
94 94
     
95
-    /**
96
-     * {@inheritDoc}
97
-     * @see \Fisharebest\Webtrees\Module\ModuleBlockInterface::loadAjax()
98
-     */
99
-    public function loadAjax() {
100
-        return false;
101
-    }
95
+	/**
96
+	 * {@inheritDoc}
97
+	 * @see \Fisharebest\Webtrees\Module\ModuleBlockInterface::loadAjax()
98
+	 */
99
+	public function loadAjax() {
100
+		return false;
101
+	}
102 102
     
103
-    /**
104
-     * {@inheritDoc}
105
-     * @see \Fisharebest\Webtrees\Module\ModuleBlockInterface::isGedcomBlock()
106
-     */
107
-    public function isGedcomBlock() {
108
-        return true;
109
-    }
103
+	/**
104
+	 * {@inheritDoc}
105
+	 * @see \Fisharebest\Webtrees\Module\ModuleBlockInterface::isGedcomBlock()
106
+	 */
107
+	public function isGedcomBlock() {
108
+		return true;
109
+	}
110 110
     
111
-    /**
112
-     * {@inheritDoc}
113
-     * @see \Fisharebest\Webtrees\Module\ModuleBlockInterface::isUserBlock()
114
-     */
115
-    public function isUserBlock() {
116
-        return false;
117
-    }
111
+	/**
112
+	 * {@inheritDoc}
113
+	 * @see \Fisharebest\Webtrees\Module\ModuleBlockInterface::isUserBlock()
114
+	 */
115
+	public function isUserBlock() {
116
+		return false;
117
+	}
118 118
     
119
-    /**
120
-     * {@inheritDoc}
121
-     * @see \Fisharebest\Webtrees\Module\ModuleBlockInterface::configureBlock()
122
-     */
123
-    public function configureBlock($block_id) {
119
+	/**
120
+	 * {@inheritDoc}
121
+	 * @see \Fisharebest\Webtrees\Module\ModuleBlockInterface::configureBlock()
122
+	 */
123
+	public function configureBlock($block_id) {
124 124
         
125
-    }
125
+	}
126 126
    
127 127
 /**
128
-	 * Get the Admin Tasks Provider (initialise it if not done yet).
129
-	 *
130
-	 * @return \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface
131
-	 */
132
-    public function getProvider() {        
133
-        if(!$this->provider) {
134
-            $this->provider = new TaskProvider(WT_ROOT.WT_MODULES_DIR.$this->getName().'/tasks/');
135
-        }
136
-        return $this->provider;
137
-    }
128
+ * Get the Admin Tasks Provider (initialise it if not done yet).
129
+ *
130
+ * @return \MyArtJaub\Webtrees\Module\AdminTasks\Model\TaskProviderInterface
131
+ */
132
+	public function getProvider() {        
133
+		if(!$this->provider) {
134
+			$this->provider = new TaskProvider(WT_ROOT.WT_MODULES_DIR.$this->getName().'/tasks/');
135
+		}
136
+		return $this->provider;
137
+	}
138 138
 	
139 139
 	/**
140 140
 	 * Set the Admin Tasks Provider.
141 141
 	 *
142 142
 	 * @return \MyArtJaub\Webtrees\Module\GeoDispersion\Model\TaskProviderInterface
143 143
 	 */
144
-    public function setProvider(TaskProviderInterface $provider) {
145
-        $this->provider = $provider;
146
-    }
144
+	public function setProvider(TaskProviderInterface $provider) {
145
+		$this->provider = $provider;
146
+	}
147 147
 }
148 148
  
149 149
\ No newline at end of file
Please login to merge, or discard this patch.
src/Webtrees/Module/Sosa/Model/SosaProvider.php 4 patches
Doc Comments   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -277,7 +277,7 @@  discard block
 block discarded – undo
277 277
     /**
278 278
      * Get an associative array of Sosa individuals in generation G. Keys are Sosa numbers, values individuals.
279 279
      *
280
-     * @param number $gen Generation
280
+     * @param integer $gen Generation
281 281
      * @return array Array of Sosa individuals
282 282
      */
283 283
     public function getSosaListAtGeneration($gen){
@@ -308,7 +308,7 @@  discard block
 block discarded – undo
308 308
     /**
309 309
      * Get an associative array of Sosa families in generation G. Keys are Sosa numbers for the husband, values families.
310 310
      *
311
-     * @param number $gen Generation
311
+     * @param integer $gen Generation
312 312
      * @return array Array of Sosa families
313 313
      */
314 314
     public function getFamilySosaListAtGeneration($gen){
@@ -344,7 +344,7 @@  discard block
 block discarded – undo
344 344
     /**
345 345
      * Get an associative array of Sosa individuals in generation G who are missing parents. Keys are Sosa numbers, values individuals.
346 346
      *
347
-     * @param number $gen Generation
347
+     * @param integer $gen Generation
348 348
      * @return array Array of Sosa individuals
349 349
      */
350 350
     public function getMissingSosaListAtGeneration($gen){
@@ -439,8 +439,8 @@  discard block
 block discarded – undo
439 439
     /**
440 440
      * Get the number of Sosa in a specific generation.
441 441
      *
442
-     * @param number $gen Generation
443
-     * @return number Number of Sosas in generation
442
+     * @param integer $gen Generation
443
+     * @return integer Number of Sosas in generation
444 444
      */
445 445
     public function getSosaCountAtGeneration($gen){
446 446
         if(!$this->is_setup) return 0;
@@ -458,7 +458,7 @@  discard block
 block discarded – undo
458 458
     /**
459 459
      * Get the total number of Sosa up to a specific generation.
460 460
      *
461
-     * @param number $gen Generation
461
+     * @param integer $gen Generation
462 462
      * @return number Total number of Sosas up to generation
463 463
      */
464 464
     public function getSosaCountUpToGeneration($gen){
@@ -493,7 +493,7 @@  discard block
 block discarded – undo
493 493
     /**
494 494
      * Get the number of distinct Sosa individual up to a specific generation.
495 495
      *
496
-     * @param number $gen Generation
496
+     * @param integer $gen Generation
497 497
      * @return number Number of distinct Sosa individuals up to generation
498 498
      */
499 499
     public function getDifferentSosaCountUpToGeneration($gen){
@@ -516,7 +516,7 @@  discard block
 block discarded – undo
516 516
      *  - last : Last birth year in generation
517 517
      *  - avg : Average birth year
518 518
      *
519
-     * @param number $gen Generation
519
+     * @param integer $gen Generation
520 520
      * @return array Birth statistics array
521 521
      */
522 522
     public function getStatsBirthYearInGeneration($gen){
Please login to merge, or discard this patch.
Indentation   +560 added lines, -560 removed lines patch added patch discarded remove patch
@@ -22,389 +22,389 @@  discard block
 block discarded – undo
22 22
  */
23 23
 class SosaProvider {
24 24
     
25
-    /**
26
-     * Maximum number of generation the database is able to hold.
27
-     * @var int MAX_DB_GENERATIONS
28
-     */
29
-    const MAX_DB_GENERATIONS = 64;
30
-    
31
-    /**
32
-     * System's default user (ID -1 in the database
33
-     * @var User $default_user
34
-     */
35
-    protected static $default_user;
36
-    
37
-    /**
38
-     * Reference user
39
-     * @var User $user
40
-     */
41
-    protected $user;
42
-    
43
-    /**
44
-     * Reference tree
45
-     * @var Tree $tree
46
-     */
47
-    protected $tree;
48
-    
49
-    /**
50
-     * Cached list of Sosa Individuals by generation
51
-     * Format: key = generation, value = array ( sosa => Individual ID)
52
-     * @var array $sosa_list_by_gen
53
-     */
54
-    protected $sosa_list_by_gen;
55
-    
56
-    /**
57
-     * Cached list of Sosa Families by generation
58
-     * Format: key = generation, value = array ( sosa => Family ID)
59
-     * @var unknown $sosa_fam_list_by_gen
60
-     */
61
-    protected $sosa_fam_list_by_gen;
62
-    
63
-    /**
64
-     * Cached array of statistics by generation
65
-     * Format:  key = generation, 
66
-     *          value = array(
67
-     *              sosaCount, sosaTotalCount, diffSosaTotalCount, firstBirth, lastBirth, avgBirth
68
-     *           )
69
-     * @var array $statistics_tab
70
-     */
71
-    protected $statistics_tab;
72
-    
73
-    /**
74
-     * Has the provider's initialisation completed
75
-     * @var bool $is_setup
76
-     */
77
-    protected $is_setup;
78
-    
79
-    /**
80
-     * Constructor for Sosa Provider.
81
-     * A provider is defined in relation to a specific tree and reference user.
82
-     * 
83
-     * @param Tree $tree
84
-     * @param User $user
85
-     */
86
-    public function __construct(Tree $tree, User $user = null) {
87
-        if(self::$default_user === null) 
88
-            self::$default_user = User::find(-1);
25
+	/**
26
+	 * Maximum number of generation the database is able to hold.
27
+	 * @var int MAX_DB_GENERATIONS
28
+	 */
29
+	const MAX_DB_GENERATIONS = 64;
30
+    
31
+	/**
32
+	 * System's default user (ID -1 in the database
33
+	 * @var User $default_user
34
+	 */
35
+	protected static $default_user;
36
+    
37
+	/**
38
+	 * Reference user
39
+	 * @var User $user
40
+	 */
41
+	protected $user;
42
+    
43
+	/**
44
+	 * Reference tree
45
+	 * @var Tree $tree
46
+	 */
47
+	protected $tree;
48
+    
49
+	/**
50
+	 * Cached list of Sosa Individuals by generation
51
+	 * Format: key = generation, value = array ( sosa => Individual ID)
52
+	 * @var array $sosa_list_by_gen
53
+	 */
54
+	protected $sosa_list_by_gen;
55
+    
56
+	/**
57
+	 * Cached list of Sosa Families by generation
58
+	 * Format: key = generation, value = array ( sosa => Family ID)
59
+	 * @var unknown $sosa_fam_list_by_gen
60
+	 */
61
+	protected $sosa_fam_list_by_gen;
62
+    
63
+	/**
64
+	 * Cached array of statistics by generation
65
+	 * Format:  key = generation, 
66
+	 *          value = array(
67
+	 *              sosaCount, sosaTotalCount, diffSosaTotalCount, firstBirth, lastBirth, avgBirth
68
+	 *           )
69
+	 * @var array $statistics_tab
70
+	 */
71
+	protected $statistics_tab;
72
+    
73
+	/**
74
+	 * Has the provider's initialisation completed
75
+	 * @var bool $is_setup
76
+	 */
77
+	protected $is_setup;
78
+    
79
+	/**
80
+	 * Constructor for Sosa Provider.
81
+	 * A provider is defined in relation to a specific tree and reference user.
82
+	 * 
83
+	 * @param Tree $tree
84
+	 * @param User $user
85
+	 */
86
+	public function __construct(Tree $tree, User $user = null) {
87
+		if(self::$default_user === null) 
88
+			self::$default_user = User::find(-1);
89 89
         
90
-        $this->tree = $tree;
91
-        $this->user = $user;
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;
90
+		$this->tree = $tree;
91
+		$this->user = $user;
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;
95 95
         
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
99
-                $this->is_setup = false;
100
-            }
101
-            else {
102
-                $this->user = self::$default_user;
103
-                $this->is_setup = $this->getRootIndiId() === null;
104
-            }            
105
-        }
106
-    }
107
-    
108
-    /**
109
-     * Returns is the Provider has been successfully set up
110
-     * @return bool
111
-     */
112
-    public function isSetup() {
113
-        return $this->is_setup;
114
-    }
115
-    
116
-    /**
117
-     * Return the root individual ID for the reference tree and user.
118
-     * @return string Individual ID
119
-     */
120
-    public function getRootIndiId() {
121
-        return $this->tree->getUserPreference($this->user, 'MAJ_SOSA_ROOT_ID');
122
-    }
123
-    
124
-    /**
125
-     * Return the root individual for the reference tree and user.
126
-     * @return Individual Individual
127
-     */
128
-    public function getRootIndi() {
129
-        $root_indi_id = $this->getRootIndiId();
130
-        if(!empty($root_indi_id)) {
131
-            return Individual::getInstance($root_indi_id, $this->tree);
132
-        }
133
-        return null;
134
-    }
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
99
+				$this->is_setup = false;
100
+			}
101
+			else {
102
+				$this->user = self::$default_user;
103
+				$this->is_setup = $this->getRootIndiId() === null;
104
+			}            
105
+		}
106
+	}
107
+    
108
+	/**
109
+	 * Returns is the Provider has been successfully set up
110
+	 * @return bool
111
+	 */
112
+	public function isSetup() {
113
+		return $this->is_setup;
114
+	}
115
+    
116
+	/**
117
+	 * Return the root individual ID for the reference tree and user.
118
+	 * @return string Individual ID
119
+	 */
120
+	public function getRootIndiId() {
121
+		return $this->tree->getUserPreference($this->user, 'MAJ_SOSA_ROOT_ID');
122
+	}
123
+    
124
+	/**
125
+	 * Return the root individual for the reference tree and user.
126
+	 * @return Individual Individual
127
+	 */
128
+	public function getRootIndi() {
129
+		$root_indi_id = $this->getRootIndiId();
130
+		if(!empty($root_indi_id)) {
131
+			return Individual::getInstance($root_indi_id, $this->tree);
132
+		}
133
+		return null;
134
+	}
135 135
        
136
-    /*****************
136
+	/*****************
137 137
      * DATA CRUD LAYER
138 138
      *****************/
139 139
     
140
-    /**
141
-     * Remove all Sosa entries related to the gedcom file and user
142
-     */
143
-    public function deleteAll() {
144
-        if(!$this->is_setup) return;
145
-        Database::prepare(
146
-            'DELETE FROM `##maj_sosa`'.
147
-            ' WHERE majs_gedcom_id= :tree_id and majs_user_id = :user_id ')
148
-            ->execute(array(
149
-                'tree_id' => $this->tree->getTreeId(), 
150
-                'user_id' => $this->user->getUserId()                
151
-            ));
152
-    }
153
-    
154
-    /**
155
-     * Remove all ancestors of a sosa number
156
-     * 
157
-     * @param int $sosa
158
-     */
159
-    public function deleteAncestors($sosa) {
160
-        if(!$this->is_setup) return;
161
-        $gen = Functions::getGeneration($sosa);
162
-        Database::prepare(
163
-            'DELETE FROM `##maj_sosa`'.
164
-            ' WHERE majs_gedcom_id=:tree_id and majs_user_id = :user_id' .
165
-            ' AND majs_gen >= :gen' .
166
-            ' AND FLOOR(majs_sosa / (POW(2, (majs_gen - :gen)))) = :sosa'
167
-        )->execute(array(
168
-            'tree_id' => $this->tree->getTreeId(), 
169
-            'user_id' => $this->user->getUserId(),
170
-            'gen' => $gen,
171
-            'sosa' => $sosa
172
-        ));
173
-    }    
174
-    
175
-    /**
176
-     * Insert (or update if already existing) a list of Sosa individuals
177
-     * @param array $sosa_records
178
-     */
179
-    public function insertOrUpdate($sosa_records) {
180
-        if(!$this->is_setup) return;
140
+	/**
141
+	 * Remove all Sosa entries related to the gedcom file and user
142
+	 */
143
+	public function deleteAll() {
144
+		if(!$this->is_setup) return;
145
+		Database::prepare(
146
+			'DELETE FROM `##maj_sosa`'.
147
+			' WHERE majs_gedcom_id= :tree_id and majs_user_id = :user_id ')
148
+			->execute(array(
149
+				'tree_id' => $this->tree->getTreeId(), 
150
+				'user_id' => $this->user->getUserId()                
151
+			));
152
+	}
153
+    
154
+	/**
155
+	 * Remove all ancestors of a sosa number
156
+	 * 
157
+	 * @param int $sosa
158
+	 */
159
+	public function deleteAncestors($sosa) {
160
+		if(!$this->is_setup) return;
161
+		$gen = Functions::getGeneration($sosa);
162
+		Database::prepare(
163
+			'DELETE FROM `##maj_sosa`'.
164
+			' WHERE majs_gedcom_id=:tree_id and majs_user_id = :user_id' .
165
+			' AND majs_gen >= :gen' .
166
+			' AND FLOOR(majs_sosa / (POW(2, (majs_gen - :gen)))) = :sosa'
167
+		)->execute(array(
168
+			'tree_id' => $this->tree->getTreeId(), 
169
+			'user_id' => $this->user->getUserId(),
170
+			'gen' => $gen,
171
+			'sosa' => $sosa
172
+		));
173
+	}    
174
+    
175
+	/**
176
+	 * Insert (or update if already existing) a list of Sosa individuals
177
+	 * @param array $sosa_records
178
+	 */
179
+	public function insertOrUpdate($sosa_records) {
180
+		if(!$this->is_setup) return;
181 181
         
182
-        $treeid = $this->tree->getTreeId();
183
-        $userid = $this->user->getUserId();
184
-        $questionmarks_table = array();
185
-        $values_table = array();
182
+		$treeid = $this->tree->getTreeId();
183
+		$userid = $this->user->getUserId();
184
+		$questionmarks_table = array();
185
+		$values_table = array();
186 186
         
187
-        $i = 0;
188
-        foreach  ($sosa_records as $row) {
189
-            $gen = Functions::getGeneration($row['sosa']);
190
-            if($gen <= self::MAX_DB_GENERATIONS) {
191
-                $questionmarks_table[] = 
192
-                    '(:tree_id'.$i.', :user_id'.$i.', :sosa'.$i.', :indi_id'.$i.', :gen'.$i.', :byear'.$i.', :dyear'.$i.')';
193
-                $values_table = array_merge(
194
-                    $values_table, 
195
-                    array(
196
-                        'tree_id'.$i => $treeid, 
197
-                        'user_id'.$i => $userid, 
198
-                        'sosa'.$i => $row['sosa'], 
199
-                        'indi_id'.$i => $row['indi'], 
200
-                        'gen'.$i => Functions::getGeneration($row['sosa']),
201
-                        'byear'.$i => $row['birth_year'],
202
-                        'dyear'.$i => $row['death_year']
203
-                    )
204
-                );
205
-            }
206
-            $i++;
207
-        }
187
+		$i = 0;
188
+		foreach  ($sosa_records as $row) {
189
+			$gen = Functions::getGeneration($row['sosa']);
190
+			if($gen <= self::MAX_DB_GENERATIONS) {
191
+				$questionmarks_table[] = 
192
+					'(:tree_id'.$i.', :user_id'.$i.', :sosa'.$i.', :indi_id'.$i.', :gen'.$i.', :byear'.$i.', :dyear'.$i.')';
193
+				$values_table = array_merge(
194
+					$values_table, 
195
+					array(
196
+						'tree_id'.$i => $treeid, 
197
+						'user_id'.$i => $userid, 
198
+						'sosa'.$i => $row['sosa'], 
199
+						'indi_id'.$i => $row['indi'], 
200
+						'gen'.$i => Functions::getGeneration($row['sosa']),
201
+						'byear'.$i => $row['birth_year'],
202
+						'dyear'.$i => $row['death_year']
203
+					)
204
+				);
205
+			}
206
+			$i++;
207
+		}
208 208
         
209
-        $sql = 'REPLACE INTO `##maj_sosa`' .
210
-            ' (majs_gedcom_id, majs_user_id, majs_sosa, majs_i_id, majs_gen, majs_birth_year, majs_death_year)' .
211
-            ' VALUES '. implode(',', $questionmarks_table);
212
-        Database::prepare($sql)->execute($values_table);
213
-    }
209
+		$sql = 'REPLACE INTO `##maj_sosa`' .
210
+			' (majs_gedcom_id, majs_user_id, majs_sosa, majs_i_id, majs_gen, majs_birth_year, majs_death_year)' .
211
+			' VALUES '. implode(',', $questionmarks_table);
212
+		Database::prepare($sql)->execute($values_table);
213
+	}
214 214
     
215
-    /****************
215
+	/****************
216 216
      * SIMPLE QUERIES
217 217
      ****************/
218 218
     
219
-    /**
220
-     * Returns the list of Sosa numbers to which an individual is related.
221
-     * Format: key = sosa number, value = generation for the Sosa number
222
-     * 
223
-     * @param Individual $indi
224
-     * @return array Array of sosa numbers
225
-     */
226
-    public function getSosaNumbers(Individual $indi) {
227
-        if(!$this->is_setup) return array();
228
-        return Database::prepare(
229
-                'SELECT majs_sosa, majs_gen FROM `##maj_sosa`'.
230
-                ' WHERE majs_i_id=:indi_id AND majs_gedcom_id=:tree_id AND majs_user_id=:user_id'
231
-            )->execute(array(
232
-                'indi_id' => $indi->getXref(), 
233
-                'tree_id' => $this->tree->getTreeId(), 
234
-                'user_id' => $this->user->getUserId()
235
-            ))->fetchAssoc();
236
-    }
237
-    
238
-    /**
239
-     * Get the last generation of Sosa ancestors
240
-     *
241
-     * @return number Last generation if found, 1 otherwise
242
-     */
243
-    public function getLastGeneration() {
244
-        if(!$this->is_setup) return;
245
-        return Database::prepare(
246
-                'SELECT MAX(majs_gen) FROM `##maj_sosa`'.
247
-                ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'
248
-            )->execute(array(
249
-                'tree_id' => $this->tree->getTreeId(), 
250
-                'user_id' => $this->user->getUserId()                
251
-            ))->fetchOne() ?: 1;
252
-    }
253
-    
254
-    /*************
219
+	/**
220
+	 * Returns the list of Sosa numbers to which an individual is related.
221
+	 * Format: key = sosa number, value = generation for the Sosa number
222
+	 * 
223
+	 * @param Individual $indi
224
+	 * @return array Array of sosa numbers
225
+	 */
226
+	public function getSosaNumbers(Individual $indi) {
227
+		if(!$this->is_setup) return array();
228
+		return Database::prepare(
229
+				'SELECT majs_sosa, majs_gen FROM `##maj_sosa`'.
230
+				' WHERE majs_i_id=:indi_id AND majs_gedcom_id=:tree_id AND majs_user_id=:user_id'
231
+			)->execute(array(
232
+				'indi_id' => $indi->getXref(), 
233
+				'tree_id' => $this->tree->getTreeId(), 
234
+				'user_id' => $this->user->getUserId()
235
+			))->fetchAssoc();
236
+	}
237
+    
238
+	/**
239
+	 * Get the last generation of Sosa ancestors
240
+	 *
241
+	 * @return number Last generation if found, 1 otherwise
242
+	 */
243
+	public function getLastGeneration() {
244
+		if(!$this->is_setup) return;
245
+		return Database::prepare(
246
+				'SELECT MAX(majs_gen) FROM `##maj_sosa`'.
247
+				' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'
248
+			)->execute(array(
249
+				'tree_id' => $this->tree->getTreeId(), 
250
+				'user_id' => $this->user->getUserId()                
251
+			))->fetchOne() ?: 1;
252
+	}
253
+    
254
+	/*************
255 255
      * SOSA LISTS
256 256
      *************/
257 257
     
258
-    /**
259
-     * Return the list of all sosas, with the generations it belongs to
260
-     *
261
-     * @return array Associative array of Sosa ancestors, with their generation, comma separated
262
-     */
263
-    public function getAllSosaWithGenerations(){
264
-        if(!$this->is_setup) return array();
265
-        return Database::prepare(
266
-            'SELECT majs_i_id AS indi,' .
267
-            ' GROUP_CONCAT(DISTINCT majs_gen ORDER BY majs_gen ASC SEPARATOR ",") AS generations' .
268
-            ' FROM `##maj_sosa`' .
269
-            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id' .
270
-            ' GROUP BY majs_i_id'
271
-        )->execute(array(
272
-            'tree_id' => $this->tree->getTreeId(),
273
-            'user_id' => $this->user->getUserId()
274
-        ))->fetchAssoc();
275
-    }
276
-    
277
-    /**
278
-     * Get an associative array of Sosa individuals in generation G. Keys are Sosa numbers, values individuals.
279
-     *
280
-     * @param number $gen Generation
281
-     * @return array Array of Sosa individuals
282
-     */
283
-    public function getSosaListAtGeneration($gen){
284
-        if(!$this->is_setup) return array();
285
-        if(!$this->sosa_list_by_gen)
286
-            $this->sosa_list_by_gen = array();
258
+	/**
259
+	 * Return the list of all sosas, with the generations it belongs to
260
+	 *
261
+	 * @return array Associative array of Sosa ancestors, with their generation, comma separated
262
+	 */
263
+	public function getAllSosaWithGenerations(){
264
+		if(!$this->is_setup) return array();
265
+		return Database::prepare(
266
+			'SELECT majs_i_id AS indi,' .
267
+			' GROUP_CONCAT(DISTINCT majs_gen ORDER BY majs_gen ASC SEPARATOR ",") AS generations' .
268
+			' FROM `##maj_sosa`' .
269
+			' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id' .
270
+			' GROUP BY majs_i_id'
271
+		)->execute(array(
272
+			'tree_id' => $this->tree->getTreeId(),
273
+			'user_id' => $this->user->getUserId()
274
+		))->fetchAssoc();
275
+	}
276
+    
277
+	/**
278
+	 * Get an associative array of Sosa individuals in generation G. Keys are Sosa numbers, values individuals.
279
+	 *
280
+	 * @param number $gen Generation
281
+	 * @return array Array of Sosa individuals
282
+	 */
283
+	public function getSosaListAtGeneration($gen){
284
+		if(!$this->is_setup) return array();
285
+		if(!$this->sosa_list_by_gen)
286
+			$this->sosa_list_by_gen = array();
287 287
         
288
-        if($gen){
289
-            if(!isset($this->sosa_list_by_gen[$gen])){
290
-                $this->sosa_list_by_gen[$gen] = Database::prepare(
291
-                    'SELECT majs_sosa AS sosa, majs_i_id AS indi'.
292
-                    ' FROM `##maj_sosa`'.
293
-                    ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
294
-                    ' AND majs_gen = :gen'.
295
-                    ' ORDER BY majs_sosa ASC')
296
-                ->execute(array(
297
-                    'tree_id' => $this->tree->getTreeId(),
298
-                    'user_id' => $this->user->getUserId(),
299
-                    'gen' => $gen
300
-                ))
301
-                ->fetchAssoc();
302
-            }
303
-            return $this->sosa_list_by_gen[$gen];
304
-        }
305
-        return array();
306
-    }
307
-    
308
-    /**
309
-     * Get an associative array of Sosa families in generation G. Keys are Sosa numbers for the husband, values families.
310
-     *
311
-     * @param number $gen Generation
312
-     * @return array Array of Sosa families
313
-     */
314
-    public function getFamilySosaListAtGeneration($gen){
315
-        if(!$this->is_setup) return array();
316
-        if(!$this->sosa_fam_list_by_gen)
317
-            $this->sosa_fam_list_by_gen = array();
288
+		if($gen){
289
+			if(!isset($this->sosa_list_by_gen[$gen])){
290
+				$this->sosa_list_by_gen[$gen] = Database::prepare(
291
+					'SELECT majs_sosa AS sosa, majs_i_id AS indi'.
292
+					' FROM `##maj_sosa`'.
293
+					' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
294
+					' AND majs_gen = :gen'.
295
+					' ORDER BY majs_sosa ASC')
296
+				->execute(array(
297
+					'tree_id' => $this->tree->getTreeId(),
298
+					'user_id' => $this->user->getUserId(),
299
+					'gen' => $gen
300
+				))
301
+				->fetchAssoc();
302
+			}
303
+			return $this->sosa_list_by_gen[$gen];
304
+		}
305
+		return array();
306
+	}
307
+    
308
+	/**
309
+	 * Get an associative array of Sosa families in generation G. Keys are Sosa numbers for the husband, values families.
310
+	 *
311
+	 * @param number $gen Generation
312
+	 * @return array Array of Sosa families
313
+	 */
314
+	public function getFamilySosaListAtGeneration($gen){
315
+		if(!$this->is_setup) return array();
316
+		if(!$this->sosa_fam_list_by_gen)
317
+			$this->sosa_fam_list_by_gen = array();
318 318
         
319
-        if($gen){
320
-            if(!isset($this->sosa_fam_list_by_gen[$gen])){
321
-                $this->sosa_fam_list_by_gen[$gen] = Database::prepare(
322
-                    'SELECT s1.majs_sosa AS sosa, f_id AS fam'.
323
-                    ' FROM `##families`'.
324
-                    ' INNER JOIN `##maj_sosa` AS s1 ON (`##families`.f_husb = s1.majs_i_id AND `##families`.f_file = s1.majs_gedcom_id)'.
325
-                    ' INNER JOIN `##maj_sosa` AS s2 ON (`##families`.f_wife = s2.majs_i_id AND `##families`.f_file = s2.majs_gedcom_id)'.
326
-                    ' WHERE s1.majs_sosa + 1 = s2.majs_sosa'.
327
-                    ' AND s1.majs_gedcom_id= :tree_id AND s1.majs_user_id=:user_id'.
328
-                    ' AND s2.majs_gedcom_id= :tree_id AND s2.majs_user_id=:user_id'.
329
-                    ' AND s1.majs_gen = :gen'.
330
-                    ' ORDER BY s1.majs_sosa ASC'
331
-                    )
332
-                    ->execute(array(
333
-                        'tree_id' => $this->tree->getTreeId(),
334
-                        'user_id' => $this->user->getUserId(),
335
-                        'gen' => $gen
336
-                    ))
337
-                    ->fetchAssoc();
338
-            }
339
-            return $this->sosa_fam_list_by_gen[$gen];
340
-        }
341
-        return array();
342
-    }
343
-    
344
-    /**
345
-     * Get an associative array of Sosa individuals in generation G who are missing parents. Keys are Sosa numbers, values individuals.
346
-     *
347
-     * @param number $gen Generation
348
-     * @return array Array of Sosa individuals
349
-     */
350
-    public function getMissingSosaListAtGeneration($gen){
351
-        if(!$this->is_setup) return array();    
352
-        if($gen){
353
-            return $this->sosa_list_by_gen[$gen] = Database::prepare(
354
-                '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'.
355
-                ' FROM `##maj_sosa` schild'.
356
-                ' LEFT JOIN `##maj_sosa` sfat ON ((schild.majs_sosa * 2) = sfat.majs_sosa AND schild.majs_gedcom_id = sfat.majs_gedcom_id AND schild.majs_user_id = sfat.majs_user_id)'.
357
-                ' LEFT JOIN `##maj_sosa` smot ON ((schild.majs_sosa * 2 + 1) = smot.majs_sosa AND schild.majs_gedcom_id = smot.majs_gedcom_id AND schild.majs_user_id = smot.majs_user_id)'.
358
-                ' WHERE schild.majs_gedcom_id = :tree_id AND schild.majs_user_id = :user_id'.
359
-                ' AND schild.majs_gen = :gen'.
360
-                ' AND (sfat.majs_sosa IS NULL OR smot.majs_sosa IS NULL)'.
361
-                ' ORDER BY schild.majs_sosa ASC')
362
-                ->execute(array(
363
-                    'tree_id' => $this->tree->getTreeId(),
364
-                    'user_id' => $this->user->getUserId(),
365
-                    'gen' => $gen - 1
366
-                ))->fetchAll(\PDO::FETCH_ASSOC);
367
-        }
368
-        return array();
369
-    }
370
-    
371
-    
372
-    
373
-    /*************
319
+		if($gen){
320
+			if(!isset($this->sosa_fam_list_by_gen[$gen])){
321
+				$this->sosa_fam_list_by_gen[$gen] = Database::prepare(
322
+					'SELECT s1.majs_sosa AS sosa, f_id AS fam'.
323
+					' FROM `##families`'.
324
+					' INNER JOIN `##maj_sosa` AS s1 ON (`##families`.f_husb = s1.majs_i_id AND `##families`.f_file = s1.majs_gedcom_id)'.
325
+					' INNER JOIN `##maj_sosa` AS s2 ON (`##families`.f_wife = s2.majs_i_id AND `##families`.f_file = s2.majs_gedcom_id)'.
326
+					' WHERE s1.majs_sosa + 1 = s2.majs_sosa'.
327
+					' AND s1.majs_gedcom_id= :tree_id AND s1.majs_user_id=:user_id'.
328
+					' AND s2.majs_gedcom_id= :tree_id AND s2.majs_user_id=:user_id'.
329
+					' AND s1.majs_gen = :gen'.
330
+					' ORDER BY s1.majs_sosa ASC'
331
+					)
332
+					->execute(array(
333
+						'tree_id' => $this->tree->getTreeId(),
334
+						'user_id' => $this->user->getUserId(),
335
+						'gen' => $gen
336
+					))
337
+					->fetchAssoc();
338
+			}
339
+			return $this->sosa_fam_list_by_gen[$gen];
340
+		}
341
+		return array();
342
+	}
343
+    
344
+	/**
345
+	 * Get an associative array of Sosa individuals in generation G who are missing parents. Keys are Sosa numbers, values individuals.
346
+	 *
347
+	 * @param number $gen Generation
348
+	 * @return array Array of Sosa individuals
349
+	 */
350
+	public function getMissingSosaListAtGeneration($gen){
351
+		if(!$this->is_setup) return array();    
352
+		if($gen){
353
+			return $this->sosa_list_by_gen[$gen] = Database::prepare(
354
+				'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'.
355
+				' FROM `##maj_sosa` schild'.
356
+				' LEFT JOIN `##maj_sosa` sfat ON ((schild.majs_sosa * 2) = sfat.majs_sosa AND schild.majs_gedcom_id = sfat.majs_gedcom_id AND schild.majs_user_id = sfat.majs_user_id)'.
357
+				' LEFT JOIN `##maj_sosa` smot ON ((schild.majs_sosa * 2 + 1) = smot.majs_sosa AND schild.majs_gedcom_id = smot.majs_gedcom_id AND schild.majs_user_id = smot.majs_user_id)'.
358
+				' WHERE schild.majs_gedcom_id = :tree_id AND schild.majs_user_id = :user_id'.
359
+				' AND schild.majs_gen = :gen'.
360
+				' AND (sfat.majs_sosa IS NULL OR smot.majs_sosa IS NULL)'.
361
+				' ORDER BY schild.majs_sosa ASC')
362
+				->execute(array(
363
+					'tree_id' => $this->tree->getTreeId(),
364
+					'user_id' => $this->user->getUserId(),
365
+					'gen' => $gen - 1
366
+				))->fetchAll(\PDO::FETCH_ASSOC);
367
+		}
368
+		return array();
369
+	}
370
+    
371
+    
372
+    
373
+	/*************
374 374
      * STATISTICS
375 375
      *************/
376
-    /**
377
-     * Get the statistic array detailed by generation.
378
-     * Statistics for each generation are:
379
-     * 	- The number of Sosa in generation
380
-     * 	- The number of Sosa up to generation
381
-     *  - The number of distinct Sosa up to generation
382
-     *  - The year of the first birth in generation
383
-     *  - The year of the last birth in generation
384
-     *  - The average year of birth in generation
385
-     *
386
-     * @return array Statistics array
387
-     */
388
-    public function getStatisticsByGeneration() {
389
-        if(!$this->is_setup) return array();
390
-        if(!$this->statistics_tab) {
391
-            $this->statistics_tab = array();
392
-            if($maxGeneration = $this->getLastGeneration()) {
393
-                for ($gen = 1; $gen <= $maxGeneration; $gen++) {
394
-                    $birthStats = $this->getStatsBirthYearInGeneration($gen);
395
-                    $this->statistics_tab[$gen] = array(
396
-                        'sosaCount'				=>	$this->getSosaCountAtGeneration($gen),
397
-                        'sosaTotalCount'		=>	$this->getSosaCountUpToGeneration($gen),
398
-                        'diffSosaTotalCount'	=>	$this->getDifferentSosaCountUpToGeneration($gen),
399
-                        'firstBirth'			=>	$birthStats['first'],
400
-                        'lastBirth'				=>	$birthStats['last'],
401
-                        'avgBirth'				=>	$birthStats['avg']
402
-                    );
403
-                }
404
-            }
405
-        }
406
-        return $this->statistics_tab;        
407
-    }
376
+	/**
377
+	 * Get the statistic array detailed by generation.
378
+	 * Statistics for each generation are:
379
+	 * 	- The number of Sosa in generation
380
+	 * 	- The number of Sosa up to generation
381
+	 *  - The number of distinct Sosa up to generation
382
+	 *  - The year of the first birth in generation
383
+	 *  - The year of the last birth in generation
384
+	 *  - The average year of birth in generation
385
+	 *
386
+	 * @return array Statistics array
387
+	 */
388
+	public function getStatisticsByGeneration() {
389
+		if(!$this->is_setup) return array();
390
+		if(!$this->statistics_tab) {
391
+			$this->statistics_tab = array();
392
+			if($maxGeneration = $this->getLastGeneration()) {
393
+				for ($gen = 1; $gen <= $maxGeneration; $gen++) {
394
+					$birthStats = $this->getStatsBirthYearInGeneration($gen);
395
+					$this->statistics_tab[$gen] = array(
396
+						'sosaCount'				=>	$this->getSosaCountAtGeneration($gen),
397
+						'sosaTotalCount'		=>	$this->getSosaCountUpToGeneration($gen),
398
+						'diffSosaTotalCount'	=>	$this->getDifferentSosaCountUpToGeneration($gen),
399
+						'firstBirth'			=>	$birthStats['first'],
400
+						'lastBirth'				=>	$birthStats['last'],
401
+						'avgBirth'				=>	$birthStats['avg']
402
+					);
403
+				}
404
+			}
405
+		}
406
+		return $this->statistics_tab;        
407
+	}
408 408
     
409 409
 	/**
410 410
 	 * How many individuals exist in the tree.
@@ -412,205 +412,205 @@  discard block
 block discarded – undo
412 412
 	 * @return int
413 413
 	 */
414 414
 	public function getTotalIndividuals() {
415
-	    if(!$this->is_setup) return 0;
416
-	    return Database::prepare(
417
-	        'SELECT SQL_CACHE COUNT(*) FROM `##individuals`' .
418
-	        ' WHERE i_file = :tree_id')
419
-	        ->execute(array('tree_id' => $this->tree->getTreeId()))
420
-	        ->fetchOne() ?: 0;
415
+		if(!$this->is_setup) return 0;
416
+		return Database::prepare(
417
+			'SELECT SQL_CACHE COUNT(*) FROM `##individuals`' .
418
+			' WHERE i_file = :tree_id')
419
+			->execute(array('tree_id' => $this->tree->getTreeId()))
420
+			->fetchOne() ?: 0;
421 421
 	}
422 422
     
423
-    /**
424
-     * Get the total Sosa count for all generations
425
-     *
426
-     * @return number Number of Sosas
427
-     */
428
-    public function getSosaCount(){
429
-        if(!$this->is_setup) return 0;
430
-        return Database::prepare(
431
-            'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
432
-            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id')
433
-            ->execute(array(
434
-                'tree_id' => $this->tree->getTreeId(), 
435
-                'user_id' => $this->user->getUserId() 
436
-            ))->fetchOne() ?: 0;
437
-    }
438
-    
439
-    /**
440
-     * Get the number of Sosa in a specific generation.
441
-     *
442
-     * @param number $gen Generation
443
-     * @return number Number of Sosas in generation
444
-     */
445
-    public function getSosaCountAtGeneration($gen){
446
-        if(!$this->is_setup) return 0;
447
-        return Database::prepare(
448
-            'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
449
-            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
450
-            ' AND majs_gen= :gen')
451
-        ->execute(array(
452
-                'tree_id' => $this->tree->getTreeId(), 
453
-                'user_id' => $this->user->getUserId(),
454
-                'gen' => $gen            
455
-        ))->fetchOne() ?: 0;
456
-    }
457
-    
458
-    /**
459
-     * Get the total number of Sosa up to a specific generation.
460
-     *
461
-     * @param number $gen Generation
462
-     * @return number Total number of Sosas up to generation
463
-     */
464
-    public function getSosaCountUpToGeneration($gen){
465
-        if(!$this->is_setup) return 0;
466
-        return Database::prepare(
467
-            'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
468
-            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
469
-            ' AND majs_gen <= :gen')
470
-        ->execute(array(
471
-                'tree_id' => $this->tree->getTreeId(), 
472
-                'user_id' => $this->user->getUserId(),
473
-                'gen' => $gen 
474
-        ))->fetchOne() ?: 0;
475
-    }
476
-    
477
-    /**
478
-     * Get the total number of distinct Sosa individual for all generations.
479
-     *
480
-     * @return number Total number of distinct individual
481
-     */
482
-    public function getDifferentSosaCount(){
483
-        if(!$this->is_setup) return 0;
484
-        return Database::prepare(
485
-            'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' .
486
-            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id')
487
-        ->execute(array(
488
-                'tree_id' => $this->tree->getTreeId(), 
489
-                'user_id' => $this->user->getUserId()
490
-        ))->fetchOne() ?: 0;
491
-    }
492
-    
493
-    /**
494
-     * Get the number of distinct Sosa individual up to a specific generation.
495
-     *
496
-     * @param number $gen Generation
497
-     * @return number Number of distinct Sosa individuals up to generation
498
-     */
499
-    public function getDifferentSosaCountUpToGeneration($gen){
500
-        if(!$this->is_setup) return 0;
501
-        return Database::prepare(
502
-            'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' .
503
-            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
504
-            ' AND majs_gen <= :gen')
505
-        ->execute(array(
506
-                'tree_id' => $this->tree->getTreeId(), 
507
-                'user_id' => $this->user->getUserId(),
508
-                'gen' => $gen 
509
-        ))->fetchOne() ?: 0;
510
-    }
511
-    
512
-    /**
513
-     * Get an array of birth statistics for a specific generation
514
-     * Statistics are :
515
-     * 	- first : First birth year in generation
516
-     *  - last : Last birth year in generation
517
-     *  - avg : Average birth year
518
-     *
519
-     * @param number $gen Generation
520
-     * @return array Birth statistics array
521
-     */
522
-    public function getStatsBirthYearInGeneration($gen){
523
-        if(!$this->is_setup) return array('first' => 0, 'avg' => 0, 'last' => 0);
524
-        return Database::prepare(
525
-            'SELECT MIN(majs_birth_year) AS first, AVG(majs_birth_year) AS avg, MAX(majs_birth_year) AS last'.
526
-            ' FROM `##maj_sosa`' .
527
-            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
528
-            ' AND majs_gen=:gen AND NOT majs_birth_year = :birth_year')
529
-            ->execute(array(
530
-                'tree_id' => $this->tree->getTreeId(), 
531
-                'user_id' => $this->user->getUserId(),
532
-                'gen' => $gen,
533
-                'birth_year' => 0))
534
-            ->fetchOneRow(\PDO::FETCH_ASSOC) ?: array('first' => 0, 'avg' => 0, 'last' => 0);
535
-    }
536
-    
537
-    /**
538
-     * Get the mean generation time, based on a linear regression of birth years and generations
539
-     *
540
-     * @return number|NULL Mean generation time
541
-     */
542
-    public function getMeanGenerationTime(){
543
-        if(!$this->is_setup) return;
544
-        if(!$this->statistics_tab){
545
-            $this->getStatisticsByGeneration();
546
-        }
547
-        //Linear regression on x=generation and y=birthdate
548
-        $sum_xy = 0;
549
-        $sum_x=0;
550
-        $sum_y=0;
551
-        $sum_x2=0;
552
-        $n=count($this->statistics_tab);
553
-        foreach($this->statistics_tab as $gen=>$stats){
554
-            $sum_xy+=$gen*$stats['avgBirth'];
555
-            $sum_x+=$gen;
556
-            $sum_y+=$stats['avgBirth'];
557
-            $sum_x2+=$gen*$gen;
558
-        }
559
-        $denom=($n*$sum_x2)-($sum_x*$sum_x);
560
-        if($denom!=0){
561
-            return -(($n*$sum_xy)-($sum_x*$sum_y))/($denom);
562
-        }
563
-        return null;
564
-    }
565
-    
566
-    /**
567
-     * Return a computed array of statistics about the dispersion of ancestors across the ancestors
568
-     * at a specified generation.
569
-     * This statistics cannot be used for generations above 11, as it would cause a out of range in MySQL
570
-     * 
571
-     * Format: 
572
-     *  - key : a base-2 representation of the ancestor at generation G for which exclusive ancestors have been found,
573
-     *          -1 is used for shared ancestors
574
-     *          For instance base2(0100) = base10(4) represent the maternal grand father
575
-     *  - values: number of ancestors exclusively in the ancestors of the ancestor in key
576
-     *  
577
-     *  For instance a result at generation 3 could be :
578
-     *      array (   -1        =>  12      -> 12 ancestors are shared by the grand-parents
579
-     *                base10(1) =>  32      -> 32 ancestors are exclusive to the paternal grand-father
580
-     *                base10(2) =>  25      -> 25 ancestors are exclusive to the paternal grand-mother
581
-     *                base10(4) =>  12      -> 12 ancestors are exclusive to the maternal grand-father
582
-     *                base10(8) =>  30      -> 30 ancestors are exclusive to the maternal grand-mother
583
-     *            )
584
-     *  
585
-     * @param int $gen Reference generation
586
-     * @return array
587
-     */
588
-    public function getAncestorDispersionForGen($gen) {
589
-        if(!$this->is_setup || $gen > 11) return array();  // Going further than 11 gen will be out of range in the query
590
-        return Database::prepare(
591
-            'SELECT branches, count(i_id)'.
592
-            ' FROM ('.
593
-            '   SELECT i_id,'.
594
-            '       CASE'.
595
-            '           WHEN CEIL(LOG2(SUM(branch))) = LOG2(SUM(branch)) THEN SUM(branch)'.
596
-            '           ELSE -1'.   // We put all ancestors shared between some branches in the same bucket
597
-            '       END branches'.
598
-            '   FROM ('.
599
-            '       SELECT DISTINCT majs_i_id i_id,'.
600
-            '           POW(2, FLOOR(majs_sosa / POW(2, (majs_gen - :gen))) - POW(2, :gen -1)) branch'.
601
-            '       FROM `##maj_sosa`'.
602
-            '       WHERE majs_gedcom_id = :tree_id AND majs_user_id = :user_id'.
603
-            '           AND majs_gen >= :gen'.
604
-            '   ) indistat'.
605
-            '   GROUP BY i_id'.
606
-            ') grouped'.
607
-            ' GROUP BY branches')
608
-            ->execute(array(
609
-                'tree_id' => $this->tree->getTreeId(), 
610
-                'user_id' => $this->user->getUserId(),
611
-                'gen' => $gen
612
-            ))->fetchAssoc() ?: array();
613
-    }
423
+	/**
424
+	 * Get the total Sosa count for all generations
425
+	 *
426
+	 * @return number Number of Sosas
427
+	 */
428
+	public function getSosaCount(){
429
+		if(!$this->is_setup) return 0;
430
+		return Database::prepare(
431
+			'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
432
+			' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id')
433
+			->execute(array(
434
+				'tree_id' => $this->tree->getTreeId(), 
435
+				'user_id' => $this->user->getUserId() 
436
+			))->fetchOne() ?: 0;
437
+	}
438
+    
439
+	/**
440
+	 * Get the number of Sosa in a specific generation.
441
+	 *
442
+	 * @param number $gen Generation
443
+	 * @return number Number of Sosas in generation
444
+	 */
445
+	public function getSosaCountAtGeneration($gen){
446
+		if(!$this->is_setup) return 0;
447
+		return Database::prepare(
448
+			'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
449
+			' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
450
+			' AND majs_gen= :gen')
451
+		->execute(array(
452
+				'tree_id' => $this->tree->getTreeId(), 
453
+				'user_id' => $this->user->getUserId(),
454
+				'gen' => $gen            
455
+		))->fetchOne() ?: 0;
456
+	}
457
+    
458
+	/**
459
+	 * Get the total number of Sosa up to a specific generation.
460
+	 *
461
+	 * @param number $gen Generation
462
+	 * @return number Total number of Sosas up to generation
463
+	 */
464
+	public function getSosaCountUpToGeneration($gen){
465
+		if(!$this->is_setup) return 0;
466
+		return Database::prepare(
467
+			'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
468
+			' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
469
+			' AND majs_gen <= :gen')
470
+		->execute(array(
471
+				'tree_id' => $this->tree->getTreeId(), 
472
+				'user_id' => $this->user->getUserId(),
473
+				'gen' => $gen 
474
+		))->fetchOne() ?: 0;
475
+	}
476
+    
477
+	/**
478
+	 * Get the total number of distinct Sosa individual for all generations.
479
+	 *
480
+	 * @return number Total number of distinct individual
481
+	 */
482
+	public function getDifferentSosaCount(){
483
+		if(!$this->is_setup) return 0;
484
+		return Database::prepare(
485
+			'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' .
486
+			' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id')
487
+		->execute(array(
488
+				'tree_id' => $this->tree->getTreeId(), 
489
+				'user_id' => $this->user->getUserId()
490
+		))->fetchOne() ?: 0;
491
+	}
492
+    
493
+	/**
494
+	 * Get the number of distinct Sosa individual up to a specific generation.
495
+	 *
496
+	 * @param number $gen Generation
497
+	 * @return number Number of distinct Sosa individuals up to generation
498
+	 */
499
+	public function getDifferentSosaCountUpToGeneration($gen){
500
+		if(!$this->is_setup) return 0;
501
+		return Database::prepare(
502
+			'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' .
503
+			' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
504
+			' AND majs_gen <= :gen')
505
+		->execute(array(
506
+				'tree_id' => $this->tree->getTreeId(), 
507
+				'user_id' => $this->user->getUserId(),
508
+				'gen' => $gen 
509
+		))->fetchOne() ?: 0;
510
+	}
511
+    
512
+	/**
513
+	 * Get an array of birth statistics for a specific generation
514
+	 * Statistics are :
515
+	 * 	- first : First birth year in generation
516
+	 *  - last : Last birth year in generation
517
+	 *  - avg : Average birth year
518
+	 *
519
+	 * @param number $gen Generation
520
+	 * @return array Birth statistics array
521
+	 */
522
+	public function getStatsBirthYearInGeneration($gen){
523
+		if(!$this->is_setup) return array('first' => 0, 'avg' => 0, 'last' => 0);
524
+		return Database::prepare(
525
+			'SELECT MIN(majs_birth_year) AS first, AVG(majs_birth_year) AS avg, MAX(majs_birth_year) AS last'.
526
+			' FROM `##maj_sosa`' .
527
+			' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
528
+			' AND majs_gen=:gen AND NOT majs_birth_year = :birth_year')
529
+			->execute(array(
530
+				'tree_id' => $this->tree->getTreeId(), 
531
+				'user_id' => $this->user->getUserId(),
532
+				'gen' => $gen,
533
+				'birth_year' => 0))
534
+			->fetchOneRow(\PDO::FETCH_ASSOC) ?: array('first' => 0, 'avg' => 0, 'last' => 0);
535
+	}
536
+    
537
+	/**
538
+	 * Get the mean generation time, based on a linear regression of birth years and generations
539
+	 *
540
+	 * @return number|NULL Mean generation time
541
+	 */
542
+	public function getMeanGenerationTime(){
543
+		if(!$this->is_setup) return;
544
+		if(!$this->statistics_tab){
545
+			$this->getStatisticsByGeneration();
546
+		}
547
+		//Linear regression on x=generation and y=birthdate
548
+		$sum_xy = 0;
549
+		$sum_x=0;
550
+		$sum_y=0;
551
+		$sum_x2=0;
552
+		$n=count($this->statistics_tab);
553
+		foreach($this->statistics_tab as $gen=>$stats){
554
+			$sum_xy+=$gen*$stats['avgBirth'];
555
+			$sum_x+=$gen;
556
+			$sum_y+=$stats['avgBirth'];
557
+			$sum_x2+=$gen*$gen;
558
+		}
559
+		$denom=($n*$sum_x2)-($sum_x*$sum_x);
560
+		if($denom!=0){
561
+			return -(($n*$sum_xy)-($sum_x*$sum_y))/($denom);
562
+		}
563
+		return null;
564
+	}
565
+    
566
+	/**
567
+	 * Return a computed array of statistics about the dispersion of ancestors across the ancestors
568
+	 * at a specified generation.
569
+	 * This statistics cannot be used for generations above 11, as it would cause a out of range in MySQL
570
+	 * 
571
+	 * Format: 
572
+	 *  - key : a base-2 representation of the ancestor at generation G for which exclusive ancestors have been found,
573
+	 *          -1 is used for shared ancestors
574
+	 *          For instance base2(0100) = base10(4) represent the maternal grand father
575
+	 *  - values: number of ancestors exclusively in the ancestors of the ancestor in key
576
+	 *  
577
+	 *  For instance a result at generation 3 could be :
578
+	 *      array (   -1        =>  12      -> 12 ancestors are shared by the grand-parents
579
+	 *                base10(1) =>  32      -> 32 ancestors are exclusive to the paternal grand-father
580
+	 *                base10(2) =>  25      -> 25 ancestors are exclusive to the paternal grand-mother
581
+	 *                base10(4) =>  12      -> 12 ancestors are exclusive to the maternal grand-father
582
+	 *                base10(8) =>  30      -> 30 ancestors are exclusive to the maternal grand-mother
583
+	 *            )
584
+	 *  
585
+	 * @param int $gen Reference generation
586
+	 * @return array
587
+	 */
588
+	public function getAncestorDispersionForGen($gen) {
589
+		if(!$this->is_setup || $gen > 11) return array();  // Going further than 11 gen will be out of range in the query
590
+		return Database::prepare(
591
+			'SELECT branches, count(i_id)'.
592
+			' FROM ('.
593
+			'   SELECT i_id,'.
594
+			'       CASE'.
595
+			'           WHEN CEIL(LOG2(SUM(branch))) = LOG2(SUM(branch)) THEN SUM(branch)'.
596
+			'           ELSE -1'.   // We put all ancestors shared between some branches in the same bucket
597
+			'       END branches'.
598
+			'   FROM ('.
599
+			'       SELECT DISTINCT majs_i_id i_id,'.
600
+			'           POW(2, FLOOR(majs_sosa / POW(2, (majs_gen - :gen))) - POW(2, :gen -1)) branch'.
601
+			'       FROM `##maj_sosa`'.
602
+			'       WHERE majs_gedcom_id = :tree_id AND majs_user_id = :user_id'.
603
+			'           AND majs_gen >= :gen'.
604
+			'   ) indistat'.
605
+			'   GROUP BY i_id'.
606
+			') grouped'.
607
+			' GROUP BY branches')
608
+			->execute(array(
609
+				'tree_id' => $this->tree->getTreeId(), 
610
+				'user_id' => $this->user->getUserId(),
611
+				'gen' => $gen
612
+			))->fetchAssoc() ?: array();
613
+	}
614 614
     
615 615
                
616 616
 }
Please login to merge, or discard this patch.
Spacing   +77 added lines, -77 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.', :dyear'.$i.')';
193 193
                 $values_table = array_merge(
@@ -206,9 +206,9 @@  discard block
 block discarded – undo
206 206
             $i++;
207 207
         }
208 208
         
209
-        $sql = 'REPLACE INTO `##maj_sosa`' .
210
-            ' (majs_gedcom_id, majs_user_id, majs_sosa, majs_i_id, majs_gen, majs_birth_year, majs_death_year)' .
211
-            ' VALUES '. implode(',', $questionmarks_table);
209
+        $sql = 'REPLACE INTO `##maj_sosa`'.
210
+            ' (majs_gedcom_id, majs_user_id, majs_sosa, majs_i_id, majs_gen, majs_birth_year, majs_death_year)'.
211
+            ' VALUES '.implode(',', $questionmarks_table);
212 212
         Database::prepare($sql)->execute($values_table);
213 213
     }
214 214
     
@@ -224,7 +224,7 @@  discard block
 block discarded – undo
224 224
      * @return array Array of sosa numbers
225 225
      */
226 226
     public function getSosaNumbers(Individual $indi) {
227
-        if(!$this->is_setup) return array();
227
+        if (!$this->is_setup) return array();
228 228
         return Database::prepare(
229 229
                 'SELECT majs_sosa, majs_gen FROM `##maj_sosa`'.
230 230
                 ' WHERE majs_i_id=:indi_id AND majs_gedcom_id=:tree_id AND majs_user_id=:user_id'
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
      * @return number Last generation if found, 1 otherwise
242 242
      */
243 243
     public function getLastGeneration() {
244
-        if(!$this->is_setup) return;
244
+        if (!$this->is_setup) return;
245 245
         return Database::prepare(
246 246
                 'SELECT MAX(majs_gen) FROM `##maj_sosa`'.
247 247
                 ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'
@@ -260,13 +260,13 @@  discard block
 block discarded – undo
260 260
      *
261 261
      * @return array Associative array of Sosa ancestors, with their generation, comma separated
262 262
      */
263
-    public function getAllSosaWithGenerations(){
264
-        if(!$this->is_setup) return array();
263
+    public function getAllSosaWithGenerations() {
264
+        if (!$this->is_setup) return array();
265 265
         return Database::prepare(
266
-            'SELECT majs_i_id AS indi,' .
267
-            ' GROUP_CONCAT(DISTINCT majs_gen ORDER BY majs_gen ASC SEPARATOR ",") AS generations' .
268
-            ' FROM `##maj_sosa`' .
269
-            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id' .
266
+            'SELECT majs_i_id AS indi,'.
267
+            ' GROUP_CONCAT(DISTINCT majs_gen ORDER BY majs_gen ASC SEPARATOR ",") AS generations'.
268
+            ' FROM `##maj_sosa`'.
269
+            ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
270 270
             ' GROUP BY majs_i_id'
271 271
         )->execute(array(
272 272
             'tree_id' => $this->tree->getTreeId(),
@@ -280,13 +280,13 @@  discard block
 block discarded – undo
280 280
      * @param number $gen Generation
281 281
      * @return array Array of Sosa individuals
282 282
      */
283
-    public function getSosaListAtGeneration($gen){
284
-        if(!$this->is_setup) return array();
285
-        if(!$this->sosa_list_by_gen)
283
+    public function getSosaListAtGeneration($gen) {
284
+        if (!$this->is_setup) return array();
285
+        if (!$this->sosa_list_by_gen)
286 286
             $this->sosa_list_by_gen = array();
287 287
         
288
-        if($gen){
289
-            if(!isset($this->sosa_list_by_gen[$gen])){
288
+        if ($gen) {
289
+            if (!isset($this->sosa_list_by_gen[$gen])) {
290 290
                 $this->sosa_list_by_gen[$gen] = Database::prepare(
291 291
                     'SELECT majs_sosa AS sosa, majs_i_id AS indi'.
292 292
                     ' FROM `##maj_sosa`'.
@@ -311,13 +311,13 @@  discard block
 block discarded – undo
311 311
      * @param number $gen Generation
312 312
      * @return array Array of Sosa families
313 313
      */
314
-    public function getFamilySosaListAtGeneration($gen){
315
-        if(!$this->is_setup) return array();
316
-        if(!$this->sosa_fam_list_by_gen)
314
+    public function getFamilySosaListAtGeneration($gen) {
315
+        if (!$this->is_setup) return array();
316
+        if (!$this->sosa_fam_list_by_gen)
317 317
             $this->sosa_fam_list_by_gen = array();
318 318
         
319
-        if($gen){
320
-            if(!isset($this->sosa_fam_list_by_gen[$gen])){
319
+        if ($gen) {
320
+            if (!isset($this->sosa_fam_list_by_gen[$gen])) {
321 321
                 $this->sosa_fam_list_by_gen[$gen] = Database::prepare(
322 322
                     'SELECT s1.majs_sosa AS sosa, f_id AS fam'.
323 323
                     ' FROM `##families`'.
@@ -347,9 +347,9 @@  discard block
 block discarded – undo
347 347
      * @param number $gen Generation
348 348
      * @return array Array of Sosa individuals
349 349
      */
350
-    public function getMissingSosaListAtGeneration($gen){
351
-        if(!$this->is_setup) return array();    
352
-        if($gen){
350
+    public function getMissingSosaListAtGeneration($gen) {
351
+        if (!$this->is_setup) return array();    
352
+        if ($gen) {
353 353
             return $this->sosa_list_by_gen[$gen] = Database::prepare(
354 354
                 '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'.
355 355
                 ' FROM `##maj_sosa` schild'.
@@ -386,10 +386,10 @@  discard block
 block discarded – undo
386 386
      * @return array Statistics array
387 387
      */
388 388
     public function getStatisticsByGeneration() {
389
-        if(!$this->is_setup) return array();
390
-        if(!$this->statistics_tab) {
389
+        if (!$this->is_setup) return array();
390
+        if (!$this->statistics_tab) {
391 391
             $this->statistics_tab = array();
392
-            if($maxGeneration = $this->getLastGeneration()) {
392
+            if ($maxGeneration = $this->getLastGeneration()) {
393 393
                 for ($gen = 1; $gen <= $maxGeneration; $gen++) {
394 394
                     $birthStats = $this->getStatsBirthYearInGeneration($gen);
395 395
                     $this->statistics_tab[$gen] = array(
@@ -412,9 +412,9 @@  discard block
 block discarded – undo
412 412
 	 * @return int
413 413
 	 */
414 414
 	public function getTotalIndividuals() {
415
-	    if(!$this->is_setup) return 0;
415
+	    if (!$this->is_setup) return 0;
416 416
 	    return Database::prepare(
417
-	        'SELECT SQL_CACHE COUNT(*) FROM `##individuals`' .
417
+	        'SELECT SQL_CACHE COUNT(*) FROM `##individuals`'.
418 418
 	        ' WHERE i_file = :tree_id')
419 419
 	        ->execute(array('tree_id' => $this->tree->getTreeId()))
420 420
 	        ->fetchOne() ?: 0;
@@ -425,10 +425,10 @@  discard block
 block discarded – undo
425 425
      *
426 426
      * @return number Number of Sosas
427 427
      */
428
-    public function getSosaCount(){
429
-        if(!$this->is_setup) return 0;
428
+    public function getSosaCount() {
429
+        if (!$this->is_setup) return 0;
430 430
         return Database::prepare(
431
-            'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
431
+            'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`'.
432 432
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id')
433 433
             ->execute(array(
434 434
                 'tree_id' => $this->tree->getTreeId(), 
@@ -442,10 +442,10 @@  discard block
 block discarded – undo
442 442
      * @param number $gen Generation
443 443
      * @return number Number of Sosas in generation
444 444
      */
445
-    public function getSosaCountAtGeneration($gen){
446
-        if(!$this->is_setup) return 0;
445
+    public function getSosaCountAtGeneration($gen) {
446
+        if (!$this->is_setup) return 0;
447 447
         return Database::prepare(
448
-            'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
448
+            'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`'.
449 449
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
450 450
             ' AND majs_gen= :gen')
451 451
         ->execute(array(
@@ -461,10 +461,10 @@  discard block
 block discarded – undo
461 461
      * @param number $gen Generation
462 462
      * @return number Total number of Sosas up to generation
463 463
      */
464
-    public function getSosaCountUpToGeneration($gen){
465
-        if(!$this->is_setup) return 0;
464
+    public function getSosaCountUpToGeneration($gen) {
465
+        if (!$this->is_setup) return 0;
466 466
         return Database::prepare(
467
-            'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
467
+            'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`'.
468 468
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
469 469
             ' AND majs_gen <= :gen')
470 470
         ->execute(array(
@@ -479,10 +479,10 @@  discard block
 block discarded – undo
479 479
      *
480 480
      * @return number Total number of distinct individual
481 481
      */
482
-    public function getDifferentSosaCount(){
483
-        if(!$this->is_setup) return 0;
482
+    public function getDifferentSosaCount() {
483
+        if (!$this->is_setup) return 0;
484 484
         return Database::prepare(
485
-            'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' .
485
+            'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`'.
486 486
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id')
487 487
         ->execute(array(
488 488
                 'tree_id' => $this->tree->getTreeId(), 
@@ -496,10 +496,10 @@  discard block
 block discarded – undo
496 496
      * @param number $gen Generation
497 497
      * @return number Number of distinct Sosa individuals up to generation
498 498
      */
499
-    public function getDifferentSosaCountUpToGeneration($gen){
500
-        if(!$this->is_setup) return 0;
499
+    public function getDifferentSosaCountUpToGeneration($gen) {
500
+        if (!$this->is_setup) return 0;
501 501
         return Database::prepare(
502
-            'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' .
502
+            'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`'.
503 503
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
504 504
             ' AND majs_gen <= :gen')
505 505
         ->execute(array(
@@ -519,11 +519,11 @@  discard block
 block discarded – undo
519 519
      * @param number $gen Generation
520 520
      * @return array Birth statistics array
521 521
      */
522
-    public function getStatsBirthYearInGeneration($gen){
523
-        if(!$this->is_setup) return array('first' => 0, 'avg' => 0, 'last' => 0);
522
+    public function getStatsBirthYearInGeneration($gen) {
523
+        if (!$this->is_setup) return array('first' => 0, 'avg' => 0, 'last' => 0);
524 524
         return Database::prepare(
525 525
             'SELECT MIN(majs_birth_year) AS first, AVG(majs_birth_year) AS avg, MAX(majs_birth_year) AS last'.
526
-            ' FROM `##maj_sosa`' .
526
+            ' FROM `##maj_sosa`'.
527 527
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
528 528
             ' AND majs_gen=:gen AND NOT majs_birth_year = :birth_year')
529 529
             ->execute(array(
@@ -539,26 +539,26 @@  discard block
 block discarded – undo
539 539
      *
540 540
      * @return number|NULL Mean generation time
541 541
      */
542
-    public function getMeanGenerationTime(){
543
-        if(!$this->is_setup) return;
544
-        if(!$this->statistics_tab){
542
+    public function getMeanGenerationTime() {
543
+        if (!$this->is_setup) return;
544
+        if (!$this->statistics_tab) {
545 545
             $this->getStatisticsByGeneration();
546 546
         }
547 547
         //Linear regression on x=generation and y=birthdate
548 548
         $sum_xy = 0;
549
-        $sum_x=0;
550
-        $sum_y=0;
551
-        $sum_x2=0;
552
-        $n=count($this->statistics_tab);
553
-        foreach($this->statistics_tab as $gen=>$stats){
554
-            $sum_xy+=$gen*$stats['avgBirth'];
555
-            $sum_x+=$gen;
556
-            $sum_y+=$stats['avgBirth'];
557
-            $sum_x2+=$gen*$gen;
549
+        $sum_x = 0;
550
+        $sum_y = 0;
551
+        $sum_x2 = 0;
552
+        $n = count($this->statistics_tab);
553
+        foreach ($this->statistics_tab as $gen=>$stats) {
554
+            $sum_xy += $gen * $stats['avgBirth'];
555
+            $sum_x += $gen;
556
+            $sum_y += $stats['avgBirth'];
557
+            $sum_x2 += $gen * $gen;
558 558
         }
559
-        $denom=($n*$sum_x2)-($sum_x*$sum_x);
560
-        if($denom!=0){
561
-            return -(($n*$sum_xy)-($sum_x*$sum_y))/($denom);
559
+        $denom = ($n * $sum_x2) - ($sum_x * $sum_x);
560
+        if ($denom != 0) {
561
+            return -(($n * $sum_xy) - ($sum_x * $sum_y)) / ($denom);
562 562
         }
563 563
         return null;
564 564
     }
@@ -586,14 +586,14 @@  discard block
 block discarded – undo
586 586
      * @return array
587 587
      */
588 588
     public function getAncestorDispersionForGen($gen) {
589
-        if(!$this->is_setup || $gen > 11) return array();  // Going further than 11 gen will be out of range in the query
589
+        if (!$this->is_setup || $gen > 11) return array(); // Going further than 11 gen will be out of range in the query
590 590
         return Database::prepare(
591 591
             'SELECT branches, count(i_id)'.
592 592
             ' FROM ('.
593 593
             '   SELECT i_id,'.
594 594
             '       CASE'.
595 595
             '           WHEN CEIL(LOG2(SUM(branch))) = LOG2(SUM(branch)) THEN SUM(branch)'.
596
-            '           ELSE -1'.   // We put all ancestors shared between some branches in the same bucket
596
+            '           ELSE -1'.// We put all ancestors shared between some branches in the same bucket
597 597
             '       END branches'.
598 598
             '   FROM ('.
599 599
             '       SELECT DISTINCT majs_i_id i_id,'.
Please login to merge, or discard this patch.
Braces   +74 added lines, -29 removed lines patch added patch discarded remove patch
@@ -84,21 +84,25 @@  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) 
88
-            self::$default_user = User::find(-1);
87
+        if(self::$default_user === null) {
88
+                    self::$default_user = User::find(-1);
89
+        }
89 90
         
90 91
         $this->tree = $tree;
91 92
         $this->user = $user;
92 93
         $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;
94
+        if($this->user === null) {
95
+        	$this->user = Auth::user();
96
+        }
97
+        if(strlen($this->user->getUserId()) == 0) {
98
+        	$this->user = self::$default_user;
99
+        }
95 100
         
96 101
         // Check if the user, or the default user, has a root already setup;
97 102
         if(empty($this->getRootIndiId())) {
98 103
             if($this->user == self::$default_user) {  // If the default user is not setup
99 104
                 $this->is_setup = false;
100
-            }
101
-            else {
105
+            } else {
102 106
                 $this->user = self::$default_user;
103 107
                 $this->is_setup = $this->getRootIndiId() === null;
104 108
             }            
@@ -141,7 +145,9 @@  discard block
 block discarded – undo
141 145
      * Remove all Sosa entries related to the gedcom file and user
142 146
      */
143 147
     public function deleteAll() {
144
-        if(!$this->is_setup) return;
148
+        if(!$this->is_setup) {
149
+        	return;
150
+        }
145 151
         Database::prepare(
146 152
             'DELETE FROM `##maj_sosa`'.
147 153
             ' WHERE majs_gedcom_id= :tree_id and majs_user_id = :user_id ')
@@ -157,7 +163,9 @@  discard block
 block discarded – undo
157 163
      * @param int $sosa
158 164
      */
159 165
     public function deleteAncestors($sosa) {
160
-        if(!$this->is_setup) return;
166
+        if(!$this->is_setup) {
167
+        	return;
168
+        }
161 169
         $gen = Functions::getGeneration($sosa);
162 170
         Database::prepare(
163 171
             'DELETE FROM `##maj_sosa`'.
@@ -177,7 +185,9 @@  discard block
 block discarded – undo
177 185
      * @param array $sosa_records
178 186
      */
179 187
     public function insertOrUpdate($sosa_records) {
180
-        if(!$this->is_setup) return;
188
+        if(!$this->is_setup) {
189
+        	return;
190
+        }
181 191
         
182 192
         $treeid = $this->tree->getTreeId();
183 193
         $userid = $this->user->getUserId();
@@ -224,7 +234,9 @@  discard block
 block discarded – undo
224 234
      * @return array Array of sosa numbers
225 235
      */
226 236
     public function getSosaNumbers(Individual $indi) {
227
-        if(!$this->is_setup) return array();
237
+        if(!$this->is_setup) {
238
+        	return array();
239
+        }
228 240
         return Database::prepare(
229 241
                 'SELECT majs_sosa, majs_gen FROM `##maj_sosa`'.
230 242
                 ' WHERE majs_i_id=:indi_id AND majs_gedcom_id=:tree_id AND majs_user_id=:user_id'
@@ -241,7 +253,9 @@  discard block
 block discarded – undo
241 253
      * @return number Last generation if found, 1 otherwise
242 254
      */
243 255
     public function getLastGeneration() {
244
-        if(!$this->is_setup) return;
256
+        if(!$this->is_setup) {
257
+        	return;
258
+        }
245 259
         return Database::prepare(
246 260
                 'SELECT MAX(majs_gen) FROM `##maj_sosa`'.
247 261
                 ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'
@@ -261,7 +275,9 @@  discard block
 block discarded – undo
261 275
      * @return array Associative array of Sosa ancestors, with their generation, comma separated
262 276
      */
263 277
     public function getAllSosaWithGenerations(){
264
-        if(!$this->is_setup) return array();
278
+        if(!$this->is_setup) {
279
+        	return array();
280
+        }
265 281
         return Database::prepare(
266 282
             'SELECT majs_i_id AS indi,' .
267 283
             ' GROUP_CONCAT(DISTINCT majs_gen ORDER BY majs_gen ASC SEPARATOR ",") AS generations' .
@@ -281,9 +297,12 @@  discard block
 block discarded – undo
281 297
      * @return array Array of Sosa individuals
282 298
      */
283 299
     public function getSosaListAtGeneration($gen){
284
-        if(!$this->is_setup) return array();
285
-        if(!$this->sosa_list_by_gen)
286
-            $this->sosa_list_by_gen = array();
300
+        if(!$this->is_setup) {
301
+        	return array();
302
+        }
303
+        if(!$this->sosa_list_by_gen) {
304
+                    $this->sosa_list_by_gen = array();
305
+        }
287 306
         
288 307
         if($gen){
289 308
             if(!isset($this->sosa_list_by_gen[$gen])){
@@ -312,9 +331,12 @@  discard block
 block discarded – undo
312 331
      * @return array Array of Sosa families
313 332
      */
314 333
     public function getFamilySosaListAtGeneration($gen){
315
-        if(!$this->is_setup) return array();
316
-        if(!$this->sosa_fam_list_by_gen)
317
-            $this->sosa_fam_list_by_gen = array();
334
+        if(!$this->is_setup) {
335
+        	return array();
336
+        }
337
+        if(!$this->sosa_fam_list_by_gen) {
338
+                    $this->sosa_fam_list_by_gen = array();
339
+        }
318 340
         
319 341
         if($gen){
320 342
             if(!isset($this->sosa_fam_list_by_gen[$gen])){
@@ -348,7 +370,9 @@  discard block
 block discarded – undo
348 370
      * @return array Array of Sosa individuals
349 371
      */
350 372
     public function getMissingSosaListAtGeneration($gen){
351
-        if(!$this->is_setup) return array();    
373
+        if(!$this->is_setup) {
374
+        	return array();
375
+        }
352 376
         if($gen){
353 377
             return $this->sosa_list_by_gen[$gen] = Database::prepare(
354 378
                 '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'.
@@ -386,7 +410,9 @@  discard block
 block discarded – undo
386 410
      * @return array Statistics array
387 411
      */
388 412
     public function getStatisticsByGeneration() {
389
-        if(!$this->is_setup) return array();
413
+        if(!$this->is_setup) {
414
+        	return array();
415
+        }
390 416
         if(!$this->statistics_tab) {
391 417
             $this->statistics_tab = array();
392 418
             if($maxGeneration = $this->getLastGeneration()) {
@@ -412,7 +438,9 @@  discard block
 block discarded – undo
412 438
 	 * @return int
413 439
 	 */
414 440
 	public function getTotalIndividuals() {
415
-	    if(!$this->is_setup) return 0;
441
+	    if(!$this->is_setup) {
442
+	    	return 0;
443
+	    }
416 444
 	    return Database::prepare(
417 445
 	        'SELECT SQL_CACHE COUNT(*) FROM `##individuals`' .
418 446
 	        ' WHERE i_file = :tree_id')
@@ -426,7 +454,9 @@  discard block
 block discarded – undo
426 454
      * @return number Number of Sosas
427 455
      */
428 456
     public function getSosaCount(){
429
-        if(!$this->is_setup) return 0;
457
+        if(!$this->is_setup) {
458
+        	return 0;
459
+        }
430 460
         return Database::prepare(
431 461
             'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
432 462
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id')
@@ -443,7 +473,9 @@  discard block
 block discarded – undo
443 473
      * @return number Number of Sosas in generation
444 474
      */
445 475
     public function getSosaCountAtGeneration($gen){
446
-        if(!$this->is_setup) return 0;
476
+        if(!$this->is_setup) {
477
+        	return 0;
478
+        }
447 479
         return Database::prepare(
448 480
             'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
449 481
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
@@ -462,7 +494,9 @@  discard block
 block discarded – undo
462 494
      * @return number Total number of Sosas up to generation
463 495
      */
464 496
     public function getSosaCountUpToGeneration($gen){
465
-        if(!$this->is_setup) return 0;
497
+        if(!$this->is_setup) {
498
+        	return 0;
499
+        }
466 500
         return Database::prepare(
467 501
             'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' .
468 502
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
@@ -480,7 +514,9 @@  discard block
 block discarded – undo
480 514
      * @return number Total number of distinct individual
481 515
      */
482 516
     public function getDifferentSosaCount(){
483
-        if(!$this->is_setup) return 0;
517
+        if(!$this->is_setup) {
518
+        	return 0;
519
+        }
484 520
         return Database::prepare(
485 521
             'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' .
486 522
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id')
@@ -497,7 +533,9 @@  discard block
 block discarded – undo
497 533
      * @return number Number of distinct Sosa individuals up to generation
498 534
      */
499 535
     public function getDifferentSosaCountUpToGeneration($gen){
500
-        if(!$this->is_setup) return 0;
536
+        if(!$this->is_setup) {
537
+        	return 0;
538
+        }
501 539
         return Database::prepare(
502 540
             'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' .
503 541
             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'.
@@ -520,7 +558,9 @@  discard block
 block discarded – undo
520 558
      * @return array Birth statistics array
521 559
      */
522 560
     public function getStatsBirthYearInGeneration($gen){
523
-        if(!$this->is_setup) return array('first' => 0, 'avg' => 0, 'last' => 0);
561
+        if(!$this->is_setup) {
562
+        	return array('first' => 0, 'avg' => 0, 'last' => 0);
563
+        }
524 564
         return Database::prepare(
525 565
             'SELECT MIN(majs_birth_year) AS first, AVG(majs_birth_year) AS avg, MAX(majs_birth_year) AS last'.
526 566
             ' FROM `##maj_sosa`' .
@@ -540,7 +580,9 @@  discard block
 block discarded – undo
540 580
      * @return number|NULL Mean generation time
541 581
      */
542 582
     public function getMeanGenerationTime(){
543
-        if(!$this->is_setup) return;
583
+        if(!$this->is_setup) {
584
+        	return;
585
+        }
544 586
         if(!$this->statistics_tab){
545 587
             $this->getStatisticsByGeneration();
546 588
         }
@@ -586,7 +628,10 @@  discard block
 block discarded – undo
586 628
      * @return array
587 629
      */
588 630
     public function getAncestorDispersionForGen($gen) {
589
-        if(!$this->is_setup || $gen > 11) return array();  // Going further than 11 gen will be out of range in the query
631
+        if(!$this->is_setup || $gen > 11) {
632
+        	return array();
633
+        }
634
+        // Going further than 11 gen will be out of range in the query
590 635
         return Database::prepare(
591 636
             'SELECT branches, count(i_id)'.
592 637
             ' FROM ('.
Please login to merge, or discard this patch.
src/Webtrees/Map/GoogleMapsProvider.php 2 patches
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -25,14 +25,14 @@  discard block
 block discarded – undo
25 25
 	 * @see \MyArtJaub\Webtrees\Map\MapProviderInterface::getProviderPlaceId()
26 26
 	 */
27 27
 	public function getProviderPlaceId(\Fisharebest\Webtrees\Place $place) {
28
-		if(!$place->isEmpty()) {
29
-			$parent = array_reverse(explode (',', $place->getGedcomName()));
28
+		if (!$place->isEmpty()) {
29
+			$parent = array_reverse(explode(',', $place->getGedcomName()));
30 30
 			$place_id = 0;
31 31
 			$nb_levels = count($parent);
32
-			for ($i=0; $i < $nb_levels; $i++) {
32
+			for ($i = 0; $i < $nb_levels; $i++) {
33 33
 				$parent[$i] = trim($parent[$i]);
34
-				if (empty($parent[$i])) $parent[$i]='unknown';// GoogleMap module uses "unknown" while GEDCOM uses , ,
35
-				$pl_id=Database::prepare('SELECT pl_id FROM `##placelocation` WHERE pl_level=? AND pl_parent_id=? AND pl_place LIKE ? ORDER BY pl_place')
34
+				if (empty($parent[$i])) $parent[$i] = 'unknown'; // GoogleMap module uses "unknown" while GEDCOM uses , ,
35
+				$pl_id = Database::prepare('SELECT pl_id FROM `##placelocation` WHERE pl_level=? AND pl_parent_id=? AND pl_place LIKE ? ORDER BY pl_place')
36 36
 					->execute(array($i, $place_id, $parent[$i]))
37 37
 					->fetchOne();
38 38
 				if (empty($pl_id)) break;
@@ -48,12 +48,12 @@  discard block
 block discarded – undo
48 48
 	 * @see \MyArtJaub\Webtrees\Map\MapProviderInterface::getPlaceIcon()
49 49
 	 */
50 50
 	public function getPlaceIcon(\Fisharebest\Webtrees\Place $place) {
51
-		if(!$place->isEmpty()){
51
+		if (!$place->isEmpty()) {
52 52
 			$place_details =
53 53
 				Database::prepare('SELECT SQL_CACHE pl_icon FROM `##placelocation` WHERE pl_id=? ORDER BY pl_place')	
54 54
 				->execute(array($this->getProviderPlaceId($place)))
55 55
 				->fetchOneRow();
56
-			if($place_details){
56
+			if ($place_details) {
57 57
 				return WT_MODULES_DIR.'googlemap/'.$place_details->pl_icon;
58 58
 			}
59 59
 		}
Please login to merge, or discard this patch.
Braces   +7 added lines, -2 removed lines patch added patch discarded remove patch
@@ -31,11 +31,16 @@
 block discarded – undo
31 31
 			$nb_levels = count($parent);
32 32
 			for ($i=0; $i < $nb_levels; $i++) {
33 33
 				$parent[$i] = trim($parent[$i]);
34
-				if (empty($parent[$i])) $parent[$i]='unknown';// GoogleMap module uses "unknown" while GEDCOM uses , ,
34
+				if (empty($parent[$i])) {
35
+					$parent[$i]='unknown';
36
+				}
37
+				// GoogleMap module uses "unknown" while GEDCOM uses , ,
35 38
 				$pl_id=Database::prepare('SELECT pl_id FROM `##placelocation` WHERE pl_level=? AND pl_parent_id=? AND pl_place LIKE ? ORDER BY pl_place')
36 39
 					->execute(array($i, $place_id, $parent[$i]))
37 40
 					->fetchOne();
38
-				if (empty($pl_id)) break;
41
+				if (empty($pl_id)) {
42
+					break;
43
+				}
39 44
 				$place_id = $pl_id;
40 45
 			}
41 46
 			return $place_id;
Please login to merge, or discard this patch.
src/Webtrees/Module/Sosa/Views/SosaConfigView.php 2 patches
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -24,9 +24,9 @@  discard block
 block discarded – undo
24 24
 	 * {@inhericDoc}
25 25
 	 * @see \MyArtJaub\Webtrees\Mvc\View\AbstractView::renderContent()
26 26
 	 */
27
-    protected function renderContent() {
27
+	protected function renderContent() {
28 28
         
29
-        ?>        
29
+		?>        
30 30
         
31 31
         <div id="maj-sosa-config-page">
32 32
 			<h2><?php echo $this->data->get('title'); ?></h2>
@@ -46,9 +46,9 @@  discard block
 block discarded – undo
46 46
         			</div>
47 47
         			<div class="value">
48 48
         				<?php 
49
-        				    $users = $this->data->get('users_settings');
50
-        				    if(count($users) == 1) {
51
-        				        $root_indi = $users[0]['rootid'];  ?>
49
+							$users = $this->data->get('users_settings');
50
+							if(count($users) == 1) {
51
+								$root_indi = $users[0]['rootid'];  ?>
52 52
         					<label>
53 53
         						<input id="maj_sosa_input_userid" type="hidden" name="userid" value="<?php echo $users[0]['user']->getUserId(); ?>" />
54 54
         						<?php echo $users[0]['user']->getRealNameHtml() ?>
@@ -56,8 +56,8 @@  discard block
 block discarded – undo
56 56
         				<?php  } else if(count($users) > 1) { ?>
57 57
         					<select id='maj-sosa-config-select' name="userid">
58 58
         					<?php 
59
-        					   $root_indi = $users[0]['rootid'];
60
-        					   foreach ($this->data->get('users_settings') as $user) { ?>
59
+							   $root_indi = $users[0]['rootid'];
60
+							   foreach ($this->data->get('users_settings') as $user) { ?>
61 61
         						<option value="<?php echo $user['user']->getUserId(); ?>"><?php echo $user['user']->getRealNameHtml() ?></option>
62 62
         					<?php  } ?>
63 63
         					</select>
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
 			</form>	
81 81
 		
82 82
 		<?php        
83
-    }
83
+	}
84 84
     
85 85
 }
86 86
  
87 87
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -47,13 +47,13 @@
 block discarded – undo
47 47
         			<div class="value">
48 48
         				<?php 
49 49
         				    $users = $this->data->get('users_settings');
50
-        				    if(count($users) == 1) {
51
-        				        $root_indi = $users[0]['rootid'];  ?>
50
+        				    if (count($users) == 1) {
51
+        				        $root_indi = $users[0]['rootid']; ?>
52 52
         					<label>
53 53
         						<input id="maj_sosa_input_userid" type="hidden" name="userid" value="<?php echo $users[0]['user']->getUserId(); ?>" />
54 54
         						<?php echo $users[0]['user']->getRealNameHtml() ?>
55 55
         					</label>
56
-        				<?php  } else if(count($users) > 1) { ?>
56
+        				<?php  } else if (count($users) > 1) { ?>
57 57
         					<select id='maj-sosa-config-select' name="userid">
58 58
         					<?php 
59 59
         					   $root_indi = $users[0]['rootid'];
Please login to merge, or discard this patch.
src/Webtrees/Hook/HookProvider.php 3 patches
Indentation   +42 added lines, -42 removed lines patch added patch discarded remove patch
@@ -43,11 +43,11 @@  discard block
 block discarded – undo
43 43
 	 */
44 44
 	public static function getInstance()
45 45
 	{
46
-	    if (null === static::$instance) {
47
-	        static::$instance = new static();
48
-	    }
46
+		if (null === static::$instance) {
47
+			static::$instance = new static();
48
+		}
49 49
 	
50
-	    return static::$instance;
50
+		return static::$instance;
51 51
 	}
52 52
 	
53 53
 	/**
@@ -55,7 +55,7 @@  discard block
 block discarded – undo
55 55
 	 * @see \MyArtJaub\Webtrees\Hook\HookProviderInterface::get()
56 56
 	 */
57 57
 	public function get($hook_function, $hook_context = null) {
58
-	    return new Hook($hook_function, $hook_context);
58
+		return new Hook($hook_function, $hook_context);
59 59
 	}
60 60
 	
61 61
 	/**
@@ -73,20 +73,20 @@  discard block
 block discarded – undo
73 73
 	public function getPossibleHooks() {
74 74
 		static $hooks=null;
75 75
 		if ($hooks === null) {
76
-		    $hooks = array();
76
+			$hooks = array();
77 77
 		    
78
-		    // Cannot use the same logic as the core Module loading,
79
-		    // as this forces a new include of the module.php file.
80
-		    // This causes issue when classes are defined in this file.
81
-		    // Cannot use Module::getActiveModules as well, as this is private.
82
-		    $module_names = Database::prepare(
83
-		        'SELECT SQL_CACHE module_name FROM `##module`'
84
-		    )->fetchOneColumn();
78
+			// Cannot use the same logic as the core Module loading,
79
+			// as this forces a new include of the module.php file.
80
+			// This causes issue when classes are defined in this file.
81
+			// Cannot use Module::getActiveModules as well, as this is private.
82
+			$module_names = Database::prepare(
83
+				'SELECT SQL_CACHE module_name FROM `##module`'
84
+			)->fetchOneColumn();
85 85
 		    
86
-		    foreach($module_names as $module_name) {
87
-		        $module = Module::getModuleByName($module_name);
86
+			foreach($module_names as $module_name) {
87
+				$module = Module::getModuleByName($module_name);
88 88
 		        
89
-		        if($module instanceof HookSubscriberInterface){
89
+				if($module instanceof HookSubscriberInterface){
90 90
 					$subscribedhooks = $module->getSubscribedHooks();
91 91
 					if(is_array($subscribedhooks)){
92 92
 						foreach($subscribedhooks as $key => $value){
@@ -111,7 +111,7 @@  discard block
 block discarded – undo
111 111
 							}
112 112
 						}
113 113
 					}
114
-		        }
114
+				}
115 115
 			}
116 116
 		}
117 117
 		return $hooks;
@@ -153,33 +153,33 @@  discard block
 block discarded – undo
153 153
 	 */
154 154
 	public function updateHooks() {
155 155
 	    
156
-	    if(Auth::isAdmin()){
157
-	        $ihooks = self::getInstalledHooks();
158
-	        $phooks = self::getPossibleHooks();
156
+		if(Auth::isAdmin()){
157
+			$ihooks = self::getInstalledHooks();
158
+			$phooks = self::getPossibleHooks();
159 159
 	        	
160
-	        // Insert hooks not existing yet in the DB
161
-	        if($phooks !== null){
162
-	            foreach($phooks as $phook => $priority){
163
-	                $array_hook = explode('#', $phook);
164
-	                if($ihooks === null || !array_key_exists($phook, $ihooks)){
165
-	                    $chook = new Hook($array_hook[1], $array_hook[2]);
166
-	                    $chook->subscribe($array_hook[0]);
167
-	                    $chook->setPriority($array_hook[0], $priority);
168
-	                }
169
-	            }
170
-	        }
160
+			// Insert hooks not existing yet in the DB
161
+			if($phooks !== null){
162
+				foreach($phooks as $phook => $priority){
163
+					$array_hook = explode('#', $phook);
164
+					if($ihooks === null || !array_key_exists($phook, $ihooks)){
165
+						$chook = new Hook($array_hook[1], $array_hook[2]);
166
+						$chook->subscribe($array_hook[0]);
167
+						$chook->setPriority($array_hook[0], $priority);
168
+					}
169
+				}
170
+			}
171 171
 	        	
172
-	        //Remove hooks not existing any more in the file system
173
-	        if($ihooks !== null){
174
-	            foreach(array_keys($ihooks) as $ihook){
175
-	                $array_hook = explode('#', $ihook);
176
-	                if($phooks === null || !array_key_exists($ihook, $phooks)){
177
-	                    $chook = new Hook($array_hook[1], $array_hook[2]);
178
-	                    $chook->remove($array_hook[0]);
179
-	                }
180
-	            }
181
-	        }
182
-	    }
172
+			//Remove hooks not existing any more in the file system
173
+			if($ihooks !== null){
174
+				foreach(array_keys($ihooks) as $ihook){
175
+					$array_hook = explode('#', $ihook);
176
+					if($phooks === null || !array_key_exists($ihook, $phooks)){
177
+						$chook = new Hook($array_hook[1], $array_hook[2]);
178
+						$chook->remove($array_hook[0]);
179
+					}
180
+				}
181
+			}
182
+		}
183 183
 	}
184 184
 	
185 185
 }
186 186
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -71,7 +71,7 @@  discard block
 block discarded – undo
71 71
 	 * @see \MyArtJaub\Webtrees\Hook\HookProviderInterface::getPossibleHooks()
72 72
 	 */
73 73
 	public function getPossibleHooks() {
74
-		static $hooks=null;
74
+		static $hooks = null;
75 75
 		if ($hooks === null) {
76 76
 		    $hooks = array();
77 77
 		    
@@ -83,31 +83,31 @@  discard block
 block discarded – undo
83 83
 		        'SELECT SQL_CACHE module_name FROM `##module`'
84 84
 		    )->fetchOneColumn();
85 85
 		    
86
-		    foreach($module_names as $module_name) {
86
+		    foreach ($module_names as $module_name) {
87 87
 		        $module = Module::getModuleByName($module_name);
88 88
 		        
89
-		        if($module instanceof HookSubscriberInterface){
89
+		        if ($module instanceof HookSubscriberInterface) {
90 90
 					$subscribedhooks = $module->getSubscribedHooks();
91
-					if(is_array($subscribedhooks)){
92
-						foreach($subscribedhooks as $key => $value){
93
-							if(is_int($key)) {
91
+					if (is_array($subscribedhooks)) {
92
+						foreach ($subscribedhooks as $key => $value) {
93
+							if (is_int($key)) {
94 94
 								$hook_item = $value;
95 95
 								$priority = self::DEFAULT_PRIORITY;
96 96
 							}
97
-							else{
97
+							else {
98 98
 								$hook_item = explode('#', $key, 2);
99 99
 								$priority = $value;
100 100
 							}
101
-							if($hook_item && count($hook_item) == 2){
101
+							if ($hook_item && count($hook_item) == 2) {
102 102
 								$hook_func = $hook_item[0];
103 103
 								$hook_cont = $hook_item[1];
104 104
 							}
105
-							else{
105
+							else {
106 106
 								$hook_func = $hook_item[0];
107 107
 								$hook_cont = 'all';
108 108
 							}
109
-							if(method_exists($module, $hook_func)){
110
-								$hooks[$module->getName().'#'.$hook_func.'#'.$hook_cont]=$priority;
109
+							if (method_exists($module, $hook_func)) {
110
+								$hooks[$module->getName().'#'.$hook_func.'#'.$hook_cont] = $priority;
111 111
 							}
112 112
 						}
113 113
 					}
@@ -121,8 +121,8 @@  discard block
 block discarded – undo
121 121
 	 * {@inheritDoc}
122 122
 	 * @see \MyArtJaub\Webtrees\Hook\HookProviderInterface::getRawInstalledHooks()
123 123
 	 */
124
-	public function getRawInstalledHooks(){
125
-		if(self::isModuleOperational()){
124
+	public function getRawInstalledHooks() {
125
+		if (self::isModuleOperational()) {
126 126
 			return Database::prepare(
127 127
 					"SELECT majh_id AS id, majh_module_name AS module, majh_hook_function AS hook, majh_hook_context as context, majh_module_priority AS priority,  majh_status AS status".
128 128
 					" FROM `##maj_hooks`".
@@ -136,11 +136,11 @@  discard block
 block discarded – undo
136 136
 	 * {@inheritDoc}
137 137
 	 * @see \MyArtJaub\Webtrees\Hook\HookProviderInterface::getInstalledHooks()
138 138
 	 */
139
-	public function getInstalledHooks(){
140
-		static $installedhooks =null;
141
-		if($installedhooks===null){
142
-			$dbhooks=self::getRawInstalledHooks();
143
-			foreach($dbhooks as $dbhook){
139
+	public function getInstalledHooks() {
140
+		static $installedhooks = null;
141
+		if ($installedhooks === null) {
142
+			$dbhooks = self::getRawInstalledHooks();
143
+			foreach ($dbhooks as $dbhook) {
144 144
 				$installedhooks[($dbhook->module).'#'.($dbhook->hook).'#'.($dbhook->context)] = array('id' => $dbhook->id, 'status' => $dbhook->status, 'priority' => $dbhook->priority);
145 145
 			}
146 146
 		}
@@ -153,15 +153,15 @@  discard block
 block discarded – undo
153 153
 	 */
154 154
 	public function updateHooks() {
155 155
 	    
156
-	    if(Auth::isAdmin()){
156
+	    if (Auth::isAdmin()) {
157 157
 	        $ihooks = self::getInstalledHooks();
158 158
 	        $phooks = self::getPossibleHooks();
159 159
 	        	
160 160
 	        // Insert hooks not existing yet in the DB
161
-	        if($phooks !== null){
162
-	            foreach($phooks as $phook => $priority){
161
+	        if ($phooks !== null) {
162
+	            foreach ($phooks as $phook => $priority) {
163 163
 	                $array_hook = explode('#', $phook);
164
-	                if($ihooks === null || !array_key_exists($phook, $ihooks)){
164
+	                if ($ihooks === null || !array_key_exists($phook, $ihooks)) {
165 165
 	                    $chook = new Hook($array_hook[1], $array_hook[2]);
166 166
 	                    $chook->subscribe($array_hook[0]);
167 167
 	                    $chook->setPriority($array_hook[0], $priority);
@@ -170,10 +170,10 @@  discard block
 block discarded – undo
170 170
 	        }
171 171
 	        	
172 172
 	        //Remove hooks not existing any more in the file system
173
-	        if($ihooks !== null){
174
-	            foreach(array_keys($ihooks) as $ihook){
173
+	        if ($ihooks !== null) {
174
+	            foreach (array_keys($ihooks) as $ihook) {
175 175
 	                $array_hook = explode('#', $ihook);
176
-	                if($phooks === null || !array_key_exists($ihook, $phooks)){
176
+	                if ($phooks === null || !array_key_exists($ihook, $phooks)) {
177 177
 	                    $chook = new Hook($array_hook[1], $array_hook[2]);
178 178
 	                    $chook->remove($array_hook[0]);
179 179
 	                }
Please login to merge, or discard this patch.
Braces   +2 added lines, -4 removed lines patch added patch discarded remove patch
@@ -93,16 +93,14 @@
 block discarded – undo
93 93
 							if(is_int($key)) {
94 94
 								$hook_item = $value;
95 95
 								$priority = self::DEFAULT_PRIORITY;
96
-							}
97
-							else{
96
+							} else{
98 97
 								$hook_item = explode('#', $key, 2);
99 98
 								$priority = $value;
100 99
 							}
101 100
 							if($hook_item && count($hook_item) == 2){
102 101
 								$hook_func = $hook_item[0];
103 102
 								$hook_cont = $hook_item[1];
104
-							}
105
-							else{
103
+							} else{
106 104
 								$hook_func = $hook_item[0];
107 105
 								$hook_cont = 'all';
108 106
 							}
Please login to merge, or discard this patch.
src/Webtrees/Cache.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -146,7 +146,7 @@
 block discarded – undo
146 146
 	/**
147 147
 	 * Static invocation of the *save* method.
148 148
 	 *
149
-	 * @param string|\Psr\Cache\CacheItemInterface $value Value name
149
+	 * @param CacheItemInterface $value Value name
150 150
 	 * @param mixed $data Value
151 151
 	 * @param AbstractModule $mod Calling module
152 152
 	 */
Please login to merge, or discard this patch.
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -22,10 +22,10 @@  discard block
 block discarded – undo
22 22
  */
23 23
 class Cache{
24 24
 	
25
-    /**
26
-     * Underlying Cache object
27
-     * @var CacheItemPoolInterface $cache
28
-     */
25
+	/**
26
+	 * Underlying Cache object
27
+	 * @var CacheItemPoolInterface $cache
28
+	 */
29 29
 	protected $cache=null;
30 30
 	
31 31
 	/**
@@ -47,11 +47,11 @@  discard block
 block discarded – undo
47 47
 	 */
48 48
 	protected static function getInstance()
49 49
 	{
50
-	    if (null === static::$instance) {
51
-	        static::$instance = new static();
52
-	    }
50
+		if (null === static::$instance) {
51
+			static::$instance = new static();
52
+		}
53 53
 	
54
-	    return static::$instance;
54
+		return static::$instance;
55 55
 	}
56 56
 	
57 57
 	/**
@@ -59,8 +59,8 @@  discard block
 block discarded – undo
59 59
 	 *
60 60
 	 */
61 61
 	protected function init() {		
62
-	    if(Apc::isAvailable()) {
63
-		    $driver = new Apc();
62
+		if(Apc::isAvailable()) {
63
+			$driver = new Apc();
64 64
 		} else {
65 65
 			if (!is_dir(WT_DATA_DIR.DIRECTORY_SEPARATOR.'cache')) {
66 66
 				// We may not have permission - especially during setup, before we instruct
@@ -68,7 +68,7 @@  discard block
 block discarded – undo
68 68
 				@mkdir(WT_DATA_DIR.DIRECTORY_SEPARATOR.'cache');
69 69
 			}
70 70
 			if (is_dir(WT_DATA_DIR.DIRECTORY_SEPARATOR.'cache')) {
71
-			    $driver = new FileSystem(array('path' => WT_DATA_DIR.DIRECTORY_SEPARATOR.'cache'));
71
+				$driver = new FileSystem(array('path' => WT_DATA_DIR.DIRECTORY_SEPARATOR.'cache'));
72 72
 			} else {
73 73
 				// No cache available, let's just use a basic one :-(
74 74
 				$driver = new Ephemeral();
@@ -95,7 +95,7 @@  discard block
 block discarded – undo
95 95
 	 * @return string Cached key name
96 96
 	 */
97 97
 	protected function getKeyName($value, AbstractModule $mod = null){
98
-	    $this->checkInit();
98
+		$this->checkInit();
99 99
 		$mod_name = 'myartjaub';
100 100
 		if($mod !== null) $mod_name = $mod->getName();
101 101
 		return $mod_name.'_'.$value;
@@ -109,7 +109,7 @@  discard block
 block discarded – undo
109 109
 	 * @return \Psr\Cache\CacheItemInterface
110 110
 	 */
111 111
 	public function getI($value, AbstractModule $mod = null){
112
-	    $this->checkInit();
112
+		$this->checkInit();
113 113
 		return $this->cache->getItem($this->getKeyName($value, $mod));
114 114
 	}
115 115
 	
@@ -121,7 +121,7 @@  discard block
 block discarded – undo
121 121
 	 * @return \Psr\Cache\CacheItemInterface
122 122
 	 */
123 123
 	public static function get($value, AbstractModule $mod = null){
124
-	    return self::getInstance()->getI($value, $mod);
124
+		return self::getInstance()->getI($value, $mod);
125 125
 	}
126 126
 	
127 127
 	/**
@@ -136,8 +136,8 @@  discard block
 block discarded – undo
136 136
 		
137 137
 		$item = $value;
138 138
 		if(!($value instanceof CacheItemInterface)) {
139
-		    $item = new \Stash\Item();
140
-    		$item->setKey($this->getKeyName($value, $mod));
139
+			$item = new \Stash\Item();
140
+			$item->setKey($this->getKeyName($value, $mod));
141 141
 		}		
142 142
 		$item->set($data);
143 143
 		$this->cache->save($item);
@@ -151,7 +151,7 @@  discard block
 block discarded – undo
151 151
 	 * @param AbstractModule $mod Calling module
152 152
 	 */
153 153
 	public static function save($value, $data, AbstractModule $mod = null){
154
-	    self::getInstance()->saveI($value, $data, $mod);
154
+		self::getInstance()->saveI($value, $data, $mod);
155 155
 	}
156 156
 	
157 157
 	/**
@@ -162,8 +162,8 @@  discard block
 block discarded – undo
162 162
 	 * @return bool Deletion successful?
163 163
 	 */
164 164
 	public function deleteI($value, AbstractModule $mod = null){
165
-	    $this->checkInit();	
166
-	    return $this->cache->deleteItem($this->getKeyName($value, $mod));
165
+		$this->checkInit();	
166
+		return $this->cache->deleteItem($this->getKeyName($value, $mod));
167 167
 	}
168 168
 	
169 169
 	/**
@@ -174,7 +174,7 @@  discard block
 block discarded – undo
174 174
 	 * @return bool Deletion successful?
175 175
 	 */
176 176
 	public static function delete($value, AbstractModule $mod = null){
177
-	    return self::getInstance()->deleteI($value, $mod);
177
+		return self::getInstance()->deleteI($value, $mod);
178 178
 	}
179 179
 	
180 180
 	/**
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
 	 *
183 183
 	 */
184 184
 	public function cleanI(){
185
-	    $this->checkInit();
185
+		$this->checkInit();
186 186
 		$this->cache->clear();
187 187
 	}
188 188
 	
@@ -190,7 +190,7 @@  discard block
 block discarded – undo
190 190
 	 * Static invocation of the *clean* method.
191 191
 	 */
192 192
 	public static function clean() {
193
-	    self::getInstance()->cleanI();
193
+		self::getInstance()->cleanI();
194 194
 	}
195 195
 	
196 196
 }
197 197
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -20,13 +20,13 @@  discard block
 block discarded – undo
20 20
 /**
21 21
  * Cache component to speed up some potential data retrievals
22 22
  */
23
-class Cache{
23
+class Cache {
24 24
 	
25 25
     /**
26 26
      * Underlying Cache object
27 27
      * @var CacheItemPoolInterface $cache
28 28
      */
29
-	protected $cache=null;
29
+	protected $cache = null;
30 30
 	
31 31
 	/**
32 32
 	 * Defines whether the cache has been initialised
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
 	 *
60 60
 	 */
61 61
 	protected function init() {		
62
-	    if(Apc::isAvailable()) {
62
+	    if (Apc::isAvailable()) {
63 63
 		    $driver = new Apc();
64 64
 		} else {
65 65
 			if (!is_dir(WT_DATA_DIR.DIRECTORY_SEPARATOR.'cache')) {
@@ -83,8 +83,8 @@  discard block
 block discarded – undo
83 83
 	 * Initiliase the Cache if not done.
84 84
 	 *
85 85
 	 */
86
-	protected function checkInit(){
87
-		if(!$this->is_init) $this->init();
86
+	protected function checkInit() {
87
+		if (!$this->is_init) $this->init();
88 88
 	}
89 89
 	
90 90
 	/**
@@ -94,10 +94,10 @@  discard block
 block discarded – undo
94 94
 	 * @param AbstractModule $mod Calling module
95 95
 	 * @return string Cached key name
96 96
 	 */
97
-	protected function getKeyName($value, AbstractModule $mod = null){
97
+	protected function getKeyName($value, AbstractModule $mod = null) {
98 98
 	    $this->checkInit();
99 99
 		$mod_name = 'myartjaub';
100
-		if($mod !== null) $mod_name = $mod->getName();
100
+		if ($mod !== null) $mod_name = $mod->getName();
101 101
 		return $mod_name.'_'.$value;
102 102
 	}
103 103
 	
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
 	 * @param AbstractModule $mod Calling module
109 109
 	 * @return \Psr\Cache\CacheItemInterface
110 110
 	 */
111
-	public function getI($value, AbstractModule $mod = null){
111
+	public function getI($value, AbstractModule $mod = null) {
112 112
 	    $this->checkInit();
113 113
 		return $this->cache->getItem($this->getKeyName($value, $mod));
114 114
 	}
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
 	 * @param AbstractModule $mod Calling module
121 121
 	 * @return \Psr\Cache\CacheItemInterface
122 122
 	 */
123
-	public static function get($value, AbstractModule $mod = null){
123
+	public static function get($value, AbstractModule $mod = null) {
124 124
 	    return self::getInstance()->getI($value, $mod);
125 125
 	}
126 126
 	
@@ -131,11 +131,11 @@  discard block
 block discarded – undo
131 131
 	 * @param mixed $data Value
132 132
 	 * @param AbstractModule $mod Calling module
133 133
 	 */
134
-	public function saveI($value, $data, AbstractModule $mod = null){
134
+	public function saveI($value, $data, AbstractModule $mod = null) {
135 135
 		$this->checkInit();
136 136
 		
137 137
 		$item = $value;
138
-		if(!($value instanceof CacheItemInterface)) {
138
+		if (!($value instanceof CacheItemInterface)) {
139 139
 		    $item = new \Stash\Item();
140 140
     		$item->setKey($this->getKeyName($value, $mod));
141 141
 		}		
@@ -150,7 +150,7 @@  discard block
 block discarded – undo
150 150
 	 * @param mixed $data Value
151 151
 	 * @param AbstractModule $mod Calling module
152 152
 	 */
153
-	public static function save($value, $data, AbstractModule $mod = null){
153
+	public static function save($value, $data, AbstractModule $mod = null) {
154 154
 	    self::getInstance()->saveI($value, $data, $mod);
155 155
 	}
156 156
 	
@@ -161,7 +161,7 @@  discard block
 block discarded – undo
161 161
 	 * @param AbstractModule $mod Calling module
162 162
 	 * @return bool Deletion successful?
163 163
 	 */
164
-	public function deleteI($value, AbstractModule $mod = null){
164
+	public function deleteI($value, AbstractModule $mod = null) {
165 165
 	    $this->checkInit();	
166 166
 	    return $this->cache->deleteItem($this->getKeyName($value, $mod));
167 167
 	}
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
 	 * @param AbstractModule $mod Calling module
174 174
 	 * @return bool Deletion successful?
175 175
 	 */
176
-	public static function delete($value, AbstractModule $mod = null){
176
+	public static function delete($value, AbstractModule $mod = null) {
177 177
 	    return self::getInstance()->deleteI($value, $mod);
178 178
 	}
179 179
 	
@@ -181,7 +181,7 @@  discard block
 block discarded – undo
181 181
 	 * Clean the cache
182 182
 	 *
183 183
 	 */
184
-	public function cleanI(){
184
+	public function cleanI() {
185 185
 	    $this->checkInit();
186 186
 		$this->cache->clear();
187 187
 	}
Please login to merge, or discard this patch.
src/Webtrees/Controller/JsonController.php 1 patch
Indentation   +41 added lines, -41 removed lines patch added patch discarded remove patch
@@ -18,50 +18,50 @@
 block discarded – undo
18 18
  */
19 19
 class JsonController extends BaseController {
20 20
     
21
-    /**
22
-     * {@inheritDoc}
23
-     * @see \Fisharebest\Webtrees\Controller\BaseController::pageHeader()
24
-     */
25
-    public function pageHeader() {        
26
-        header('Content-Type: application/json');
27
-        header('Cache-Control: no-cache, must-revalidate');
28
-        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
29
-        // We've displayed the header - display the footer automatically
30
-        register_shutdown_function(array($this, 'pageFooter'));
21
+	/**
22
+	 * {@inheritDoc}
23
+	 * @see \Fisharebest\Webtrees\Controller\BaseController::pageHeader()
24
+	 */
25
+	public function pageHeader() {        
26
+		header('Content-Type: application/json');
27
+		header('Cache-Control: no-cache, must-revalidate');
28
+		header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
29
+		// We've displayed the header - display the footer automatically
30
+		register_shutdown_function(array($this, 'pageFooter'));
31 31
         
32
-        return $this;
33
-    }
32
+		return $this;
33
+	}
34 34
     
35
-    /**
36
-     * {@inheritDoc}
37
-     * @see \Fisharebest\Webtrees\Controller\BaseController::pageFooter()
38
-     */
39
-    public function pageFooter() {
40
-        return $this;
41
-    }
35
+	/**
36
+	 * {@inheritDoc}
37
+	 * @see \Fisharebest\Webtrees\Controller\BaseController::pageFooter()
38
+	 */
39
+	public function pageFooter() {
40
+		return $this;
41
+	}
42 42
     
43
-    /**
44
-     * Restrict access.
45
-     *
46
-     * @param bool $condition
47
-     *
48
-     * @return $this
49
-     */
50
-    public function restrictAccess($condition) {
51
-        if ($condition !== true) {
52
-            throw new MvcException(403);
53
-        }
43
+	/**
44
+	 * Restrict access.
45
+	 *
46
+	 * @param bool $condition
47
+	 *
48
+	 * @return $this
49
+	 */
50
+	public function restrictAccess($condition) {
51
+		if ($condition !== true) {
52
+			throw new MvcException(403);
53
+		}
54 54
     
55
-        return $this;
56
-    }
55
+		return $this;
56
+	}
57 57
     
58
-    /**
59
-     * Encode the data to JSON format.
60
-     * 
61
-     * @param array $data Data to encode
62
-     * @param number $options JSON options mask. See http://php.net/manual/fr/json.constants.php
63
-     */
64
-    public function encode(array $data, $options = 0) {
65
-        echo json_encode($data, $options);
66
-    }
58
+	/**
59
+	 * Encode the data to JSON format.
60
+	 * 
61
+	 * @param array $data Data to encode
62
+	 * @param number $options JSON options mask. See http://php.net/manual/fr/json.constants.php
63
+	 */
64
+	public function encode(array $data, $options = 0) {
65
+		echo json_encode($data, $options);
66
+	}
67 67
 }
Please login to merge, or discard this patch.
src/Webtrees/Module/WelcomeBlock/PiwikController.php 3 patches
Braces   +3 added lines, -1 removed lines patch added patch discarded remove patch
@@ -50,7 +50,9 @@
 block discarded – undo
50 50
         
51 51
             if($fetched = File::fetchUrl($url)) {
52 52
                 $content = @unserialize($fetched);
53
-                if(is_numeric($content)) return $content;
53
+                if(is_numeric($content)) {
54
+                	return $content;
55
+                }
54 56
             }
55 57
         }
56 58
     
Please login to merge, or discard this patch.
Indentation   +60 added lines, -60 removed lines patch added patch discarded remove patch
@@ -23,77 +23,77 @@
 block discarded – undo
23 23
  */
24 24
 class PiwikController extends MvcController
25 25
 {   
26
-    /**
27
-     * Retrieve the number of visitors from Piwik, for a given period.
28
-     * 
29
-     * @param string $block_id
30
-     * @param string $period
31
-     * @param (null|int) Number of visits
32
-     */
33
-    private function getNumberOfVisitsPiwik($block_id, $period='year'){
26
+	/**
27
+	 * Retrieve the number of visitors from Piwik, for a given period.
28
+	 * 
29
+	 * @param string $block_id
30
+	 * @param string $period
31
+	 * @param (null|int) Number of visits
32
+	 */
33
+	private function getNumberOfVisitsPiwik($block_id, $period='year'){
34 34
     
35
-        $piwik_url = $this->module->getBlockSetting($block_id, 'piwik_url');
36
-        $piwik_siteid = $this->module->getBlockSetting($block_id, 'piwik_siteid');
37
-        $piwik_token = $this->module->getBlockSetting($block_id, 'piwik_token');
35
+		$piwik_url = $this->module->getBlockSetting($block_id, 'piwik_url');
36
+		$piwik_siteid = $this->module->getBlockSetting($block_id, 'piwik_siteid');
37
+		$piwik_token = $this->module->getBlockSetting($block_id, 'piwik_token');
38 38
     
39
-        if($piwik_url && strlen($piwik_url) > 0 &&
40
-            $piwik_siteid  && strlen($piwik_siteid) > 0 &&
41
-            $piwik_token && strlen($piwik_token)            
42
-            ) 
43
-        {        
44
-            // calling Piwik REST API
45
-            $url = $piwik_url;
46
-            $url .= '?module=API&method=VisitsSummary.getVisits';
47
-            $url .= '&idSite='.$piwik_siteid.'&period='.$period.'&date=today';
48
-            $url .= '&format=PHP';
49
-            $url .= '&token_auth='.$piwik_token;
39
+		if($piwik_url && strlen($piwik_url) > 0 &&
40
+			$piwik_siteid  && strlen($piwik_siteid) > 0 &&
41
+			$piwik_token && strlen($piwik_token)            
42
+			) 
43
+		{        
44
+			// calling Piwik REST API
45
+			$url = $piwik_url;
46
+			$url .= '?module=API&method=VisitsSummary.getVisits';
47
+			$url .= '&idSite='.$piwik_siteid.'&period='.$period.'&date=today';
48
+			$url .= '&format=PHP';
49
+			$url .= '&token_auth='.$piwik_token;
50 50
         
51
-            if($fetched = File::fetchUrl($url)) {
52
-                $content = @unserialize($fetched);
53
-                if(is_numeric($content)) return $content;
54
-            }
55
-        }
51
+			if($fetched = File::fetchUrl($url)) {
52
+				$content = @unserialize($fetched);
53
+				if(is_numeric($content)) return $content;
54
+			}
55
+		}
56 56
     
57
-        return null;
58
-    }
57
+		return null;
58
+	}
59 59
     
60
-    /**
61
-     * Pages
62
-     */
60
+	/**
61
+	 * Pages
62
+	 */
63 63
         
64
-    /**
65
-     * Piwik@index
66
-     */
67
-    public function index() {  
64
+	/**
65
+	 * Piwik@index
66
+	 */
67
+	public function index() {  
68 68
         
69
-        $ctrl = new AjaxController();
69
+		$ctrl = new AjaxController();
70 70
         
71
-        $data = new ViewBag();
72
-        $data->set('has_stats', false);
71
+		$data = new ViewBag();
72
+		$data->set('has_stats', false);
73 73
         
74
-        $block_id = Filter::get('block_id');        
75
-        if($block_id){
76
-            $cached_item = Cache::get('piwikCountYear', $this->module);
77
-            $visitCountYear = $cached_item->get();
78
-            if(!$cached_item->isHit()) {
79
-                $visitCountYear = $this->getNumberOfVisitsPiwik($block_id);
80
-                if(!is_null($visitCountYear)) {
81
-                    $cached_item->expiresAt(new \DateTime('tomorrow'));  // Expires the next day at midnight
82
-                    Cache::save($cached_item, $visitCountYear);
83
-                }
84
-            }
74
+		$block_id = Filter::get('block_id');        
75
+		if($block_id){
76
+			$cached_item = Cache::get('piwikCountYear', $this->module);
77
+			$visitCountYear = $cached_item->get();
78
+			if(!$cached_item->isHit()) {
79
+				$visitCountYear = $this->getNumberOfVisitsPiwik($block_id);
80
+				if(!is_null($visitCountYear)) {
81
+					$cached_item->expiresAt(new \DateTime('tomorrow'));  // Expires the next day at midnight
82
+					Cache::save($cached_item, $visitCountYear);
83
+				}
84
+			}
85 85
             
86
-            if($visitCountYear){
87
-                $visitCountToday = max(0, $this->getNumberOfVisitsPiwik($block_id, 'day'));
88
-                $visitCountYear = max( 0, $visitCountYear);
86
+			if($visitCountYear){
87
+				$visitCountToday = max(0, $this->getNumberOfVisitsPiwik($block_id, 'day'));
88
+				$visitCountYear = max( 0, $visitCountYear);
89 89
                 
90
-                $data->set('has_stats', true);
91
-                $data->set('visits_today', $visitCountToday);
92
-                $data->set('visits_year', $visitCountYear + $visitCountToday);                
93
-            }
94
-        }
90
+				$data->set('has_stats', true);
91
+				$data->set('visits_today', $visitCountToday);
92
+				$data->set('visits_year', $visitCountYear + $visitCountToday);                
93
+			}
94
+		}
95 95
         
96
-        ViewFactory::make('PiwikStats', $this, $ctrl, $data)->render();        
97
-    }
96
+		ViewFactory::make('PiwikStats', $this, $ctrl, $data)->render();        
97
+	}
98 98
     
99 99
 }
100 100
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -30,14 +30,14 @@  discard block
 block discarded – undo
30 30
      * @param string $period
31 31
      * @param (null|int) Number of visits
32 32
      */
33
-    private function getNumberOfVisitsPiwik($block_id, $period='year'){
33
+    private function getNumberOfVisitsPiwik($block_id, $period = 'year') {
34 34
     
35 35
         $piwik_url = $this->module->getBlockSetting($block_id, 'piwik_url');
36 36
         $piwik_siteid = $this->module->getBlockSetting($block_id, 'piwik_siteid');
37 37
         $piwik_token = $this->module->getBlockSetting($block_id, 'piwik_token');
38 38
     
39
-        if($piwik_url && strlen($piwik_url) > 0 &&
40
-            $piwik_siteid  && strlen($piwik_siteid) > 0 &&
39
+        if ($piwik_url && strlen($piwik_url) > 0 &&
40
+            $piwik_siteid && strlen($piwik_siteid) > 0 &&
41 41
             $piwik_token && strlen($piwik_token)            
42 42
             ) 
43 43
         {        
@@ -48,9 +48,9 @@  discard block
 block discarded – undo
48 48
             $url .= '&format=PHP';
49 49
             $url .= '&token_auth='.$piwik_token;
50 50
         
51
-            if($fetched = File::fetchUrl($url)) {
51
+            if ($fetched = File::fetchUrl($url)) {
52 52
                 $content = @unserialize($fetched);
53
-                if(is_numeric($content)) return $content;
53
+                if (is_numeric($content)) return $content;
54 54
             }
55 55
         }
56 56
     
@@ -72,20 +72,20 @@  discard block
 block discarded – undo
72 72
         $data->set('has_stats', false);
73 73
         
74 74
         $block_id = Filter::get('block_id');        
75
-        if($block_id){
75
+        if ($block_id) {
76 76
             $cached_item = Cache::get('piwikCountYear', $this->module);
77 77
             $visitCountYear = $cached_item->get();
78
-            if(!$cached_item->isHit()) {
78
+            if (!$cached_item->isHit()) {
79 79
                 $visitCountYear = $this->getNumberOfVisitsPiwik($block_id);
80
-                if(!is_null($visitCountYear)) {
81
-                    $cached_item->expiresAt(new \DateTime('tomorrow'));  // Expires the next day at midnight
80
+                if (!is_null($visitCountYear)) {
81
+                    $cached_item->expiresAt(new \DateTime('tomorrow')); // Expires the next day at midnight
82 82
                     Cache::save($cached_item, $visitCountYear);
83 83
                 }
84 84
             }
85 85
             
86
-            if($visitCountYear){
86
+            if ($visitCountYear) {
87 87
                 $visitCountToday = max(0, $this->getNumberOfVisitsPiwik($block_id, 'day'));
88
-                $visitCountYear = max( 0, $visitCountYear);
88
+                $visitCountYear = max(0, $visitCountYear);
89 89
                 
90 90
                 $data->set('has_stats', true);
91 91
                 $data->set('visits_today', $visitCountToday);
Please login to merge, or discard this patch.
src/Webtrees/Functions/FunctionsPrintLists.php 2 patches
Indentation   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -17,27 +17,27 @@
 block discarded – undo
17 17
  */
18 18
 class FunctionsPrintLists {
19 19
     
20
-    /**
21
-     * Copy of core function, which is not public.
22
-     *
23
-     * @param Individual $individual
24
-     *
25
-     * @return string[]
26
-     * @see \Fisharebest\Webtrees\Functions\FunctionsPrintLists
27
-     */
28
-    public static function sortableNames(Individual $individual) {
29
-        $names   = $individual->getAllNames();
30
-        $primary = $individual->getPrimaryName();
20
+	/**
21
+	 * Copy of core function, which is not public.
22
+	 *
23
+	 * @param Individual $individual
24
+	 *
25
+	 * @return string[]
26
+	 * @see \Fisharebest\Webtrees\Functions\FunctionsPrintLists
27
+	 */
28
+	public static function sortableNames(Individual $individual) {
29
+		$names   = $individual->getAllNames();
30
+		$primary = $individual->getPrimaryName();
31 31
 
32
-        list($surn, $givn) = explode(',', $names[$primary]['sort']);
32
+		list($surn, $givn) = explode(',', $names[$primary]['sort']);
33 33
 
34
-        $givn = str_replace('@P.N.', 'AAAA', $givn);
35
-        $surn = str_replace('@N.N.', 'AAAA', $surn);
34
+		$givn = str_replace('@P.N.', 'AAAA', $givn);
35
+		$surn = str_replace('@N.N.', 'AAAA', $surn);
36 36
 
37
-        return array(
38
-            $surn . 'AAAA' . $givn,
39
-            $givn . 'AAAA' . $surn,
40
-        );
41
-    }
37
+		return array(
38
+			$surn . 'AAAA' . $givn,
39
+			$givn . 'AAAA' . $surn,
40
+		);
41
+	}
42 42
 
43 43
 }
44 44
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -35,8 +35,8 @@
 block discarded – undo
35 35
         $surn = str_replace('@N.N.', 'AAAA', $surn);
36 36
 
37 37
         return array(
38
-            $surn . 'AAAA' . $givn,
39
-            $givn . 'AAAA' . $surn,
38
+            $surn.'AAAA'.$givn,
39
+            $givn.'AAAA'.$surn,
40 40
         );
41 41
     }
42 42
 
Please login to merge, or discard this patch.