@@ -21,175 +21,175 @@ |
||
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 |
@@ -24,18 +24,18 @@ |
||
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 | } |
@@ -25,14 +25,14 @@ discard block |
||
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 |
||
155 | 155 | </form> |
156 | 156 | |
157 | 157 | <?php |
158 | - } |
|
158 | + } |
|
159 | 159 | |
160 | 160 | } |
161 | 161 | |
162 | 162 | \ No newline at end of file |
@@ -24,16 +24,16 @@ discard block |
||
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 |
||
66 | 66 | </div> |
67 | 67 | |
68 | 68 | <?php |
69 | - } |
|
69 | + } |
|
70 | 70 | |
71 | 71 | } |
72 | 72 | |
73 | 73 | \ No newline at end of file |
@@ -26,90 +26,90 @@ discard block |
||
26 | 26 | * {@inhericDoc} |
27 | 27 | * @see \MyArtJaub\Webtrees\Mvc\View\AbstractView::renderContent() |
28 | 28 | */ |
29 | - protected function renderContent() { |
|
29 | + protected function renderContent() { |
|
30 | 30 | |
31 | - $max_details_gen = $this->data->get('max_details_gen'); |
|
32 | - $use_flags = $this->data->get('use_flags'); |
|
33 | - $analysis_level = $this->data->get('analysis_level'); |
|
34 | - $results_by_gen = $this->data->get('results_by_generations'); |
|
35 | - $display_all_places = $this->data->get('display_all_places', true); |
|
31 | + $max_details_gen = $this->data->get('max_details_gen'); |
|
32 | + $use_flags = $this->data->get('use_flags'); |
|
33 | + $analysis_level = $this->data->get('analysis_level'); |
|
34 | + $results_by_gen = $this->data->get('results_by_generations'); |
|
35 | + $display_all_places = $this->data->get('display_all_places', true); |
|
36 | 36 | |
37 | - $html = |
|
38 | - '<div id="geodispersion_gen"> |
|
37 | + $html = |
|
38 | + '<div id="geodispersion_gen"> |
|
39 | 39 | <table id="geodispersion_gentable" class="center">'; |
40 | 40 | |
41 | - foreach($results_by_gen as $gen => $genData){ |
|
42 | - $html .= |
|
43 | - '<tr> |
|
41 | + foreach($results_by_gen as $gen => $genData){ |
|
42 | + $html .= |
|
43 | + '<tr> |
|
44 | 44 | <td class="descriptionbox">' . |
45 | - I18N::translate("Generation %s", I18N::number($gen)). |
|
46 | - ($display_all_places ? '<br />' : ' '). |
|
47 | - I18N::translate('(%s)', I18N::percentage(Functions::safeDivision($genData['sum'] + $genData['other'], $genData['sum'] + $genData['other'] + $genData['unknown']),1)) . |
|
48 | - '</td> |
|
45 | + I18N::translate("Generation %s", I18N::number($gen)). |
|
46 | + ($display_all_places ? '<br />' : ' '). |
|
47 | + I18N::translate('(%s)', I18N::percentage(Functions::safeDivision($genData['sum'] + $genData['other'], $genData['sum'] + $genData['other'] + $genData['unknown']),1)) . |
|
48 | + '</td> |
|
49 | 49 | <td class="optionbox left">'. |
50 | - ($display_all_places ? |
|
51 | - $this->htmlGenerationAllPlacesRow($genData, $analysis_level) : |
|
52 | - $this->htmlGenerationTopPlacesRow($genData, $analysis_level) |
|
53 | - ) . |
|
54 | - '</ditdv> |
|
50 | + ($display_all_places ? |
|
51 | + $this->htmlGenerationAllPlacesRow($genData, $analysis_level) : |
|
52 | + $this->htmlGenerationTopPlacesRow($genData, $analysis_level) |
|
53 | + ) . |
|
54 | + '</ditdv> |
|
55 | 55 | </tr>'; |
56 | - } |
|
56 | + } |
|
57 | 57 | |
58 | - $html.= |
|
59 | - '</table> |
|
58 | + $html.= |
|
59 | + '</table> |
|
60 | 60 | <div class="left"> |
61 | 61 | <strong>' . I18N::translate('Interpretation help:') . '</strong> |
62 | 62 | <br />'. |
63 | - I18N::translate('<strong>Generation X (yy %%)</strong>: The percentage indicates the number of found places compared to the total number of ancestors in this generation.') . |
|
64 | - '<br />'; |
|
65 | - if(!is_null($max_details_gen) && $max_details_gen == 0){ |
|
66 | - $html .= I18N::translate('<strong><em>Place</em> or <em>Flag</em> aa (bb %%)</strong>: The first number indicates the total number of ancestors born in this place, the percentage relates this count to the total number of found places. No percentage means it is less than 10%%.').'<br />'; |
|
67 | - $html .= I18N::translate('If any, the darker area indicates the number of unknown places within the generation or places outside the analysed area, and its percentage compared to the number of ancestors. No percentage means it is less than 10%%.'); |
|
68 | - } |
|
69 | - else{ |
|
70 | - $html .= I18N::translate('<strong><em>Place</em> [aa - bb %%]</strong>: The first number indicates the total number of ancestors born in this place, the percentage compares this count to the total number of found places.').'<br />'; |
|
71 | - $html .= I18N::translate('Only the %d more frequent places for each generation are displayed.', $max_details_gen); |
|
72 | - } |
|
73 | - $html.= |
|
74 | - '</div> |
|
63 | + I18N::translate('<strong>Generation X (yy %%)</strong>: The percentage indicates the number of found places compared to the total number of ancestors in this generation.') . |
|
64 | + '<br />'; |
|
65 | + if(!is_null($max_details_gen) && $max_details_gen == 0){ |
|
66 | + $html .= I18N::translate('<strong><em>Place</em> or <em>Flag</em> aa (bb %%)</strong>: The first number indicates the total number of ancestors born in this place, the percentage relates this count to the total number of found places. No percentage means it is less than 10%%.').'<br />'; |
|
67 | + $html .= I18N::translate('If any, the darker area indicates the number of unknown places within the generation or places outside the analysed area, and its percentage compared to the number of ancestors. No percentage means it is less than 10%%.'); |
|
68 | + } |
|
69 | + else{ |
|
70 | + $html .= I18N::translate('<strong><em>Place</em> [aa - bb %%]</strong>: The first number indicates the total number of ancestors born in this place, the percentage compares this count to the total number of found places.').'<br />'; |
|
71 | + $html .= I18N::translate('Only the %d more frequent places for each generation are displayed.', $max_details_gen); |
|
72 | + } |
|
73 | + $html.= |
|
74 | + '</div> |
|
75 | 75 | </div>'; |
76 | 76 | |
77 | - return $html; |
|
78 | - } |
|
77 | + return $html; |
|
78 | + } |
|
79 | 79 | |
80 | 80 | |
81 | - /** |
|
82 | - * Return the HTML code to display a row with all places found in a generation. |
|
83 | - * |
|
84 | - * @param array $data Data array |
|
85 | - * @param int $analysis_level Level of subdivision of analysis |
|
86 | - * @return string HTML code for all places row |
|
87 | - */ |
|
88 | - protected function htmlGenerationAllPlacesRow($data, $analysis_level) { |
|
89 | - $html = |
|
90 | - '<table class="geodispersion_bigrow"> |
|
81 | + /** |
|
82 | + * Return the HTML code to display a row with all places found in a generation. |
|
83 | + * |
|
84 | + * @param array $data Data array |
|
85 | + * @param int $analysis_level Level of subdivision of analysis |
|
86 | + * @return string HTML code for all places row |
|
87 | + */ |
|
88 | + protected function htmlGenerationAllPlacesRow($data, $analysis_level) { |
|
89 | + $html = |
|
90 | + '<table class="geodispersion_bigrow"> |
|
91 | 91 | <tr>'; |
92 | 92 | |
93 | - $sum_gen = $data['sum']; |
|
94 | - $unknownother = $data['unknown'] + $data['other']; |
|
95 | - foreach($data['places'] as $placename=> $dataplace){ |
|
96 | - $levels = array_map('trim',explode(',', $placename)); |
|
97 | - $content = ''; |
|
98 | - if(isset($dataplace['flag'])){ |
|
99 | - $content .= '<td class="geodispersion_flag">'. FunctionsPrint::htmlPlaceIcon($dataplace['place'], $dataplace['flag']) .'</td><td>'; |
|
100 | - } |
|
101 | - else{ |
|
102 | - $content .= '<td><span title="'.implode(I18N::$list_separator, array_reverse($levels)).'">'.$levels[$analysis_level-1].'</span><br/>'; |
|
103 | - } |
|
104 | - $count = $dataplace['count']; |
|
105 | - $content .= I18N::number($count); |
|
106 | - $perc = Functions::safeDivision($count, $sum_gen + $unknownother); |
|
107 | - $perc2= Functions::safeDivision($count, $sum_gen); |
|
108 | - if($perc2>=0.1) |
|
109 | - $content.= '<br/><span class="small">('.I18N::percentage($perc2, 1).')</span>'; |
|
110 | - $content .= '</td>'; |
|
93 | + $sum_gen = $data['sum']; |
|
94 | + $unknownother = $data['unknown'] + $data['other']; |
|
95 | + foreach($data['places'] as $placename=> $dataplace){ |
|
96 | + $levels = array_map('trim',explode(',', $placename)); |
|
97 | + $content = ''; |
|
98 | + if(isset($dataplace['flag'])){ |
|
99 | + $content .= '<td class="geodispersion_flag">'. FunctionsPrint::htmlPlaceIcon($dataplace['place'], $dataplace['flag']) .'</td><td>'; |
|
100 | + } |
|
101 | + else{ |
|
102 | + $content .= '<td><span title="'.implode(I18N::$list_separator, array_reverse($levels)).'">'.$levels[$analysis_level-1].'</span><br/>'; |
|
103 | + } |
|
104 | + $count = $dataplace['count']; |
|
105 | + $content .= I18N::number($count); |
|
106 | + $perc = Functions::safeDivision($count, $sum_gen + $unknownother); |
|
107 | + $perc2= Functions::safeDivision($count, $sum_gen); |
|
108 | + if($perc2>=0.1) |
|
109 | + $content.= '<br/><span class="small">('.I18N::percentage($perc2, 1).')</span>'; |
|
110 | + $content .= '</td>'; |
|
111 | 111 | |
112 | - $html .= ' |
|
112 | + $html .= ' |
|
113 | 113 | <td class="geodispersion_rowitem" width="'.max(round(100*$perc, 0),1).'%"> |
114 | 114 | <table> |
115 | 115 | <tr> |
@@ -121,46 +121,46 @@ discard block |
||
121 | 121 | </tr> |
122 | 122 | </table> |
123 | 123 | </td>'; |
124 | - } |
|
124 | + } |
|
125 | 125 | |
126 | - if($unknownother>0){ |
|
127 | - $perc= Functions::safeDivision($unknownother, $sum_gen + $unknownother); |
|
128 | - $html .='<td class="geodispersion_unknownitem left" >'.I18N::number($unknownother); |
|
129 | - if($perc>=0.1) $html.= '<br/><span class="small">('.I18N::percentage($perc, 1).')</span>'; |
|
130 | - $html .='</td>'; |
|
131 | - } |
|
126 | + if($unknownother>0){ |
|
127 | + $perc= Functions::safeDivision($unknownother, $sum_gen + $unknownother); |
|
128 | + $html .='<td class="geodispersion_unknownitem left" >'.I18N::number($unknownother); |
|
129 | + if($perc>=0.1) $html.= '<br/><span class="small">('.I18N::percentage($perc, 1).')</span>'; |
|
130 | + $html .='</td>'; |
|
131 | + } |
|
132 | 132 | |
133 | - $html .= |
|
134 | - '</tr> |
|
133 | + $html .= |
|
134 | + '</tr> |
|
135 | 135 | </table>'; |
136 | - return $html; |
|
137 | - } |
|
136 | + return $html; |
|
137 | + } |
|
138 | 138 | |
139 | 139 | /** |
140 | 140 | * Returns the HTML code fo display a row of the Top Places found for a generation. |
141 | 141 | * |
142 | 142 | * @param array $data Data array |
143 | - * @param int $analysis_level Level of subdivision of analysis |
|
143 | + * @param int $analysis_level Level of subdivision of analysis |
|
144 | 144 | * @return string HTML code for Top Places row |
145 | 145 | */ |
146 | - protected function htmlGenerationTopPlacesRow($data, $analysis_level) { |
|
147 | - $tmp_places = array(); |
|
148 | - $sum_gen = $data['sum']; |
|
149 | - $other = $data['other']; |
|
146 | + protected function htmlGenerationTopPlacesRow($data, $analysis_level) { |
|
147 | + $tmp_places = array(); |
|
148 | + $sum_gen = $data['sum']; |
|
149 | + $other = $data['other']; |
|
150 | 150 | |
151 | - foreach($data['places'] as $placename => $count) { |
|
152 | - if($placename != 'other'){ |
|
153 | - $levels = array_map('trim',explode(',', $placename)); |
|
154 | - $placename = '<span title="'.implode(I18N::$list_separator, array_reverse($levels)).'">'.$levels[$analysis_level-1].'</span>'; |
|
155 | - } |
|
156 | - else{ |
|
157 | - $placename = I18N::translate('Other places'); |
|
158 | - } |
|
159 | - $tmp_places[] = I18N::translate('<strong>%s</strong> [%d - %s]', $placename, $count, I18N::percentage(Functions::safeDivision($count, $sum_gen + $other), 1)); |
|
160 | - } |
|
151 | + foreach($data['places'] as $placename => $count) { |
|
152 | + if($placename != 'other'){ |
|
153 | + $levels = array_map('trim',explode(',', $placename)); |
|
154 | + $placename = '<span title="'.implode(I18N::$list_separator, array_reverse($levels)).'">'.$levels[$analysis_level-1].'</span>'; |
|
155 | + } |
|
156 | + else{ |
|
157 | + $placename = I18N::translate('Other places'); |
|
158 | + } |
|
159 | + $tmp_places[] = I18N::translate('<strong>%s</strong> [%d - %s]', $placename, $count, I18N::percentage(Functions::safeDivision($count, $sum_gen + $other), 1)); |
|
160 | + } |
|
161 | 161 | |
162 | - return implode(I18N::$list_separator, $tmp_places); |
|
163 | - } |
|
162 | + return implode(I18N::$list_separator, $tmp_places); |
|
163 | + } |
|
164 | 164 | |
165 | 165 | } |
166 | 166 | |
167 | 167 | \ No newline at end of file |
@@ -25,17 +25,17 @@ discard block |
||
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 |
||
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 |
@@ -23,14 +23,14 @@ discard block |
||
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 |
||
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 |
||
109 | 109 | </a> |
110 | 110 | |
111 | 111 | <?php |
112 | - } |
|
112 | + } |
|
113 | 113 | |
114 | 114 | } |
115 | 115 | |
116 | 116 | \ No newline at end of file |
@@ -23,15 +23,15 @@ discard block |
||
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 |
||
58 | 58 | </div> |
59 | 59 | |
60 | 60 | <?php |
61 | - } |
|
61 | + } |
|
62 | 62 | |
63 | 63 | } |
64 | 64 | |
65 | 65 | \ No newline at end of file |
@@ -25,27 +25,27 @@ discard block |
||
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 |
||
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 |
||
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 |