Completed
Push — master ( 153c83...604bee )
by Jonathan
03:10
created
src/Webtrees/Module/GeoDispersion/Model/GeoAnalysis.php 1 patch
Indentation   +175 added lines, -175 removed lines patch added patch discarded remove patch
@@ -25,64 +25,64 @@  discard block
 block discarded – undo
25 25
 	 * Geo Analysis ID
26 26
 	 * @var int $id
27 27
 	 */
28
-    protected $id;
28
+	protected $id;
29 29
     
30 30
 	/**
31 31
 	 * Geo Analysis Title
32 32
 	 * @var string $title
33 33
 	 */
34
-    protected $title;
34
+	protected $title;
35 35
     
36 36
 	/**
37 37
 	 * Level of the Gedcom hierarchy for the analysis
38 38
 	 * @var int $analysis_level
39 39
 	 */
40
-    protected $analysis_level;
40
+	protected $analysis_level;
41 41
     
42
-    /**
43
-     * Display options
44
-     * @var GeoDisplayOptions $options
45
-     */
46
-    protected $options;
42
+	/**
43
+	 * Display options
44
+	 * @var GeoDisplayOptions $options
45
+	 */
46
+	protected $options;
47 47
     
48
-    /**
49
-     * Reference tree
50
-     * @var Tree $tree
51
-     */
52
-    protected $tree;
48
+	/**
49
+	 * Reference tree
50
+	 * @var Tree $tree
51
+	 */
52
+	protected $tree;
53 53
     
54
-    /**
55
-     * Is the analysis enabled
56
-     * @var bool $enabled
57
-     */
58
-    protected $enabled;
54
+	/**
55
+	 * Is the analysis enabled
56
+	 * @var bool $enabled
57
+	 */
58
+	protected $enabled;
59 59
     
60
-    /**
61
-     * Constructor for GeoAnalysis.
62
-     *
63
-     * @param Tree $tree Reference tree
60
+	/**
61
+	 * Constructor for GeoAnalysis.
62
+	 *
63
+	 * @param Tree $tree Reference tree
64 64
 	 * @param int $id GeoAnalysis ID
65 65
 	 * @param string $title GeoAnalysis title
66 66
 	 * @param int $analysis_level Analysis level
67 67
 	 * @param (GeoDisplayOptions|null) $options Display options
68 68
 	 * @param bool $enabled Is analysis enabled
69
-     */
70
-    public function __construct(Tree $tree, $id, $title, $analysis_level, GeoDisplayOptions $options = null, $enabled = true) {
71
-        $this->tree = $tree;
72
-        $this->id = $id;
73
-        $this->title = $title;
74
-        $this->analysis_level = $analysis_level;
75
-        $this->options = $options;
76
-        $this->enabled = $enabled;
77
-    }
69
+	 */
70
+	public function __construct(Tree $tree, $id, $title, $analysis_level, GeoDisplayOptions $options = null, $enabled = true) {
71
+		$this->tree = $tree;
72
+		$this->id = $id;
73
+		$this->title = $title;
74
+		$this->analysis_level = $analysis_level;
75
+		$this->options = $options;
76
+		$this->enabled = $enabled;
77
+	}
78 78
     
79 79
 	/**
80 80
 	 * Get the analysis title
81 81
 	 * @return string
82 82
 	 */
83
-    public function getTitle() {
84
-        return $this->title;
85
-    }
83
+	public function getTitle() {
84
+		return $this->title;
85
+	}
86 86
     
87 87
 	/**
88 88
 	 * Set the analysis title
@@ -90,53 +90,53 @@  discard block
 block discarded – undo
90 90
 	 * @param string $title
91 91
 	 * @return self Enable method-chaining
92 92
 	 */
93
-    public function setTitle($title) {
94
-        $this->title = $title;
95
-        return $this;
96
-    }
93
+	public function setTitle($title) {
94
+		$this->title = $title;
95
+		return $this;
96
+	}
97 97
     
98 98
 	/**
99 99
 	 * Get the analysis ID
100 100
 	 * @return int
101 101
 	 */
102
-    public function getId() {
103
-        return $this->id;
104
-    }
102
+	public function getId() {
103
+		return $this->id;
104
+	}
105 105
     
106 106
 	/**
107 107
 	 * Get the analysis status (enabled/disabled)
108 108
 	 * @return bool
109 109
 	 */
110
-    public function isEnabled() {
111
-        return $this->enabled;
112
-    }
110
+	public function isEnabled() {
111
+		return $this->enabled;
112
+	}
113 113
     
114
-    /**
115
-     * Get analysis options
116
-     * @return \MyArtJaub\Webtrees\Module\GeoDispersion\Model\GeoDisplayOptions
117
-     */
118
-    public function getOptions() {
119
-        return $this->options;
120
-    }
114
+	/**
115
+	 * Get analysis options
116
+	 * @return \MyArtJaub\Webtrees\Module\GeoDispersion\Model\GeoDisplayOptions
117
+	 */
118
+	public function getOptions() {
119
+		return $this->options;
120
+	}
121 121
     
122 122
 	/**
123
-     * Set analysis options
123
+	 * Set analysis options
124 124
 	 *
125
-     * @param \MyArtJaub\Webtrees\Module\GeoDispersion\Model\GeoDisplayOptions $options
125
+	 * @param \MyArtJaub\Webtrees\Module\GeoDispersion\Model\GeoDisplayOptions $options
126 126
 	 * @return self Enable method-chaining
127
-     */
128
-    public function setOptions(GeoDisplayOptions $options) {
129
-        $this->options = $options;
130
-        return $this;
131
-    }
127
+	 */
128
+	public function setOptions(GeoDisplayOptions $options) {
129
+		$this->options = $options;
130
+		return $this;
131
+	}
132 132
     
133 133
 	/**
134 134
 	 * Get analysis level
135 135
 	 * @return int
136 136
 	 */
137
-    public function getAnalysisLevel() {
138
-        return $this->analysis_level;
139
-    }
137
+	public function getAnalysisLevel() {
138
+		return $this->analysis_level;
139
+	}
140 140
     
