@@ -18,97 +18,97 @@ |
||
18 | 18 | /** |
19 | 19 | * @var array $data Container for data |
20 | 20 | */ |
21 | - protected $data = array(); |
|
21 | + protected $data = array(); |
|
22 | 22 | |
23 | - /** |
|
24 | - * Constructor for ViewBag |
|
25 | - * @param array $data_in |
|
26 | - */ |
|
27 | - public function __construct(array $data_in = array()) { |
|
28 | - $this->data = $data_in; |
|
29 | - } |
|
23 | + /** |
|
24 | + * Constructor for ViewBag |
|
25 | + * @param array $data_in |
|
26 | + */ |
|
27 | + public function __construct(array $data_in = array()) { |
|
28 | + $this->data = $data_in; |
|
29 | + } |
|
30 | 30 | |
31 | - /** |
|
32 | - * Get the keys present in the view bag. |
|
33 | - * |
|
34 | - * @return array |
|
35 | - */ |
|
36 | - public function keys() |
|
37 | - { |
|
38 | - return array_keys($this->data); |
|
39 | - } |
|
31 | + /** |
|
32 | + * Get the keys present in the view bag. |
|
33 | + * |
|
34 | + * @return array |
|
35 | + */ |
|
36 | + public function keys() |
|
37 | + { |
|
38 | + return array_keys($this->data); |
|
39 | + } |
|
40 | 40 | |
41 | - /** |
|
42 | - * Get all the data from the bag for a given key. |
|
43 | - * |
|
44 | - * @param string $key |
|
45 | - * @param string $format |
|
46 | - * @return unknown |
|
47 | - */ |
|
48 | - public function get($key, $default = null) |
|
49 | - { |
|
50 | - if (array_key_exists($key, $this->data)) { |
|
51 | - return $this->data[$key]; |
|
52 | - } |
|
53 | - return $default; |
|
54 | - } |
|
41 | + /** |
|
42 | + * Get all the data from the bag for a given key. |
|
43 | + * |
|
44 | + * @param string $key |
|
45 | + * @param string $format |
|
46 | + * @return unknown |
|
47 | + */ |
|
48 | + public function get($key, $default = null) |
|
49 | + { |
|
50 | + if (array_key_exists($key, $this->data)) { |
|
51 | + return $this->data[$key]; |
|
52 | + } |
|
53 | + return $default; |
|
54 | + } |
|
55 | 55 | |
56 | - /** |
|
57 | - * Magic getter. |
|
58 | - * Returns the value associated with the key. |
|
59 | - * |
|
60 | - * @param string $key |
|
61 | - * @return unknown |
|
62 | - */ |
|
63 | - public function __get($key) { |
|
64 | - return $this->get($key, null); |
|
65 | - } |
|
56 | + /** |
|
57 | + * Magic getter. |
|
58 | + * Returns the value associated with the key. |
|
59 | + * |
|
60 | + * @param string $key |
|
61 | + * @return unknown |
|
62 | + */ |
|
63 | + public function __get($key) { |
|
64 | + return $this->get($key, null); |
|
65 | + } |
|
66 | 66 | |
67 | - /** |
|
68 | - * Set the value for the specified key. |
|
69 | - * Can define whether to override an existing value; |
|
70 | - * |
|
71 | - * @param string $key |
|
72 | - * @param mixed $value |
|
73 | - * @param bool $override |
|
74 | - */ |
|
75 | - public function set($key, $value, $override = true) { |
|
76 | - if(is_null($key)) return; |
|
77 | - if(!$override && array_key_exists($key, $this->data)) return; |
|
78 | - $this->data[$key] = $value; |
|
79 | - } |
|
67 | + /** |
|
68 | + * Set the value for the specified key. |
|
69 | + * Can define whether to override an existing value; |
|
70 | + * |
|
71 | + * @param string $key |
|
72 | + * @param mixed $value |
|
73 | + * @param bool $override |
|
74 | + */ |
|
75 | + public function set($key, $value, $override = true) { |
|
76 | + if(is_null($key)) return; |
|
77 | + if(!$override && array_key_exists($key, $this->data)) return; |
|
78 | + $this->data[$key] = $value; |
|
79 | + } |
|
80 | 80 | |
81 | - /** |
|
82 | - * Magic setter. |
|
83 | - * Set the value for the specified key. |
|
84 | - * |
|
85 | - * @param string $key |
|
86 | - * @param mixed $value |
|
87 | - */ |
|
88 | - public function __set($key, $value) { |
|
89 | - $this->set($key, $value); |
|
90 | - } |
|
81 | + /** |
|
82 | + * Magic setter. |
|
83 | + * Set the value for the specified key. |
|
84 | + * |
|
85 | + * @param string $key |
|
86 | + * @param mixed $value |
|
87 | + */ |
|
88 | + public function __set($key, $value) { |
|
89 | + $this->set($key, $value); |
|
90 | + } |
|
91 | 91 | |
92 | - /** |
|
93 | - * Magic isset |
|
94 | - * Checks whether the ViewBag contains the specified key |
|
95 | - * |
|
96 | - * @param string $key |
|
97 | - * @return bool |
|
98 | - */ |
|
99 | - public function __isset($key) { |
|
100 | - return isset($this->data[$key]); |
|
101 | - } |
|
92 | + /** |
|
93 | + * Magic isset |
|
94 | + * Checks whether the ViewBag contains the specified key |
|
95 | + * |
|
96 | + * @param string $key |
|
97 | + * @return bool |
|
98 | + */ |
|
99 | + public function __isset($key) { |
|
100 | + return isset($this->data[$key]); |
|
101 | + } |
|
102 | 102 | |
103 | - /** |
|
104 | - * Magic unset |
|
105 | - * Unset the specified key from the ViewBag |
|
106 | - * |
|
107 | - * @param string $key |
|
108 | - */ |
|
109 | - public function __unset($key) { |
|
110 | - unset($this->data[$key]);; |
|
111 | - } |
|
103 | + /** |
|
104 | + * Magic unset |
|
105 | + * Unset the specified key from the ViewBag |
|
106 | + * |
|
107 | + * @param string $key |
|
108 | + */ |
|
109 | + public function __unset($key) { |
|
110 | + unset($this->data[$key]);; |
|
111 | + } |
|
112 | 112 | |
113 | 113 | } |
114 | 114 | |
115 | 115 | \ No newline at end of file |
@@ -113,29 +113,29 @@ discard block |
||
113 | 113 | * @return string|array Estimated birth place if found, null otherwise |
114 | 114 | */ |
115 | 115 | public function getSignificantPlace(){ |
116 | - if($bplace = $this->gedcomrecord->getBirthPlace()){ |
|
117 | - return $bplace; |
|
118 | - } |
|
116 | + if($bplace = $this->gedcomrecord->getBirthPlace()){ |
|
117 | + return $bplace; |
|
118 | + } |
|
119 | 119 | |
120 | - foreach ($this->gedcomrecord->getAllEventPlaces('RESI') as $rplace) { |
|
121 | - if ($rplace) { |
|
122 | - return $rplace; |
|
123 | - } |
|
124 | - } |
|
120 | + foreach ($this->gedcomrecord->getAllEventPlaces('RESI') as $rplace) { |
|
121 | + if ($rplace) { |
|
122 | + return $rplace; |
|
123 | + } |
|
124 | + } |
|
125 | 125 | |
126 | - if($dplace = $this->gedcomrecord->getDeathPlace()){ |
|
127 | - return $dplace; |
|
128 | - } |
|
126 | + if($dplace = $this->gedcomrecord->getDeathPlace()){ |
|
127 | + return $dplace; |
|
128 | + } |
|
129 | 129 | |
130 | - foreach($this->gedcomrecord->getSpouseFamilies() as $fams) { |
|
131 | - foreach ($fams->getAllEventPlaces('RESI') as $rplace) { |
|
132 | - if ($rplace) { |
|
133 | - return $rplace; |
|
134 | - } |
|
135 | - } |
|
136 | - } |
|
130 | + foreach($this->gedcomrecord->getSpouseFamilies() as $fams) { |
|
131 | + foreach ($fams->getAllEventPlaces('RESI') as $rplace) { |
|
132 | + if ($rplace) { |
|
133 | + return $rplace; |
|
134 | + } |
|
135 | + } |
|
136 | + } |
|
137 | 137 | |
138 | - return null; |
|
138 | + return null; |
|
139 | 139 | } |
140 | 140 | |
141 | 141 | /** |
@@ -144,7 +144,7 @@ discard block |
||
144 | 144 | * @return boolean Is the individual a Sosa ancestor |
145 | 145 | */ |
146 | 146 | public function isSosa(){ |
147 | - return count($this->getSosaNumbers()) > 0; |
|
147 | + return count($this->getSosaNumbers()) > 0; |
|
148 | 148 | } |
149 | 149 | |
150 | 150 | /** |
@@ -155,11 +155,11 @@ discard block |
||
155 | 155 | * @return array List of Sosa numbers |
156 | 156 | */ |
157 | 157 | public function getSosaNumbers(){ |
158 | - if($this->sosa === null) { |
|
159 | - $provider = new SosaProvider($this->gedcomrecord->getTree()); |
|
160 | - $this->sosa = $provider->getSosaNumbers($this->gedcomrecord); |
|
161 | - } |
|
162 | - return $this->sosa; |
|
158 | + if($this->sosa === null) { |
|
159 | + $provider = new SosaProvider($this->gedcomrecord->getTree()); |
|
160 | + $this->sosa = $provider->getSosaNumbers($this->gedcomrecord); |
|
161 | + } |
|
162 | + return $this->sosa; |
|
163 | 163 | } |
164 | 164 | |
165 | 165 | /** |
@@ -174,10 +174,10 @@ discard block |
||
174 | 174 | } |
175 | 175 | |
176 | 176 | /** |
177 | - * Check if this individual's death is sourced |
|
178 | - * |
|
179 | - * @return int Level of sources |
|
180 | - * */ |
|
177 | + * Check if this individual's death is sourced |
|
178 | + * |
|
179 | + * @return int Level of sources |
|
180 | + * */ |
|
181 | 181 | public function isDeathSourced(){ |
182 | 182 | if($this->is_death_sourced !== null) return $this->is_death_sourced; |
183 | 183 | $this->is_death_sourced = $this->isFactSourced(WT_EVENTS_DEAT); |
@@ -15,58 +15,58 @@ discard block |
||
15 | 15 | */ |
16 | 16 | class GeoDisplayOptions { |
17 | 17 | |
18 | - /** |
|
18 | + /** |
|
19 | 19 | * Outline map to be used for diaplay |
20 | - * @var (null|OutlineMap) $map |
|
21 | - */ |
|
22 | - protected $map; |
|
20 | + * @var (null|OutlineMap) $map |
|
21 | + */ |
|
22 | + protected $map; |
|
23 | 23 | |
24 | 24 | /** |
25 | 25 | * Level in the Gedcom hierarchy of the parent level of the outline map. |
26 | 26 | * @var int $map_level |
27 | 27 | */ |
28 | - protected $map_level; |
|
28 | + protected $map_level; |
|
29 | 29 | |
30 | 30 | /** |
31 | 31 | * Option to use flags in places display, instead of or in addition to the name. |
32 | 32 | * @var bool $use_flags |
33 | 33 | */ |
34 | - protected $use_flags; |
|
34 | + protected $use_flags; |
|
35 | 35 | |
36 | 36 | /** |
37 | 37 | * Option to define the number of top places to display in the generation view. |
38 | 38 | * @var int $max_details_in_gen |
39 | 39 | */ |
40 | - protected $max_details_in_gen; |
|
40 | + protected $max_details_in_gen; |
|
41 | 41 | |
42 | - /** |
|
42 | + /** |
|
43 | 43 | * Get the outline map to use for display. |
44 | 44 | * |
45 | - * @return (OutlineMap|null) |
|
46 | - */ |
|
47 | - public function getMap(){ |
|
48 | - return $this->map; |
|
49 | - } |
|
45 | + * @return (OutlineMap|null) |
|
46 | + */ |
|
47 | + public function getMap(){ |
|
48 | + return $this->map; |
|
49 | + } |
|
50 | 50 | |
51 | 51 | /** |
52 | 52 | * Set the outline map to use for display. |
53 | 53 | * |
54 | - * @param (OutlineMap|null) $map |
|
54 | + * @param (OutlineMap|null) $map |
|
55 | 55 | * @return self Enable method-chaining |
56 | - */ |
|
57 | - public function setMap(OutlineMap $map = null) { |
|
58 | - $this->map = $map; |
|
59 | - return $this; |
|
60 | - } |
|
56 | + */ |
|
57 | + public function setMap(OutlineMap $map = null) { |
|
58 | + $this->map = $map; |
|
59 | + return $this; |
|
60 | + } |
|
61 | 61 | |
62 | 62 | /** |
63 | 63 | * Get the level of the map parent place |
64 | 64 | * |
65 | 65 | * @return int |
66 | 66 | */ |
67 | - public function getMapLevel(){ |
|
68 | - return $this->map_level; |
|
69 | - } |
|
67 | + public function getMapLevel(){ |
|
68 | + return $this->map_level; |
|
69 | + } |
|
70 | 70 | |
71 | 71 | /** |
72 | 72 | * Set the level of the map parent place |
@@ -74,19 +74,19 @@ discard block |
||
74 | 74 | * @param int $maplevel |
75 | 75 | * @return self Enable method-chaining |
76 | 76 | */ |
77 | - public function setMapLevel($maplevel) { |
|
78 | - $this->map_level = $maplevel; |
|
79 | - return $this; |
|
80 | - } |
|
77 | + public function setMapLevel($maplevel) { |
|
78 | + $this->map_level = $maplevel; |
|
79 | + return $this; |
|
80 | + } |
|
81 | 81 | |
82 | 82 | /** |
83 | 83 | * Get whether flags should be used in places display |
84 | 84 | * |
85 | 85 | * @return bool |
86 | 86 | */ |
87 | - public function isUsingFlags(){ |
|
88 | - return $this->use_flags; |
|
89 | - } |
|
87 | + public function isUsingFlags(){ |
|
88 | + return $this->use_flags; |
|
89 | + } |
|
90 | 90 | |
91 | 91 | /** |
92 | 92 | * Set whether flags should be used in places display |
@@ -94,19 +94,19 @@ discard block |
||
94 | 94 | * @param bool $use_flags |
95 | 95 | * @return self Enable method-chaining |
96 | 96 | */ |
97 | - public function setUsingFlags($use_flags) { |
|
98 | - $this->use_flags = $use_flags; |
|
99 | - return $this; |
|
100 | - } |
|
97 | + public function setUsingFlags($use_flags) { |
|
98 | + $this->use_flags = $use_flags; |
|
99 | + return $this; |
|
100 | + } |
|
101 | 101 | |
102 | 102 | /** |
103 | 103 | * Get the number of Top Places in the generation view |
104 | 104 | * |
105 | 105 | * @return int |
106 | 106 | */ |
107 | - public function getMaxDetailsInGen(){ |
|
108 | - return $this->max_details_in_gen; |
|
109 | - } |
|
107 | + public function getMaxDetailsInGen(){ |
|
108 | + return $this->max_details_in_gen; |
|
109 | + } |
|
110 | 110 | |
111 | 111 | /** |
112 | 112 | * Set the number of Top Places in the generation view |
@@ -114,10 +114,10 @@ discard block |
||
114 | 114 | * @param int $max_details_in_gen |
115 | 115 | * @return self Enable method-chaining |
116 | 116 | */ |
117 | - public function setMaxDetailsInGen($max_details_in_gen) { |
|
118 | - $this->max_details_in_gen = $max_details_in_gen; |
|
119 | - return $this; |
|
120 | - } |
|
117 | + public function setMaxDetailsInGen($max_details_in_gen) { |
|
118 | + $this->max_details_in_gen = $max_details_in_gen; |
|
119 | + return $this; |
|
120 | + } |
|
121 | 121 | |
122 | 122 | } |
123 | 123 | |
124 | 124 | \ No newline at end of file |
@@ -20,253 +20,253 @@ |
||
20 | 20 | */ |
21 | 21 | abstract class AbstractTask { |
22 | 22 | |
23 | - /** |
|
24 | - * Time out for runnign tasks, in seconds. Default 5 min |
|
25 | - * @var int TASK_TIME_OUT |
|
26 | - */ |
|
27 | - const TASK_TIME_OUT = 300; |
|
23 | + /** |
|
24 | + * Time out for runnign tasks, in seconds. Default 5 min |
|
25 | + * @var int TASK_TIME_OUT |
|
26 | + */ |
|
27 | + const TASK_TIME_OUT = 300; |
|
28 | 28 | |
29 | - /** |
|
30 | - * Task provider |
|
31 | - * @var TaskProviderInterface $provider |
|
32 | - */ |
|
29 | + /** |
|
30 | + * Task provider |
|
31 | + * @var TaskProviderInterface $provider |
|
32 | + */ |
|
33 | 33 | protected $provider; |
34 | 34 | |
35 | 35 | /** |
36 | 36 | * Task name |
37 | 37 | * @var string $name |
38 | 38 | */ |
39 | - protected $name; |
|
39 | + protected $name; |
|
40 | 40 | |
41 | - /** |
|
42 | - * Status of the task |
|
43 | - * @var bool $is_enabled |
|
44 | - */ |
|
45 | - protected $is_enabled; |
|
41 | + /** |
|
42 | + * Status of the task |
|
43 | + * @var bool $is_enabled |
|
44 | + */ |
|
45 | + protected $is_enabled; |
|
46 | 46 | |
47 | - /** |
|
48 | - * Last updated date |
|
49 | - * @var \DateTime $last_updated |
|
50 | - */ |
|
51 | - protected $last_updated; |
|
47 | + /** |
|
48 | + * Last updated date |
|
49 | + * @var \DateTime $last_updated |
|
50 | + */ |
|
51 | + protected $last_updated; |
|
52 | 52 | |
53 | - /** |
|
54 | - * Last run result |
|
55 | - * @var bool $last_result |
|
56 | - */ |
|
57 | - protected $last_result; |
|
53 | + /** |
|
54 | + * Last run result |
|
55 | + * @var bool $last_result |
|
56 | + */ |
|
57 | + protected $last_result; |
|
58 | 58 | |
59 | - /** |
|
60 | - * Task run frequency |
|
61 | - * @var int $frequency |
|
62 | - */ |
|
63 | - protected $frequency; |
|
59 | + /** |
|
60 | + * Task run frequency |
|
61 | + * @var int $frequency |
|
62 | + */ |
|
63 | + protected $frequency; |
|
64 | 64 | |
65 | - /** |
|
66 | - * Task remaining runs |
|
67 | - * @var int $nb_occurrences |
|
68 | - */ |
|
69 | - protected $nb_occurrences; |
|
65 | + /** |
|
66 | + * Task remaining runs |
|
67 | + * @var int $nb_occurrences |
|
68 | + */ |
|
69 | + protected $nb_occurrences; |
|
70 | 70 | |
71 | - /** |
|
72 | - * Current running status of the task |
|
73 | - * @var bool $is_running |
|
74 | - */ |
|
75 | - protected $is_running; |
|
71 | + /** |
|
72 | + * Current running status of the task |
|
73 | + * @var bool $is_running |
|
74 | + */ |
|
75 | + protected $is_running; |
|
76 | 76 | |
77 | - /** |
|
78 | - * Constructor for the Admin task class |
|
77 | + /** |
|
78 | + * Constructor for the Admin task class |
|
79 | 79 | * |
80 | 80 | * @param string $file Filename containing the task object |
81 | 81 | * @param TaskProviderInterface $provider Provider for tasks |
82 | - */ |
|
83 | - public function __construct($file, TaskProviderInterface $provider = null){ |
|
84 | - $this->name = trim(basename($file, '.php')); |
|
82 | + */ |
|
83 | + public function __construct($file, TaskProviderInterface $provider = null){ |
|
84 | + $this->name = trim(basename($file, '.php')); |
|
85 | 85 | $this->provider = $provider; |
86 | - } |
|
86 | + } |
|
87 | 87 | |
88 | - /** |
|
89 | - * Get the provider. |
|
90 | - * |
|
91 | - * @return TaskProviderInterface |
|
92 | - */ |
|
93 | - public function getProvider(){ |
|
94 | - return $this->provider; |
|
95 | - } |
|
88 | + /** |
|
89 | + * Get the provider. |
|
90 | + * |
|
91 | + * @return TaskProviderInterface |
|
92 | + */ |
|
93 | + public function getProvider(){ |
|
94 | + return $this->provider; |
|
95 | + } |
|
96 | 96 | |
97 | - /** |
|
98 | - * Set the provider. |
|
99 | - * |
|
100 | - * @param TaskProviderInterface $provider |
|
101 | - * @return self Enable method-chaining |
|
102 | - */ |
|
103 | - public function setProvider(TaskProviderInterface $provider){ |
|
104 | - $this->provider = $provider; |
|
105 | - return $this; |
|
106 | - } |
|
97 | + /** |
|
98 | + * Set the provider. |
|
99 | + * |
|
100 | + * @param TaskProviderInterface $provider |
|
101 | + * @return self Enable method-chaining |
|
102 | + */ |
|
103 | + public function setProvider(TaskProviderInterface $provider){ |
|
104 | + $this->provider = $provider; |
|
105 | + return $this; |
|
106 | + } |
|
107 | 107 | |
108 | - /** |
|
109 | - * Set parameters of the Task |
|
110 | - * |
|
111 | - * @param bool $is_enabled Status of the task |
|
112 | - * @param \DateTime $lastupdated Time of the last task run |
|
113 | - * @param bool $last_result Result of the last run, true for success, false for failure |
|
114 | - * @param int $frequency Frequency of execution in minutes |
|
115 | - * @param int $nb_occur Number of remaining occurrences, 0 for tasks not limited |
|
116 | - * @param bool $is_running Indicates if the task is currently running |
|
117 | - */ |
|
118 | - public function setParameters($is_enabled, \DateTime $last_updated, $last_result, $frequency, $nb_occur, $is_running){ |
|
119 | - $this->is_enabled = $is_enabled; |
|
120 | - $this->last_updated = $last_updated; |
|
121 | - $this->last_result = $last_result; |
|
122 | - $this->frequency = $frequency; |
|
123 | - $this->nb_occurrences = $nb_occur; |
|
124 | - $this->is_running = $is_running; |
|
125 | - } |
|
108 | + /** |
|
109 | + * Set parameters of the Task |
|
110 | + * |
|
111 | + * @param bool $is_enabled Status of the task |
|
112 | + * @param \DateTime $lastupdated Time of the last task run |
|
113 | + * @param bool $last_result Result of the last run, true for success, false for failure |
|
114 | + * @param int $frequency Frequency of execution in minutes |
|
115 | + * @param int $nb_occur Number of remaining occurrences, 0 for tasks not limited |
|
116 | + * @param bool $is_running Indicates if the task is currently running |
|
117 | + */ |
|
118 | + public function setParameters($is_enabled, \DateTime $last_updated, $last_result, $frequency, $nb_occur, $is_running){ |
|
119 | + $this->is_enabled = $is_enabled; |
|
120 | + $this->last_updated = $last_updated; |
|
121 | + $this->last_result = $last_result; |
|
122 | + $this->frequency = $frequency; |
|
123 | + $this->nb_occurrences = $nb_occur; |
|
124 | + $this->is_running = $is_running; |
|
125 | + } |
|
126 | 126 | |
127 | - /** |
|
128 | - * Get the name of the task |
|
129 | - * |
|
130 | - * @return string |
|
131 | - */ |
|
132 | - public function getName(){ |
|
133 | - return $this->name; |
|
134 | - } |
|
127 | + /** |
|
128 | + * Get the name of the task |
|
129 | + * |
|
130 | + * @return string |
|
131 | + */ |
|
132 | + public function getName(){ |
|
133 | + return $this->name; |
|
134 | + } |
|
135 | 135 | |
136 | 136 | |
137 | - /** |
|
138 | - * Return the status of the task in a boolean way |
|
139 | - * |
|
140 | - * @return boolean True if enabled |
|
141 | - */ |
|
142 | - public function isEnabled(){ |
|
143 | - return $this->is_enabled; |
|
144 | - } |
|
137 | + /** |
|
138 | + * Return the status of the task in a boolean way |
|
139 | + * |
|
140 | + * @return boolean True if enabled |
|
141 | + */ |
|
142 | + public function isEnabled(){ |
|
143 | + return $this->is_enabled; |
|
144 | + } |
|
145 | 145 | |
146 | - /** |
|
147 | - * Get the last updated time. |
|
148 | - * |
|
149 | - * @return \DateTime |
|
150 | - */ |
|
151 | - public function getLastUpdated(){ |
|
152 | - return $this->last_updated; |
|
153 | - } |
|
146 | + /** |
|
147 | + * Get the last updated time. |
|
148 | + * |
|
149 | + * @return \DateTime |
|
150 | + */ |
|
151 | + public function getLastUpdated(){ |
|
152 | + return $this->last_updated; |
|
153 | + } |
|
154 | 154 | |
155 | - /** |
|
156 | - * Check if the last result has been successful. |
|
157 | - * |
|
158 | - * @return bool |
|
159 | - */ |
|
160 | - public function isLastRunSuccess(){ |
|
161 | - return $this->last_result; |
|
162 | - } |
|
155 | + /** |
|
156 | + * Check if the last result has been successful. |
|
157 | + * |
|
158 | + * @return bool |
|
159 | + */ |
|
160 | + public function isLastRunSuccess(){ |
|
161 | + return $this->last_result; |
|
162 | + } |
|
163 | 163 | |
164 | - /** |
|
165 | - * Get the task frequency. |
|
166 | - * |
|
167 | - * @return int |
|
168 | - */ |
|
169 | - public function getFrequency(){ |
|
170 | - return $this->frequency; |
|
171 | - } |
|
164 | + /** |
|
165 | + * Get the task frequency. |
|
166 | + * |
|
167 | + * @return int |
|
168 | + */ |
|
169 | + public function getFrequency(){ |
|
170 | + return $this->frequency; |
|
171 | + } |
|
172 | 172 | |
173 | 173 | /** |
174 | - * Set the task frequency. |
|
175 | - * |
|
174 | + * Set the task frequency. |
|
175 | + * |
|
176 | 176 | * @param int $frequency |
177 | - * @return self Enable method-chaining |
|
178 | - */ |
|
179 | - public function setFrequency($frequency){ |
|
180 | - $this->frequency = $frequency; |
|
177 | + * @return self Enable method-chaining |
|
178 | + */ |
|
179 | + public function setFrequency($frequency){ |
|
180 | + $this->frequency = $frequency; |
|
181 | 181 | return $this; |
182 | - } |
|
182 | + } |
|
183 | 183 | |
184 | - /** |
|
185 | - * Get the number of remaining occurrences. |
|
186 | - * |
|
187 | - * @return int |
|
188 | - */ |
|
189 | - public function getRemainingOccurrences(){ |
|
190 | - return $this->nb_occurrences; |
|
191 | - } |
|
184 | + /** |
|
185 | + * Get the number of remaining occurrences. |
|
186 | + * |
|
187 | + * @return int |
|
188 | + */ |
|
189 | + public function getRemainingOccurrences(){ |
|
190 | + return $this->nb_occurrences; |
|
191 | + } |
|
192 | 192 | |
193 | 193 | /** |
194 | - * Set the number of remaining occurrences. |
|
195 | - * |
|
194 | + * Set the number of remaining occurrences. |
|
195 | + * |
|
196 | 196 | * @param int $nb_occur |
197 | - * @return self Enable method-chaining |
|
198 | - */ |
|
199 | - public function setRemainingOccurrences($nb_occur){ |
|
200 | - $this->nb_occurrences = $nb_occur; |
|
197 | + * @return self Enable method-chaining |
|
198 | + */ |
|
199 | + public function setRemainingOccurrences($nb_occur){ |
|
200 | + $this->nb_occurrences = $nb_occur; |
|
201 | 201 | return $this; |
202 | - } |
|
202 | + } |
|
203 | 203 | |
204 | - /** |
|
205 | - * Check if the task if running. |
|
206 | - * |
|
207 | - * @return bool |
|
208 | - */ |
|
209 | - public function isRunning(){ |
|
210 | - return $this->is_running; |
|
211 | - } |
|
204 | + /** |
|
205 | + * Check if the task if running. |
|
206 | + * |
|
207 | + * @return bool |
|
208 | + */ |
|
209 | + public function isRunning(){ |
|
210 | + return $this->is_running; |
|
211 | + } |
|
212 | 212 | |
213 | 213 | |
214 | - /** |
|
215 | - * Return the name to display for the task |
|
216 | - * |
|
217 | - * @return string Title for the task |
|
218 | - */ |
|
219 | - abstract public function getTitle(); |
|
214 | + /** |
|
215 | + * Return the name to display for the task |
|
216 | + * |
|
217 | + * @return string Title for the task |
|
218 | + */ |
|
219 | + abstract public function getTitle(); |
|
220 | 220 | |
221 | - /** |
|
222 | - * Return the default frequency for the execution of the task |
|
223 | - * |
|
224 | - * @return int Frequency for the execution of the task |
|
225 | - */ |
|
226 | - abstract public function getDefaultFrequency(); |
|
221 | + /** |
|
222 | + * Return the default frequency for the execution of the task |
|
223 | + * |
|
224 | + * @return int Frequency for the execution of the task |
|
225 | + */ |
|
226 | + abstract public function getDefaultFrequency(); |
|
227 | 227 | |
228 | - /** |
|
229 | - * Execute the task's actions |
|
230 | - */ |
|
231 | - abstract protected function executeSteps(); |
|
228 | + /** |
|
229 | + * Execute the task's actions |
|
230 | + */ |
|
231 | + abstract protected function executeSteps(); |
|
232 | 232 | |
233 | 233 | /** |
234 | 234 | * Persist task state into database. |
235 | 235 | * @return bool |
236 | 236 | */ |
237 | 237 | public function save() { |
238 | - if(!$this->provider) throw new \Exception('The task has not been initialised with a provider.'); |
|
238 | + if(!$this->provider) throw new \Exception('The task has not been initialised with a provider.'); |
|
239 | 239 | return $this->provider->updateTask($this); |
240 | 240 | } |
241 | 241 | |
242 | - /** |
|
243 | - * Execute the task, default skeleton |
|
244 | - * |
|
245 | - */ |
|
246 | - public function execute(){ |
|
242 | + /** |
|
243 | + * Execute the task, default skeleton |
|
244 | + * |
|
245 | + */ |
|
246 | + public function execute(){ |
|
247 | 247 | |
248 | - if($this->last_updated->add(new \DateInterval('PT'.self::TASK_TIME_OUT.'S')) < new \DateTime()) |
|
249 | - $this->is_running = false; |
|
248 | + if($this->last_updated->add(new \DateInterval('PT'.self::TASK_TIME_OUT.'S')) < new \DateTime()) |
|
249 | + $this->is_running = false; |
|
250 | 250 | |
251 | - if(!$this->is_running){ |
|
252 | - $this->last_result = false; |
|
253 | - $this->is_running = true; |
|
254 | - $this->save(); |
|
251 | + if(!$this->is_running){ |
|
252 | + $this->last_result = false; |
|
253 | + $this->is_running = true; |
|
254 | + $this->save(); |
|
255 | 255 | |
256 | - Log::addDebugLog('Start execution of Admin task: '.$this->getTitle()); |
|
257 | - $this->last_result = $this->executeSteps(); |
|
258 | - if($this->last_result){ |
|
259 | - $this->last_updated = new \DateTime(); |
|
260 | - if($this->nb_occurrences > 0){ |
|
261 | - $this->nb_occurrences--; |
|
262 | - if($this->nb_occurrences == 0) $this->is_enabled = false; |
|
263 | - } |
|
264 | - } |
|
265 | - $this->is_running = false; |
|
266 | - $this->save(); |
|
267 | - Log::addDebugLog('Execution completed for Admin task: '.$this->getTitle().' - '.($this->last_result ? 'Success' : 'Failure')); |
|
268 | - } |
|
269 | - } |
|
256 | + Log::addDebugLog('Start execution of Admin task: '.$this->getTitle()); |
|
257 | + $this->last_result = $this->executeSteps(); |
|
258 | + if($this->last_result){ |
|
259 | + $this->last_updated = new \DateTime(); |
|
260 | + if($this->nb_occurrences > 0){ |
|
261 | + $this->nb_occurrences--; |
|
262 | + if($this->nb_occurrences == 0) $this->is_enabled = false; |
|
263 | + } |
|
264 | + } |
|
265 | + $this->is_running = false; |
|
266 | + $this->save(); |
|
267 | + Log::addDebugLog('Execution completed for Admin task: '.$this->getTitle().' - '.($this->last_result ? 'Success' : 'Failure')); |
|
268 | + } |
|
269 | + } |
|
270 | 270 | |
271 | 271 | |
272 | 272 | } |
@@ -16,51 +16,51 @@ |
||
16 | 16 | */ |
17 | 17 | interface HookProviderInterface { |
18 | 18 | |
19 | - /** |
|
20 | - * Return an instance of the hook linked to the specifed function / context |
|
21 | - * |
|
22 | - * @param string $hook_function |
|
23 | - * @param string $hook_context |
|
24 | - * @return Hook |
|
25 | - */ |
|
26 | - public function get($hook_function, $hook_context = null); |
|
19 | + /** |
|
20 | + * Return an instance of the hook linked to the specifed function / context |
|
21 | + * |
|
22 | + * @param string $hook_function |
|
23 | + * @param string $hook_context |
|
24 | + * @return Hook |
|
25 | + */ |
|
26 | + public function get($hook_function, $hook_context = null); |
|
27 | 27 | |
28 | - /** |
|
29 | - * Return whether the Hook module is active and the table has been created. |
|
30 | - * |
|
31 | - * @uses \MyArtJaub\Webtrees\Module\ModuleManager to check if the module is operational |
|
32 | - * @return bool True if module active and table created, false otherwise |
|
33 | - */ |
|
34 | - public function isModuleOperational(); |
|
28 | + /** |
|
29 | + * Return whether the Hook module is active and the table has been created. |
|
30 | + * |
|
31 | + * @uses \MyArtJaub\Webtrees\Module\ModuleManager to check if the module is operational |
|
32 | + * @return bool True if module active and table created, false otherwise |
|
33 | + */ |
|
34 | + public function isModuleOperational(); |
|
35 | 35 | |
36 | - /** |
|
37 | - * Get the list of possible hooks in the list of modules files. |
|
38 | - * A hook will be registered: |
|
39 | - * - for all modules already registered in Webtrees |
|
40 | - * - if the module implements HookSubscriberInterface |
|
41 | - * - if the method exist within the module |
|
42 | - * |
|
43 | - * @return Array List of possible hooks, with the priority |
|
44 | - */ |
|
45 | - public function getPossibleHooks(); |
|
36 | + /** |
|
37 | + * Get the list of possible hooks in the list of modules files. |
|
38 | + * A hook will be registered: |
|
39 | + * - for all modules already registered in Webtrees |
|
40 | + * - if the module implements HookSubscriberInterface |
|
41 | + * - if the method exist within the module |
|
42 | + * |
|
43 | + * @return Array List of possible hooks, with the priority |
|
44 | + */ |
|
45 | + public function getPossibleHooks(); |
|
46 | 46 | |
47 | - /** |
|
48 | - * Get the list of hooks intalled in webtrees, with their id, status and priority. |
|
49 | - * |
|
50 | - * @return array List of installed hooks |
|
51 | - */ |
|
52 | - public function getRawInstalledHooks(); |
|
47 | + /** |
|
48 | + * Get the list of hooks intalled in webtrees, with their id, status and priority. |
|
49 | + * |
|
50 | + * @return array List of installed hooks |
|
51 | + */ |
|
52 | + public function getRawInstalledHooks(); |
|
53 | 53 | |
54 | - /** |
|
55 | - * Get the list of hooks intalled in webtrees, with their id, status and priority. |
|
56 | - * |
|
57 | - * @return Array List of installed hooks, with id, status and priority |
|
58 | - */ |
|
59 | - public function getInstalledHooks(); |
|
54 | + /** |
|
55 | + * Get the list of hooks intalled in webtrees, with their id, status and priority. |
|
56 | + * |
|
57 | + * @return Array List of installed hooks, with id, status and priority |
|
58 | + */ |
|
59 | + public function getInstalledHooks(); |
|
60 | 60 | |
61 | - /** |
|
62 | - * Update the list of hooks, identifying missing ones and removed ones. |
|
63 | - */ |
|
64 | - public function updateHooks(); |
|
61 | + /** |
|
62 | + * Update the list of hooks, identifying missing ones and removed ones. |
|
63 | + */ |
|
64 | + public function updateHooks(); |
|
65 | 65 | |
66 | 66 | } |
67 | 67 | \ No newline at end of file |
@@ -19,116 +19,116 @@ |
||
19 | 19 | */ |
20 | 20 | class SosaCalculator { |
21 | 21 | |
22 | - /** |
|
23 | - * Maximium size for the temporary Sosa table |
|
24 | - * @var int TMP_SOSA_TABLE_LIMIT |
|
25 | - */ |
|
26 | - const TMP_SOSA_TABLE_LIMIT = 1000; |
|
22 | + /** |
|
23 | + * Maximium size for the temporary Sosa table |
|
24 | + * @var int TMP_SOSA_TABLE_LIMIT |
|
25 | + */ |
|
26 | + const TMP_SOSA_TABLE_LIMIT = 1000; |
|
27 | 27 | |
28 | - /** |
|
29 | - * Reference user |
|
30 | - * @var Fisharebest\Webtrees\User $user |
|
31 | - */ |
|
32 | - protected $user; |
|
28 | + /** |
|
29 | + * Reference user |
|
30 | + * @var Fisharebest\Webtrees\User $user |
|
31 | + */ |
|
32 | + protected $user; |
|
33 | 33 | |
34 | - /** |
|
35 | - * Reference tree |
|
36 | - * @var Fisharebest\Webtrees\Tree $tree |
|
37 | - */ |
|
38 | - protected $tree; |
|
34 | + /** |
|
35 | + * Reference tree |
|
36 | + * @var Fisharebest\Webtrees\Tree $tree |
|
37 | + */ |
|
38 | + protected $tree; |
|
39 | 39 | |
40 | - /** |
|
41 | - * Sosa Provider for the calculator |
|
42 | - * @var \MyArtJaub\Webtrees\Module\Sosa\Model\SosaCalculator $sosa_provider |
|
43 | - */ |
|
44 | - protected $sosa_provider; |
|
40 | + /** |
|
41 | + * Sosa Provider for the calculator |
|
42 | + * @var \MyArtJaub\Webtrees\Module\Sosa\Model\SosaCalculator $sosa_provider |
|
43 | + */ |
|
44 | + protected $sosa_provider; |
|
45 | 45 | |
46 | - /** |
|
47 | - * Temporary Sosa table, used during construction |
|
48 | - * @var array $tmp_sosa_table |
|
49 | - */ |
|
50 | - protected $tmp_sosa_table; |
|
46 | + /** |
|
47 | + * Temporary Sosa table, used during construction |
|
48 | + * @var array $tmp_sosa_table |
|
49 | + */ |
|
50 | + protected $tmp_sosa_table; |
|
51 | 51 | |
52 | - /** |
|
53 | - * Constructor for the Sosa Calculator |
|
54 | - * @param Tree $tree |
|
55 | - * @param User $user |
|
56 | - */ |
|
57 | - public function __construct(Tree $tree, User $user) { |
|
58 | - $this->tree = $tree; |
|
59 | - $this->user = $user; |
|
52 | + /** |
|
53 | + * Constructor for the Sosa Calculator |
|
54 | + * @param Tree $tree |
|
55 | + * @param User $user |
|
56 | + */ |
|
57 | + public function __construct(Tree $tree, User $user) { |
|
58 | + $this->tree = $tree; |
|
59 | + $this->user = $user; |
|
60 | 60 | |
61 | - $this->sosa_provider = new SosaProvider($this->tree, $this->user);; |
|
62 | - } |
|
61 | + $this->sosa_provider = new SosaProvider($this->tree, $this->user);; |
|
62 | + } |
|
63 | 63 | |
64 | - /** |
|
65 | - * Compute all Sosa ancestors from the user's root individual. |
|
66 | - * @return bool Result of the computation |
|
67 | - */ |
|
68 | - public function computeAll() { |
|
69 | - $root_id = $this->tree->getUserPreference($this->user, 'MAJ_SOSA_ROOT_ID'); |
|
70 | - $indi = Individual::getInstance($root_id, $this->tree); |
|
71 | - if($indi){ |
|
72 | - $this->sosa_provider->deleteAll(); |
|
73 | - $this->addNode($indi, 1); |
|
74 | - $this->flushTmpSosaTable(true); |
|
75 | - return true; |
|
76 | - } |
|
77 | - return false; |
|
78 | - } |
|
64 | + /** |
|
65 | + * Compute all Sosa ancestors from the user's root individual. |
|
66 | + * @return bool Result of the computation |
|
67 | + */ |
|
68 | + public function computeAll() { |
|
69 | + $root_id = $this->tree->getUserPreference($this->user, 'MAJ_SOSA_ROOT_ID'); |
|
70 | + $indi = Individual::getInstance($root_id, $this->tree); |
|
71 | + if($indi){ |
|
72 | + $this->sosa_provider->deleteAll(); |
|
73 | + $this->addNode($indi, 1); |
|
74 | + $this->flushTmpSosaTable(true); |
|
75 | + return true; |
|
76 | + } |
|
77 | + return false; |
|
78 | + } |
|
79 | 79 | |
80 | - /** |
|
81 | - * Compute all Sosa Ancestors from a specified Individual |
|
82 | - * @param Individual $indi |
|
83 | - * @return bool Result of the computation |
|
84 | - */ |
|
85 | - public function computeFromIndividual(Individual $indi) { |
|
86 | - $dindi = new \MyArtJaub\Webtrees\Individual($indi); |
|
87 | - $current_sosas = $dindi->getSosaNumbers(); |
|
88 | - foreach($current_sosas as $current_sosa => $gen) { |
|
89 | - $this->sosa_provider->deleteAncestors($current_sosa); |
|
90 | - $this->addNode($indi, $current_sosa); |
|
91 | - } |
|
92 | - $this->flushTmpSosaTable(true); |
|
93 | - return true; |
|
94 | - } |
|
80 | + /** |
|
81 | + * Compute all Sosa Ancestors from a specified Individual |
|
82 | + * @param Individual $indi |
|
83 | + * @return bool Result of the computation |
|
84 | + */ |
|
85 | + public function computeFromIndividual(Individual $indi) { |
|
86 | + $dindi = new \MyArtJaub\Webtrees\Individual($indi); |
|
87 | + $current_sosas = $dindi->getSosaNumbers(); |
|
88 | + foreach($current_sosas as $current_sosa => $gen) { |
|
89 | + $this->sosa_provider->deleteAncestors($current_sosa); |
|
90 | + $this->addNode($indi, $current_sosa); |
|
91 | + } |
|
92 | + $this->flushTmpSosaTable(true); |
|
93 | + return true; |
|
94 | + } |
|
95 | 95 | |
96 | - /** |
|
97 | - * Recursive method to add individual to the Sosa table, and flush it regularly |
|
98 | - * @param Individual $indi Individual to add |
|
99 | - * @param int $sosa Individual's sosa |
|
100 | - */ |
|
101 | - protected function addNode(Individual $indi, $sosa) { |
|
102 | - $birth_year = $indi->getEstimatedBirthDate()->gregorianYear(); |
|
103 | - $death_year = $indi->getEstimatedDeathDate()->gregorianYear(); |
|
96 | + /** |
|
97 | + * Recursive method to add individual to the Sosa table, and flush it regularly |
|
98 | + * @param Individual $indi Individual to add |
|
99 | + * @param int $sosa Individual's sosa |
|
100 | + */ |
|
101 | + protected function addNode(Individual $indi, $sosa) { |
|
102 | + $birth_year = $indi->getEstimatedBirthDate()->gregorianYear(); |
|
103 | + $death_year = $indi->getEstimatedDeathDate()->gregorianYear(); |
|
104 | 104 | |
105 | - $this->tmp_sosa_table[] = array( |
|
106 | - 'indi' => $indi->getXref(), |
|
107 | - 'sosa' => $sosa, |
|
108 | - 'birth_year' => $birth_year, |
|
109 | - 'death_year' => $death_year |
|
110 | - ); |
|
105 | + $this->tmp_sosa_table[] = array( |
|
106 | + 'indi' => $indi->getXref(), |
|
107 | + 'sosa' => $sosa, |
|
108 | + 'birth_year' => $birth_year, |
|
109 | + 'death_year' => $death_year |
|
110 | + ); |
|
111 | 111 | |
112 | - $this->flushTmpSosaTable(); |
|
112 | + $this->flushTmpSosaTable(); |
|
113 | 113 | |
114 | - if($fam = $indi->getPrimaryChildFamily()) { |
|
115 | - if($husb = $fam->getHusband()) $this->addNode($husb, 2 * $sosa); |
|
116 | - if($wife = $fam->getWife()) $this->addNode($wife, 2 * $sosa + 1); |
|
117 | - } |
|
118 | - } |
|
114 | + if($fam = $indi->getPrimaryChildFamily()) { |
|
115 | + if($husb = $fam->getHusband()) $this->addNode($husb, 2 * $sosa); |
|
116 | + if($wife = $fam->getWife()) $this->addNode($wife, 2 * $sosa + 1); |
|
117 | + } |
|
118 | + } |
|
119 | 119 | |
120 | - /** |
|
121 | - * Write sosas in the table, if the number of items is superior to the limit, or if forced. |
|
122 | - * |
|
123 | - * @param bool $force Should the flush be forced |
|
124 | - */ |
|
125 | - protected function flushTmpSosaTable($force = false) { |
|
126 | - if( count($this->tmp_sosa_table)> 0 && |
|
127 | - ($force || count($this->tmp_sosa_table) >= self::TMP_SOSA_TABLE_LIMIT)){ |
|
128 | - $this->sosa_provider->insertOrUpdate($this->tmp_sosa_table); |
|
129 | - $this->tmp_sosa_table = array(); |
|
130 | - } |
|
131 | - } |
|
120 | + /** |
|
121 | + * Write sosas in the table, if the number of items is superior to the limit, or if forced. |
|
122 | + * |
|
123 | + * @param bool $force Should the flush be forced |
|
124 | + */ |
|
125 | + protected function flushTmpSosaTable($force = false) { |
|
126 | + if( count($this->tmp_sosa_table)> 0 && |
|
127 | + ($force || count($this->tmp_sosa_table) >= self::TMP_SOSA_TABLE_LIMIT)){ |
|
128 | + $this->sosa_provider->insertOrUpdate($this->tmp_sosa_table); |
|
129 | + $this->tmp_sosa_table = array(); |
|
130 | + } |
|
131 | + } |
|
132 | 132 | |
133 | 133 | } |
134 | 134 | |
135 | 135 | \ No newline at end of file |
@@ -29,11 +29,11 @@ discard block |
||
29 | 29 | */ |
30 | 30 | class HealthCheckEmailTask extends AbstractTask implements ConfigurableTaskInterface { |
31 | 31 | |
32 | - /** |
|
33 | - * {@inheritDoc} |
|
34 | - * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\AbstractTask::getTitle() |
|
35 | - */ |
|
36 | - public function getTitle() { |
|
32 | + /** |
|
33 | + * {@inheritDoc} |
|
34 | + * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\AbstractTask::getTitle() |
|
35 | + */ |
|
36 | + public function getTitle() { |
|
37 | 37 | return I18N::translate('Healthcheck Email'); |
38 | 38 | } |
39 | 39 | |
@@ -41,7 +41,7 @@ discard block |
||
41 | 41 | * {@inheritDoc} |
42 | 42 | * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\AbstractTask::getDefaultFrequency() |
43 | 43 | */ |
44 | - public function getDefaultFrequency() { |
|
44 | + public function getDefaultFrequency() { |
|
45 | 45 | return 10080; // = 1 week = 7 * 24 * 60 min |
46 | 46 | } |
47 | 47 | |
@@ -49,7 +49,7 @@ discard block |
||
49 | 49 | * {@inheritDoc} |
50 | 50 | * @see \MyArtJaub\Webtrees\Module\AdminTasks\Model\AbstractTask::executeSteps() |
51 | 51 | */ |
52 | - protected function executeSteps() { |
|
52 | + protected function executeSteps() { |
|
53 | 53 | |
54 | 54 | $res = false; |
55 | 55 | |
@@ -63,14 +63,14 @@ discard block |
||
63 | 63 | $interval = max($this->frequency, $interval_sincelast); |
64 | 64 | $nbdays = ceil($interval / (24 * 60)); |
65 | 65 | |
66 | - // Check for updates |
|
67 | - $latest_version_txt = Functions::fetchLatestVersion(); |
|
68 | - if (preg_match('/^[0-9.]+\|[0-9.]+\|/', $latest_version_txt)) { |
|
69 | - list($latest_version, , $download_url) = explode('|', $latest_version_txt); |
|
70 | - } else { |
|
71 | - // Cannot determine the latest version |
|
72 | - list($latest_version, , $download_url) = explode('|', '||'); |
|
73 | - } |
|
66 | + // Check for updates |
|
67 | + $latest_version_txt = Functions::fetchLatestVersion(); |
|
68 | + if (preg_match('/^[0-9.]+\|[0-9.]+\|/', $latest_version_txt)) { |
|
69 | + list($latest_version, , $download_url) = explode('|', $latest_version_txt); |
|
70 | + } else { |
|
71 | + // Cannot determine the latest version |
|
72 | + list($latest_version, , $download_url) = explode('|', '||'); |
|
73 | + } |
|
74 | 74 | |
75 | 75 | // Users statistics |
76 | 76 | $warnusers = 0; |
@@ -213,15 +213,15 @@ discard block |
||
213 | 213 | $html = ' |
214 | 214 | <div class="form-group"> |
215 | 215 | <label class="control-label col-sm-3"> '. |
216 | - I18N::translate('Enable healthcheck emails for') . |
|
217 | - '</label> |
|
216 | + I18N::translate('Enable healthcheck emails for') . |
|
217 | + '</label> |
|
218 | 218 | <div class="col-sm-9">'; |
219 | 219 | |
220 | 220 | foreach(Tree::getAll() as $tree){ |
221 | 221 | if(Auth::isManager($tree)){ |
222 | - $html .= '<div class="form-group row"> |
|
222 | + $html .= '<div class="form-group row"> |
|
223 | 223 | <span class="col-sm-3 control-label">' . |
224 | - $tree->getTitle() . |
|
224 | + $tree->getTitle() . |
|
225 | 225 | '</span> |
226 | 226 | <div class="col-sm-2">'; |
227 | 227 | $html .= FunctionsEdit::editFieldYesNo('HEALTHCHECK_ENABLED_' . $tree->getTreeId(), $tree->getPreference('MAJ_AT_'.$this->getName().'_ENABLED', 1), 'class="radio-inline"'); |
@@ -230,8 +230,8 @@ discard block |
||
230 | 230 | } |
231 | 231 | |
232 | 232 | $html .= ' <p class="small text-muted">'. |
233 | - I18N::translate('Enable the health check emails for each of the selected trees.') . |
|
234 | - '</p> |
|
233 | + I18N::translate('Enable the health check emails for each of the selected trees.') . |
|
234 | + '</p> |
|
235 | 235 | </div> |
236 | 236 | </div>'; |
237 | 237 |
@@ -24,16 +24,16 @@ |
||
24 | 24 | */ |
25 | 25 | public function upgrade() { |
26 | 26 | Database::exec( |
27 | - 'CREATE TABLE IF NOT EXISTS `##maj_admintasks` ('. |
|
28 | - ' majat_name VARCHAR(32) NOT NULL,'. |
|
29 | - ' majat_status ENUM(\'enabled\',\'disabled\') NOT NULL DEFAULT \'disabled\','. |
|
30 | - ' majat_last_run DATETIME NOT NULL DEFAULT \'2000-01-01 00:00:00\','. |
|
31 | - ' majat_last_result TINYINT(1) NOT NULL DEFAULT 1,'. // 0 means error, 1 is success |
|
32 | - ' majat_frequency INTEGER NOT NULL DEFAULT 10080,'. // In min, Default every week |
|
33 | - ' majat_nb_occur SMALLINT NOT NULL DEFAULT 0,'. |
|
34 | - ' majat_running TINYINT(1) NOT NULL DEFAULT 0,'. |
|
35 | - ' PRIMARY KEY (majat_name)'. |
|
36 | - ') COLLATE utf8_unicode_ci ENGINE=InnoDB' |
|
27 | + 'CREATE TABLE IF NOT EXISTS `##maj_admintasks` ('. |
|
28 | + ' majat_name VARCHAR(32) NOT NULL,'. |
|
29 | + ' majat_status ENUM(\'enabled\',\'disabled\') NOT NULL DEFAULT \'disabled\','. |
|
30 | + ' majat_last_run DATETIME NOT NULL DEFAULT \'2000-01-01 00:00:00\','. |
|
31 | + ' majat_last_result TINYINT(1) NOT NULL DEFAULT 1,'. // 0 means error, 1 is success |
|
32 | + ' majat_frequency INTEGER NOT NULL DEFAULT 10080,'. // In min, Default every week |
|
33 | + ' majat_nb_occur SMALLINT NOT NULL DEFAULT 0,'. |
|
34 | + ' majat_running TINYINT(1) NOT NULL DEFAULT 0,'. |
|
35 | + ' PRIMARY KEY (majat_name)'. |
|
36 | + ') COLLATE utf8_unicode_ci ENGINE=InnoDB' |
|
37 | 37 | ); |
38 | 38 | } |
39 | 39 | } |
@@ -24,89 +24,89 @@ discard block |
||
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 | - $max_details_gen = $this->data->get('max_details_gen'); |
|
30 | - $analysis_level = $this->data->get('analysis_level'); |
|
31 | - $results_by_gen = $this->data->get('results_by_generations'); |
|
32 | - $display_all_places = $this->data->get('display_all_places', true); |
|
29 | + $max_details_gen = $this->data->get('max_details_gen'); |
|
30 | + $analysis_level = $this->data->get('analysis_level'); |
|
31 | + $results_by_gen = $this->data->get('results_by_generations'); |
|
32 | + $display_all_places = $this->data->get('display_all_places', true); |
|
33 | 33 | |
34 | - $html = |
|
35 | - '<div id="geodispersion_gen"> |
|
34 | + $html = |
|
35 | + '<div id="geodispersion_gen"> |
|
36 | 36 | <table id="geodispersion_gentable" class="center">'; |
37 | 37 | |
38 | - foreach($results_by_gen as $gen => $genData){ |
|
39 | - $html .= |
|
40 | - '<tr> |
|
38 | + foreach($results_by_gen as $gen => $genData){ |
|
39 | + $html .= |
|
40 | + '<tr> |
|
41 | 41 | <td class="descriptionbox">' . |
42 | - I18N::translate("Generation %s", I18N::number($gen)). |
|
43 | - ($display_all_places ? '<br />' : ' '). |
|
44 | - I18N::translate('(%s)', I18N::percentage(Functions::safeDivision($genData['sum'] + $genData['other'], $genData['sum'] + $genData['other'] + $genData['unknown']),1)) . |
|
45 | - '</td> |
|
42 | + I18N::translate("Generation %s", I18N::number($gen)). |
|
43 | + ($display_all_places ? '<br />' : ' '). |
|
44 | + I18N::translate('(%s)', I18N::percentage(Functions::safeDivision($genData['sum'] + $genData['other'], $genData['sum'] + $genData['other'] + $genData['unknown']),1)) . |
|
45 | + '</td> |
|
46 | 46 | <td class="optionbox left">'. |
47 | - ($display_all_places ? |
|
48 | - $this->htmlGenerationAllPlacesRow($genData, $analysis_level) : |
|
49 | - $this->htmlGenerationTopPlacesRow($genData, $analysis_level) |
|
50 | - ) . |
|
51 | - '</ditdv> |
|
47 | + ($display_all_places ? |
|
48 | + $this->htmlGenerationAllPlacesRow($genData, $analysis_level) : |
|
49 | + $this->htmlGenerationTopPlacesRow($genData, $analysis_level) |
|
50 | + ) . |
|
51 | + '</ditdv> |
|
52 | 52 | </tr>'; |
53 | - } |
|
53 | + } |
|
54 | 54 | |
55 | - $html.= |
|
56 | - '</table> |
|
55 | + $html.= |
|
56 | + '</table> |
|
57 | 57 | <div class="left"> |
58 | 58 | <strong>' . I18N::translate('Interpretation help:') . '</strong> |
59 | 59 | <br />'. |
60 | - 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.') . |
|
61 | - '<br />'; |
|
62 | - if(!is_null($max_details_gen) && $max_details_gen == 0){ |
|
63 | - $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 />'; |
|
64 | - $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%%.'); |
|
65 | - } |
|
66 | - else{ |
|
67 | - $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 />'; |
|
68 | - $html .= I18N::translate('Only the %d more frequent places for each generation are displayed.', $max_details_gen); |
|
69 | - } |
|
70 | - $html.= |
|
71 | - '</div> |
|
60 | + 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.') . |
|
61 | + '<br />'; |
|
62 | + if(!is_null($max_details_gen) && $max_details_gen == 0){ |
|
63 | + $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 />'; |
|
64 | + $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%%.'); |
|
65 | + } |
|
66 | + else{ |
|
67 | + $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 />'; |
|
68 | + $html .= I18N::translate('Only the %d more frequent places for each generation are displayed.', $max_details_gen); |
|
69 | + } |
|
70 | + $html.= |
|
71 | + '</div> |
|
72 | 72 | </div>'; |
73 | 73 | |
74 | - return $html; |
|
75 | - } |
|
74 | + return $html; |
|
75 | + } |
|
76 | 76 | |
77 | 77 | |
78 | - /** |
|
79 | - * Return the HTML code to display a row with all places found in a generation. |
|
80 | - * |
|
81 | - * @param array $data Data array |
|
82 | - * @param int $analysis_level Level of subdivision of analysis |
|
83 | - * @return string HTML code for all places row |
|
84 | - */ |
|
85 | - protected function htmlGenerationAllPlacesRow($data, $analysis_level) { |
|
86 | - $html = |
|
87 | - '<table class="geodispersion_bigrow"> |
|
78 | + /** |
|
79 | + * Return the HTML code to display a row with all places found in a generation. |
|
80 | + * |
|
81 | + * @param array $data Data array |
|
82 | + * @param int $analysis_level Level of subdivision of analysis |
|
83 | + * @return string HTML code for all places row |
|
84 | + */ |
|
85 | + protected function htmlGenerationAllPlacesRow($data, $analysis_level) { |
|
86 | + $html = |
|
87 | + '<table class="geodispersion_bigrow"> |
|
88 | 88 | <tr>'; |
89 | 89 | |
90 | - $sum_gen = $data['sum']; |
|
91 | - $unknownother = $data['unknown'] + $data['other']; |
|
92 | - foreach($data['places'] as $placename=> $dataplace){ |
|
93 | - $levels = array_map('trim',explode(',', $placename)); |
|
94 | - $content = ''; |
|
95 | - if(isset($dataplace['flag'])){ |
|
96 | - $content .= '<td class="geodispersion_flag">'. FunctionsPrint::htmlPlaceIcon($dataplace['place'], $dataplace['flag']) .'</td><td>'; |
|
97 | - } |
|
98 | - else{ |
|
99 | - $content .= '<td><span title="'.implode(I18N::$list_separator, array_reverse($levels)).'">'.$levels[$analysis_level-1].'</span><br/>'; |
|
100 | - } |
|
101 | - $count = $dataplace['count']; |
|
102 | - $content .= I18N::number($count); |
|
103 | - $perc = Functions::safeDivision($count, $sum_gen + $unknownother); |
|
104 | - $perc2= Functions::safeDivision($count, $sum_gen); |
|
105 | - if($perc2>=0.1) |
|
106 | - $content.= '<br/><span class="small">('.I18N::percentage($perc2, 1).')</span>'; |
|
107 | - $content .= '</td>'; |
|
90 | + $sum_gen = $data['sum']; |
|
91 | + $unknownother = $data['unknown'] + $data['other']; |
|
92 | + foreach($data['places'] as $placename=> $dataplace){ |
|
93 | + $levels = array_map('trim',explode(',', $placename)); |
|
94 | + $content = ''; |
|
95 | + if(isset($dataplace['flag'])){ |
|
96 | + $content .= '<td class="geodispersion_flag">'. FunctionsPrint::htmlPlaceIcon($dataplace['place'], $dataplace['flag']) .'</td><td>'; |
|
97 | + } |
|
98 | + else{ |
|
99 | + $content .= '<td><span title="'.implode(I18N::$list_separator, array_reverse($levels)).'">'.$levels[$analysis_level-1].'</span><br/>'; |
|
100 | + } |
|
101 | + $count = $dataplace['count']; |
|
102 | + $content .= I18N::number($count); |
|
103 | + $perc = Functions::safeDivision($count, $sum_gen + $unknownother); |
|
104 | + $perc2= Functions::safeDivision($count, $sum_gen); |
|
105 | + if($perc2>=0.1) |
|
106 | + $content.= '<br/><span class="small">('.I18N::percentage($perc2, 1).')</span>'; |
|
107 | + $content .= '</td>'; |
|
108 | 108 | |
109 | - $html .= ' |
|
109 | + $html .= ' |
|
110 | 110 | <td class="geodispersion_rowitem" width="'.max(round(100*$perc, 0),1).'%"> |
111 | 111 | <table> |
112 | 112 | <tr> |
@@ -118,46 +118,46 @@ discard block |
||
118 | 118 | </tr> |
119 | 119 | </table> |
120 | 120 | </td>'; |
121 | - } |
|
121 | + } |
|
122 | 122 | |
123 | - if($unknownother>0){ |
|
124 | - $perc= Functions::safeDivision($unknownother, $sum_gen + $unknownother); |
|
125 | - $html .='<td class="geodispersion_unknownitem left" >'.I18N::number($unknownother); |
|
126 | - if($perc>=0.1) $html.= '<br/><span class="small">('.I18N::percentage($perc, 1).')</span>'; |
|
127 | - $html .='</td>'; |
|
128 | - } |
|
123 | + if($unknownother>0){ |
|
124 | + $perc= Functions::safeDivision($unknownother, $sum_gen + $unknownother); |
|
125 | + $html .='<td class="geodispersion_unknownitem left" >'.I18N::number($unknownother); |
|
126 | + if($perc>=0.1) $html.= '<br/><span class="small">('.I18N::percentage($perc, 1).')</span>'; |
|
127 | + $html .='</td>'; |
|
128 | + } |
|
129 | 129 | |
130 | - $html .= |
|
131 | - '</tr> |
|
130 | + $html .= |
|
131 | + '</tr> |
|
132 | 132 | </table>'; |
133 | - return $html; |
|
134 | - } |
|
133 | + return $html; |
|
134 | + } |
|
135 | 135 | |
136 | 136 | /** |
137 | 137 | * Returns the HTML code fo display a row of the Top Places found for a generation. |
138 | 138 | * |
139 | 139 | * @param array $data Data array |
140 | - * @param int $analysis_level Level of subdivision of analysis |
|
140 | + * @param int $analysis_level Level of subdivision of analysis |
|
141 | 141 | * @return string HTML code for Top Places row |
142 | 142 | */ |
143 | - protected function htmlGenerationTopPlacesRow($data, $analysis_level) { |
|
144 | - $tmp_places = array(); |
|
145 | - $sum_gen = $data['sum']; |
|
146 | - $other = $data['other']; |
|
143 | + protected function htmlGenerationTopPlacesRow($data, $analysis_level) { |
|
144 | + $tmp_places = array(); |
|
145 | + $sum_gen = $data['sum']; |
|
146 | + $other = $data['other']; |
|
147 | 147 | |
148 | - foreach($data['places'] as $placename => $count) { |
|
149 | - if($placename != 'other'){ |
|
150 | - $levels = array_map('trim',explode(',', $placename)); |
|
151 | - $placename = '<span title="'.implode(I18N::$list_separator, array_reverse($levels)).'">'.$levels[$analysis_level-1].'</span>'; |
|
152 | - } |
|
153 | - else{ |
|
154 | - $placename = I18N::translate('Other places'); |
|
155 | - } |
|
156 | - $tmp_places[] = I18N::translate('<strong>%s</strong> [%d - %s]', $placename, $count, I18N::percentage(Functions::safeDivision($count, $sum_gen + $other), 1)); |
|
157 | - } |
|
148 | + foreach($data['places'] as $placename => $count) { |
|
149 | + if($placename != 'other'){ |
|
150 | + $levels = array_map('trim',explode(',', $placename)); |
|
151 | + $placename = '<span title="'.implode(I18N::$list_separator, array_reverse($levels)).'">'.$levels[$analysis_level-1].'</span>'; |
|
152 | + } |
|
153 | + else{ |
|
154 | + $placename = I18N::translate('Other places'); |
|
155 | + } |
|
156 | + $tmp_places[] = I18N::translate('<strong>%s</strong> [%d - %s]', $placename, $count, I18N::percentage(Functions::safeDivision($count, $sum_gen + $other), 1)); |
|
157 | + } |
|
158 | 158 | |
159 | - return implode(I18N::$list_separator, $tmp_places); |
|
160 | - } |
|
159 | + return implode(I18N::$list_separator, $tmp_places); |
|
160 | + } |
|
161 | 161 | |
162 | 162 | } |
163 | 163 | |
164 | 164 | \ No newline at end of file |