@@ -24,84 +24,84 @@ |
||
24 | 24 | $controller->restrictAccess(Auth::isAdmin()); |
25 | 25 | |
26 | 26 | switch (Filter::post('action')) { |
27 | -case 'site': |
|
28 | - if (Filter::checkCsrf()) { |
|
29 | - $INDEX_DIRECTORY = Filter::post('INDEX_DIRECTORY'); |
|
30 | - if (substr($INDEX_DIRECTORY, -1) !== '/') { |
|
31 | - $INDEX_DIRECTORY .= '/'; |
|
27 | + case 'site': |
|
28 | + if (Filter::checkCsrf()) { |
|
29 | + $INDEX_DIRECTORY = Filter::post('INDEX_DIRECTORY'); |
|
30 | + if (substr($INDEX_DIRECTORY, -1) !== '/') { |
|
31 | + $INDEX_DIRECTORY .= '/'; |
|
32 | + } |
|
33 | + if (File::mkdir($INDEX_DIRECTORY)) { |
|
34 | + Site::setPreference('INDEX_DIRECTORY', $INDEX_DIRECTORY); |
|
35 | + } else { |
|
36 | + FlashMessages::addMessage(I18N::translate('The folder %s does not exist, and it could not be created.', Html::escape($INDEX_DIRECTORY)), 'danger'); |
|
37 | + } |
|
38 | + Site::setPreference('MEMORY_LIMIT', Filter::post('MEMORY_LIMIT')); |
|
39 | + Site::setPreference('MAX_EXECUTION_TIME', Filter::post('MAX_EXECUTION_TIME')); |
|
40 | + Site::setPreference('ALLOW_USER_THEMES', Filter::postBool('ALLOW_USER_THEMES')); |
|
41 | + Site::setPreference('THEME_DIR', Filter::post('THEME_DIR')); |
|
42 | + Site::setPreference('ALLOW_CHANGE_GEDCOM', Filter::postBool('ALLOW_CHANGE_GEDCOM')); |
|
43 | + Site::setPreference('SESSION_TIME', Filter::post('SESSION_TIME')); |
|
44 | + Site::setPreference('TIMEZONE', Filter::post('TIMEZONE')); |
|
45 | + FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); |
|
32 | 46 | } |
33 | - if (File::mkdir($INDEX_DIRECTORY)) { |
|
34 | - Site::setPreference('INDEX_DIRECTORY', $INDEX_DIRECTORY); |
|
35 | - } else { |
|
36 | - FlashMessages::addMessage(I18N::translate('The folder %s does not exist, and it could not be created.', Html::escape($INDEX_DIRECTORY)), 'danger'); |
|
47 | + header('Location: ' . route('admin-control-panel')); |
|
48 | + |
|
49 | + return; |
|
50 | + |
|
51 | + case 'email': |
|
52 | + if (Filter::checkCsrf()) { |
|
53 | + Site::setPreference('SMTP_ACTIVE', Filter::post('SMTP_ACTIVE')); |
|
54 | + Site::setPreference('SMTP_FROM_NAME', Filter::post('SMTP_FROM_NAME')); |
|
55 | + Site::setPreference('SMTP_HOST', Filter::post('SMTP_HOST')); |
|
56 | + Site::setPreference('SMTP_PORT', Filter::post('SMTP_PORT')); |
|
57 | + Site::setPreference('SMTP_AUTH', Filter::post('SMTP_AUTH')); |
|
58 | + Site::setPreference('SMTP_AUTH_USER', Filter::post('SMTP_AUTH_USER')); |
|
59 | + Site::setPreference('SMTP_SSL', Filter::post('SMTP_SSL')); |
|
60 | + Site::setPreference('SMTP_HELO', Filter::post('SMTP_HELO')); |
|
61 | + if (Filter::post('SMTP_AUTH_PASS')) { |
|
62 | + Site::setPreference('SMTP_AUTH_PASS', Filter::post('SMTP_AUTH_PASS')); |
|
63 | + } |
|
64 | + FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); |
|
37 | 65 | } |
38 | - Site::setPreference('MEMORY_LIMIT', Filter::post('MEMORY_LIMIT')); |
|
39 | - Site::setPreference('MAX_EXECUTION_TIME', Filter::post('MAX_EXECUTION_TIME')); |
|
40 | - Site::setPreference('ALLOW_USER_THEMES', Filter::postBool('ALLOW_USER_THEMES')); |
|
41 | - Site::setPreference('THEME_DIR', Filter::post('THEME_DIR')); |
|
42 | - Site::setPreference('ALLOW_CHANGE_GEDCOM', Filter::postBool('ALLOW_CHANGE_GEDCOM')); |
|
43 | - Site::setPreference('SESSION_TIME', Filter::post('SESSION_TIME')); |
|
44 | - Site::setPreference('TIMEZONE', Filter::post('TIMEZONE')); |
|
45 | - FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); |
|
46 | - } |
|
47 | - header('Location: ' . route('admin-control-panel')); |
|
48 | - |
|
49 | - return; |
|
50 | - |
|
51 | -case 'email': |
|
52 | - if (Filter::checkCsrf()) { |
|
53 | - Site::setPreference('SMTP_ACTIVE', Filter::post('SMTP_ACTIVE')); |
|
54 | - Site::setPreference('SMTP_FROM_NAME', Filter::post('SMTP_FROM_NAME')); |
|
55 | - Site::setPreference('SMTP_HOST', Filter::post('SMTP_HOST')); |
|
56 | - Site::setPreference('SMTP_PORT', Filter::post('SMTP_PORT')); |
|
57 | - Site::setPreference('SMTP_AUTH', Filter::post('SMTP_AUTH')); |
|
58 | - Site::setPreference('SMTP_AUTH_USER', Filter::post('SMTP_AUTH_USER')); |
|
59 | - Site::setPreference('SMTP_SSL', Filter::post('SMTP_SSL')); |
|
60 | - Site::setPreference('SMTP_HELO', Filter::post('SMTP_HELO')); |
|
61 | - if (Filter::post('SMTP_AUTH_PASS')) { |
|
62 | - Site::setPreference('SMTP_AUTH_PASS', Filter::post('SMTP_AUTH_PASS')); |
|
66 | + header('Location: ' . route('admin-control-panel')); |
|
67 | + |
|
68 | + return; |
|
69 | + case 'login': |
|
70 | + if (Filter::checkCsrf()) { |
|
71 | + Site::setPreference('LOGIN_URL', Filter::post('LOGIN_URL')); |
|
72 | + Site::setPreference('WELCOME_TEXT_AUTH_MODE', Filter::post('WELCOME_TEXT_AUTH_MODE')); |
|
73 | + Site::setPreference('WELCOME_TEXT_AUTH_MODE_' . WT_LOCALE, Filter::post('WELCOME_TEXT_AUTH_MODE_4')); |
|
74 | + Site::setPreference('USE_REGISTRATION_MODULE', Filter::postBool('USE_REGISTRATION_MODULE')); |
|
75 | + Site::setPreference('SHOW_REGISTER_CAUTION', Filter::postBool('SHOW_REGISTER_CAUTION')); |
|
76 | + FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); |
|
63 | 77 | } |
64 | - FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); |
|
65 | - } |
|
66 | - header('Location: ' . route('admin-control-panel')); |
|
67 | - |
|
68 | - return; |
|
69 | -case 'login': |
|
70 | - if (Filter::checkCsrf()) { |
|
71 | - Site::setPreference('LOGIN_URL', Filter::post('LOGIN_URL')); |
|
72 | - Site::setPreference('WELCOME_TEXT_AUTH_MODE', Filter::post('WELCOME_TEXT_AUTH_MODE')); |
|
73 | - Site::setPreference('WELCOME_TEXT_AUTH_MODE_' . WT_LOCALE, Filter::post('WELCOME_TEXT_AUTH_MODE_4')); |
|
74 | - Site::setPreference('USE_REGISTRATION_MODULE', Filter::postBool('USE_REGISTRATION_MODULE')); |
|
75 | - Site::setPreference('SHOW_REGISTER_CAUTION', Filter::postBool('SHOW_REGISTER_CAUTION')); |
|
76 | - FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); |
|
77 | - } |
|
78 | - header('Location: ' . route('admin-control-panel')); |
|
79 | - |
|
80 | - return; |
|
78 | + header('Location: ' . route('admin-control-panel')); |
|
79 | + |
|
80 | + return; |
|
81 | + |
|
82 | + case 'tracking': |
|
83 | + if (Filter::checkCsrf()) { |
|
84 | + Site::setPreference('BING_WEBMASTER_ID', Filter::post('BING_WEBMASTER_ID')); |
|
85 | + Site::setPreference('GOOGLE_WEBMASTER_ID', Filter::post('GOOGLE_WEBMASTER_ID')); |
|
86 | + Site::setPreference('GOOGLE_ANALYTICS_ID', Filter::post('GOOGLE_ANALYTICS_ID')); |
|
87 | + Site::setPreference('PIWIK_URL', Filter::post('PIWIK_URL')); |
|
88 | + Site::setPreference('PIWIK_SITE_ID', Filter::post('PIWIK_SITE_ID')); |
|
89 | + Site::setPreference('STATCOUNTER_PROJECT_ID', Filter::post('STATCOUNTER_PROJECT_ID')); |
|
90 | + Site::setPreference('STATCOUNTER_SECURITY_ID', Filter::post('STATCOUNTER_SECURITY_ID')); |
|
91 | + FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); |
|
92 | + } |
|
93 | + header('Location: ' . route('admin-control-panel')); |
|
81 | 94 | |
82 | -case 'tracking': |
|
83 | - if (Filter::checkCsrf()) { |
|
84 | - Site::setPreference('BING_WEBMASTER_ID', Filter::post('BING_WEBMASTER_ID')); |
|
85 | - Site::setPreference('GOOGLE_WEBMASTER_ID', Filter::post('GOOGLE_WEBMASTER_ID')); |
|
86 | - Site::setPreference('GOOGLE_ANALYTICS_ID', Filter::post('GOOGLE_ANALYTICS_ID')); |
|
87 | - Site::setPreference('PIWIK_URL', Filter::post('PIWIK_URL')); |
|
88 | - Site::setPreference('PIWIK_SITE_ID', Filter::post('PIWIK_SITE_ID')); |
|
89 | - Site::setPreference('STATCOUNTER_PROJECT_ID', Filter::post('STATCOUNTER_PROJECT_ID')); |
|
90 | - Site::setPreference('STATCOUNTER_SECURITY_ID', Filter::post('STATCOUNTER_SECURITY_ID')); |
|
91 | - FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); |
|
92 | - } |
|
93 | - header('Location: ' . route('admin-control-panel')); |
|
95 | + return; |
|
94 | 96 | |
95 | - return; |
|
96 | - |
|
97 | -case 'languages': |
|
98 | - if (Filter::checkCsrf()) { |
|
99 | - Site::setPreference('LANGUAGES', implode(',', Filter::postArray('LANGUAGES'))); |
|
100 | - FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); |
|
101 | - } |
|
102 | - header('Location: ' . route('admin-control-panel')); |
|
97 | + case 'languages': |
|
98 | + if (Filter::checkCsrf()) { |
|
99 | + Site::setPreference('LANGUAGES', implode(',', Filter::postArray('LANGUAGES'))); |
|
100 | + FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); |
|
101 | + } |
|
102 | + header('Location: ' . route('admin-control-panel')); |
|
103 | 103 | |
104 | - return; |
|
104 | + return; |
|
105 | 105 | } |
106 | 106 | |
107 | 107 | // Lists of options for <select> controls. |
@@ -131,12 +131,12 @@ |
||
131 | 131 | // Datatables numbers columns 0, 1, 2 |
132 | 132 | // MySQL numbers columns 1, 2, 3 |
133 | 133 | switch ($value['dir']) { |
134 | - case 'asc': |
|
135 | - $order_by .= (1 + $value['column']) . " ASC "; |
|
136 | - break; |
|
137 | - case 'desc': |
|
138 | - $order_by .= (1 + $value['column']) . " DESC "; |
|
139 | - break; |
|
134 | + case 'asc': |
|
135 | + $order_by .= (1 + $value['column']) . " ASC "; |
|
136 | + break; |
|
137 | + case 'desc': |
|
138 | + $order_by .= (1 + $value['column']) . " DESC "; |
|
139 | + break; |
|
140 | 140 | } |
141 | 141 | } |
142 | 142 | } else { |
@@ -54,32 +54,32 @@ discard block |
||
54 | 54 | $newvars[$name]['id'] = $var; |
55 | 55 | if (!empty($type[$name])) { |
56 | 56 | switch ($type[$name]) { |
57 | - case 'INDI': |
|
58 | - $record = Individual::getInstance($var, $WT_TREE); |
|
59 | - if ($record && $record->canShowName()) { |
|
60 | - $newvars[$name]['gedcom'] = $record->privatizeGedcom(Auth::accessLevel($WT_TREE)); |
|
61 | - } else { |
|
62 | - $action = 'setup'; |
|
63 | - } |
|
64 | - break; |
|
65 | - case 'FAM': |
|
66 | - $record = Family::getInstance($var, $WT_TREE); |
|
67 | - if ($record && $record->canShowName()) { |
|
68 | - $newvars[$name]['gedcom'] = $record->privatizeGedcom(Auth::accessLevel($WT_TREE)); |
|
69 | - } else { |
|
70 | - $action = 'setup'; |
|
71 | - } |
|
72 | - break; |
|
73 | - case 'SOUR': |
|
74 | - $record = Source::getInstance($var, $WT_TREE); |
|
75 | - if ($record && $record->canShowName()) { |
|
76 | - $newvars[$name]['gedcom'] = $record->privatizeGedcom(Auth::accessLevel($WT_TREE)); |
|
77 | - } else { |
|
78 | - $action = 'setup'; |
|
79 | - } |
|
80 | - break; |
|
81 | - default: |
|
82 | - break; |
|
57 | + case 'INDI': |
|
58 | + $record = Individual::getInstance($var, $WT_TREE); |
|
59 | + if ($record && $record->canShowName()) { |
|
60 | + $newvars[$name]['gedcom'] = $record->privatizeGedcom(Auth::accessLevel($WT_TREE)); |
|
61 | + } else { |
|
62 | + $action = 'setup'; |
|
63 | + } |
|
64 | + break; |
|
65 | + case 'FAM': |
|
66 | + $record = Family::getInstance($var, $WT_TREE); |
|
67 | + if ($record && $record->canShowName()) { |
|
68 | + $newvars[$name]['gedcom'] = $record->privatizeGedcom(Auth::accessLevel($WT_TREE)); |
|
69 | + } else { |
|
70 | + $action = 'setup'; |
|
71 | + } |
|
72 | + break; |
|
73 | + case 'SOUR': |
|
74 | + $record = Source::getInstance($var, $WT_TREE); |
|
75 | + if ($record && $record->canShowName()) { |
|
76 | + $newvars[$name]['gedcom'] = $record->privatizeGedcom(Auth::accessLevel($WT_TREE)); |
|
77 | + } else { |
|
78 | + $action = 'setup'; |
|
79 | + } |
|
80 | + break; |
|
81 | + default: |
|
82 | + break; |
|
83 | 83 | } |
84 | 84 | } |
85 | 85 | } |
@@ -142,61 +142,61 @@ discard block |
||
142 | 142 | ]; |
143 | 143 | |
144 | 144 | switch ($input['lookup']) { |
145 | - case 'INDI': |
|
146 | - $individual = Individual::getInstance($pid, $WT_TREE) ?: $controller->getSignificantIndividual(); |
|
147 | - $input['control'] = FunctionsEdit::formControlIndividual($individual, $attributes); |
|
148 | - break; |
|
149 | - case 'FAM': |
|
150 | - $family = Family::getInstance($pid, $WT_TREE) ?: $controller->getSignificantFamily(); |
|
151 | - $input['control'] = FunctionsEdit::formControlFamily($family, $attributes); |
|
152 | - break; |
|
153 | - case 'SOUR': |
|
154 | - $source = Source::getInstance($pid, $WT_TREE); |
|
155 | - $input['control'] = FunctionsEdit::formControlSource($source, $attributes); |
|
156 | - break; |
|
157 | - case 'DATE': |
|
158 | - $attributes += [ |
|
159 | - 'type' => 'text', |
|
160 | - 'value' => $input['default'], |
|
161 | - ]; |
|
162 | - $input['control'] = '<input ' . Html::attributes($attributes) . '>'; |
|
163 | - $input['extra'] = FontAwesome::linkIcon('calendar', I18N::translate('Select a date'), [ |
|
164 | - 'class' => 'btn btn-link', |
|
165 | - 'href' => '#', |
|
166 | - 'onclick' => 'return calendarWidget("calendar-widget-' . $n . '", "input-' . $n . '");', |
|
167 | - ]) . '<div id="calendar-widget-' . $n . '" style="position:absolute;visibility:hidden;background-color:white;z-index:1000;"></div>'; |
|
168 | - break; |
|
169 | - default: |
|
170 | - switch ($input['type']) { |
|
171 | - case 'text': |
|
145 | + case 'INDI': |
|
146 | + $individual = Individual::getInstance($pid, $WT_TREE) ?: $controller->getSignificantIndividual(); |
|
147 | + $input['control'] = FunctionsEdit::formControlIndividual($individual, $attributes); |
|
148 | + break; |
|
149 | + case 'FAM': |
|
150 | + $family = Family::getInstance($pid, $WT_TREE) ?: $controller->getSignificantFamily(); |
|
151 | + $input['control'] = FunctionsEdit::formControlFamily($family, $attributes); |
|
152 | + break; |
|
153 | + case 'SOUR': |
|
154 | + $source = Source::getInstance($pid, $WT_TREE); |
|
155 | + $input['control'] = FunctionsEdit::formControlSource($source, $attributes); |
|
156 | + break; |
|
157 | + case 'DATE': |
|
172 | 158 | $attributes += [ |
173 | 159 | 'type' => 'text', |
174 | 160 | 'value' => $input['default'], |
175 | 161 | ]; |
176 | 162 | $input['control'] = '<input ' . Html::attributes($attributes) . '>'; |
163 | + $input['extra'] = FontAwesome::linkIcon('calendar', I18N::translate('Select a date'), [ |
|
164 | + 'class' => 'btn btn-link', |
|
165 | + 'href' => '#', |
|
166 | + 'onclick' => 'return calendarWidget("calendar-widget-' . $n . '", "input-' . $n . '");', |
|
167 | + ]) . '<div id="calendar-widget-' . $n . '" style="position:absolute;visibility:hidden;background-color:white;z-index:1000;"></div>'; |
|
177 | 168 | break; |
178 | - case 'checkbox': |
|
179 | - $attributes += [ |
|
180 | - 'type' => 'checkbox', |
|
181 | - 'checked' => (bool) $input['default'], |
|
182 | - ]; |
|
183 | - $input['control'] = '<input ' . Html::attributes($attributes) . '>'; |
|
184 | - break; |
|
185 | - case 'select': |
|
186 | - $options = []; |
|
187 | - foreach (preg_split('/[|]+/', $input['options']) as $option) { |
|
188 | - list($key, $value) = explode('=>', $option); |
|
189 | - if (preg_match('/^I18N::number\((.+?)(,([\d+]))?\)$/', $value, $match)) { |
|
190 | - $options[$key] = I18N::number($match[1], isset($match[3]) ? $match[3] : 0); |
|
191 | - } elseif (preg_match('/^I18N::translate\(\'(.+)\'\)$/', $value, $match)) { |
|
192 | - $options[$key] = I18N::translate($match[1]); |
|
193 | - } elseif (preg_match('/^I18N::translateContext\(\'(.+)\', *\'(.+)\'\)$/', $value, $match)) { |
|
194 | - $options[$key] = I18N::translateContext($match[1], $match[2]); |
|
195 | - } |
|
169 | + default: |
|
170 | + switch ($input['type']) { |
|
171 | + case 'text': |
|
172 | + $attributes += [ |
|
173 | + 'type' => 'text', |
|
174 | + 'value' => $input['default'], |
|
175 | + ]; |
|
176 | + $input['control'] = '<input ' . Html::attributes($attributes) . '>'; |
|
177 | + break; |
|
178 | + case 'checkbox': |
|
179 | + $attributes += [ |
|
180 | + 'type' => 'checkbox', |
|
181 | + 'checked' => (bool) $input['default'], |
|
182 | + ]; |
|
183 | + $input['control'] = '<input ' . Html::attributes($attributes) . '>'; |
|
184 | + break; |
|
185 | + case 'select': |
|
186 | + $options = []; |
|
187 | + foreach (preg_split('/[|]+/', $input['options']) as $option) { |
|
188 | + list($key, $value) = explode('=>', $option); |
|
189 | + if (preg_match('/^I18N::number\((.+?)(,([\d+]))?\)$/', $value, $match)) { |
|
190 | + $options[$key] = I18N::number($match[1], isset($match[3]) ? $match[3] : 0); |
|
191 | + } elseif (preg_match('/^I18N::translate\(\'(.+)\'\)$/', $value, $match)) { |
|
192 | + $options[$key] = I18N::translate($match[1]); |
|
193 | + } elseif (preg_match('/^I18N::translateContext\(\'(.+)\', *\'(.+)\'\)$/', $value, $match)) { |
|
194 | + $options[$key] = I18N::translateContext($match[1], $match[2]); |
|
195 | + } |
|
196 | + } |
|
197 | + $input['control'] = Bootstrap4::select($options, $input['default'], $attributes); |
|
198 | + break; |
|
196 | 199 | } |
197 | - $input['control'] = Bootstrap4::select($options, $input['default'], $attributes); |
|
198 | - break; |
|
199 | - } |
|
200 | 200 | } |
201 | 201 | |
202 | 202 | $inputs[] = $input; |
@@ -221,13 +221,13 @@ discard block |
||
221 | 221 | } |
222 | 222 | |
223 | 223 | switch ($output) { |
224 | - case 'HTML': |
|
225 | - header('Content-type: text/html; charset=UTF-8'); |
|
226 | - new ReportParserGenerate($report, new ReportHtml, $vars); |
|
227 | - break; |
|
228 | - case 'PDF': |
|
229 | - new ReportParserGenerate($report, new ReportPdf, $vars); |
|
230 | - break; |
|
224 | + case 'HTML': |
|
225 | + header('Content-type: text/html; charset=UTF-8'); |
|
226 | + new ReportParserGenerate($report, new ReportHtml, $vars); |
|
227 | + break; |
|
228 | + case 'PDF': |
|
229 | + new ReportParserGenerate($report, new ReportPdf, $vars); |
|
230 | + break; |
|
231 | 231 | } |
232 | 232 | } |
233 | 233 | } |
@@ -37,19 +37,19 @@ |
||
37 | 37 | |
38 | 38 | if ($action === 'download') { |
39 | 39 | switch ($privatize_export) { |
40 | - default: |
|
41 | - case 'gedadmin': |
|
42 | - $access_level = Auth::PRIV_NONE; |
|
43 | - break; |
|
44 | - case 'user': |
|
45 | - $access_level = Auth::PRIV_USER; |
|
46 | - break; |
|
47 | - case 'visitor': |
|
48 | - $access_level = Auth::PRIV_PRIVATE; |
|
49 | - break; |
|
50 | - case 'none': |
|
51 | - $access_level = Auth::PRIV_HIDE; |
|
52 | - break; |
|
40 | + default: |
|
41 | + case 'gedadmin': |
|
42 | + $access_level = Auth::PRIV_NONE; |
|
43 | + break; |
|
44 | + case 'user': |
|
45 | + $access_level = Auth::PRIV_USER; |
|
46 | + break; |
|
47 | + case 'visitor': |
|
48 | + $access_level = Auth::PRIV_PRIVATE; |
|
49 | + break; |
|
50 | + case 'none': |
|
51 | + $access_level = Auth::PRIV_HIDE; |
|
52 | + break; |
|
53 | 53 | } |
54 | 54 | |
55 | 55 | $exportOptions = [ |
@@ -62,14 +62,14 @@ |
||
62 | 62 | foreach ($record->getFacts() as $fact) { |
63 | 63 | if ($fact->getFactId() == $fact_id) { |
64 | 64 | switch ($fact->getTag()) { |
65 | - case 'NOTE': |
|
66 | - case 'SOUR': |
|
67 | - case 'OBJE': |
|
68 | - $type = 'all'; // paste this anywhere |
|
69 | - break; |
|
70 | - default: |
|
71 | - $type = $record::RECORD_TYPE; // paste only to the same record type |
|
72 | - break; |
|
65 | + case 'NOTE': |
|
66 | + case 'SOUR': |
|
67 | + case 'OBJE': |
|
68 | + $type = 'all'; // paste this anywhere |
|
69 | + break; |
|
70 | + default: |
|
71 | + $type = $record::RECORD_TYPE; // paste only to the same record type |
|
72 | + break; |
|
73 | 73 | } |
74 | 74 | $clipboard = Session::get('clipboard'); |
75 | 75 | if (!is_array($clipboard)) { |
@@ -777,69 +777,69 @@ discard block |
||
777 | 777 | $stmt_gedcom_setting->execute([$GED_DATA['id'], 'INDI_FACTS_QUICK', $INDI_FACTS_QUICK]); |
778 | 778 | $stmt_gedcom_setting->execute([$GED_DATA['id'], 'INDI_FACTS_UNIQUE', $INDI_FACTS_UNIQUE]); |
779 | 779 | switch ($LANGUAGE) { |
780 | - case 'catalan': |
|
781 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'ca']); |
|
782 | - break; |
|
783 | - case 'english-uk': |
|
784 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'en-GB']); |
|
785 | - break; |
|
786 | - case 'polish': |
|
787 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'pl']); |
|
788 | - break; |
|
789 | - case 'italian': |
|
790 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'it']); |
|
791 | - break; |
|
792 | - case 'spanish': |
|
793 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'es']); |
|
794 | - break; |
|
795 | - case 'finnish': |
|
796 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'fi']); |
|
797 | - break; |
|
798 | - case 'french': |
|
799 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'fr']); |
|
800 | - break; |
|
801 | - case 'german': |
|
802 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'de']); |
|
803 | - break; |
|
804 | - case 'danish': |
|
805 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'da']); |
|
806 | - break; |
|
807 | - case 'portuguese': |
|
808 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'pt']); |
|
809 | - break; |
|
810 | - case 'hebrew': |
|
811 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'he']); |
|
812 | - break; |
|
813 | - case 'estonian': |
|
814 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'et']); |
|
815 | - break; |
|
816 | - case 'turkish': |
|
817 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'tr']); |
|
818 | - break; |
|
819 | - case 'dutch': |
|
820 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'nl']); |
|
821 | - break; |
|
822 | - case 'slovak': |
|
823 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'sk']); |
|
824 | - break; |
|
825 | - case 'norwegian': |
|
826 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'nn']); |
|
827 | - break; |
|
828 | - case 'slovenian': |
|
829 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'sl']); |
|
830 | - break; |
|
831 | - case 'hungarian': |
|
832 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'hu']); |
|
833 | - break; |
|
834 | - case 'swedish': |
|
835 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'sv']); |
|
836 | - break; |
|
837 | - case 'russian': |
|
838 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'ru']); |
|
839 | - break; |
|
840 | - default: |
|
841 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'en-US']); |
|
842 | - break; |
|
780 | + case 'catalan': |
|
781 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'ca']); |
|
782 | + break; |
|
783 | + case 'english-uk': |
|
784 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'en-GB']); |
|
785 | + break; |
|
786 | + case 'polish': |
|
787 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'pl']); |
|
788 | + break; |
|
789 | + case 'italian': |
|
790 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'it']); |
|
791 | + break; |
|
792 | + case 'spanish': |
|
793 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'es']); |
|
794 | + break; |
|
795 | + case 'finnish': |
|
796 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'fi']); |
|
797 | + break; |
|
798 | + case 'french': |
|
799 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'fr']); |
|
800 | + break; |
|
801 | + case 'german': |
|
802 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'de']); |
|
803 | + break; |
|
804 | + case 'danish': |
|
805 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'da']); |
|
806 | + break; |
|
807 | + case 'portuguese': |
|
808 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'pt']); |
|
809 | + break; |
|
810 | + case 'hebrew': |
|
811 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'he']); |
|
812 | + break; |
|
813 | + case 'estonian': |
|
814 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'et']); |
|
815 | + break; |
|
816 | + case 'turkish': |
|
817 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'tr']); |
|
818 | + break; |
|
819 | + case 'dutch': |
|
820 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'nl']); |
|
821 | + break; |
|
822 | + case 'slovak': |
|
823 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'sk']); |
|
824 | + break; |
|
825 | + case 'norwegian': |
|
826 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'nn']); |
|
827 | + break; |
|
828 | + case 'slovenian': |
|
829 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'sl']); |
|
830 | + break; |
|
831 | + case 'hungarian': |
|
832 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'hu']); |
|
833 | + break; |
|
834 | + case 'swedish': |
|
835 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'sv']); |
|
836 | + break; |
|
837 | + case 'russian': |
|
838 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'ru']); |
|
839 | + break; |
|
840 | + default: |
|
841 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'LANGUAGE', 'en-US']); |
|
842 | + break; |
|
843 | 843 | } |
844 | 844 | $stmt_gedcom_setting->execute([$GED_DATA['id'], 'MAX_ALIVE_AGE', $MAX_ALIVE_AGE]); |
845 | 845 | $stmt_gedcom_setting->execute([$GED_DATA['id'], 'MAX_DESCENDANCY_GENERATIONS', $MAX_DESCENDANCY_GENERATIONS]); |
@@ -892,26 +892,26 @@ discard block |
||
892 | 892 | $stmt_gedcom_setting->execute([$GED_DATA['id'], 'SURNAME_LIST_STYLE', $SURNAME_LIST_STYLE]); |
893 | 893 | $stmt_gedcom_setting->execute([$GED_DATA['id'], 'SURNAME_TRADITION', $SURNAME_TRADITION]); |
894 | 894 | switch ($THEME_DIR) { |
895 | - case '': |
|
896 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', '']); |
|
897 | - break; |
|
898 | - case 'themes/cloudy/': |
|
899 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', 'clouds']); |
|
900 | - break; |
|
901 | - case 'themes/minimal/': |
|
902 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', 'minimal']); |
|
903 | - break; |
|
904 | - case 'themes/simplyblue/': |
|
905 | - case 'themes/simplygreen/': |
|
906 | - case 'themes/simplyred/': |
|
907 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', 'colors']); |
|
908 | - break; |
|
909 | - case 'themes/xenea/': |
|
910 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', 'xenea']); |
|
911 | - break; |
|
912 | - default: |
|
913 | - $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', 'webtrees']); |
|
914 | - break; |
|
895 | + case '': |
|
896 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', '']); |
|
897 | + break; |
|
898 | + case 'themes/cloudy/': |
|
899 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', 'clouds']); |
|
900 | + break; |
|
901 | + case 'themes/minimal/': |
|
902 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', 'minimal']); |
|
903 | + break; |
|
904 | + case 'themes/simplyblue/': |
|
905 | + case 'themes/simplygreen/': |
|
906 | + case 'themes/simplyred/': |
|
907 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', 'colors']); |
|
908 | + break; |
|
909 | + case 'themes/xenea/': |
|
910 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', 'xenea']); |
|
911 | + break; |
|
912 | + default: |
|
913 | + $stmt_gedcom_setting->execute([$GED_DATA['id'], 'THEME_DIR', 'webtrees']); |
|
914 | + break; |
|
915 | 915 | } |
916 | 916 | $stmt_gedcom_setting->execute([$GED_DATA['id'], 'USE_RELATIONSHIP_PRIVACY', $USE_RELATIONSHIP_PRIVACY]); |
917 | 917 | $user = User::findByIdentifier($WEBMASTER_EMAIL); |
@@ -124,75 +124,75 @@ |
||
124 | 124 | // MySQL supports a wide range of collation conversions. These are ones that |
125 | 125 | // have been encountered "in the wild". |
126 | 126 | switch ($charset) { |
127 | - case 'ASCII': |
|
128 | - Database::prepare( |
|
129 | - "UPDATE `##gedcom_chunk`" . |
|
130 | - " SET chunk_data=CONVERT(CONVERT(chunk_data USING ascii) USING utf8)" . |
|
131 | - " WHERE gedcom_id=?" |
|
132 | - )->execute([$gedcom_id]); |
|
133 | - break; |
|
134 | - case 'IBMPC': // IBMPC, IBM WINDOWS and MS-DOS could be anything. Mostly it means CP850. |
|
135 | - case 'IBM WINDOWS': |
|
136 | - case 'MS-DOS': |
|
137 | - case 'CP437': |
|
138 | - case 'CP850': |
|
139 | - // CP850 has extra letters with diacritics to replace box-drawing chars in CP437. |
|
140 | - Database::prepare( |
|
141 | - "UPDATE `##gedcom_chunk`" . |
|
142 | - " SET chunk_data=CONVERT(CONVERT(chunk_data USING cp850) USING utf8)" . |
|
143 | - " WHERE gedcom_id=?" |
|
144 | - )->execute([$gedcom_id]); |
|
145 | - break; |
|
146 | - case 'ANSI': // ANSI could be anything. Most applications seem to treat it as latin1. |
|
147 | - $controller->addInlineJavascript( |
|
148 | - '$("#import' . $gedcom_id . '").parent().prepend("<div class=\"bg-info\">' . /* I18N: %1$s and %2$s are the names of character encodings, such as ISO-8859-1 or ASCII */ |
|
149 | - I18N::translate('This GEDCOM file is encoded using %1$s. Assume this to mean %2$s.', $charset, 'ISO-8859-1') . '</div>");' |
|
150 | - ); |
|
151 | - // no break; |
|
152 | - case 'WINDOWS': |
|
153 | - case 'CP1252': |
|
154 | - case 'ISO8859-1': |
|
155 | - case 'ISO-8859-1': |
|
156 | - case 'LATIN1': |
|
157 | - case 'LATIN-1': |
|
158 | - // Convert from ISO-8859-1 (western european) to UTF8. |
|
159 | - Database::prepare( |
|
160 | - "UPDATE `##gedcom_chunk`" . |
|
161 | - " SET chunk_data=CONVERT(CONVERT(chunk_data USING latin1) USING utf8)" . |
|
162 | - " WHERE gedcom_id=?" |
|
163 | - )->execute([$gedcom_id]); |
|
164 | - break; |
|
165 | - case 'CP1250': |
|
166 | - case 'ISO8859-2': |
|
167 | - case 'ISO-8859-2': |
|
168 | - case 'LATIN2': |
|
169 | - case 'LATIN-2': |
|
170 | - // Convert from ISO-8859-2 (eastern european) to UTF8. |
|
171 | - Database::prepare( |
|
172 | - "UPDATE `##gedcom_chunk`" . |
|
173 | - " SET chunk_data=CONVERT(CONVERT(chunk_data USING latin2) USING utf8)" . |
|
174 | - " WHERE gedcom_id=?" |
|
175 | - )->execute([$gedcom_id]); |
|
176 | - break; |
|
177 | - case 'MACINTOSH': |
|
178 | - // Convert from MAC Roman to UTF8. |
|
179 | - Database::prepare( |
|
180 | - "UPDATE `##gedcom_chunk`" . |
|
181 | - " SET chunk_data=CONVERT(CONVERT(chunk_data USING macroman) USING utf8)" . |
|
182 | - " WHERE gedcom_id=?" |
|
183 | - )->execute([$gedcom_id]); |
|
184 | - break; |
|
185 | - case 'UTF8': |
|
186 | - case 'UTF-8': |
|
187 | - // Already UTF-8 so nothing to do! |
|
188 | - break; |
|
189 | - case 'ANSEL': |
|
190 | - default: |
|
191 | - Database::rollBack(); |
|
192 | - echo '<span class="error">', I18N::translate('Error: converting GEDCOM files from %s encoding to UTF-8 encoding not currently supported.', $charset), '</span>'; |
|
193 | - $controller->addInlineJavascript('$("#actions' . $gedcom_id . '").removeClass("hidden");'); |
|
194 | - |
|
195 | - return; |
|
127 | + case 'ASCII': |
|
128 | + Database::prepare( |
|
129 | + "UPDATE `##gedcom_chunk`" . |
|
130 | + " SET chunk_data=CONVERT(CONVERT(chunk_data USING ascii) USING utf8)" . |
|
131 | + " WHERE gedcom_id=?" |
|
132 | + )->execute([$gedcom_id]); |
|
133 | + break; |
|
134 | + case 'IBMPC': // IBMPC, IBM WINDOWS and MS-DOS could be anything. Mostly it means CP850. |
|
135 | + case 'IBM WINDOWS': |
|
136 | + case 'MS-DOS': |
|
137 | + case 'CP437': |
|
138 | + case 'CP850': |
|
139 | + // CP850 has extra letters with diacritics to replace box-drawing chars in CP437. |
|
140 | + Database::prepare( |
|
141 | + "UPDATE `##gedcom_chunk`" . |
|
142 | + " SET chunk_data=CONVERT(CONVERT(chunk_data USING cp850) USING utf8)" . |
|
143 | + " WHERE gedcom_id=?" |
|
144 | + )->execute([$gedcom_id]); |
|
145 | + break; |
|
146 | + case 'ANSI': // ANSI could be anything. Most applications seem to treat it as latin1. |
|
147 | + $controller->addInlineJavascript( |
|
148 | + '$("#import' . $gedcom_id . '").parent().prepend("<div class=\"bg-info\">' . /* I18N: %1$s and %2$s are the names of character encodings, such as ISO-8859-1 or ASCII */ |
|
149 | + I18N::translate('This GEDCOM file is encoded using %1$s. Assume this to mean %2$s.', $charset, 'ISO-8859-1') . '</div>");' |
|
150 | + ); |
|
151 | + // no break; |
|
152 | + case 'WINDOWS': |
|
153 | + case 'CP1252': |
|
154 | + case 'ISO8859-1': |
|
155 | + case 'ISO-8859-1': |
|
156 | + case 'LATIN1': |
|
157 | + case 'LATIN-1': |
|
158 | + // Convert from ISO-8859-1 (western european) to UTF8. |
|
159 | + Database::prepare( |
|
160 | + "UPDATE `##gedcom_chunk`" . |
|
161 | + " SET chunk_data=CONVERT(CONVERT(chunk_data USING latin1) USING utf8)" . |
|
162 | + " WHERE gedcom_id=?" |
|
163 | + )->execute([$gedcom_id]); |
|
164 | + break; |
|
165 | + case 'CP1250': |
|
166 | + case 'ISO8859-2': |
|
167 | + case 'ISO-8859-2': |
|
168 | + case 'LATIN2': |
|
169 | + case 'LATIN-2': |
|
170 | + // Convert from ISO-8859-2 (eastern european) to UTF8. |
|
171 | + Database::prepare( |
|
172 | + "UPDATE `##gedcom_chunk`" . |
|
173 | + " SET chunk_data=CONVERT(CONVERT(chunk_data USING latin2) USING utf8)" . |
|
174 | + " WHERE gedcom_id=?" |
|
175 | + )->execute([$gedcom_id]); |
|
176 | + break; |
|
177 | + case 'MACINTOSH': |
|
178 | + // Convert from MAC Roman to UTF8. |
|
179 | + Database::prepare( |
|
180 | + "UPDATE `##gedcom_chunk`" . |
|
181 | + " SET chunk_data=CONVERT(CONVERT(chunk_data USING macroman) USING utf8)" . |
|
182 | + " WHERE gedcom_id=?" |
|
183 | + )->execute([$gedcom_id]); |
|
184 | + break; |
|
185 | + case 'UTF8': |
|
186 | + case 'UTF-8': |
|
187 | + // Already UTF-8 so nothing to do! |
|
188 | + break; |
|
189 | + case 'ANSEL': |
|
190 | + default: |
|
191 | + Database::rollBack(); |
|
192 | + echo '<span class="error">', I18N::translate('Error: converting GEDCOM files from %s encoding to UTF-8 encoding not currently supported.', $charset), '</span>'; |
|
193 | + $controller->addInlineJavascript('$("#actions' . $gedcom_id . '").removeClass("hidden");'); |
|
194 | + |
|
195 | + return; |
|
196 | 196 | } |
197 | 197 | $first_time = false; |
198 | 198 |
@@ -156,29 +156,29 @@ |
||
156 | 156 | $frame += ['args' => [], 'file' => 'unknown', 'line' => 'unknown']; |
157 | 157 | array_walk($frame['args'], function (&$arg) { |
158 | 158 | switch (gettype($arg)) { |
159 | - case 'boolean': |
|
160 | - case 'integer': |
|
161 | - case 'double': |
|
162 | - case 'null': |
|
163 | - $arg = var_export($arg, true); |
|
164 | - break; |
|
165 | - case 'string': |
|
166 | - if (mb_strlen($arg) > 30) { |
|
167 | - $arg = mb_substr($arg, 0, 30) . '…'; |
|
168 | - } |
|
169 | - $arg = var_export($arg, true); |
|
170 | - break; |
|
171 | - case 'object': |
|
172 | - $reflection = new \ReflectionClass($arg); |
|
173 | - if (is_object($arg) && method_exists($arg, '__toString')) { |
|
174 | - $arg = '[' . $reflection->getShortName() . ' ' . (string) $arg . ']'; |
|
175 | - } else { |
|
176 | - $arg = '[' . $reflection->getShortName() . ']'; |
|
177 | - } |
|
178 | - break; |
|
179 | - default: |
|
180 | - $arg = '[' . gettype($arg) . ']'; |
|
181 | - break; |
|
159 | + case 'boolean': |
|
160 | + case 'integer': |
|
161 | + case 'double': |
|
162 | + case 'null': |
|
163 | + $arg = var_export($arg, true); |
|
164 | + break; |
|
165 | + case 'string': |
|
166 | + if (mb_strlen($arg) > 30) { |
|
167 | + $arg = mb_substr($arg, 0, 30) . '…'; |
|
168 | + } |
|
169 | + $arg = var_export($arg, true); |
|
170 | + break; |
|
171 | + case 'object': |
|
172 | + $reflection = new \ReflectionClass($arg); |
|
173 | + if (is_object($arg) && method_exists($arg, '__toString')) { |
|
174 | + $arg = '[' . $reflection->getShortName() . ' ' . (string) $arg . ']'; |
|
175 | + } else { |
|
176 | + $arg = '[' . $reflection->getShortName() . ']'; |
|
177 | + } |
|
178 | + break; |
|
179 | + default: |
|
180 | + $arg = '[' . gettype($arg) . ']'; |
|
181 | + break; |
|
182 | 182 | } |
183 | 183 | }); |
184 | 184 | $frame['file'] = str_replace(dirname(__DIR__), '', $frame['file']); |
@@ -491,20 +491,20 @@ discard block |
||
491 | 491 | */ |
492 | 492 | public function convertToCalendar($calendar) { |
493 | 493 | switch ($calendar) { |
494 | - case 'gregorian': |
|
495 | - return new GregorianDate($this); |
|
496 | - case 'julian': |
|
497 | - return new JulianDate($this); |
|
498 | - case 'jewish': |
|
499 | - return new JewishDate($this); |
|
500 | - case 'french': |
|
501 | - return new FrenchDate($this); |
|
502 | - case 'hijri': |
|
503 | - return new HijriDate($this); |
|
504 | - case 'jalali': |
|
505 | - return new JalaliDate($this); |
|
506 | - default: |
|
507 | - return $this; |
|
494 | + case 'gregorian': |
|
495 | + return new GregorianDate($this); |
|
496 | + case 'julian': |
|
497 | + return new JulianDate($this); |
|
498 | + case 'jewish': |
|
499 | + return new JewishDate($this); |
|
500 | + case 'french': |
|
501 | + return new FrenchDate($this); |
|
502 | + case 'hijri': |
|
503 | + return new HijriDate($this); |
|
504 | + case 'jalali': |
|
505 | + return new JalaliDate($this); |
|
506 | + default: |
|
507 | + return $this; |
|
508 | 508 | } |
509 | 509 | } |
510 | 510 | |
@@ -581,90 +581,90 @@ discard block |
||
581 | 581 | $case = 'GENITIVE'; |
582 | 582 | } else { |
583 | 583 | switch ($qualifier) { |
584 | - case 'TO': |
|
585 | - case 'ABT': |
|
586 | - case 'FROM': |
|
587 | - $case = 'GENITIVE'; |
|
588 | - break; |
|
589 | - case 'AFT': |
|
590 | - $case = 'LOCATIVE'; |
|
591 | - break; |
|
592 | - case 'BEF': |
|
593 | - case 'BET': |
|
594 | - case 'AND': |
|
595 | - $case = 'INSTRUMENTAL'; |
|
596 | - break; |
|
597 | - case '': |
|
598 | - case 'INT': |
|
599 | - case 'EST': |
|
600 | - case 'CAL': |
|
601 | - default: // There shouldn't be any other options... |
|
602 | - $case = 'NOMINATIVE'; |
|
603 | - break; |
|
584 | + case 'TO': |
|
585 | + case 'ABT': |
|
586 | + case 'FROM': |
|
587 | + $case = 'GENITIVE'; |
|
588 | + break; |
|
589 | + case 'AFT': |
|
590 | + $case = 'LOCATIVE'; |
|
591 | + break; |
|
592 | + case 'BEF': |
|
593 | + case 'BET': |
|
594 | + case 'AND': |
|
595 | + $case = 'INSTRUMENTAL'; |
|
596 | + break; |
|
597 | + case '': |
|
598 | + case 'INT': |
|
599 | + case 'EST': |
|
600 | + case 'CAL': |
|
601 | + default: // There shouldn't be any other options... |
|
602 | + $case = 'NOMINATIVE'; |
|
603 | + break; |
|
604 | 604 | } |
605 | 605 | } |
606 | 606 | // Build up the formatted date, character at a time |
607 | 607 | preg_match_all('/%[^%]/', $format, $matches); |
608 | 608 | foreach ($matches[0] as $match) { |
609 | 609 | switch ($match) { |
610 | - case '%d': |
|
611 | - $format = str_replace($match, $this->formatDayZeros(), $format); |
|
612 | - break; |
|
613 | - case '%j': |
|
614 | - $format = str_replace($match, $this->formatDay(), $format); |
|
615 | - break; |
|
616 | - case '%l': |
|
617 | - $format = str_replace($match, $this->formatLongWeekday(), $format); |
|
618 | - break; |
|
619 | - case '%D': |
|
620 | - $format = str_replace($match, $this->formatShortWeekday(), $format); |
|
621 | - break; |
|
622 | - case '%N': |
|
623 | - $format = str_replace($match, $this->formatIsoWeekday(), $format); |
|
624 | - break; |
|
625 | - case '%w': |
|
626 | - $format = str_replace($match, $this->formatNumericWeekday(), $format); |
|
627 | - break; |
|
628 | - case '%z': |
|
629 | - $format = str_replace($match, $this->formatDayOfYear(), $format); |
|
630 | - break; |
|
631 | - case '%F': |
|
632 | - $format = str_replace($match, $this->formatLongMonth($case), $format); |
|
633 | - break; |
|
634 | - case '%m': |
|
635 | - $format = str_replace($match, $this->formatMonthZeros(), $format); |
|
636 | - break; |
|
637 | - case '%M': |
|
638 | - $format = str_replace($match, $this->formatShortMonth(), $format); |
|
639 | - break; |
|
640 | - case '%n': |
|
641 | - $format = str_replace($match, $this->formatMonth(), $format); |
|
642 | - break; |
|
643 | - case '%t': |
|
644 | - $format = str_replace($match, $this->daysInMonth(), $format); |
|
645 | - break; |
|
646 | - case '%L': |
|
647 | - $format = str_replace($match, (int) $this->isLeapYear(), $format); |
|
648 | - break; |
|
649 | - case '%Y': |
|
650 | - $format = str_replace($match, $this->formatLongYear(), $format); |
|
651 | - break; |
|
652 | - case '%y': |
|
653 | - $format = str_replace($match, $this->formatShortYear(), $format); |
|
654 | - break; |
|
655 | - // These 4 extensions are useful for re-formatting gedcom dates. |
|
656 | - case '%@': |
|
657 | - $format = str_replace($match, $this->calendar->gedcomCalendarEscape(), $format); |
|
658 | - break; |
|
659 | - case '%A': |
|
660 | - $format = str_replace($match, $this->formatGedcomDay(), $format); |
|
661 | - break; |
|
662 | - case '%O': |
|
663 | - $format = str_replace($match, $this->formatGedcomMonth(), $format); |
|
664 | - break; |
|
665 | - case '%E': |
|
666 | - $format = str_replace($match, $this->formatGedcomYear(), $format); |
|
667 | - break; |
|
610 | + case '%d': |
|
611 | + $format = str_replace($match, $this->formatDayZeros(), $format); |
|
612 | + break; |
|
613 | + case '%j': |
|
614 | + $format = str_replace($match, $this->formatDay(), $format); |
|
615 | + break; |
|
616 | + case '%l': |
|
617 | + $format = str_replace($match, $this->formatLongWeekday(), $format); |
|
618 | + break; |
|
619 | + case '%D': |
|
620 | + $format = str_replace($match, $this->formatShortWeekday(), $format); |
|
621 | + break; |
|
622 | + case '%N': |
|
623 | + $format = str_replace($match, $this->formatIsoWeekday(), $format); |
|
624 | + break; |
|
625 | + case '%w': |
|
626 | + $format = str_replace($match, $this->formatNumericWeekday(), $format); |
|
627 | + break; |
|
628 | + case '%z': |
|
629 | + $format = str_replace($match, $this->formatDayOfYear(), $format); |
|
630 | + break; |
|
631 | + case '%F': |
|
632 | + $format = str_replace($match, $this->formatLongMonth($case), $format); |
|
633 | + break; |
|
634 | + case '%m': |
|
635 | + $format = str_replace($match, $this->formatMonthZeros(), $format); |
|
636 | + break; |
|
637 | + case '%M': |
|
638 | + $format = str_replace($match, $this->formatShortMonth(), $format); |
|
639 | + break; |
|
640 | + case '%n': |
|
641 | + $format = str_replace($match, $this->formatMonth(), $format); |
|
642 | + break; |
|
643 | + case '%t': |
|
644 | + $format = str_replace($match, $this->daysInMonth(), $format); |
|
645 | + break; |
|
646 | + case '%L': |
|
647 | + $format = str_replace($match, (int) $this->isLeapYear(), $format); |
|
648 | + break; |
|
649 | + case '%Y': |
|
650 | + $format = str_replace($match, $this->formatLongYear(), $format); |
|
651 | + break; |
|
652 | + case '%y': |
|
653 | + $format = str_replace($match, $this->formatShortYear(), $format); |
|
654 | + break; |
|
655 | + // These 4 extensions are useful for re-formatting gedcom dates. |
|
656 | + case '%@': |
|
657 | + $format = str_replace($match, $this->calendar->gedcomCalendarEscape(), $format); |
|
658 | + break; |
|
659 | + case '%A': |
|
660 | + $format = str_replace($match, $this->formatGedcomDay(), $format); |
|
661 | + break; |
|
662 | + case '%O': |
|
663 | + $format = str_replace($match, $this->formatGedcomMonth(), $format); |
|
664 | + break; |
|
665 | + case '%E': |
|
666 | + $format = str_replace($match, $this->formatGedcomYear(), $format); |
|
667 | + break; |
|
668 | 668 | } |
669 | 669 | } |
670 | 670 | |
@@ -769,16 +769,16 @@ discard block |
||
769 | 769 | */ |
770 | 770 | protected function formatLongMonth($case = 'NOMINATIVE') { |
771 | 771 | switch ($case) { |
772 | - case 'GENITIVE': |
|
773 | - return $this->monthNameGenitiveCase($this->m, $this->isLeapYear()); |
|
774 | - case 'NOMINATIVE': |
|
775 | - return $this->monthNameNominativeCase($this->m, $this->isLeapYear()); |
|
776 | - case 'LOCATIVE': |
|
777 | - return $this->monthNameLocativeCase($this->m, $this->isLeapYear()); |
|
778 | - case 'INSTRUMENTAL': |
|
779 | - return $this->monthNameInstrumentalCase($this->m, $this->isLeapYear()); |
|
780 | - default: |
|
781 | - throw new \InvalidArgumentException($case); |
|
772 | + case 'GENITIVE': |
|
773 | + return $this->monthNameGenitiveCase($this->m, $this->isLeapYear()); |
|
774 | + case 'NOMINATIVE': |
|
775 | + return $this->monthNameNominativeCase($this->m, $this->isLeapYear()); |
|
776 | + case 'LOCATIVE': |
|
777 | + return $this->monthNameLocativeCase($this->m, $this->isLeapYear()); |
|
778 | + case 'INSTRUMENTAL': |
|
779 | + return $this->monthNameInstrumentalCase($this->m, $this->isLeapYear()); |
|
780 | + default: |
|
781 | + throw new \InvalidArgumentException($case); |
|
782 | 782 | } |
783 | 783 | } |
784 | 784 |