141 141
 	/**
142 142
 	 * Get analysis level
@@ -144,19 +144,19 @@  discard block
 block discarded – undo
144 144
 	 * @param int $analysis_level
145 145
 	 * @return self Enable method-chaining
146 146
 	 */
147
-    public function setAnalysisLevel($analysis_level) {
148
-        $this->analysis_level = $analysis_level;
149
-        return $this;
150
-    }
147
+	public function setAnalysisLevel($analysis_level) {
148
+		$this->analysis_level = $analysis_level;
149
+		return $this;
150
+	}
151 151
     
152 152
 	/**
153 153
 	 * Check whether the analysis has a linked map
154 154
 	 *
155 155
 	 * @return bool
156 156
 	 */
157
-    public function hasMap() {
158
-        return $this->options && $this->options->getMap();
159
-    }
157
+	public function hasMap() {
158
+		return $this->options && $this->options->getMap();
159
+	}
160 160
     
161 161
 	/**
162 162
 	 * Get the URL for the GeoAnalysis.
@@ -164,117 +164,117 @@  discard block
 block discarded – undo
164 164
 	 * @return string
165 165
 	 */
166 166
 	 public function getHtmlUrl() {
167
-        return 'module.php?mod='. Constants::MODULE_MAJ_GEODISP_NAME . '&mod_action=GeoAnalysis&ga_id=' . $this->getId() . '&ged=' . $this->tree->getNameUrl();
168
-    }
167
+		return 'module.php?mod='. Constants::MODULE_MAJ_GEODISP_NAME . '&mod_action=GeoAnalysis&ga_id=' . $this->getId() . '&ged=' . $this->tree->getNameUrl();
168
+	}
169 169
     
170
-    /**
171
-     * Return the dispersion analysis tables.
172
-     * Two arrays are returned :
173
-     * 	- the General analysis, which returns the number of ancestors for each place found, plus 4 additional indicators :
174
-     * 		- knownsum : Number of known places
175
-     * 		- unknown : Number of unknown places
176
-     * 		- max : Maximum count of ancestors within a place
177
-     * 		- other : Other places (not in the top level area)
178
-     * - the Generations analysis, which returns the number of ancestors for each place found for each generation, plus 3 additional indicators within each generation :
179
-     * 		- sum : Number of known places
180
-     * 		- unknown : Number of unknown places
181
-     * 		- other : Other places (not in the top level area)
182
-     *
183
-     * @param array $sosalist List of all sosas
184
-     * @return array Array of the general and generations table
185
-     */
186
-    public function getAnalysisResults($sosalist) {
187
-        $placesDispGeneral = null;
188
-        $placesDispGenerations = null;
170
+	/**
171
+	 * Return the dispersion analysis tables.
172
+	 * Two arrays are returned :
173
+	 * 	- the General analysis, which returns the number of ancestors for each place found, plus 4 additional indicators :
174
+	 * 		- knownsum : Number of known places
175
+	 * 		- unknown : Number of unknown places
176
+	 * 		- max : Maximum count of ancestors within a place
177
+	 * 		- other : Other places (not in the top level area)
178
+	 * - the Generations analysis, which returns the number of ancestors for each place found for each generation, plus 3 additional indicators within each generation :
179
+	 * 		- sum : Number of known places
180
+	 * 		- unknown : Number of unknown places
181
+	 * 		- other : Other places (not in the top level area)
182
+	 *
183
+	 * @param array $sosalist List of all sosas
184
+	 * @return array Array of the general and generations table
185
+	 */
186
+	public function getAnalysisResults($sosalist) {
187
+		$placesDispGeneral = null;
188
+		$placesDispGenerations = null;
189 189
         
190
-        if($sosalist && count($sosalist) > 0) {
191
-            $placesDispGeneral['knownsum'] = 0;
192
-            $placesDispGeneral['unknown'] = 0;
193
-            $placesDispGeneral['max'] = 0;
194
-            $placesDispGeneral['places'] = array();
195
-            foreach($sosalist as $sosaid => $gens) {
196
-                $sosa = Individual::getIntance($sosaid, $this->tree);
197
-                $place =$sosa->getSignificantPlace();
198
-                $genstab = explode(',', $gens);
199
-                $isUnknown=true;
200
-                if($sosa->getDerivedRecord()->canShow() && !is_null($place)){
201
-                    $levels = array_reverse(array_map('trim',explode(',', $place)));
202
-                    if(count($levels)>= $this->analysis_level){                        
203
-                        $toplevelvalues = array();
204
-                        if($this->hasMap() && $toplevelvalue = $this->options->getMap()->getTopLevelName()) {
205
-                            $toplevelvalues = array_map('trim',explode(',', strtolower($toplevelvalue)));
206
-                        }
207
-                        if(!$this->hasMap() 
208
-                            || is_null($this->options->getMapLevel()) 
209
-                            || $this->options->getMap()->getTopLevelName() == '*' 
210
-                            || (
211
-                                $this->options->getMapLevel() <= $this->analysis_level 
212
-                                && $this->options->getMapLevel() > 0
213
-                                && count($levels) >= $this->options->getMapLevel()
214
-                                && in_array(strtolower($levels[$this->options->getMapLevel()-1]), $toplevelvalues)
215
-                            )
216
-                        ) {
217
-                            $placest = implode(I18N::$list_separator, array_slice($levels, 0, $this->analysis_level));
218
-                            if(isset($placesDispGeneral['places'][$placest])) {
219
-                                $placesDispGeneral['places'][$placest] += 1;
220
-                            }
221
-                            else { 
222
-                                $placesDispGeneral['places'][$placest] = 1;
223
-                            }
224
-                            if($placesDispGeneral['places'][$placest]>$placesDispGeneral['max'])
225
-                                $placesDispGeneral['max'] = $placesDispGeneral['places'][$placest];
226
-                            foreach($genstab as $gen) {
227
-                                if(isset($placesDispGenerations[$gen]['places'][$placest])) {
228
-                                    $placesDispGenerations[$gen]['places'][$placest] += 1;
229
-                                }
230
-                                else { 
231
-                                    $placesDispGenerations[$gen]['places'][$placest] = 1;
232
-                                }
233
-                                if(isset($placesDispGenerations[$gen]['sum'])) {
234
-                                    $placesDispGenerations[$gen]['sum'] += 1;
235
-                                }
236
-                                else { 
237
-                                    $placesDispGenerations[$gen]['sum'] = 1;
238
-                                }
239
-                            }
240
-                        }
241
-                        else{
242
-                            if(isset($placesDispGeneral['other'])) {
243
-                                $placesDispGeneral['other'] += 1;
244
-                            }
245
-                            else { 
246
-                                $placesDispGeneral['other'] = 1;
247
-                            }
248
-                            foreach($genstab as $gen) {
249
-                                if(isset($placesDispGenerations[$gen]['other'])) {
250
-                                    $placesDispGenerations[$gen]['other'] += 1;
251
-                                }
252
-                                else { 
253
-                                    $placesDispGenerations[$gen]['other'] = 1;
254
-                                }
255
-                            }
256
-                        }
257
-                        $placesDispGeneral['knownsum'] += 1;
258
-                        $isUnknown = false;
259
-                    }
260
-                }
261
-                if($isUnknown){
262
-                    $placesDispGeneral['unknown'] += 1;
263
-                    foreach($genstab as $gen) {
264
-                        if(isset($placesDispGenerations[$gen]['unknown'])) { 
265
-                            $placesDispGenerations[$gen]['unknown'] += 1;
266
-                        }
267
-                        else { 
268
-                            $placesDispGenerations[$gen]['unknown'] = 1; 
269
-                        }
270
-                    }
271
-                }
272
-            }
190
+		if($sosalist && count($sosalist) > 0) {
191
+			$placesDispGeneral['knownsum'] = 0;
192
+			$placesDispGeneral['unknown'] = 0;
193
+			$placesDispGeneral['max'] = 0;
194
+			$placesDispGeneral['places'] = array();
195
+			foreach($sosalist as $sosaid => $gens) {
196
+				$sosa = Individual::getIntance($sosaid, $this->tree);
197
+				$place =$sosa->getSignificantPlace();
198
+				$genstab = explode(',', $gens);
199
+				$isUnknown=true;
200
+				if($sosa->getDerivedRecord()->canShow() && !is_null($place)){
201
+					$levels = array_reverse(array_map('trim',explode(',', $place)));
202
+					if(count($levels)>= $this->analysis_level){                        
203
+						$toplevelvalues = array();
204
+						if($this->hasMap() && $toplevelvalue = $this->options->getMap()->getTopLevelName()) {
205
+							$toplevelvalues = array_map('trim',explode(',', strtolower($toplevelvalue)));
206
+						}
207
+						if(!$this->hasMap() 
208
+							|| is_null($this->options->getMapLevel()) 
209
+							|| $this->options->getMap()->getTopLevelName() == '*' 
210
+							|| (
211
+								$this->options->getMapLevel() <= $this->analysis_level 
212
+								&& $this->options->getMapLevel() > 0
213
+								&& count($levels) >= $this->options->getMapLevel()
214
+								&& in_array(strtolower($levels[$this->options->getMapLevel()-1]), $toplevelvalues)
215
+							)
216
+						) {
217
+							$placest = implode(I18N::$list_separator, array_slice($levels, 0, $this->analysis_level));
218
+							if(isset($placesDispGeneral['places'][$placest])) {
219
+								$placesDispGeneral['places'][$placest] += 1;
220
+							}
221
+							else { 
222
+								$placesDispGeneral['places'][$placest] = 1;
223
+							}
224
+							if($placesDispGeneral['places'][$placest]>$placesDispGeneral['max'])
225
+								$placesDispGeneral['max'] = $placesDispGeneral['places'][$placest];
226
+							foreach($genstab as $gen) {
227
+								if(isset($placesDispGenerations[$gen]['places'][$placest])) {
228
+									$placesDispGenerations[$gen]['places'][$placest] += 1;
229
+								}
230
+								else { 
231
+									$placesDispGenerations[$gen]['places'][$placest] = 1;
232
+								}
233
+								if(isset($placesDispGenerations[$gen]['sum'])) {
234
+									$placesDispGenerations[$gen]['sum'] += 1;
235
+								}
236
+								else { 
237
+									$placesDispGenerations[$gen]['sum'] = 1;
238
+								}
239
+							}
240
+						}
241
+						else{
242
+							if(isset($placesDispGeneral['other'])) {
243
+								$placesDispGeneral['other'] += 1;
244
+							}
245
+							else { 
246
+								$placesDispGeneral['other'] = 1;
247
+							}
248
+							foreach($genstab as $gen) {
249
+								if(isset($placesDispGenerations[$gen]['other'])) {
250
+									$placesDispGenerations[$gen]['other'] += 1;
251
+								}
252
+								else { 
253
+									$placesDispGenerations[$gen]['other'] = 1;
254
+								}
255
+							}
256
+						}
257
+						$placesDispGeneral['knownsum'] += 1;
258
+						$isUnknown = false;
259
+					}
260
+				}
261
+				if($isUnknown){
262
+					$placesDispGeneral['unknown'] += 1;
263
+					foreach($genstab as $gen) {
264
+						if(isset($placesDispGenerations[$gen]['unknown'])) { 
265
+							$placesDispGenerations[$gen]['unknown'] += 1;
266
+						}
267
+						else { 
268
+							$placesDispGenerations[$gen]['unknown'] = 1; 
269
+						}
270
+					}
271
+				}
272
+			}
273 273
            
274
-        }        
274
+		}        
275 275
         
276
-        return array($placesDispGeneral, $placesDispGenerations);        
277
-    }
276
+		return array($placesDispGeneral, $placesDispGenerations);        
277
+	}
278 278
     
279 279
                    
280 280
 }
Please login to merge, or discard this patch.
src/Webtrees/Module/GeoDispersion/Model/OutlineMap.php 1 patch
Indentation   +124 added lines, -124 removed lines patch added patch discarded remove patch
@@ -21,175 +21,175 @@
 block discarded – undo
21 21
 	 * Name of the file containing the description of the map.
22 22
 	 * @var string $filename
23 23
 	 */
24
-    protected $filename;
24
+	protected $filename;
25 25
     
26 26
 	/**
27 27
 	 * Indicates whether the description has been loaded from the file.
28 28
 	 * @var bool $is_loaded
29 29
 	 */
30
-    protected $is_loaded;
30
+	protected $is_loaded;
31 31
     
32 32
 	/**
33 33
 	 * Description/title of the map.
34 34
 	 * @var string $description
35 35
 	 */
36
-    protected $description;
36
+	protected $description;
37 37
     
38 38
 	/**
39 39
 	 * Name(s) of the parent level(s) of the map.
40 40
 	 * @var string $is_loaded
41 41
 	 */
42
-    protected $top_level_name;
42
+	protected $top_level_name;
43 43
     
44
-    /**
45
-     * Map canvas
46
-     * @var OutlineMapCanvas $canvas
47
-     */
48
-    protected $canvas;
44
+	/**
45
+	 * Map canvas
46
+	 * @var OutlineMapCanvas $canvas
47
+	 */
48
+	protected $canvas;
49 49
     
50
-    /**
51
-     * Map subdivisions
52
-     * @var array $subdivisions
53
-     */
54
-    protected $subdivisions;
50
+	/**
51
+	 * Map subdivisions
52
+	 * @var array $subdivisions
53
+	 */
54
+	protected $subdivisions;
55 55
     
56
-    /**
57
-     * Places mappings
58
-     * @var array $subdivisions
59
-     */
60
-    protected $mappings;
56
+	/**
57
+	 * Places mappings
58
+	 * @var array $subdivisions
59
+	 */
60
+	protected $mappings;
61 61
     
62
-    /**
63
-     * Constructor for GeoAnalysisMap.
64
-     *
65
-     * @param string $filename Outline map file name
66
-     * @param bool $load Should the map be loaded immediately
67
-     */
68
-    public function __construct($filename, $load = false) {
69
-        $this->filename = $filename;
70
-        $this->is_loaded = false;
71
-        $this->subdivisions = array();
72
-        $this->mappings = array();
73
-        if($load) $this->load();
74
-    }
62
+	/**
63
+	 * Constructor for GeoAnalysisMap.
64
+	 *
65
+	 * @param string $filename Outline map file name
66
+	 * @param bool $load Should the map be loaded immediately
67
+	 */
68
+	public function __construct($filename, $load = false) {
69
+		$this->filename = $filename;
70
+		$this->is_loaded = false;
71
+		$this->subdivisions = array();
72
+		$this->mappings = array();
73
+		if($load) $this->load();
74
+	}
75 75
     
76
-    /**
77
-     * Load the map settings contained within its XML representation
78
-     *
79
-     * XML structure :
80
-     * 	- displayName : Display name of the map
81
-     * 	- topLevel : Values of the top level subdivisions (separated by commas, if multiple)
82
-     * 	- canvas : all settings related to the map canvas.
83
-     * 		- width : canvas width, in px
84
-     * 		- height : canvas height, in px
85
-     * 		- maxcolor : color to identify places with ancestors, RGB hexadecimal
86
-     * 		- hovercolor : same as previous, color when mouse is hovering the place, RGB hexadecimal
87
-     * 		- bgcolor : map background color, RGB hexadecimal
88
-     * 		- bgstroke : map stroke color, RGB hexadecimal
89
-     * 		- defaultcolor : default color of places, RGB hexadecimal
90
-     * 		- defaultstroke : default stroke color, RGB hexadecimal
91
-     * 	- subdvisions : for each subdivision :
76
+	/**
77
+	 * Load the map settings contained within its XML representation
78
+	 *
79
+	 * XML structure :
80
+	 * 	- displayName : Display name of the map
81
+	 * 	- topLevel : Values of the top level subdivisions (separated by commas, if multiple)
82
+	 * 	- canvas : all settings related to the map canvas.
83
+	 * 		- width : canvas width, in px
84
+	 * 		- height : canvas height, in px
85
+	 * 		- maxcolor : color to identify places with ancestors, RGB hexadecimal
86
+	 * 		- hovercolor : same as previous, color when mouse is hovering the place, RGB hexadecimal
87
+	 * 		- bgcolor : map background color, RGB hexadecimal
88
+	 * 		- bgstroke : map stroke color, RGB hexadecimal
89
+	 * 		- defaultcolor : default color of places, RGB hexadecimal
90
+	 * 		- defaultstroke : default stroke color, RGB hexadecimal
91
+	 * 	- subdvisions : for each subdivision :
92 92
 	 *		- id : Subdivision id, must be compatible with PHP variable constraints, and unique
93
-     * 		- name: Display name for the place
93
+	 * 		- name: Display name for the place
94 94
 	 *		- parent: if any, describe to which parent level the place if belonging to
95
-     * 		- <em>Element value<em> : SVG description of the subdvision shape
95
+	 * 		- <em>Element value<em> : SVG description of the subdvision shape
96 96
 	 *	- mapping : for each subdivision :
97 97
 	 *		- name : Name of the place to map
98
-     * 		- mapto: Name of the place to map to
98
+	 * 		- mapto: Name of the place to map to
99 99
 	 * 
100
-     */
101
-    protected function load() {
102
-        if(file_exists(WT_ROOT.WT_MODULES_DIR.Constants::MODULE_MAJ_GEODISP_NAME.'/maps/'.$this->filename)){
103
-            $xml = simplexml_load_file(WT_ROOT.WT_MODULES_DIR.Constants::MODULE_MAJ_GEODISP_NAME.'/maps/'.$this->filename);
104
-            if($xml){
105
-                $this->description = trim($xml->displayName);
106
-                $this->top_level_name = trim($xml->topLevel);
107
-                $this->canvas = new OutlineMapCanvas(
108
-                    trim($xml->canvas->width),
109
-                    trim($xml->canvas->height), 
110
-                    trim($xml->canvas->maxcolor), 
111
-                    trim($xml->canvas->hovercolor), 
112
-                    trim($xml->canvas->bgcolor),
113
-                    trim($xml->canvas->bgstroke),
114
-                    trim($xml->canvas->defaultcolor), 
115
-                    trim($xml->canvas->defaultstroke)
116
-                );
117
-                foreach($xml->subdivisions->children() as $subdivision){
118
-                    $attributes = $subdivision->attributes();
119
-                    $key = trim($attributes['name']);
120
-                    if(isset($attributes['parent'])) $key .= '@'.trim($attributes['parent']);
121
-                    $this->subdivisions[$key] = array(
122
-                        'id' => trim($attributes['id']),
123
-                        'displayname' => trim($attributes['name']),
124
-                        'coord' => trim($subdivision[0])
125
-                    );
126
-                }
127
-                if(isset($xml->mappings)) {
128
-                    foreach($xml->mappings->children() as $mappings){
129
-                        $attributes = $mappings->attributes();
130
-                        $this->mappings[trim($attributes['name'])] = trim($attributes['mapto']);
131
-                    }
132
-                }
133
-                $this->is_loaded = true;
134
-                return;
135
-            }
136
-        }        
137
-        throw new \Exception('The Outline Map could not be loaded from XML.');
138
-    }
100
+	 */
101
+	protected function load() {
102
+		if(file_exists(WT_ROOT.WT_MODULES_DIR.Constants::MODULE_MAJ_GEODISP_NAME.'/maps/'.$this->filename)){
103
+			$xml = simplexml_load_file(WT_ROOT.WT_MODULES_DIR.Constants::MODULE_MAJ_GEODISP_NAME.'/maps/'.$this->filename);
104
+			if($xml){
105
+				$this->description = trim($xml->displayName);
106
+				$this->top_level_name = trim($xml->topLevel);
107
+				$this->canvas = new OutlineMapCanvas(
108
+					trim($xml->canvas->width),
109
+					trim($xml->canvas->height), 
110
+					trim($xml->canvas->maxcolor), 
111
+					trim($xml->canvas->hovercolor), 
112
+					trim($xml->canvas->bgcolor),
113
+					trim($xml->canvas->bgstroke),
114
+					trim($xml->canvas->defaultcolor), 
115
+					trim($xml->canvas->defaultstroke)
116
+				);
117
+				foreach($xml->subdivisions->children() as $subdivision){
118
+					$attributes = $subdivision->attributes();
119
+					$key = trim($attributes['name']);
120
+					if(isset($attributes['parent'])) $key .= '@'.trim($attributes['parent']);
121
+					$this->subdivisions[$key] = array(
122
+						'id' => trim($attributes['id']),
123
+						'displayname' => trim($attributes['name']),
124
+						'coord' => trim($subdivision[0])
125
+					);
126
+				}
127
+				if(isset($xml->mappings)) {
128
+					foreach($xml->mappings->children() as $mappings){
129
+						$attributes = $mappings->attributes();
130
+						$this->mappings[trim($attributes['name'])] = trim($attributes['mapto']);
131
+					}
132
+				}
133
+				$this->is_loaded = true;
134
+				return;
135
+			}
136
+		}        
137
+		throw new \Exception('The Outline Map could not be loaded from XML.');
138
+	}
139 139
     
140 140
 	/**
141 141
 	 * Get the map file name.
142 142
 	 * @return string
143 143
 	 */
144
-    public function getFileName() {
145
-        if(!$this->is_loaded) $this->load();
146
-        return $this->filename;
147
-    }
144
+	public function getFileName() {
145
+		if(!$this->is_loaded) $this->load();
146
+		return $this->filename;
147
+	}
148 148
     
149 149
 	/**
150 150
 	 * Get the map file name.
151 151
 	 * @return string
152 152
 	 */
153
-    public function getDescription() {
154
-        if(!$this->is_loaded) $this->load();
155
-        return $this->description;
156
-    }
153
+	public function getDescription() {
154
+		if(!$this->is_loaded) $this->load();
155
+		return $this->description;
156
+	}
157 157
     
158 158
 	/**
159 159
 	 * Get the name of the map parent level. 
160 160
 	 * @return string
161 161
 	 */
162
-    public function getTopLevelName() {
163
-        if(!$this->is_loaded) $this->load();
164
-        return $this->top_level_name;
165
-    }    
162
+	public function getTopLevelName() {
163
+		if(!$this->is_loaded) $this->load();
164
+		return $this->top_level_name;
165
+	}    
166 166
     
167
-    /**
168
-     * Get the Outline Map canvas.
169
-     * @return \MyArtJaub\Webtrees\Module\GeoDispersion\Model\OutlineMapCanvas
170
-     */
171
-    public function getCanvas() {
172
-        if(!$this->is_loaded) $this->load();
173
-        return $this->canvas;
174
-    }
167
+	/**
168
+	 * Get the Outline Map canvas.
169
+	 * @return \MyArtJaub\Webtrees\Module\GeoDispersion\Model\OutlineMapCanvas
170
+	 */
171
+	public function getCanvas() {
172
+		if(!$this->is_loaded) $this->load();
173
+		return $this->canvas;
174
+	}
175 175
     
176 176
 	/**
177
-     * Get the subdivisions of the map.
178
-     * @return array
179
-     */
180
-    public function getSubdivisions() {
181
-        if(!$this->is_loaded) $this->load();
182
-        return $this->subdivisions;
183
-    }
177
+	 * Get the subdivisions of the map.
178
+	 * @return array
179
+	 */
180
+	public function getSubdivisions() {
181
+		if(!$this->is_loaded) $this->load();
182
+		return $this->subdivisions;
183
+	}
184 184
     
185 185
 	/**
186
-     * Get the places mappings of the map.
187
-     * @return array
188
-     */
189
-    public function getPlacesMappings() {
190
-        if(!$this->is_loaded) $this->load();
191
-        return $this->mappings;
192
-    }
186
+	 * Get the places mappings of the map.
187
+	 * @return array
188
+	 */
189
+	public function getPlacesMappings() {
190
+		if(!$this->is_loaded) $this->load();
191
+		return $this->mappings;
192
+	}
193 193
                    
194 194
 }
195 195
  
196 196
\ No newline at end of file
Please login to merge, or discard this patch.
src/Webtrees/Module/GeoDispersion/Schema/Migration0.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -24,18 +24,18 @@
 block discarded – undo
24 24
 	 */
25 25
 	public function upgrade() {
26 26
 		Database::exec(
27
-            'CREATE TABLE IF NOT EXISTS `##maj_geodispersion` ('.
28
-            ' majgd_id       	INTEGER AUTO_INCREMENT NOT NULL,'.
29
-            ' majgd_file      	INTEGER 	 		NOT NULL,'.
30
-            ' majgd_descr		VARCHAR(70)			NOT NULL,'.
31
-            ' majgd_sublevel	TINYINT				NOT NULL,'.
32
-            ' majgd_map			VARCHAR(70)			NULL,'.
33
-            ' majgd_toplevel	TINYINT				NULL,'.
34
-            ' majgd_status      ENUM(\'enabled\', \'disabled\') NOT NULL DEFAULT \'enabled\','.
35
-            ' majgd_useflagsgen	ENUM(\'yes\', \'no\') NOT NULL DEFAULT \'no\','.
36
-            ' majgd_detailsgen	TINYINT				NOT NULL DEFAULT 0,'.
37
-            ' PRIMARY KEY (majgd_id)'.
38
-            ') COLLATE utf8_unicode_ci ENGINE=InnoDB'
27
+			'CREATE TABLE IF NOT EXISTS `##maj_geodispersion` ('.
28
+			' majgd_id       	INTEGER AUTO_INCREMENT NOT NULL,'.
29
+			' majgd_file      	INTEGER 	 		NOT NULL,'.
30
+			' majgd_descr		VARCHAR(70)			NOT NULL,'.
31
+			' majgd_sublevel	TINYINT				NOT NULL,'.
32
+			' majgd_map			VARCHAR(70)			NULL,'.
33
+			' majgd_toplevel	TINYINT				NULL,'.
34
+			' majgd_status      ENUM(\'enabled\', \'disabled\') NOT NULL DEFAULT \'enabled\','.
35
+			' majgd_useflagsgen	ENUM(\'yes\', \'no\') NOT NULL DEFAULT \'no\','.
36
+			' majgd_detailsgen	TINYINT				NOT NULL DEFAULT 0,'.
37
+			' PRIMARY KEY (majgd_id)'.
38
+			') COLLATE utf8_unicode_ci ENGINE=InnoDB'
39 39
 		);
40 40
 	}
41 41
 }
Please login to merge, or discard this patch.
src/Webtrees/Module/GeoDispersion/Views/GeoAnalysisEditView.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -25,14 +25,14 @@  discard block
 block discarded – undo
25 25
 	 * {@inhericDoc}
26 26
 	 * @see \MyArtJaub\Webtrees\Mvc\View\AbstractView::renderContent()
27 27
 	 */
28
-    protected function renderContent() {
28
+	protected function renderContent() {
29 29
         
30
-        /** @var GeoAnalysis $ga */
31
-        $ga = $this->data->get('geo_analysis');
32
-        $is_new = is_null($ga);
30
+		/** @var GeoAnalysis $ga */
31
+		$ga = $this->data->get('geo_analysis');
32
+		$is_new = is_null($ga);
33 33
         
34
-        $places_hierarchy = $this->data->get('places_hierarchy');
35
-        ?>        
34
+		$places_hierarchy = $this->data->get('places_hierarchy');
35
+		?>        
36 36
         <ol class="breadcrumb small">
37 37
         	<li><a href="admin.php"><?php echo I18N::translate('Control panel'); ?></a></li>
38 38
 			<li><a href="admin_modules.php"><?php echo I18N::translate('Module administration'); ?></a></li>
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
     	</form>
156 156
 		
157 157
 		<?php        
158
-    }
158
+	}
159 159
     
160 160
 }
161 161
  
162 162
\ No newline at end of file
Please login to merge, or discard this patch.
src/Webtrees/Module/GeoDispersion/Views/GeoAnalysisView.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -24,16 +24,16 @@  discard block
 block discarded – undo
24 24
 	 * {@inhericDoc}
25 25
 	 * @see \MyArtJaub\Webtrees\Mvc\View\AbstractView::renderContent()
26 26
 	 */
27
-    protected function renderContent() {        
28
-        ?>                
27
+	protected function renderContent() {        
28
+		?>                
29 29
         <div id="maj-geodisp-list-page" class="center">
30 30
 			<h2><?php echo $this->data->get('title'); ?></h2>
31 31
 			
32 32
 			<?php
33 33
 			if($this->data->get('has_analysis', false)) { 
34
-			    /** @var GeoAnalysis $ga  */
35
-    		    $ga = $this->data->get('geoanalysis');
36
-    		?>
34
+				/** @var GeoAnalysis $ga  */
35
+				$ga = $this->data->get('geoanalysis');
36
+			?>
37 37
     		
38 38
     		<div id="geodispersion-panel">
39 39
     			<h3><?php echo $ga->getTitle() ?></h3>
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
     	</div>
67 67
     	
68 68
     	<?php 
69
-    }
69
+	}
70 70
     
71 71
 }
72 72
  
73 73
\ No newline at end of file
Please login to merge, or discard this patch.
src/Webtrees/Module/GeoDispersion/Views/GeoAnalysisTabGeneralMapView.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -25,17 +25,17 @@  discard block
 block discarded – undo
25 25
 	 * {@inheritDoc}
26 26
 	 * @see \MyArtJaub\Webtrees\Module\GeoDispersion\Views\AbstractGeoAnalysisTabGeneralView::htmlAnalysisData()
27 27
 	 */
28
-    protected function htmlAnalysisData() {
28
+	protected function htmlAnalysisData() {
29 29
         
30
-        /** @var OutlineMap $map */
31
-        $map = $this->data->get('map');
32
-        $canvas = $map->getCanvas();
33
-        $subdvisions_results = $this->data->get('results_by_subdivisions');
30
+		/** @var OutlineMap $map */
31
+		$map = $this->data->get('map');
32
+		$canvas = $map->getCanvas();
33
+		$subdvisions_results = $this->data->get('results_by_subdivisions');
34 34
         
35
-        $nb_found = $this->data->get('stats_gen_nb_found');
36
-        $nb_other = $this->data->get('stats_gen_nb_other');
35
+		$nb_found = $this->data->get('stats_gen_nb_found');
36
+		$nb_other = $this->data->get('stats_gen_nb_other');
37 37
         
38
-        $html = '<script>
38
+		$html = '<script>
39 39
 			var tip = null;
40 40
 			var tipText = "";
41 41
 			var over = false;
@@ -82,29 +82,29 @@  discard block
 block discarded – undo
82 82
 				var map = {};
83 83
 		';
84 84
         
85
-        foreach($subdvisions_results as $name => $location){
86
-            $html.= 'map.area'.$location['id'].' = paper.path("'.$location['coord'].'").attr(attr);';
87
-            if(isset($location['transparency'])) {
88
-                $textToolTip = '<strong>'.$location['displayname'].'</strong><br/>';
89
-                if($this->data->get('use_flags') && $location['flag'] != '') $textToolTip .= '<span class="geodispersion_flag">'.FunctionsPrint::htmlPlaceIcon($location['place'], $location['flag']).'</span><br/>';
90
-                $textToolTip .= I18N::translate('%d individuals', $location['count']).'<br/>'.I18N::percentage(Functions::safeDivision($location['count'], $nb_found - $nb_other), 1);
91
-                $html.= 'addTip(map.area'.$location['id'].'.node, "'.Filter::escapeJs($textToolTip).'");';
92
-                $html.= 'map.area'.$location['id'].'.attr({"fill" : "'. $canvas->max_color .'", "fill-opacity" : '.$location['transparency'].' });';
93
-                $html.= 'map.area'.$location['id'].'.mouseover(function () {'.
94
-                    'map.area'.$location['id'].'.stop().animate({"fill" : "'. $canvas->hover_color .'", "fill-opacity" : 1}, 100, "linear");'.
95
-                    '});'.
96
-                    'map.area'.$location['id'].'.mouseout(function () {'.
97
-                    'map.area'.$location['id'].'.stop().animate({"fill" : "'.$canvas->max_color.'", "fill-opacity" : '.$location['transparency'].'}, 100, "linear");'.
98
-                    '});';
99
-            }
100
-        }
101
-        $html .= '});
85
+		foreach($subdvisions_results as $name => $location){
86
+			$html.= 'map.area'.$location['id'].' = paper.path("'.$location['coord'].'").attr(attr);';
87
+			if(isset($location['transparency'])) {
88
+				$textToolTip = '<strong>'.$location['displayname'].'</strong><br/>';
89
+				if($this->data->get('use_flags') && $location['flag'] != '') $textToolTip .= '<span class="geodispersion_flag">'.FunctionsPrint::htmlPlaceIcon($location['place'], $location['flag']).'</span><br/>';
90
+				$textToolTip .= I18N::translate('%d individuals', $location['count']).'<br/>'.I18N::percentage(Functions::safeDivision($location['count'], $nb_found - $nb_other), 1);
91
+				$html.= 'addTip(map.area'.$location['id'].'.node, "'.Filter::escapeJs($textToolTip).'");';
92
+				$html.= 'map.area'.$location['id'].'.attr({"fill" : "'. $canvas->max_color .'", "fill-opacity" : '.$location['transparency'].' });';
93
+				$html.= 'map.area'.$location['id'].'.mouseover(function () {'.
94
+					'map.area'.$location['id'].'.stop().animate({"fill" : "'. $canvas->hover_color .'", "fill-opacity" : 1}, 100, "linear");'.
95
+					'});'.
96
+					'map.area'.$location['id'].'.mouseout(function () {'.
97
+					'map.area'.$location['id'].'.stop().animate({"fill" : "'.$canvas->max_color.'", "fill-opacity" : '.$location['transparency'].'}, 100, "linear");'.
98
+					'});';
99
+			}
100
+		}
101
+		$html .= '});
102 102
             </script>
103 103
             
104 104
             <div id="geodispersion_map"></div>
105 105
     	   <div id="geodispersion_tip"></div>';
106 106
         
107
-        return $html;
108
-    }
107
+		return $html;
108
+	}
109 109
     
110 110
 } 
111 111
\ No newline at end of file
Please login to merge, or discard this patch.
src/Webtrees/Module/GeoDispersion/Views/AdminConfigView.php 1 patch
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -23,14 +23,14 @@  discard block
 block discarded – undo
23 23
 	 * {@inhericDoc}
24 24
 	 * @see \MyArtJaub\Webtrees\Mvc\View\AbstractView::renderContent()
25 25
 	 */
26
-    protected function renderContent() {
26
+	protected function renderContent() {
27 27
         
28
-        /** @var Tree $tree  */
29
-        $tree = $this->data->get('tree');
30
-        $root_url = $this->data->get('root_url');
31
-        $other_trees = $this->data->get('other_trees');
32
-        $table_id = $this->data->get('table_id');
33
-        ?>        
28
+		/** @var Tree $tree  */
29
+		$tree = $this->data->get('tree');
30
+		$root_url = $this->data->get('root_url');
31
+		$other_trees = $this->data->get('other_trees');
32
+		$table_id = $this->data->get('table_id');
33
+		?>        
34 34
         <ol class="breadcrumb small">
35 35
         	<li><a href="admin.php"><?php echo I18N::translate('Control panel'); ?></a></li>
36 36
 			<li><a href="admin_modules.php"><?php echo I18N::translate('Module administration'); ?></a></li>
@@ -63,23 +63,23 @@  discard block
 block discarded – undo
63 63
 		<p>
64 64
 		<?php $places_hierarchy = $this->data->get('places_hierarchy'); 
65 65
 		if($places_hierarchy) {
66
-		    switch ($places_hierarchy['type']) {
67
-		        case 'header':
68
-		            echo I18N::translate('According to the GEDCOM header, the places within your file follows the structure: ');
69
-		            break;
70
-		        case 'data':
71
-		            echo I18N::translate('Your GEDCOM header does not contain any indication of place structure.').
72
-		            '<br/>'.
73
-		            I18N::translate('Here is an example of your place data: ');
74
-		            break;
75
-		        default:
76
-		            break;
77
-		    }
78
-		    $str_hierarchy = array();
79
-		    foreach($places_hierarchy['hierarchy'] as $key => $level) {
80
-		        $str_hierarchy[] = I18N::translate('(%d) %s', $key + 1, $level);
81
-		    }
82
-		    echo '<strong>' . implode(I18N::$list_separator, $str_hierarchy) . '</strong>';
66
+			switch ($places_hierarchy['type']) {
67
+				case 'header':
68
+					echo I18N::translate('According to the GEDCOM header, the places within your file follows the structure: ');
69
+					break;
70
+				case 'data':
71
+					echo I18N::translate('Your GEDCOM header does not contain any indication of place structure.').
72
+					'<br/>'.
73
+					I18N::translate('Here is an example of your place data: ');
74
+					break;
75
+				default:
76
+					break;
77
+			}
78
+			$str_hierarchy = array();
79
+			foreach($places_hierarchy['hierarchy'] as $key => $level) {
80
+				$str_hierarchy[] = I18N::translate('(%d) %s', $key + 1, $level);
81
+			}
82
+			echo '<strong>' . implode(I18N::$list_separator, $str_hierarchy) . '</strong>';
83 83
 		}
84 84
 		?>
85 85
 		</p>
@@ -109,7 +109,7 @@  discard block
 block discarded – undo
109 109
         </a>
110 110
 		
111 111
 		<?php        
112
-    }
112
+	}
113 113
     
114 114
 }
115 115
  
116 116
\ No newline at end of file
Please login to merge, or discard this patch.
src/Webtrees/Module/GeoDispersion/Views/GeoAnalysisListView.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -23,15 +23,15 @@  discard block
 block discarded – undo
23 23
 	 * {@inhericDoc}
24 24
 	 * @see \MyArtJaub\Webtrees\Mvc\View\AbstractView::renderContent()
25 25
 	 */
26
-    protected function renderContent() {        
27
-        ?>                
26
+	protected function renderContent() {        
27
+		?>                
28 28
         <div id="maj-geodisp-list-page" class="center">
29 29
 			<h2><?php echo $this->data->get('title'); ?></h2>
30 30
 			
31 31
 			<?php
32 32
 			if($this->data->get('has_list', false)) { 
33
-    		    $galist = $this->data->get('geoanalysislist');
34
-    		?>
33
+				$galist = $this->data->get('geoanalysislist');
34
+			?>
35 35
     		
36 36
     		<p class="center"><?php echo I18N::translate('Choose a geographical dispersion analysis:'); ?><p>
37 37
 			
@@ -58,7 +58,7 @@  discard block
 block discarded – undo
58 58
     	</div>
59 59
     	
60 60
     	<?php 
61
-    }
61
+	}
62 62
     
63 63
 }
64 64
  
65 65
\ No newline at end of file
Please login to merge, or discard this patch.
Webtrees/Module/GeoDispersion/Views/AbstractGeoAnalysisTabGeneralView.php 1 patch
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -25,27 +25,27 @@  discard block
 block discarded – undo
25 25
 	 * {@inhericDoc}
26 26
 	 * @see \MyArtJaub\Webtrees\Mvc\View\AbstractView::renderContent()
27 27
 	 */
28
-    protected function renderContent() {
29
-        $nb_found = $this->data->get('stats_gen_nb_found');
30
-        $nb_other = $this->data->get('stats_gen_nb_other');
31
-        $nb_unknown = $this->data->get('stats_gen_nb_unknown');
32
-        $perc_known = Functions::safeDivision($nb_found - $nb_other, $nb_found + $nb_unknown);
28
+	protected function renderContent() {
29
+		$nb_found = $this->data->get('stats_gen_nb_found');
30
+		$nb_other = $this->data->get('stats_gen_nb_other');
31
+		$nb_unknown = $this->data->get('stats_gen_nb_unknown');
32
+		$perc_known = Functions::safeDivision($nb_found - $nb_other, $nb_found + $nb_unknown);
33 33
 
34
-        $html = '<div id="geodispersion_summary">
34
+		$html = '<div id="geodispersion_summary">
35 35
         	<div class="maj-table center">
36 36
         		<div class="maj-row">
37 37
         			<div class="label">' . I18N::translate('Places found'). '</div>
38 38
         			<div class="value">' . I18N::translate('%1$d (%2$s)',$nb_found - $nb_other, I18N::percentage($perc_known)). '</div>
39 39
         		</div>';
40
-        if($nb_other > 0){
41
-            $perc_other = Functions::safeDivision($nb_other, $nb_found + $nb_unknown);
42
-            $html .=
43
-        		'<div class="maj-row">
40
+		if($nb_other > 0){
41
+			$perc_other = Functions::safeDivision($nb_other, $nb_found + $nb_unknown);
42
+			$html .=
43
+				'<div class="maj-row">
44 44
         			<div class="label">' . I18N::translate('Other places'). '</div>
45 45
         			<div class="value">' . I18N::translate('%1$d (%2$s)',$nb_other, I18N::percentage($perc_other)). '</div>
46 46
         		</div>';
47
-        }
48
-        $html .= '<div class="maj-row">
47
+		}
48
+		$html .= '<div class="maj-row">
49 49
         			<div class="label">' . I18N::translate('Places not found'). '</div>
50 50
         			<div class="value">' . I18N::translate('%1$d (%2$s)',$nb_unknown, I18N::percentage(1 - $perc_known)). '</div>
51 51
         		</div>
@@ -56,8 +56,8 @@  discard block
 block discarded – undo
56 56
 		' . $this->htmlAnalysisData(). '
57 57
 		</div>';
58 58
         
59
-        return $html;
60
-    }
59
+		return $html;
60
+	}
61 61
     
62 62
 	/**
63 63
 	 * Returns HTML code to display the analysis data, under the appropriate format.
@@ -65,7 +65,7 @@  discard block
 block discarded – undo
65 65
 	 * @return string HTML Code for analysis display
66 66
 	 * @abstract
67 67
 	 */
68
-    protected abstract function htmlAnalysisData();        
68
+	protected abstract function htmlAnalysisData();        
69 69
     
70 70
 }
71 71
  
72 72
\ No newline at end of file
Please login to merge, or discard this patch.