@@ -117,10 +117,10 @@ |
||
117 | 117 | */ |
118 | 118 | public static function formatText($text, Tree $WT_TREE) { |
119 | 119 | switch ($WT_TREE->getPreference('FORMAT_TEXT')) { |
120 | - case 'markdown': |
|
121 | - return '<div class="markdown" dir="auto">' . self::markdown($text) . '</div>'; |
|
122 | - default: |
|
123 | - return '<div style="white-space: pre-wrap;" dir="auto">' . self::expandUrls($text) . '</div>'; |
|
120 | + case 'markdown': |
|
121 | + return '<div class="markdown" dir="auto">' . self::markdown($text) . '</div>'; |
|
122 | + default: |
|
123 | + return '<div style="white-space: pre-wrap;" dir="auto">' . self::expandUrls($text) . '</div>'; |
|
124 | 124 | } |
125 | 125 | } |
126 | 126 |
@@ -117,18 +117,18 @@ discard block |
||
117 | 117 | foreach (Module::getInstalledModules('disabled') as $module) { |
118 | 118 | if (!in_array($module->getName(), Module::getCoreModuleNames())) { |
119 | 119 | switch ($modules_action) { |
120 | - case 'disable': |
|
121 | - Database::prepare( |
|
122 | - "UPDATE `##module` SET status = 'disabled' WHERE module_name = ?" |
|
123 | - )->execute(array($module->getName())); |
|
124 | - break; |
|
125 | - case 'ignore': |
|
126 | - echo '<br>', I18N::translate('Custom module'), ' — ', WT_MODULES_DIR, $module->getName(), ' — ', $module->getTitle(), $icon_success; |
|
127 | - break; |
|
128 | - default: |
|
129 | - echo '<br>', I18N::translate('Custom module'), ' — ', WT_MODULES_DIR, $module->getName(), ' — ', $module->getTitle(), $icon_failure; |
|
130 | - $custom_modules = true; |
|
131 | - break; |
|
120 | + case 'disable': |
|
121 | + Database::prepare( |
|
122 | + "UPDATE `##module` SET status = 'disabled' WHERE module_name = ?" |
|
123 | + )->execute(array($module->getName())); |
|
124 | + break; |
|
125 | + case 'ignore': |
|
126 | + echo '<br>', I18N::translate('Custom module'), ' — ', WT_MODULES_DIR, $module->getName(), ' — ', $module->getTitle(), $icon_success; |
|
127 | + break; |
|
128 | + default: |
|
129 | + echo '<br>', I18N::translate('Custom module'), ' — ', WT_MODULES_DIR, $module->getName(), ' — ', $module->getTitle(), $icon_failure; |
|
130 | + $custom_modules = true; |
|
131 | + break; |
|
132 | 132 | } |
133 | 133 | } |
134 | 134 | } |
@@ -157,40 +157,40 @@ discard block |
||
157 | 157 | $custom_themes = false; |
158 | 158 | foreach (Theme::themeNames() as $theme_id => $theme_name) { |
159 | 159 | switch ($theme_id) { |
160 | - case 'clouds': |
|
161 | - case 'colors': |
|
162 | - case 'fab': |
|
163 | - case 'minimal': |
|
164 | - case 'webtrees': |
|
165 | - case 'xenea': |
|
166 | - break; |
|
167 | - default: |
|
168 | - $theme_used = Database::prepare( |
|
169 | - "SELECT EXISTS (SELECT 1 FROM `##site_setting` WHERE setting_name='THEME_DIR' AND setting_value=?)" . |
|
170 | - " OR EXISTS (SELECT 1 FROM `##gedcom_setting` WHERE setting_name='THEME_DIR' AND setting_value=?)" . |
|
171 | - " OR EXISTS (SELECT 1 FROM `##user_setting` WHERE setting_name='theme' AND setting_value=?)" |
|
172 | - )->execute(array($theme_id, $theme_id, $theme_id))->fetchOne(); |
|
173 | - if ($theme_used) { |
|
174 | - switch ($themes_action) { |
|
175 | - case 'disable': |
|
176 | - Database::prepare( |
|
177 | - "DELETE FROM `##site_setting` WHERE setting_name = 'THEME_DIR' AND setting_value = ?" |
|
178 | - )->execute(array($theme_id)); |
|
179 | - Database::prepare( |
|
180 | - "DELETE FROM `##gedcom_setting` WHERE setting_name = 'THEME_DIR' AND setting_value = ?" |
|
181 | - )->execute(array($theme_id)); |
|
182 | - Database::prepare( |
|
183 | - "DELETE FROM `##user_setting` WHERE setting_name = 'theme' AND setting_value = ?" |
|
184 | - )->execute(array($theme_id)); |
|
185 | - break; |
|
186 | - case 'ignore': |
|
187 | - echo '<br>', I18N::translate('Custom theme'), ' — ', $theme_id, ' — ', $theme_name, $icon_success; |
|
188 | - break; |
|
189 | - default: |
|
190 | - echo '<br>', I18N::translate('Custom theme'), ' — ', $theme_id, ' — ', $theme_name, $icon_failure; |
|
191 | - $custom_themes = true; |
|
192 | - break; |
|
193 | - } |
|
160 | + case 'clouds': |
|
161 | + case 'colors': |
|
162 | + case 'fab': |
|
163 | + case 'minimal': |
|
164 | + case 'webtrees': |
|
165 | + case 'xenea': |
|
166 | + break; |
|
167 | + default: |
|
168 | + $theme_used = Database::prepare( |
|
169 | + "SELECT EXISTS (SELECT 1 FROM `##site_setting` WHERE setting_name='THEME_DIR' AND setting_value=?)" . |
|
170 | + " OR EXISTS (SELECT 1 FROM `##gedcom_setting` WHERE setting_name='THEME_DIR' AND setting_value=?)" . |
|
171 | + " OR EXISTS (SELECT 1 FROM `##user_setting` WHERE setting_name='theme' AND setting_value=?)" |
|
172 | + )->execute(array($theme_id, $theme_id, $theme_id))->fetchOne(); |
|
173 | + if ($theme_used) { |
|
174 | + switch ($themes_action) { |
|
175 | + case 'disable': |
|
176 | + Database::prepare( |
|
177 | + "DELETE FROM `##site_setting` WHERE setting_name = 'THEME_DIR' AND setting_value = ?" |
|
178 | + )->execute(array($theme_id)); |
|
179 | + Database::prepare( |
|
180 | + "DELETE FROM `##gedcom_setting` WHERE setting_name = 'THEME_DIR' AND setting_value = ?" |
|
181 | + )->execute(array($theme_id)); |
|
182 | + Database::prepare( |
|
183 | + "DELETE FROM `##user_setting` WHERE setting_name = 'theme' AND setting_value = ?" |
|
184 | + )->execute(array($theme_id)); |
|
185 | + break; |
|
186 | + case 'ignore': |
|
187 | + echo '<br>', I18N::translate('Custom theme'), ' — ', $theme_id, ' — ', $theme_name, $icon_success; |
|
188 | + break; |
|
189 | + default: |
|
190 | + echo '<br>', I18N::translate('Custom theme'), ' — ', $theme_id, ' — ', $theme_name, $icon_failure; |
|
191 | + $custom_themes = true; |
|
192 | + break; |
|
193 | + } |
|
194 | 194 | } |
195 | 195 | break; |
196 | 196 | } |
@@ -85,98 +85,98 @@ discard block |
||
85 | 85 | //////////////////////////////////////////////////////////////////////////////// |
86 | 86 | |
87 | 87 | switch ($action) { |
88 | -case 'load_json': |
|
89 | - $search = Filter::get('search'); |
|
90 | - $search = $search['value']; |
|
91 | - $start = Filter::getInteger('start'); |
|
92 | - $length = Filter::getInteger('length'); |
|
93 | - |
|
94 | - switch ($files) { |
|
95 | - case 'local': |
|
96 | - // Filtered rows |
|
97 | - $SELECT1 = |
|
98 | - "SELECT SQL_CALC_FOUND_ROWS TRIM(LEADING :media_path_1 FROM m_filename) AS media_path, m_id AS xref, m_titl, m_file AS gedcom_id, m_gedcom AS gedcom" . |
|
99 | - " FROM `##media`" . |
|
100 | - " JOIN `##gedcom_setting` ON (m_file = gedcom_id AND setting_name = 'MEDIA_DIRECTORY')" . |
|
101 | - " JOIN `##gedcom` USING (gedcom_id)" . |
|
102 | - " WHERE setting_value = :media_folder" . |
|
103 | - " AND m_filename LIKE CONCAT(:media_path_2, '%')" . |
|
104 | - " AND (SUBSTRING_INDEX(m_filename, '/', -1) LIKE CONCAT('%', :search_1, '%')" . |
|
105 | - " OR m_titl LIKE CONCAT('%', :search_2, '%'))" . |
|
106 | - " AND m_filename NOT LIKE 'http://%'" . |
|
107 | - " AND m_filename NOT LIKE 'https://%'"; |
|
108 | - $ARGS1 = array( |
|
109 | - 'media_path_1' => $media_path, |
|
110 | - 'media_folder' => $media_folder, |
|
111 | - 'media_path_2' => Filter::escapeLike($media_path), |
|
112 | - 'search_1' => Filter::escapeLike($search), |
|
113 | - 'search_2' => Filter::escapeLike($search), |
|
114 | - ); |
|
115 | - // Unfiltered rows |
|
116 | - $SELECT2 = |
|
117 | - "SELECT COUNT(*)" . |
|
118 | - " FROM `##media`" . |
|
119 | - " JOIN `##gedcom_setting` ON (m_file = gedcom_id AND setting_name = 'MEDIA_DIRECTORY')" . |
|
120 | - " WHERE setting_value = :media_folder" . |
|
121 | - " AND m_filename LIKE CONCAT(:media_path_3, '%')" . |
|
122 | - " AND m_filename NOT LIKE 'http://%'" . |
|
123 | - " AND m_filename NOT LIKE 'https://%'"; |
|
124 | - $ARGS2 = array( |
|
125 | - 'media_folder' => $media_folder, |
|
126 | - 'media_path_3' => $media_path, |
|
127 | - ); |
|
128 | - |
|
129 | - if ($subfolders == 'exclude') { |
|
130 | - $SELECT1 .= " AND m_filename NOT LIKE CONCAT(:media_path_4, '%/%')"; |
|
131 | - $ARGS1['media_path_4'] = Filter::escapeLike($media_path); |
|
132 | - $SELECT2 .= " AND m_filename NOT LIKE CONCAT(:media_path_4, '%/%')"; |
|
133 | - $ARGS2['media_path_4'] = Filter::escapeLike($media_path); |
|
134 | - } |
|
135 | - |
|
136 | - $order = Filter::getArray('order'); |
|
137 | - $SELECT1 .= " ORDER BY "; |
|
138 | - if ($order) { |
|
139 | - foreach ($order as $key => $value) { |
|
140 | - if ($key > 0) { |
|
141 | - $SELECT1 .= ','; |
|
142 | - } |
|
143 | - // Datatables numbers columns 0, 1, 2 |
|
144 | - // MySQL numbers columns 1, 2, 3 |
|
145 | - switch ($value['dir']) { |
|
146 | - case 'asc': |
|
147 | - $SELECT1 .= ":col_" . $key . " ASC"; |
|
148 | - break; |
|
149 | - case 'desc': |
|
150 | - $SELECT1 .= ":col_" . $key . " DESC"; |
|
151 | - break; |
|
152 | - } |
|
153 | - $ARGS1['col_' . $key] = 1 + $value['column']; |
|
154 | - } |
|
155 | - } else { |
|
156 | - $SELECT1 = " 1 ASC"; |
|
157 | - } |
|
158 | - |
|
159 | - if ($length > 0) { |
|
160 | - $SELECT1 .= " LIMIT :length OFFSET :start"; |
|
161 | - $ARGS1['length'] = $length; |
|
162 | - $ARGS1['start'] = $start; |
|
163 | - } |
|
164 | - |
|
165 | - $rows = Database::prepare($SELECT1)->execute($ARGS1)->fetchAll(); |
|
166 | - // Total filtered/unfiltered rows |
|
167 | - $recordsFiltered = Database::prepare("SELECT FOUND_ROWS()")->fetchOne(); |
|
168 | - $recordsTotal = Database::prepare($SELECT2)->execute($ARGS2)->fetchOne(); |
|
169 | - |
|
170 | - $data = array(); |
|
171 | - foreach ($rows as $row) { |
|
172 | - $media = Media::getInstance($row->xref, Tree::findById($row->gedcom_id), $row->gedcom); |
|
173 | - $data[] = array( |
|
174 | - mediaFileInfo($media_folder, $media_path, $row->media_path), |
|
175 | - $media->displayImage(), |
|
176 | - mediaObjectInfo($media), |
|
177 | - ); |
|
178 | - } |
|
179 | - break; |
|
88 | + case 'load_json': |
|
89 | + $search = Filter::get('search'); |
|
90 | + $search = $search['value']; |
|
91 | + $start = Filter::getInteger('start'); |
|
92 | + $length = Filter::getInteger('length'); |
|
93 | + |
|
94 | + switch ($files) { |
|
95 | + case 'local': |
|
96 | + // Filtered rows |
|
97 | + $SELECT1 = |
|
98 | + "SELECT SQL_CALC_FOUND_ROWS TRIM(LEADING :media_path_1 FROM m_filename) AS media_path, m_id AS xref, m_titl, m_file AS gedcom_id, m_gedcom AS gedcom" . |
|
99 | + " FROM `##media`" . |
|
100 | + " JOIN `##gedcom_setting` ON (m_file = gedcom_id AND setting_name = 'MEDIA_DIRECTORY')" . |
|
101 | + " JOIN `##gedcom` USING (gedcom_id)" . |
|
102 | + " WHERE setting_value = :media_folder" . |
|
103 | + " AND m_filename LIKE CONCAT(:media_path_2, '%')" . |
|
104 | + " AND (SUBSTRING_INDEX(m_filename, '/', -1) LIKE CONCAT('%', :search_1, '%')" . |
|
105 | + " OR m_titl LIKE CONCAT('%', :search_2, '%'))" . |
|
106 | + " AND m_filename NOT LIKE 'http://%'" . |
|
107 | + " AND m_filename NOT LIKE 'https://%'"; |
|
108 | + $ARGS1 = array( |
|
109 | + 'media_path_1' => $media_path, |
|
110 | + 'media_folder' => $media_folder, |
|
111 | + 'media_path_2' => Filter::escapeLike($media_path), |
|
112 | + 'search_1' => Filter::escapeLike($search), |
|
113 | + 'search_2' => Filter::escapeLike($search), |
|
114 | + ); |
|
115 | + // Unfiltered rows |
|
116 | + $SELECT2 = |
|
117 | + "SELECT COUNT(*)" . |
|
118 | + " FROM `##media`" . |
|
119 | + " JOIN `##gedcom_setting` ON (m_file = gedcom_id AND setting_name = 'MEDIA_DIRECTORY')" . |
|
120 | + " WHERE setting_value = :media_folder" . |
|
121 | + " AND m_filename LIKE CONCAT(:media_path_3, '%')" . |
|
122 | + " AND m_filename NOT LIKE 'http://%'" . |
|
123 | + " AND m_filename NOT LIKE 'https://%'"; |
|
124 | + $ARGS2 = array( |
|
125 | + 'media_folder' => $media_folder, |
|
126 | + 'media_path_3' => $media_path, |
|
127 | + ); |
|
128 | + |
|
129 | + if ($subfolders == 'exclude') { |
|
130 | + $SELECT1 .= " AND m_filename NOT LIKE CONCAT(:media_path_4, '%/%')"; |
|
131 | + $ARGS1['media_path_4'] = Filter::escapeLike($media_path); |
|
132 | + $SELECT2 .= " AND m_filename NOT LIKE CONCAT(:media_path_4, '%/%')"; |
|
133 | + $ARGS2['media_path_4'] = Filter::escapeLike($media_path); |
|
134 | + } |
|
135 | + |
|
136 | + $order = Filter::getArray('order'); |
|
137 | + $SELECT1 .= " ORDER BY "; |
|
138 | + if ($order) { |
|
139 | + foreach ($order as $key => $value) { |
|
140 | + if ($key > 0) { |
|
141 | + $SELECT1 .= ','; |
|
142 | + } |
|
143 | + // Datatables numbers columns 0, 1, 2 |
|
144 | + // MySQL numbers columns 1, 2, 3 |
|
145 | + switch ($value['dir']) { |
|
146 | + case 'asc': |
|
147 | + $SELECT1 .= ":col_" . $key . " ASC"; |
|
148 | + break; |
|
149 | + case 'desc': |
|
150 | + $SELECT1 .= ":col_" . $key . " DESC"; |
|
151 | + break; |
|
152 | + } |
|
153 | + $ARGS1['col_' . $key] = 1 + $value['column']; |
|
154 | + } |
|
155 | + } else { |
|
156 | + $SELECT1 = " 1 ASC"; |
|
157 | + } |
|
158 | + |
|
159 | + if ($length > 0) { |
|
160 | + $SELECT1 .= " LIMIT :length OFFSET :start"; |
|
161 | + $ARGS1['length'] = $length; |
|
162 | + $ARGS1['start'] = $start; |
|
163 | + } |
|
164 | + |
|
165 | + $rows = Database::prepare($SELECT1)->execute($ARGS1)->fetchAll(); |
|
166 | + // Total filtered/unfiltered rows |
|
167 | + $recordsFiltered = Database::prepare("SELECT FOUND_ROWS()")->fetchOne(); |
|
168 | + $recordsTotal = Database::prepare($SELECT2)->execute($ARGS2)->fetchOne(); |
|
169 | + |
|
170 | + $data = array(); |
|
171 | + foreach ($rows as $row) { |
|
172 | + $media = Media::getInstance($row->xref, Tree::findById($row->gedcom_id), $row->gedcom); |
|
173 | + $data[] = array( |
|
174 | + mediaFileInfo($media_folder, $media_path, $row->media_path), |
|
175 | + $media->displayImage(), |
|
176 | + mediaObjectInfo($media), |
|
177 | + ); |
|
178 | + } |
|
179 | + break; |
|
180 | 180 | |
181 | 181 | case 'external': |
182 | 182 | // Filtered rows |
@@ -206,12 +206,12 @@ discard block |
||
206 | 206 | // Datatables numbers columns 0, 1, 2 |
207 | 207 | // MySQL numbers columns 1, 2, 3 |
208 | 208 | switch ($value['dir']) { |
209 | - case 'asc': |
|
210 | - $SELECT1 .= ":col_" . $key . " ASC"; |
|
211 | - break; |
|
212 | - case 'desc': |
|
213 | - $SELECT1 .= ":col_" . $key . " DESC"; |
|
214 | - break; |
|
209 | + case 'asc': |
|
210 | + $SELECT1 .= ":col_" . $key . " ASC"; |
|
211 | + break; |
|
212 | + case 'desc': |
|
213 | + $SELECT1 .= ":col_" . $key . " DESC"; |
|
214 | + break; |
|
215 | 215 | } |
216 | 216 | $ARGS1['col_' . $key] = 1 + $value['column']; |
217 | 217 | } |
@@ -51,170 +51,170 @@ |
||
51 | 51 | echo '<div id="place-hierarchy">'; |
52 | 52 | |
53 | 53 | switch ($display) { |
54 | -case 'list': |
|
55 | - echo '<h2>', $controller->getPageTitle(), '</h2>'; |
|
56 | - $list_places = Place::allPlaces($WT_TREE); |
|
57 | - $numfound = count($list_places); |
|
58 | - |
|
59 | - $divisor = $numfound > 20 ? 3 : 2; |
|
60 | - |
|
61 | - if ($numfound === 0) { |
|
62 | - echo '<b>', I18N::translate('No results found.'), '</b><br>'; |
|
63 | - } else { |
|
64 | - $columns = array_chunk($list_places, ceil($numfound / $divisor)); |
|
65 | - |
|
66 | - $html = '<table class="list_table"><thead>'; |
|
67 | - $html .= '<tr><th class="list_label" colspan="' . $divisor . '">'; |
|
68 | - $html .= '<i class="icon-place"></i> ' . I18N::translate('Place list'); |
|
69 | - $html .= '</th></tr></thead>'; |
|
70 | - $html .= '<tbody><tr>'; |
|
71 | - foreach ($columns as $column) { |
|
72 | - $html .= '<td class="list_value_wrap"><ul>'; |
|
73 | - foreach ($column as $item) { |
|
74 | - $html .= '<li><a href="' . $item->getURL() . '">' . $item->getReverseName() . '</a></li>'; |
|
75 | - } |
|
76 | - $html .= '</ul></td>'; |
|
77 | - } |
|
78 | - $html .= '</tr></tbody></table>'; |
|
79 | - echo $html; |
|
80 | - } |
|
81 | - echo '<h4><a href="placelist.php?display=hierarchy">', I18N::translate('Show places in hierarchy'), '</a></h4>'; |
|
82 | - break; |
|
83 | -case 'hierarchy': |
|
84 | - $gm_module = Module::getModuleByName('googlemap'); |
|
85 | - |
|
86 | - // Find this place and its ID |
|
87 | - $place = new Place(implode(', ', array_reverse($parent)), $WT_TREE); |
|
88 | - $place_id = $place->getPlaceId(); |
|
89 | - |
|
90 | - $child_places = $place->getChildPlaces(); |
|
91 | - |
|
92 | - $numfound = count($child_places); |
|
93 | - |
|
94 | - //-- if the number of places found is 0 then automatically redirect to search page |
|
95 | - if ($numfound === 0) { |
|
96 | - $action = 'show'; |
|
97 | - } |
|
98 | - |
|
99 | - echo '<h2>', $controller->getPageTitle(); |
|
100 | - // Breadcrumbs |
|
101 | - if ($place_id) { |
|
102 | - $parent_place = $place->getParentPlace(); |
|
103 | - while ($parent_place->getPlaceId()) { |
|
104 | - echo ', <a href="', $parent_place->getURL(), '" dir="auto">', $parent_place->getPlaceName(), '</a>'; |
|
105 | - $parent_place = $parent_place->getParentPlace(); |
|
106 | - } |
|
107 | - echo ', <a href="', WT_SCRIPT_NAME, '">', I18N::translate('Top level'), '</a>'; |
|
108 | - } |
|
109 | - echo '</h2>'; |
|
110 | - |
|
111 | - if ($gm_module && $gm_module->getSetting('GM_PLACE_HIERARCHY')) { |
|
112 | - $linklevels = ''; |
|
113 | - $place_names = array(); |
|
114 | - for ($j = 0; $j < $level; $j++) { |
|
115 | - $linklevels .= '&parent[' . $j . ']=' . rawurlencode($parent[$j]); |
|
116 | - } |
|
117 | - |
|
118 | - $gm_module->createMap(); |
|
119 | - } elseif (Module::getModuleByName('places_assistant')) { |
|
120 | - // Places Assistant is a custom/add-on module that was once part of the core code. |
|
121 | - \PlacesAssistantModule::display_map($level, $parent); |
|
122 | - } |
|
123 | - |
|
124 | - if ($numfound > 0) { |
|
125 | - if ($numfound > 20) { |
|
126 | - $divisor = 3; |
|
127 | - } elseif ($numfound > 4) { |
|
128 | - $divisor = 2; |
|
129 | - } else { |
|
130 | - $divisor = 1; |
|
131 | - } |
|
132 | - |
|
133 | - $columns = array_chunk($child_places, ceil($numfound / $divisor)); |
|
134 | - $html = '<table id="place_hierarchy" class="list_table"><thead><tr><th class="list_label" colspan="' . $divisor . '">'; |
|
135 | - $html .= '<i class="icon-place"></i> '; |
|
136 | - if ($place_id) { |
|
137 | - $html .= I18N::translate('Places in %s', $place->getPlaceName()); |
|
138 | - } else { |
|
139 | - $html .= I18N::translate('Place hierarchy'); |
|
140 | - } |
|
141 | - $html .= '</th></tr></thead>'; |
|
142 | - $html .= '<tbody><tr>'; |
|
143 | - foreach ($columns as $column) { |
|
144 | - $html .= '<td class="list_value"><ul>'; |
|
145 | - foreach ($column as $item) { |
|
146 | - $html .= '<li><a href="' . $item->getURL() . '" class="list_item">' . $item->getPlaceName() . '</a></li>'; |
|
147 | - if ($gm_module && $gm_module->getSetting('GM_PLACE_HIERARCHY')) { |
|
148 | - list($tmp) = explode(', ', $item->getGedcomName(), 2); |
|
149 | - $place_names[] = $tmp; |
|
150 | - } |
|
151 | - } |
|
152 | - $html .= '</ul></td>'; |
|
153 | - } |
|
154 | - $html .= '</tr></tbody>'; |
|
155 | - if ($numfound > 0 && $action == 'find' && $place_id) { |
|
156 | - $html .= '<tfoot><tr><td class="list_label" colspan="' . $divisor . '">'; |
|
157 | - $html .= I18N::translate('View all records found in this place'); |
|
158 | - $html .= '</td></tr><tr><td class="list_value" colspan="' . $divisor . '" style="text-align: center;">'; |
|
159 | - $html .= '<a href="' . $place->getURL() . '&action=show" class="formField">' . $place->getPlaceName() . '</a>'; |
|
160 | - $html .= '</td></tr></tfoot>'; |
|
161 | - } |
|
162 | - $html .= '</table>'; |
|
163 | - // -- echo the array |
|
164 | - echo $html; |
|
165 | - } |
|
166 | - if ($place_id && $action == 'show') { |
|
167 | - // -- array of names |
|
168 | - $myindilist = array(); |
|
169 | - $myfamlist = array(); |
|
170 | - |
|
171 | - $positions = |
|
172 | - Database::prepare("SELECT DISTINCT pl_gid FROM `##placelinks` WHERE pl_p_id=? AND pl_file=?") |
|
173 | - ->execute(array($place_id, $WT_TREE->getTreeId())) |
|
174 | - ->fetchOneColumn(); |
|
175 | - |
|
176 | - foreach ($positions as $position) { |
|
177 | - $record = GedcomRecord::getInstance($position, $WT_TREE); |
|
178 | - if ($record && $record->canShow()) { |
|
179 | - if ($record instanceof Individual) { |
|
180 | - $myindilist[] = $record; |
|
181 | - } |
|
182 | - if ($record instanceof Family) { |
|
183 | - $myfamlist[] = $record; |
|
184 | - } |
|
185 | - } |
|
186 | - } |
|
187 | - echo '<br>'; |
|
188 | - |
|
189 | - //-- display results |
|
190 | - $controller |
|
191 | - ->addInlineJavascript('jQuery("#places-tabs").tabs();') |
|
192 | - ->addInlineJavascript('jQuery("#places-tabs").css("visibility", "visible");') |
|
193 | - ->addInlineJavascript('jQuery(".loading-image").css("display", "none");'); |
|
194 | - |
|
195 | - echo '<div class="loading-image"></div>'; |
|
196 | - echo '<div id="places-tabs"><ul>'; |
|
197 | - if (!empty($myindilist)) { |
|
198 | - echo '<li><a href="#places-indi"><span id="indisource">', I18N::translate('Individuals'), '</span></a></li>'; |
|
199 | - } |
|
200 | - if (!empty($myfamlist)) { |
|
201 | - echo '<li><a href="#places-fam"><span id="famsource">', I18N::translate('Families'), '</span></a></li>'; |
|
202 | - } |
|
203 | - echo '</ul>'; |
|
204 | - if (!empty($myindilist)) { |
|
205 | - echo '<div id="places-indi">', FunctionsPrintLists::individualTable($myindilist), '</div>'; |
|
206 | - } |
|
207 | - if (!empty($myfamlist)) { |
|
208 | - echo '<div id="places-fam">', FunctionsPrintLists::familyTable($myfamlist), '</div>'; |
|
209 | - } |
|
210 | - echo '</div>'; // <div id="places-tabs"> |
|
211 | - } |
|
212 | - echo '<h4><a href="placelist.php?display=list">', I18N::translate('Show all places in a list'), '</a></h4>'; |
|
213 | - |
|
214 | - if ($gm_module && $gm_module->getSetting('GM_PLACE_HIERARCHY')) { |
|
215 | - $gm_module->mapScripts($numfound, $level, $parent, $linklevels, $place_names); |
|
216 | - } |
|
217 | - break; |
|
54 | + case 'list': |
|
55 | + echo '<h2>', $controller->getPageTitle(), '</h2>'; |
|
56 | + $list_places = Place::allPlaces($WT_TREE); |
|
57 | + $numfound = count($list_places); |
|
58 | + |
|
59 | + $divisor = $numfound > 20 ? 3 : 2; |
|
60 | + |
|
61 | + if ($numfound === 0) { |
|
62 | + echo '<b>', I18N::translate('No results found.'), '</b><br>'; |
|
63 | + } else { |
|
64 | + $columns = array_chunk($list_places, ceil($numfound / $divisor)); |
|
65 | + |
|
66 | + $html = '<table class="list_table"><thead>'; |
|
67 | + $html .= '<tr><th class="list_label" colspan="' . $divisor . '">'; |
|
68 | + $html .= '<i class="icon-place"></i> ' . I18N::translate('Place list'); |
|
69 | + $html .= '</th></tr></thead>'; |
|
70 | + $html .= '<tbody><tr>'; |
|
71 | + foreach ($columns as $column) { |
|
72 | + $html .= '<td class="list_value_wrap"><ul>'; |
|
73 | + foreach ($column as $item) { |
|
74 | + $html .= '<li><a href="' . $item->getURL() . '">' . $item->getReverseName() . '</a></li>'; |
|
75 | + } |
|
76 | + $html .= '</ul></td>'; |
|
77 | + } |
|
78 | + $html .= '</tr></tbody></table>'; |
|
79 | + echo $html; |
|
80 | + } |
|
81 | + echo '<h4><a href="placelist.php?display=hierarchy">', I18N::translate('Show places in hierarchy'), '</a></h4>'; |
|
82 | + break; |
|
83 | + case 'hierarchy': |
|
84 | + $gm_module = Module::getModuleByName('googlemap'); |
|
85 | + |
|
86 | + // Find this place and its ID |
|
87 | + $place = new Place(implode(', ', array_reverse($parent)), $WT_TREE); |
|
88 | + $place_id = $place->getPlaceId(); |
|
89 | + |
|
90 | + $child_places = $place->getChildPlaces(); |
|
91 | + |
|
92 | + $numfound = count($child_places); |
|
93 | + |
|
94 | + //-- if the number of places found is 0 then automatically redirect to search page |
|
95 | + if ($numfound === 0) { |
|
96 | + $action = 'show'; |
|
97 | + } |
|
98 | + |
|
99 | + echo '<h2>', $controller->getPageTitle(); |
|
100 | + // Breadcrumbs |
|
101 | + if ($place_id) { |
|
102 | + $parent_place = $place->getParentPlace(); |
|
103 | + while ($parent_place->getPlaceId()) { |
|
104 | + echo ', <a href="', $parent_place->getURL(), '" dir="auto">', $parent_place->getPlaceName(), '</a>'; |
|
105 | + $parent_place = $parent_place->getParentPlace(); |
|
106 | + } |
|
107 | + echo ', <a href="', WT_SCRIPT_NAME, '">', I18N::translate('Top level'), '</a>'; |
|
108 | + } |
|
109 | + echo '</h2>'; |
|
110 | + |
|
111 | + if ($gm_module && $gm_module->getSetting('GM_PLACE_HIERARCHY')) { |
|
112 | + $linklevels = ''; |
|
113 | + $place_names = array(); |
|
114 | + for ($j = 0; $j < $level; $j++) { |
|
115 | + $linklevels .= '&parent[' . $j . ']=' . rawurlencode($parent[$j]); |
|
116 | + } |
|
117 | + |
|
118 | + $gm_module->createMap(); |
|
119 | + } elseif (Module::getModuleByName('places_assistant')) { |
|
120 | + // Places Assistant is a custom/add-on module that was once part of the core code. |
|
121 | + \PlacesAssistantModule::display_map($level, $parent); |
|
122 | + } |
|
123 | + |
|
124 | + if ($numfound > 0) { |
|
125 | + if ($numfound > 20) { |
|
126 | + $divisor = 3; |
|
127 | + } elseif ($numfound > 4) { |
|
128 | + $divisor = 2; |
|
129 | + } else { |
|
130 | + $divisor = 1; |
|
131 | + } |
|
132 | + |
|
133 | + $columns = array_chunk($child_places, ceil($numfound / $divisor)); |
|
134 | + $html = '<table id="place_hierarchy" class="list_table"><thead><tr><th class="list_label" colspan="' . $divisor . '">'; |
|
135 | + $html .= '<i class="icon-place"></i> '; |
|
136 | + if ($place_id) { |
|
137 | + $html .= I18N::translate('Places in %s', $place->getPlaceName()); |
|
138 | + } else { |
|
139 | + $html .= I18N::translate('Place hierarchy'); |
|
140 | + } |
|
141 | + $html .= '</th></tr></thead>'; |
|
142 | + $html .= '<tbody><tr>'; |
|
143 | + foreach ($columns as $column) { |
|
144 | + $html .= '<td class="list_value"><ul>'; |
|
145 | + foreach ($column as $item) { |
|
146 | + $html .= '<li><a href="' . $item->getURL() . '" class="list_item">' . $item->getPlaceName() . '</a></li>'; |
|
147 | + if ($gm_module && $gm_module->getSetting('GM_PLACE_HIERARCHY')) { |
|
148 | + list($tmp) = explode(', ', $item->getGedcomName(), 2); |
|
149 | + $place_names[] = $tmp; |
|
150 | + } |
|
151 | + } |
|
152 | + $html .= '</ul></td>'; |
|
153 | + } |
|
154 | + $html .= '</tr></tbody>'; |
|
155 | + if ($numfound > 0 && $action == 'find' && $place_id) { |
|
156 | + $html .= '<tfoot><tr><td class="list_label" colspan="' . $divisor . '">'; |
|
157 | + $html .= I18N::translate('View all records found in this place'); |
|
158 | + $html .= '</td></tr><tr><td class="list_value" colspan="' . $divisor . '" style="text-align: center;">'; |
|
159 | + $html .= '<a href="' . $place->getURL() . '&action=show" class="formField">' . $place->getPlaceName() . '</a>'; |
|
160 | + $html .= '</td></tr></tfoot>'; |
|
161 | + } |
|
162 | + $html .= '</table>'; |
|
163 | + // -- echo the array |
|
164 | + echo $html; |
|
165 | + } |
|
166 | + if ($place_id && $action == 'show') { |
|
167 | + // -- array of names |
|
168 | + $myindilist = array(); |
|
169 | + $myfamlist = array(); |
|
170 | + |
|
171 | + $positions = |
|
172 | + Database::prepare("SELECT DISTINCT pl_gid FROM `##placelinks` WHERE pl_p_id=? AND pl_file=?") |
|
173 | + ->execute(array($place_id, $WT_TREE->getTreeId())) |
|
174 | + ->fetchOneColumn(); |
|
175 | + |
|
176 | + foreach ($positions as $position) { |
|
177 | + $record = GedcomRecord::getInstance($position, $WT_TREE); |
|
178 | + if ($record && $record->canShow()) { |
|
179 | + if ($record instanceof Individual) { |
|
180 | + $myindilist[] = $record; |
|
181 | + } |
|
182 | + if ($record instanceof Family) { |
|
183 | + $myfamlist[] = $record; |
|
184 | + } |
|
185 | + } |
|
186 | + } |
|
187 | + echo '<br>'; |
|
188 | + |
|
189 | + //-- display results |
|
190 | + $controller |
|
191 | + ->addInlineJavascript('jQuery("#places-tabs").tabs();') |
|
192 | + ->addInlineJavascript('jQuery("#places-tabs").css("visibility", "visible");') |
|
193 | + ->addInlineJavascript('jQuery(".loading-image").css("display", "none");'); |
|
194 | + |
|
195 | + echo '<div class="loading-image"></div>'; |
|
196 | + echo '<div id="places-tabs"><ul>'; |
|
197 | + if (!empty($myindilist)) { |
|
198 | + echo '<li><a href="#places-indi"><span id="indisource">', I18N::translate('Individuals'), '</span></a></li>'; |
|
199 | + } |
|
200 | + if (!empty($myfamlist)) { |
|
201 | + echo '<li><a href="#places-fam"><span id="famsource">', I18N::translate('Families'), '</span></a></li>'; |
|
202 | + } |
|
203 | + echo '</ul>'; |
|
204 | + if (!empty($myindilist)) { |
|
205 | + echo '<div id="places-indi">', FunctionsPrintLists::individualTable($myindilist), '</div>'; |
|
206 | + } |
|
207 | + if (!empty($myfamlist)) { |
|
208 | + echo '<div id="places-fam">', FunctionsPrintLists::familyTable($myfamlist), '</div>'; |
|
209 | + } |
|
210 | + echo '</div>'; // <div id="places-tabs"> |
|
211 | + } |
|
212 | + echo '<h4><a href="placelist.php?display=list">', I18N::translate('Show all places in a list'), '</a></h4>'; |
|
213 | + |
|
214 | + if ($gm_module && $gm_module->getSetting('GM_PLACE_HIERARCHY')) { |
|
215 | + $gm_module->mapScripts($numfound, $level, $parent, $linklevels, $place_names); |
|
216 | + } |
|
217 | + break; |
|
218 | 218 | } |
219 | 219 | |
220 | 220 | echo '</div>'; // <div id="place-hierarchy"> |
@@ -118,15 +118,15 @@ discard block |
||
118 | 118 | $controller->setPageTitle(I18N::translate('Anniversary calendar')); |
119 | 119 | |
120 | 120 | switch ($view) { |
121 | -case 'day': |
|
122 | - $controller->setPageTitle(I18N::translate('On this day…') . ' ' . $ged_date->display(false)); |
|
123 | - break; |
|
124 | -case 'month': |
|
125 | - $controller->setPageTitle(I18N::translate('In this month…') . ' ' . $ged_date->display(false, '%F %Y')); |
|
126 | - break; |
|
127 | -case 'year': |
|
128 | - $controller->setPageTitle(I18N::translate('In this year…') . ' ' . $ged_date->display(false, '%Y')); |
|
129 | - break; |
|
121 | + case 'day': |
|
122 | + $controller->setPageTitle(I18N::translate('On this day…') . ' ' . $ged_date->display(false)); |
|
123 | + break; |
|
124 | + case 'month': |
|
125 | + $controller->setPageTitle(I18N::translate('In this month…') . ' ' . $ged_date->display(false, '%F %Y')); |
|
126 | + break; |
|
127 | + case 'year': |
|
128 | + $controller->setPageTitle(I18N::translate('In this year…') . ' ' . $ged_date->display(false, '%Y')); |
|
129 | + break; |
|
130 | 130 | } |
131 | 131 | |
132 | 132 | $controller->pageHeader(); |
@@ -329,38 +329,38 @@ discard block |
||
329 | 329 | $found_facts = array(); |
330 | 330 | |
331 | 331 | switch ($view) { |
332 | -case 'day': |
|
333 | - $found_facts = apply_filter(FunctionsDb::getAnniversaryEvents($cal_date->minJD, $filterev, $WT_TREE), $filterof, $filtersx); |
|
334 | - break; |
|
335 | -case 'month': |
|
336 | - $cal_date->d = 0; |
|
337 | - $cal_date->setJdFromYmd(); |
|
338 | - // Make a separate list for each day. Unspecified/invalid days go in day 0. |
|
339 | - for ($d = 0; $d <= $days_in_month; ++$d) { |
|
340 | - $found_facts[$d] = array(); |
|
341 | - } |
|
342 | - // Fetch events for each day |
|
343 | - for ($jd = $cal_date->minJD; $jd <= $cal_date->maxJD; ++$jd) { |
|
344 | - foreach (apply_filter(FunctionsDb::getAnniversaryEvents($jd, $filterev, $WT_TREE), $filterof, $filtersx) as $fact) { |
|
345 | - $tmp = $fact->getDate()->minimumDate(); |
|
346 | - if ($tmp->d >= 1 && $tmp->d <= $tmp->daysInMonth()) { |
|
347 | - // If the day is valid (for its own calendar), display it in the |
|
348 | - // anniversary day (for the display calendar). |
|
349 | - $found_facts[$jd - $cal_date->minJD + 1][] = $fact; |
|
350 | - } else { |
|
351 | - // Otherwise, display it in the "Day not set" box. |
|
352 | - $found_facts[0][] = $fact; |
|
353 | - } |
|
354 | - } |
|
355 | - } |
|
356 | - break; |
|
357 | -case 'year': |
|
358 | - $cal_date->m = 0; |
|
359 | - $cal_date->setJdFromYmd(); |
|
360 | - $found_facts = apply_filter(FunctionsDb::getCalendarEvents($ged_date->minimumJulianDay(), $ged_date->maximumJulianDay(), $filterev, $WT_TREE), $filterof, $filtersx); |
|
361 | - // Eliminate duplicates (e.g. BET JUL 1900 AND SEP 1900 will appear twice in 1900) |
|
362 | - $found_facts = array_unique($found_facts); |
|
363 | - break; |
|
332 | + case 'day': |
|
333 | + $found_facts = apply_filter(FunctionsDb::getAnniversaryEvents($cal_date->minJD, $filterev, $WT_TREE), $filterof, $filtersx); |
|
334 | + break; |
|
335 | + case 'month': |
|
336 | + $cal_date->d = 0; |
|
337 | + $cal_date->setJdFromYmd(); |
|
338 | + // Make a separate list for each day. Unspecified/invalid days go in day 0. |
|
339 | + for ($d = 0; $d <= $days_in_month; ++$d) { |
|
340 | + $found_facts[$d] = array(); |
|
341 | + } |
|
342 | + // Fetch events for each day |
|
343 | + for ($jd = $cal_date->minJD; $jd <= $cal_date->maxJD; ++$jd) { |
|
344 | + foreach (apply_filter(FunctionsDb::getAnniversaryEvents($jd, $filterev, $WT_TREE), $filterof, $filtersx) as $fact) { |
|
345 | + $tmp = $fact->getDate()->minimumDate(); |
|
346 | + if ($tmp->d >= 1 && $tmp->d <= $tmp->daysInMonth()) { |
|
347 | + // If the day is valid (for its own calendar), display it in the |
|
348 | + // anniversary day (for the display calendar). |
|
349 | + $found_facts[$jd - $cal_date->minJD + 1][] = $fact; |
|
350 | + } else { |
|
351 | + // Otherwise, display it in the "Day not set" box. |
|
352 | + $found_facts[0][] = $fact; |
|
353 | + } |
|
354 | + } |
|
355 | + } |
|
356 | + break; |
|
357 | + case 'year': |
|
358 | + $cal_date->m = 0; |
|
359 | + $cal_date->setJdFromYmd(); |
|
360 | + $found_facts = apply_filter(FunctionsDb::getCalendarEvents($ged_date->minimumJulianDay(), $ged_date->maximumJulianDay(), $filterev, $WT_TREE), $filterof, $filtersx); |
|
361 | + // Eliminate duplicates (e.g. BET JUL 1900 AND SEP 1900 will appear twice in 1900) |
|
362 | + $found_facts = array_unique($found_facts); |
|
363 | + break; |
|
364 | 364 | } |
365 | 365 | |
366 | 366 | // Group the facts by family/individual |
@@ -369,39 +369,39 @@ discard block |
||
369 | 369 | $cal_facts = array(); |
370 | 370 | |
371 | 371 | switch ($view) { |
372 | -case 'year': |
|
373 | -case 'day': |
|
374 | - foreach ($found_facts as $fact) { |
|
375 | - $record = $fact->getParent(); |
|
376 | - $xref = $record->getXref(); |
|
377 | - if ($record instanceof Individual) { |
|
378 | - if (empty($indis[$xref])) { |
|
379 | - $indis[$xref] = calendar_fact_text($fact, true); |
|
380 | - } else { |
|
381 | - $indis[$xref] .= '<br>' . calendar_fact_text($fact, true); |
|
382 | - } |
|
383 | - } elseif ($record instanceof Family) { |
|
384 | - if (empty($indis[$xref])) { |
|
385 | - $fams[$xref] = calendar_fact_text($fact, true); |
|
386 | - } else { |
|
387 | - $fams[$xref] .= '<br>' . calendar_fact_text($fact, true); |
|
388 | - } |
|
389 | - } |
|
390 | - } |
|
391 | - break; |
|
392 | -case 'month': |
|
393 | - foreach ($found_facts as $d => $facts) { |
|
394 | - $cal_facts[$d] = array(); |
|
395 | - foreach ($facts as $fact) { |
|
396 | - $xref = $fact->getParent()->getXref(); |
|
397 | - if (empty($cal_facts[$d][$xref])) { |
|
398 | - $cal_facts[$d][$xref] = calendar_fact_text($fact, false); |
|
399 | - } else { |
|
400 | - $cal_facts[$d][$xref] .= '<br>' . calendar_fact_text($fact, false); |
|
401 | - } |
|
402 | - } |
|
403 | - } |
|
404 | - break; |
|
372 | + case 'year': |
|
373 | + case 'day': |
|
374 | + foreach ($found_facts as $fact) { |
|
375 | + $record = $fact->getParent(); |
|
376 | + $xref = $record->getXref(); |
|
377 | + if ($record instanceof Individual) { |
|
378 | + if (empty($indis[$xref])) { |
|
379 | + $indis[$xref] = calendar_fact_text($fact, true); |
|
380 | + } else { |
|
381 | + $indis[$xref] .= '<br>' . calendar_fact_text($fact, true); |
|
382 | + } |
|
383 | + } elseif ($record instanceof Family) { |
|
384 | + if (empty($indis[$xref])) { |
|
385 | + $fams[$xref] = calendar_fact_text($fact, true); |
|
386 | + } else { |
|
387 | + $fams[$xref] .= '<br>' . calendar_fact_text($fact, true); |
|
388 | + } |
|
389 | + } |
|
390 | + } |
|
391 | + break; |
|
392 | + case 'month': |
|
393 | + foreach ($found_facts as $d => $facts) { |
|
394 | + $cal_facts[$d] = array(); |
|
395 | + foreach ($facts as $fact) { |
|
396 | + $xref = $fact->getParent()->getXref(); |
|
397 | + if (empty($cal_facts[$d][$xref])) { |
|
398 | + $cal_facts[$d][$xref] = calendar_fact_text($fact, false); |
|
399 | + } else { |
|
400 | + $cal_facts[$d][$xref] .= '<br>' . calendar_fact_text($fact, false); |
|
401 | + } |
|
402 | + } |
|
403 | + } |
|
404 | + break; |
|
405 | 405 | } |
406 | 406 | |
407 | 407 | switch ($view) { |
@@ -498,26 +498,26 @@ discard block |
||
498 | 498 | // Show a converted date |
499 | 499 | foreach (explode('_and_', $CALENDAR_FORMAT) as $convcal) { |
500 | 500 | switch ($convcal) { |
501 | - case 'french': |
|
502 | - $alt_date = new FrenchDate($cal_date->minJD + $d - 1); |
|
503 | - break; |
|
504 | - case 'gregorian': |
|
505 | - $alt_date = new GregorianDate($cal_date->minJD + $d - 1); |
|
506 | - break; |
|
507 | - case 'jewish': |
|
508 | - $alt_date = new JewishDate($cal_date->minJD + $d - 1); |
|
509 | - break; |
|
510 | - case 'julian': |
|
511 | - $alt_date = new JulianDate($cal_date->minJD + $d - 1); |
|
512 | - break; |
|
513 | - case 'hijri': |
|
514 | - $alt_date = new HijriDate($cal_date->minJD + $d - 1); |
|
515 | - break; |
|
516 | - case 'jalali': |
|
517 | - $alt_date = new JalaliDate($cal_date->minJD + $d - 1); |
|
518 | - break; |
|
519 | - default: |
|
520 | - break 2; |
|
501 | + case 'french': |
|
502 | + $alt_date = new FrenchDate($cal_date->minJD + $d - 1); |
|
503 | + break; |
|
504 | + case 'gregorian': |
|
505 | + $alt_date = new GregorianDate($cal_date->minJD + $d - 1); |
|
506 | + break; |
|
507 | + case 'jewish': |
|
508 | + $alt_date = new JewishDate($cal_date->minJD + $d - 1); |
|
509 | + break; |
|
510 | + case 'julian': |
|
511 | + $alt_date = new JulianDate($cal_date->minJD + $d - 1); |
|
512 | + break; |
|
513 | + case 'hijri': |
|
514 | + $alt_date = new HijriDate($cal_date->minJD + $d - 1); |
|
515 | + break; |
|
516 | + case 'jalali': |
|
517 | + $alt_date = new JalaliDate($cal_date->minJD + $d - 1); |
|
518 | + break; |
|
519 | + default: |
|
520 | + break 2; |
|
521 | 521 | } |
522 | 522 | if (get_class($alt_date) !== get_class($cal_date) && $alt_date->inValidRange()) { |
523 | 523 | echo '<span class="rtl_cal_day">' . $alt_date->format("%j %M") . '</span>'; |
@@ -627,17 +627,17 @@ discard block |
||
627 | 627 | $html .= $tag1 . '<a href="' . $tmp->getHtmlUrl() . '">' . $tmp->getFullName() . '</a> '; |
628 | 628 | if ($show_sex_symbols && $tmp instanceof Individual) { |
629 | 629 | switch ($tmp->getSex()) { |
630 | - case 'M': |
|
631 | - $html .= '<i class="icon-sex_m_9x9" title="' . I18N::translate('Male') . '"></i>'; |
|
632 | - ++$males; |
|
633 | - break; |
|
634 | - case 'F': |
|
635 | - $html .= '<i class="icon-sex_f_9x9" title="' . I18N::translate('Female') . '"></i>'; |
|
636 | - ++$females; |
|
637 | - break; |
|
638 | - default: |
|
639 | - $html .= '<i class="icon-sex_u_9x9" title="' . I18N::translateContext('unknown gender', 'Unknown') . '"></i>'; |
|
640 | - break; |
|
630 | + case 'M': |
|
631 | + $html .= '<i class="icon-sex_m_9x9" title="' . I18N::translate('Male') . '"></i>'; |
|
632 | + ++$males; |
|
633 | + break; |
|
634 | + case 'F': |
|
635 | + $html .= '<i class="icon-sex_f_9x9" title="' . I18N::translate('Female') . '"></i>'; |
|
636 | + ++$females; |
|
637 | + break; |
|
638 | + default: |
|
639 | + $html .= '<i class="icon-sex_u_9x9" title="' . I18N::translateContext('unknown gender', 'Unknown') . '"></i>'; |
|
640 | + break; |
|
641 | 641 | } |
642 | 642 | } |
643 | 643 | $html .= '<div class="indent">' . $facts . '</div>' . $tag2; |
@@ -185,18 +185,18 @@ |
||
185 | 185 | $searchField = $controller->getField($k); |
186 | 186 | $searchOption = substr($searchField, 20); // Assume we have something like "FAMC:HUSB:NAME:GIVN:foo" |
187 | 187 | switch (substr($searchField, 0, 20)) { |
188 | - case 'FAMC:HUSB:NAME:GIVN:': |
|
189 | - $fatherGivnOption = $searchOption; |
|
190 | - break; |
|
191 | - case 'FAMC:HUSB:NAME:SURN:': |
|
192 | - $fatherSurnOption = $searchOption; |
|
193 | - break; |
|
194 | - case 'FAMC:WIFE:NAME:GIVN:': |
|
195 | - $motherGivnOption = $searchOption; |
|
196 | - break; |
|
197 | - case 'FAMC:WIFE:NAME:SURN:': |
|
198 | - $motherSurnOption = $searchOption; |
|
199 | - break; |
|
188 | + case 'FAMC:HUSB:NAME:GIVN:': |
|
189 | + $fatherGivnOption = $searchOption; |
|
190 | + break; |
|
191 | + case 'FAMC:HUSB:NAME:SURN:': |
|
192 | + $fatherSurnOption = $searchOption; |
|
193 | + break; |
|
194 | + case 'FAMC:WIFE:NAME:GIVN:': |
|
195 | + $motherGivnOption = $searchOption; |
|
196 | + break; |
|
197 | + case 'FAMC:WIFE:NAME:SURN:': |
|
198 | + $motherSurnOption = $searchOption; |
|
199 | + break; |
|
200 | 200 | } |
201 | 201 | } |
202 | 202 | ?> |
@@ -125,75 +125,75 @@ |
||
125 | 125 | // MySQL supports a wide range of collation conversions. These are ones that |
126 | 126 | // have been encountered "in the wild". |
127 | 127 | switch ($charset) { |
128 | - case 'ASCII': |
|
129 | - Database::prepare( |
|
130 | - "UPDATE `##gedcom_chunk`" . |
|
131 | - " SET chunk_data=CONVERT(CONVERT(chunk_data USING ascii) USING utf8)" . |
|
132 | - " WHERE gedcom_id=?" |
|
133 | - )->execute(array($gedcom_id)); |
|
134 | - break; |
|
135 | - case 'IBMPC': // IBMPC, IBM WINDOWS and MS-DOS could be anything. Mostly it means CP850. |
|
136 | - case 'IBM WINDOWS': |
|
137 | - case 'MS-DOS': |
|
138 | - case 'CP437': |
|
139 | - case 'CP850': |
|
140 | - // CP850 has extra letters with diacritics to replace box-drawing chars in CP437. |
|
141 | - Database::prepare( |
|
142 | - "UPDATE `##gedcom_chunk`" . |
|
143 | - " SET chunk_data=CONVERT(CONVERT(chunk_data USING cp850) USING utf8)" . |
|
144 | - " WHERE gedcom_id=?" |
|
145 | - )->execute(array($gedcom_id)); |
|
146 | - break; |
|
147 | - case 'ANSI': // ANSI could be anything. Most applications seem to treat it as latin1. |
|
148 | - $controller->addInlineJavascript( |
|
149 | - 'jQuery("#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 */ |
|
150 | - I18N::translate('This GEDCOM file is encoded using %1$s. Assume this to mean %2$s.', $charset, 'ISO-8859-1') . '</div>");' |
|
151 | - ); |
|
152 | - // no break; |
|
153 | - case 'WINDOWS': |
|
154 | - case 'CP1252': |
|
155 | - case 'ISO8859-1': |
|
156 | - case 'ISO-8859-1': |
|
157 | - case 'LATIN1': |
|
158 | - case 'LATIN-1': |
|
159 | - // Convert from ISO-8859-1 (western european) to UTF8. |
|
160 | - Database::prepare( |
|
161 | - "UPDATE `##gedcom_chunk`" . |
|
162 | - " SET chunk_data=CONVERT(CONVERT(chunk_data USING latin1) USING utf8)" . |
|
163 | - " WHERE gedcom_id=?" |
|
164 | - )->execute(array($gedcom_id)); |
|
165 | - break; |
|
166 | - case 'CP1250': |
|
167 | - case 'ISO8859-2': |
|
168 | - case 'ISO-8859-2': |
|
169 | - case 'LATIN2': |
|
170 | - case 'LATIN-2': |
|
171 | - // Convert from ISO-8859-2 (eastern european) to UTF8. |
|
172 | - Database::prepare( |
|
173 | - "UPDATE `##gedcom_chunk`" . |
|
174 | - " SET chunk_data=CONVERT(CONVERT(chunk_data USING latin2) USING utf8)" . |
|
175 | - " WHERE gedcom_id=?" |
|
176 | - )->execute(array($gedcom_id)); |
|
177 | - break; |
|
178 | - case 'MACINTOSH': |
|
179 | - // Convert from MAC Roman to UTF8. |
|
180 | - Database::prepare( |
|
181 | - "UPDATE `##gedcom_chunk`" . |
|
182 | - " SET chunk_data=CONVERT(CONVERT(chunk_data USING macroman) USING utf8)" . |
|
183 | - " WHERE gedcom_id=?" |
|
184 | - )->execute(array($gedcom_id)); |
|
185 | - break; |
|
186 | - case 'UTF8': |
|
187 | - case 'UTF-8': |
|
188 | - // Already UTF-8 so nothing to do! |
|
189 | - break; |
|
190 | - case 'ANSEL': |
|
191 | - default: |
|
192 | - Database::rollBack(); |
|
193 | - echo '<span class="error">', I18N::translate('Error: converting GEDCOM files from %s encoding to UTF-8 encoding not currently supported.', $charset), '</span>'; |
|
194 | - $controller->addInlineJavascript('jQuery("#actions' . $gedcom_id . '").removeClass("hidden");'); |
|
195 | - |
|
196 | - return; |
|
128 | + case 'ASCII': |
|
129 | + Database::prepare( |
|
130 | + "UPDATE `##gedcom_chunk`" . |
|
131 | + " SET chunk_data=CONVERT(CONVERT(chunk_data USING ascii) USING utf8)" . |
|
132 | + " WHERE gedcom_id=?" |
|
133 | + )->execute(array($gedcom_id)); |
|
134 | + break; |
|
135 | + case 'IBMPC': // IBMPC, IBM WINDOWS and MS-DOS could be anything. Mostly it means CP850. |
|
136 | + case 'IBM WINDOWS': |
|
137 | + case 'MS-DOS': |
|
138 | + case 'CP437': |
|
139 | + case 'CP850': |
|
140 | + // CP850 has extra letters with diacritics to replace box-drawing chars in CP437. |
|
141 | + Database::prepare( |
|
142 | + "UPDATE `##gedcom_chunk`" . |
|
143 | + " SET chunk_data=CONVERT(CONVERT(chunk_data USING cp850) USING utf8)" . |
|
144 | + " WHERE gedcom_id=?" |
|
145 | + )->execute(array($gedcom_id)); |
|
146 | + break; |
|
147 | + case 'ANSI': // ANSI could be anything. Most applications seem to treat it as latin1. |
|
148 | + $controller->addInlineJavascript( |
|
149 | + 'jQuery("#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 */ |
|
150 | + I18N::translate('This GEDCOM file is encoded using %1$s. Assume this to mean %2$s.', $charset, 'ISO-8859-1') . '</div>");' |
|
151 | + ); |
|
152 | + // no break; |
|
153 | + case 'WINDOWS': |
|
154 | + case 'CP1252': |
|
155 | + case 'ISO8859-1': |
|
156 | + case 'ISO-8859-1': |
|
157 | + case 'LATIN1': |
|
158 | + case 'LATIN-1': |
|
159 | + // Convert from ISO-8859-1 (western european) to UTF8. |
|
160 | + Database::prepare( |
|
161 | + "UPDATE `##gedcom_chunk`" . |
|
162 | + " SET chunk_data=CONVERT(CONVERT(chunk_data USING latin1) USING utf8)" . |
|
163 | + " WHERE gedcom_id=?" |
|
164 | + )->execute(array($gedcom_id)); |
|
165 | + break; |
|
166 | + case 'CP1250': |
|
167 | + case 'ISO8859-2': |
|
168 | + case 'ISO-8859-2': |
|
169 | + case 'LATIN2': |
|
170 | + case 'LATIN-2': |
|
171 | + // Convert from ISO-8859-2 (eastern european) to UTF8. |
|
172 | + Database::prepare( |
|
173 | + "UPDATE `##gedcom_chunk`" . |
|
174 | + " SET chunk_data=CONVERT(CONVERT(chunk_data USING latin2) USING utf8)" . |
|
175 | + " WHERE gedcom_id=?" |
|
176 | + )->execute(array($gedcom_id)); |
|
177 | + break; |
|
178 | + case 'MACINTOSH': |
|
179 | + // Convert from MAC Roman to UTF8. |
|
180 | + Database::prepare( |
|
181 | + "UPDATE `##gedcom_chunk`" . |
|
182 | + " SET chunk_data=CONVERT(CONVERT(chunk_data USING macroman) USING utf8)" . |
|
183 | + " WHERE gedcom_id=?" |
|
184 | + )->execute(array($gedcom_id)); |
|
185 | + break; |
|
186 | + case 'UTF8': |
|
187 | + case 'UTF-8': |
|
188 | + // Already UTF-8 so nothing to do! |
|
189 | + break; |
|
190 | + case 'ANSEL': |
|
191 | + default: |
|
192 | + Database::rollBack(); |
|
193 | + echo '<span class="error">', I18N::translate('Error: converting GEDCOM files from %s encoding to UTF-8 encoding not currently supported.', $charset), '</span>'; |
|
194 | + $controller->addInlineJavascript('jQuery("#actions' . $gedcom_id . '").removeClass("hidden");'); |
|
195 | + |
|
196 | + return; |
|
197 | 197 | } |
198 | 198 | $first_time = false; |
199 | 199 |
@@ -132,176 +132,176 @@ |
||
132 | 132 | $relatives_events = explode(',', $WT_TREE->getPreference('SHOW_RELATIVES_EVENTS')); |
133 | 133 | |
134 | 134 | switch (Filter::post('action')) { |
135 | -case 'privacy': |
|
136 | - foreach (Filter::postArray('delete', WT_REGEX_INTEGER) as $delete_resn) { |
|
137 | - Database::prepare( |
|
138 | - "DELETE FROM `##default_resn` WHERE default_resn_id=?" |
|
139 | - )->execute(array($delete_resn)); |
|
140 | - } |
|
141 | - |
|
142 | - $xrefs = Filter::postArray('xref', WT_REGEX_XREF); |
|
143 | - $tag_types = Filter::postArray('tag_type', WT_REGEX_TAG); |
|
144 | - $resns = Filter::postArray('resn'); |
|
145 | - |
|
146 | - foreach ($xrefs as $n => $xref) { |
|
147 | - $tag_type = $tag_types[$n]; |
|
148 | - $resn = $resns[$n]; |
|
149 | - |
|
150 | - if ($tag_type || $xref) { |
|
151 | - // Delete any existing data |
|
152 | - if ($xref === '') { |
|
153 | - Database::prepare( |
|
154 | - "DELETE FROM `##default_resn` WHERE gedcom_id=? AND tag_type=? AND xref IS NULL" |
|
155 | - )->execute(array($WT_TREE->getTreeId(), $tag_type)); |
|
156 | - } |
|
157 | - if ($tag_type === '') { |
|
158 | - Database::prepare( |
|
159 | - "DELETE FROM `##default_resn` WHERE gedcom_id=? AND xref=? AND tag_type IS NULL" |
|
160 | - )->execute(array($WT_TREE->getTreeId(), $xref)); |
|
161 | - } |
|
162 | - // Add (or update) the new data |
|
163 | - Database::prepare( |
|
164 | - "REPLACE INTO `##default_resn` (gedcom_id, xref, tag_type, resn) VALUES (?, NULLIF(?, ''), NULLIF(?, ''), ?)" |
|
165 | - )->execute(array($WT_TREE->getTreeId(), $xref, $tag_type, $resn)); |
|
166 | - } |
|
167 | - } |
|
168 | - |
|
169 | - $WT_TREE->setPreference('HIDE_LIVE_PEOPLE', Filter::postBool('HIDE_LIVE_PEOPLE')); |
|
170 | - $WT_TREE->setPreference('KEEP_ALIVE_YEARS_BIRTH', Filter::post('KEEP_ALIVE_YEARS_BIRTH', WT_REGEX_INTEGER, 0)); |
|
171 | - $WT_TREE->setPreference('KEEP_ALIVE_YEARS_DEATH', Filter::post('KEEP_ALIVE_YEARS_DEATH', WT_REGEX_INTEGER, 0)); |
|
172 | - $WT_TREE->setPreference('MAX_ALIVE_AGE', Filter::post('MAX_ALIVE_AGE', WT_REGEX_INTEGER, 100)); |
|
173 | - $WT_TREE->setPreference('REQUIRE_AUTHENTICATION', Filter::postBool('REQUIRE_AUTHENTICATION')); |
|
174 | - $WT_TREE->setPreference('SHOW_DEAD_PEOPLE', Filter::post('SHOW_DEAD_PEOPLE')); |
|
175 | - $WT_TREE->setPreference('SHOW_LIVING_NAMES', Filter::post('SHOW_LIVING_NAMES')); |
|
176 | - $WT_TREE->setPreference('SHOW_PRIVATE_RELATIONSHIPS', Filter::post('SHOW_PRIVATE_RELATIONSHIPS')); |
|
177 | - |
|
178 | - FlashMessages::addMessage(I18N::translate('The preferences for the family tree “%s” have been updated.', $WT_TREE->getTitleHtml()), 'success'); |
|
179 | - header('Location: ' . WT_BASE_URL . 'admin_trees_manage.php?ged=' . $WT_TREE->getNameUrl()); |
|
180 | - |
|
181 | - return; |
|
182 | - |
|
183 | -case 'general': |
|
184 | - if (!Filter::checkCsrf()) { |
|
185 | - break; |
|
186 | - } |
|
187 | - |
|
188 | - // Coming soon |
|
189 | - if (Filter::postBool('all_trees')) { |
|
190 | - FlashMessages::addMessage(I18N::translate('The preferences for all family trees have been updated.', $WT_TREE->getTitleHtml()), 'success'); |
|
191 | - } |
|
192 | - if (Filter::postBool('new_trees')) { |
|
193 | - FlashMessages::addMessage(I18N::translate('The preferences for new family trees have been updated.', $WT_TREE->getTitleHtml()), 'success'); |
|
194 | - } |
|
195 | - |
|
196 | - $WT_TREE->setPreference('ADVANCED_NAME_FACTS', Filter::post('ADVANCED_NAME_FACTS')); |
|
197 | - $WT_TREE->setPreference('ADVANCED_PLAC_FACTS', Filter::post('ADVANCED_PLAC_FACTS')); |
|
198 | - $WT_TREE->setPreference('ALLOW_THEME_DROPDOWN', Filter::postBool('ALLOW_THEME_DROPDOWN')); |
|
199 | - // For backwards compatibility with webtrees 1.x we store the two calendar formats in one variable |
|
200 | - // e.g. "gregorian_and_jewish" |
|
201 | - $WT_TREE->setPreference('CALENDAR_FORMAT', implode('_and_', array_unique(array( |
|
202 | - Filter::post('CALENDAR_FORMAT0', 'gregorian|julian|french|jewish|hijri|jalali', 'none'), |
|
203 | - Filter::post('CALENDAR_FORMAT1', 'gregorian|julian|french|jewish|hijri|jalali', 'none'), |
|
204 | - )))); |
|
205 | - $WT_TREE->setPreference('CHART_BOX_TAGS', Filter::post('CHART_BOX_TAGS')); |
|
206 | - $WT_TREE->setPreference('CONTACT_USER_ID', Filter::post('CONTACT_USER_ID')); |
|
207 | - $WT_TREE->setPreference('DEFAULT_PEDIGREE_GENERATIONS', Filter::post('DEFAULT_PEDIGREE_GENERATIONS')); |
|
208 | - $WT_TREE->setPreference('EXPAND_NOTES', Filter::postBool('EXPAND_NOTES')); |
|
209 | - $WT_TREE->setPreference('EXPAND_SOURCES', Filter::postBool('EXPAND_SOURCES')); |
|
210 | - $WT_TREE->setPreference('FAM_FACTS_ADD', str_replace(' ', '', Filter::post('FAM_FACTS_ADD'))); |
|
211 | - $WT_TREE->setPreference('FAM_FACTS_QUICK', str_replace(' ', '', Filter::post('FAM_FACTS_QUICK'))); |
|
212 | - $WT_TREE->setPreference('FAM_FACTS_UNIQUE', str_replace(' ', '', Filter::post('FAM_FACTS_UNIQUE'))); |
|
213 | - $WT_TREE->setPreference('FAM_ID_PREFIX', Filter::post('FAM_ID_PREFIX')); |
|
214 | - $WT_TREE->setPreference('FULL_SOURCES', Filter::postBool('FULL_SOURCES')); |
|
215 | - $WT_TREE->setPreference('FORMAT_TEXT', Filter::post('FORMAT_TEXT')); |
|
216 | - $WT_TREE->setPreference('GEDCOM_ID_PREFIX', Filter::post('GEDCOM_ID_PREFIX')); |
|
217 | - $WT_TREE->setPreference('GEDCOM_MEDIA_PATH', Filter::post('GEDCOM_MEDIA_PATH')); |
|
218 | - $WT_TREE->setPreference('GENERATE_UIDS', Filter::postBool('GENERATE_UIDS')); |
|
219 | - $WT_TREE->setPreference('GEONAMES_ACCOUNT', Filter::post('GEONAMES_ACCOUNT')); |
|
220 | - $WT_TREE->setPreference('HIDE_GEDCOM_ERRORS', Filter::postBool('HIDE_GEDCOM_ERRORS')); |
|
221 | - $WT_TREE->setPreference('INDI_FACTS_ADD', str_replace(' ', '', Filter::post('INDI_FACTS_ADD'))); |
|
222 | - $WT_TREE->setPreference('INDI_FACTS_QUICK', str_replace(' ', '', Filter::post('INDI_FACTS_QUICK'))); |
|
223 | - $WT_TREE->setPreference('INDI_FACTS_UNIQUE', str_replace(' ', '', Filter::post('INDI_FACTS_UNIQUE'))); |
|
224 | - $WT_TREE->setPreference('LANGUAGE', Filter::post('LANGUAGE')); |
|
225 | - $WT_TREE->setPreference('MAX_DESCENDANCY_GENERATIONS', Filter::post('MAX_DESCENDANCY_GENERATIONS')); |
|
226 | - $WT_TREE->setPreference('MAX_PEDIGREE_GENERATIONS', Filter::post('MAX_PEDIGREE_GENERATIONS')); |
|
227 | - $WT_TREE->setPreference('MEDIA_ID_PREFIX', Filter::post('MEDIA_ID_PREFIX')); |
|
228 | - $WT_TREE->setPreference('MEDIA_UPLOAD', Filter::post('MEDIA_UPLOAD')); |
|
229 | - $WT_TREE->setPreference('META_DESCRIPTION', Filter::post('META_DESCRIPTION')); |
|
230 | - $WT_TREE->setPreference('META_TITLE', Filter::post('META_TITLE')); |
|
231 | - $WT_TREE->setPreference('NOTE_ID_PREFIX', Filter::post('NOTE_ID_PREFIX')); |
|
232 | - $WT_TREE->setPreference('NO_UPDATE_CHAN', Filter::postBool('NO_UPDATE_CHAN')); |
|
233 | - $WT_TREE->setPreference('PEDIGREE_FULL_DETAILS', Filter::postBool('PEDIGREE_FULL_DETAILS')); |
|
234 | - $WT_TREE->setPreference('PEDIGREE_LAYOUT', Filter::postBool('PEDIGREE_LAYOUT')); |
|
235 | - $WT_TREE->setPreference('PEDIGREE_ROOT_ID', Filter::post('PEDIGREE_ROOT_ID', WT_REGEX_XREF)); |
|
236 | - $WT_TREE->setPreference('PEDIGREE_SHOW_GENDER', Filter::postBool('PEDIGREE_SHOW_GENDER')); |
|
237 | - $WT_TREE->setPreference('PREFER_LEVEL2_SOURCES', Filter::post('PREFER_LEVEL2_SOURCES')); |
|
238 | - $WT_TREE->setPreference('QUICK_REQUIRED_FACTS', Filter::post('QUICK_REQUIRED_FACTS')); |
|
239 | - $WT_TREE->setPreference('QUICK_REQUIRED_FAMFACTS', Filter::post('QUICK_REQUIRED_FAMFACTS')); |
|
240 | - $WT_TREE->setPreference('REPO_FACTS_ADD', str_replace(' ', '', Filter::post('REPO_FACTS_ADD'))); |
|
241 | - $WT_TREE->setPreference('REPO_FACTS_QUICK', str_replace(' ', '', Filter::post('REPO_FACTS_QUICK'))); |
|
242 | - $WT_TREE->setPreference('REPO_FACTS_UNIQUE', str_replace(' ', '', Filter::post('REPO_FACTS_UNIQUE'))); |
|
243 | - $WT_TREE->setPreference('REPO_ID_PREFIX', Filter::post('REPO_ID_PREFIX')); |
|
244 | - $WT_TREE->setPreference('SAVE_WATERMARK_IMAGE', Filter::postBool('SAVE_WATERMARK_IMAGE')); |
|
245 | - $WT_TREE->setPreference('SAVE_WATERMARK_THUMB', Filter::postBool('SAVE_WATERMARK_THUMB')); |
|
246 | - $WT_TREE->setPreference('SHOW_COUNTER', Filter::postBool('SHOW_COUNTER')); |
|
247 | - $WT_TREE->setPreference('SHOW_EST_LIST_DATES', Filter::postBool('SHOW_EST_LIST_DATES')); |
|
248 | - $WT_TREE->setPreference('SHOW_FACT_ICONS', Filter::postBool('SHOW_FACT_ICONS')); |
|
249 | - $WT_TREE->setPreference('SHOW_GEDCOM_RECORD', Filter::postBool('SHOW_GEDCOM_RECORD')); |
|
250 | - $WT_TREE->setPreference('SHOW_HIGHLIGHT_IMAGES', Filter::postBool('SHOW_HIGHLIGHT_IMAGES')); |
|
251 | - $WT_TREE->setPreference('SHOW_LAST_CHANGE', Filter::postBool('SHOW_LAST_CHANGE')); |
|
252 | - $WT_TREE->setPreference('SHOW_LDS_AT_GLANCE', Filter::postBool('SHOW_LDS_AT_GLANCE')); |
|
253 | - $WT_TREE->setPreference('SHOW_MEDIA_DOWNLOAD', Filter::post('SHOW_MEDIA_DOWNLOAD')); |
|
254 | - $WT_TREE->setPreference('SHOW_NO_WATERMARK', Filter::post('SHOW_NO_WATERMARK')); |
|
255 | - $WT_TREE->setPreference('SHOW_PARENTS_AGE', Filter::postBool('SHOW_PARENTS_AGE')); |
|
256 | - $WT_TREE->setPreference('SHOW_PEDIGREE_PLACES', Filter::post('SHOW_PEDIGREE_PLACES')); |
|
257 | - $WT_TREE->setPreference('SHOW_PEDIGREE_PLACES_SUFFIX', Filter::postBool('SHOW_PEDIGREE_PLACES_SUFFIX')); |
|
258 | - $WT_TREE->setPreference('SHOW_RELATIVES_EVENTS', implode(',', Filter::postArray('SHOW_RELATIVES_EVENTS'))); |
|
259 | - $WT_TREE->setPreference('SOURCE_ID_PREFIX', Filter::post('SOURCE_ID_PREFIX')); |
|
260 | - $WT_TREE->setPreference('SOUR_FACTS_ADD', str_replace(' ', '', Filter::post('SOUR_FACTS_ADD'))); |
|
261 | - $WT_TREE->setPreference('SOUR_FACTS_QUICK', str_replace(' ', '', Filter::post('SOUR_FACTS_QUICK'))); |
|
262 | - $WT_TREE->setPreference('SOUR_FACTS_UNIQUE', str_replace(' ', '', Filter::post('SOUR_FACTS_UNIQUE'))); |
|
263 | - $WT_TREE->setPreference('SUBLIST_TRIGGER_I', Filter::post('SUBLIST_TRIGGER_I', WT_REGEX_INTEGER, 200)); |
|
264 | - $WT_TREE->setPreference('SURNAME_LIST_STYLE', Filter::post('SURNAME_LIST_STYLE')); |
|
265 | - $WT_TREE->setPreference('SURNAME_TRADITION', Filter::post('SURNAME_TRADITION')); |
|
266 | - $WT_TREE->setPreference('THEME_DIR', Filter::post('THEME_DIR')); |
|
267 | - $WT_TREE->setPreference('THUMBNAIL_WIDTH', Filter::post('THUMBNAIL_WIDTH')); |
|
268 | - $WT_TREE->setPreference('USE_SILHOUETTE', Filter::postBool('USE_SILHOUETTE')); |
|
269 | - $WT_TREE->setPreference('WATERMARK_THUMB', Filter::postBool('WATERMARK_THUMB')); |
|
270 | - $WT_TREE->setPreference('WEBMASTER_USER_ID', Filter::post('WEBMASTER_USER_ID')); |
|
271 | - $WT_TREE->setPreference('WEBTREES_EMAIL', Filter::post('WEBTREES_EMAIL')); |
|
272 | - $WT_TREE->setPreference('title', Filter::post('title')); |
|
273 | - |
|
274 | - // Only accept valid folders for MEDIA_DIRECTORY |
|
275 | - $MEDIA_DIRECTORY = preg_replace('/[\/\\\\]+/', '/', Filter::post('MEDIA_DIRECTORY') . '/'); |
|
276 | - if (substr($MEDIA_DIRECTORY, 0, 1) === '/') { |
|
277 | - $MEDIA_DIRECTORY = substr($MEDIA_DIRECTORY, 1); |
|
278 | - } |
|
279 | - |
|
280 | - if ($MEDIA_DIRECTORY) { |
|
281 | - if (is_dir(WT_DATA_DIR . $MEDIA_DIRECTORY)) { |
|
282 | - $WT_TREE->setPreference('MEDIA_DIRECTORY', $MEDIA_DIRECTORY); |
|
283 | - } elseif (File::mkdir(WT_DATA_DIR . $MEDIA_DIRECTORY)) { |
|
284 | - $WT_TREE->setPreference('MEDIA_DIRECTORY', $MEDIA_DIRECTORY); |
|
285 | - FlashMessages::addMessage(I18N::translate('The folder %s has been created.', Html::filename(WT_DATA_DIR . $MEDIA_DIRECTORY)), 'info'); |
|
286 | - } else { |
|
287 | - FlashMessages::addMessage(I18N::translate('The folder %s does not exist, and it could not be created.', Html::filename(WT_DATA_DIR . $MEDIA_DIRECTORY)), 'danger'); |
|
288 | - } |
|
289 | - } |
|
290 | - |
|
291 | - $gedcom = Filter::post('gedcom'); |
|
292 | - if ($gedcom && $gedcom !== $WT_TREE->getName()) { |
|
293 | - try { |
|
294 | - Database::prepare("UPDATE `##gedcom` SET gedcom_name = ? WHERE gedcom_id = ?")->execute(array($gedcom, $WT_TREE->getTreeId())); |
|
295 | - Database::prepare("UPDATE `##site_setting` SET setting_value = ? WHERE setting_name='DEFAULT_GEDCOM' AND setting_value = ?")->execute(array($gedcom, $WT_TREE->getName())); |
|
296 | - } catch (\Exception $ex) { |
|
297 | - // Probably a duplicate name. |
|
298 | - } |
|
299 | - } |
|
300 | - |
|
301 | - FlashMessages::addMessage(I18N::translate('The preferences for the family tree “%s” have been updated.', $WT_TREE->getTitleHtml()), 'success'); |
|
302 | - header('Location: ' . WT_BASE_URL . 'admin_trees_manage.php'); |
|
303 | - |
|
304 | - return; |
|
135 | + case 'privacy': |
|
136 | + foreach (Filter::postArray('delete', WT_REGEX_INTEGER) as $delete_resn) { |
|
137 | + Database::prepare( |
|
138 | + "DELETE FROM `##default_resn` WHERE default_resn_id=?" |
|
139 | + )->execute(array($delete_resn)); |
|
140 | + } |
|
141 | + |
|
142 | + $xrefs = Filter::postArray('xref', WT_REGEX_XREF); |
|
143 | + $tag_types = Filter::postArray('tag_type', WT_REGEX_TAG); |
|
144 | + $resns = Filter::postArray('resn'); |
|
145 | + |
|
146 | + foreach ($xrefs as $n => $xref) { |
|
147 | + $tag_type = $tag_types[$n]; |
|
148 | + $resn = $resns[$n]; |
|
149 | + |
|
150 | + if ($tag_type || $xref) { |
|
151 | + // Delete any existing data |
|
152 | + if ($xref === '') { |
|
153 | + Database::prepare( |
|
154 | + "DELETE FROM `##default_resn` WHERE gedcom_id=? AND tag_type=? AND xref IS NULL" |
|
155 | + )->execute(array($WT_TREE->getTreeId(), $tag_type)); |
|
156 | + } |
|
157 | + if ($tag_type === '') { |
|
158 | + Database::prepare( |
|
159 | + "DELETE FROM `##default_resn` WHERE gedcom_id=? AND xref=? AND tag_type IS NULL" |
|
160 | + )->execute(array($WT_TREE->getTreeId(), $xref)); |
|
161 | + } |
|
162 | + // Add (or update) the new data |
|
163 | + Database::prepare( |
|
164 | + "REPLACE INTO `##default_resn` (gedcom_id, xref, tag_type, resn) VALUES (?, NULLIF(?, ''), NULLIF(?, ''), ?)" |
|
165 | + )->execute(array($WT_TREE->getTreeId(), $xref, $tag_type, $resn)); |
|
166 | + } |
|
167 | + } |
|
168 | + |
|
169 | + $WT_TREE->setPreference('HIDE_LIVE_PEOPLE', Filter::postBool('HIDE_LIVE_PEOPLE')); |
|
170 | + $WT_TREE->setPreference('KEEP_ALIVE_YEARS_BIRTH', Filter::post('KEEP_ALIVE_YEARS_BIRTH', WT_REGEX_INTEGER, 0)); |
|
171 | + $WT_TREE->setPreference('KEEP_ALIVE_YEARS_DEATH', Filter::post('KEEP_ALIVE_YEARS_DEATH', WT_REGEX_INTEGER, 0)); |
|
172 | + $WT_TREE->setPreference('MAX_ALIVE_AGE', Filter::post('MAX_ALIVE_AGE', WT_REGEX_INTEGER, 100)); |
|
173 | + $WT_TREE->setPreference('REQUIRE_AUTHENTICATION', Filter::postBool('REQUIRE_AUTHENTICATION')); |
|
174 | + $WT_TREE->setPreference('SHOW_DEAD_PEOPLE', Filter::post('SHOW_DEAD_PEOPLE')); |
|
175 | + $WT_TREE->setPreference('SHOW_LIVING_NAMES', Filter::post('SHOW_LIVING_NAMES')); |
|
176 | + $WT_TREE->setPreference('SHOW_PRIVATE_RELATIONSHIPS', Filter::post('SHOW_PRIVATE_RELATIONSHIPS')); |
|
177 | + |
|
178 | + FlashMessages::addMessage(I18N::translate('The preferences for the family tree “%s” have been updated.', $WT_TREE->getTitleHtml()), 'success'); |
|
179 | + header('Location: ' . WT_BASE_URL . 'admin_trees_manage.php?ged=' . $WT_TREE->getNameUrl()); |
|
180 | + |
|
181 | + return; |
|
182 | + |
|
183 | + case 'general': |
|
184 | + if (!Filter::checkCsrf()) { |
|
185 | + break; |
|
186 | + } |
|
187 | + |
|
188 | + // Coming soon |
|
189 | + if (Filter::postBool('all_trees')) { |
|
190 | + FlashMessages::addMessage(I18N::translate('The preferences for all family trees have been updated.', $WT_TREE->getTitleHtml()), 'success'); |
|
191 | + } |
|
192 | + if (Filter::postBool('new_trees')) { |
|
193 | + FlashMessages::addMessage(I18N::translate('The preferences for new family trees have been updated.', $WT_TREE->getTitleHtml()), 'success'); |
|
194 | + } |
|
195 | + |
|
196 | + $WT_TREE->setPreference('ADVANCED_NAME_FACTS', Filter::post('ADVANCED_NAME_FACTS')); |
|
197 | + $WT_TREE->setPreference('ADVANCED_PLAC_FACTS', Filter::post('ADVANCED_PLAC_FACTS')); |
|
198 | + $WT_TREE->setPreference('ALLOW_THEME_DROPDOWN', Filter::postBool('ALLOW_THEME_DROPDOWN')); |
|
199 | + // For backwards compatibility with webtrees 1.x we store the two calendar formats in one variable |
|
200 | + // e.g. "gregorian_and_jewish" |
|
201 | + $WT_TREE->setPreference('CALENDAR_FORMAT', implode('_and_', array_unique(array( |
|
202 | + Filter::post('CALENDAR_FORMAT0', 'gregorian|julian|french|jewish|hijri|jalali', 'none'), |
|
203 | + Filter::post('CALENDAR_FORMAT1', 'gregorian|julian|french|jewish|hijri|jalali', 'none'), |
|
204 | + )))); |
|
205 | + $WT_TREE->setPreference('CHART_BOX_TAGS', Filter::post('CHART_BOX_TAGS')); |
|
206 | + $WT_TREE->setPreference('CONTACT_USER_ID', Filter::post('CONTACT_USER_ID')); |
|
207 | + $WT_TREE->setPreference('DEFAULT_PEDIGREE_GENERATIONS', Filter::post('DEFAULT_PEDIGREE_GENERATIONS')); |
|
208 | + $WT_TREE->setPreference('EXPAND_NOTES', Filter::postBool('EXPAND_NOTES')); |
|
209 | + $WT_TREE->setPreference('EXPAND_SOURCES', Filter::postBool('EXPAND_SOURCES')); |
|
210 | + $WT_TREE->setPreference('FAM_FACTS_ADD', str_replace(' ', '', Filter::post('FAM_FACTS_ADD'))); |
|
211 | + $WT_TREE->setPreference('FAM_FACTS_QUICK', str_replace(' ', '', Filter::post('FAM_FACTS_QUICK'))); |
|
212 | + $WT_TREE->setPreference('FAM_FACTS_UNIQUE', str_replace(' ', '', Filter::post('FAM_FACTS_UNIQUE'))); |
|
213 | + $WT_TREE->setPreference('FAM_ID_PREFIX', Filter::post('FAM_ID_PREFIX')); |
|
214 | + $WT_TREE->setPreference('FULL_SOURCES', Filter::postBool('FULL_SOURCES')); |
|
215 | + $WT_TREE->setPreference('FORMAT_TEXT', Filter::post('FORMAT_TEXT')); |
|
216 | + $WT_TREE->setPreference('GEDCOM_ID_PREFIX', Filter::post('GEDCOM_ID_PREFIX')); |
|
217 | + $WT_TREE->setPreference('GEDCOM_MEDIA_PATH', Filter::post('GEDCOM_MEDIA_PATH')); |
|
218 | + $WT_TREE->setPreference('GENERATE_UIDS', Filter::postBool('GENERATE_UIDS')); |
|
219 | + $WT_TREE->setPreference('GEONAMES_ACCOUNT', Filter::post('GEONAMES_ACCOUNT')); |
|
220 | + $WT_TREE->setPreference('HIDE_GEDCOM_ERRORS', Filter::postBool('HIDE_GEDCOM_ERRORS')); |
|
221 | + $WT_TREE->setPreference('INDI_FACTS_ADD', str_replace(' ', '', Filter::post('INDI_FACTS_ADD'))); |
|
222 | + $WT_TREE->setPreference('INDI_FACTS_QUICK', str_replace(' ', '', Filter::post('INDI_FACTS_QUICK'))); |
|
223 | + $WT_TREE->setPreference('INDI_FACTS_UNIQUE', str_replace(' ', '', Filter::post('INDI_FACTS_UNIQUE'))); |
|
224 | + $WT_TREE->setPreference('LANGUAGE', Filter::post('LANGUAGE')); |
|
225 | + $WT_TREE->setPreference('MAX_DESCENDANCY_GENERATIONS', Filter::post('MAX_DESCENDANCY_GENERATIONS')); |
|
226 | + $WT_TREE->setPreference('MAX_PEDIGREE_GENERATIONS', Filter::post('MAX_PEDIGREE_GENERATIONS')); |
|
227 | + $WT_TREE->setPreference('MEDIA_ID_PREFIX', Filter::post('MEDIA_ID_PREFIX')); |
|
228 | + $WT_TREE->setPreference('MEDIA_UPLOAD', Filter::post('MEDIA_UPLOAD')); |
|
229 | + $WT_TREE->setPreference('META_DESCRIPTION', Filter::post('META_DESCRIPTION')); |
|
230 | + $WT_TREE->setPreference('META_TITLE', Filter::post('META_TITLE')); |
|
231 | + $WT_TREE->setPreference('NOTE_ID_PREFIX', Filter::post('NOTE_ID_PREFIX')); |
|
232 | + $WT_TREE->setPreference('NO_UPDATE_CHAN', Filter::postBool('NO_UPDATE_CHAN')); |
|
233 | + $WT_TREE->setPreference('PEDIGREE_FULL_DETAILS', Filter::postBool('PEDIGREE_FULL_DETAILS')); |
|
234 | + $WT_TREE->setPreference('PEDIGREE_LAYOUT', Filter::postBool('PEDIGREE_LAYOUT')); |
|
235 | + $WT_TREE->setPreference('PEDIGREE_ROOT_ID', Filter::post('PEDIGREE_ROOT_ID', WT_REGEX_XREF)); |
|
236 | + $WT_TREE->setPreference('PEDIGREE_SHOW_GENDER', Filter::postBool('PEDIGREE_SHOW_GENDER')); |
|
237 | + $WT_TREE->setPreference('PREFER_LEVEL2_SOURCES', Filter::post('PREFER_LEVEL2_SOURCES')); |
|
238 | + $WT_TREE->setPreference('QUICK_REQUIRED_FACTS', Filter::post('QUICK_REQUIRED_FACTS')); |
|
239 | + $WT_TREE->setPreference('QUICK_REQUIRED_FAMFACTS', Filter::post('QUICK_REQUIRED_FAMFACTS')); |
|
240 | + $WT_TREE->setPreference('REPO_FACTS_ADD', str_replace(' ', '', Filter::post('REPO_FACTS_ADD'))); |
|
241 | + $WT_TREE->setPreference('REPO_FACTS_QUICK', str_replace(' ', '', Filter::post('REPO_FACTS_QUICK'))); |
|
242 | + $WT_TREE->setPreference('REPO_FACTS_UNIQUE', str_replace(' ', '', Filter::post('REPO_FACTS_UNIQUE'))); |
|
243 | + $WT_TREE->setPreference('REPO_ID_PREFIX', Filter::post('REPO_ID_PREFIX')); |
|
244 | + $WT_TREE->setPreference('SAVE_WATERMARK_IMAGE', Filter::postBool('SAVE_WATERMARK_IMAGE')); |
|
245 | + $WT_TREE->setPreference('SAVE_WATERMARK_THUMB', Filter::postBool('SAVE_WATERMARK_THUMB')); |
|
246 | + $WT_TREE->setPreference('SHOW_COUNTER', Filter::postBool('SHOW_COUNTER')); |
|
247 | + $WT_TREE->setPreference('SHOW_EST_LIST_DATES', Filter::postBool('SHOW_EST_LIST_DATES')); |
|
248 | + $WT_TREE->setPreference('SHOW_FACT_ICONS', Filter::postBool('SHOW_FACT_ICONS')); |
|
249 | + $WT_TREE->setPreference('SHOW_GEDCOM_RECORD', Filter::postBool('SHOW_GEDCOM_RECORD')); |
|
250 | + $WT_TREE->setPreference('SHOW_HIGHLIGHT_IMAGES', Filter::postBool('SHOW_HIGHLIGHT_IMAGES')); |
|
251 | + $WT_TREE->setPreference('SHOW_LAST_CHANGE', Filter::postBool('SHOW_LAST_CHANGE')); |
|
252 | + $WT_TREE->setPreference('SHOW_LDS_AT_GLANCE', Filter::postBool('SHOW_LDS_AT_GLANCE')); |
|
253 | + $WT_TREE->setPreference('SHOW_MEDIA_DOWNLOAD', Filter::post('SHOW_MEDIA_DOWNLOAD')); |
|
254 | + $WT_TREE->setPreference('SHOW_NO_WATERMARK', Filter::post('SHOW_NO_WATERMARK')); |
|
255 | + $WT_TREE->setPreference('SHOW_PARENTS_AGE', Filter::postBool('SHOW_PARENTS_AGE')); |
|
256 | + $WT_TREE->setPreference('SHOW_PEDIGREE_PLACES', Filter::post('SHOW_PEDIGREE_PLACES')); |
|
257 | + $WT_TREE->setPreference('SHOW_PEDIGREE_PLACES_SUFFIX', Filter::postBool('SHOW_PEDIGREE_PLACES_SUFFIX')); |
|
258 | + $WT_TREE->setPreference('SHOW_RELATIVES_EVENTS', implode(',', Filter::postArray('SHOW_RELATIVES_EVENTS'))); |
|
259 | + $WT_TREE->setPreference('SOURCE_ID_PREFIX', Filter::post('SOURCE_ID_PREFIX')); |
|
260 | + $WT_TREE->setPreference('SOUR_FACTS_ADD', str_replace(' ', '', Filter::post('SOUR_FACTS_ADD'))); |
|
261 | + $WT_TREE->setPreference('SOUR_FACTS_QUICK', str_replace(' ', '', Filter::post('SOUR_FACTS_QUICK'))); |
|
262 | + $WT_TREE->setPreference('SOUR_FACTS_UNIQUE', str_replace(' ', '', Filter::post('SOUR_FACTS_UNIQUE'))); |
|
263 | + $WT_TREE->setPreference('SUBLIST_TRIGGER_I', Filter::post('SUBLIST_TRIGGER_I', WT_REGEX_INTEGER, 200)); |
|
264 | + $WT_TREE->setPreference('SURNAME_LIST_STYLE', Filter::post('SURNAME_LIST_STYLE')); |
|
265 | + $WT_TREE->setPreference('SURNAME_TRADITION', Filter::post('SURNAME_TRADITION')); |
|
266 | + $WT_TREE->setPreference('THEME_DIR', Filter::post('THEME_DIR')); |
|
267 | + $WT_TREE->setPreference('THUMBNAIL_WIDTH', Filter::post('THUMBNAIL_WIDTH')); |
|
268 | + $WT_TREE->setPreference('USE_SILHOUETTE', Filter::postBool('USE_SILHOUETTE')); |
|
269 | + $WT_TREE->setPreference('WATERMARK_THUMB', Filter::postBool('WATERMARK_THUMB')); |
|
270 | + $WT_TREE->setPreference('WEBMASTER_USER_ID', Filter::post('WEBMASTER_USER_ID')); |
|
271 | + $WT_TREE->setPreference('WEBTREES_EMAIL', Filter::post('WEBTREES_EMAIL')); |
|
272 | + $WT_TREE->setPreference('title', Filter::post('title')); |
|
273 | + |
|
274 | + // Only accept valid folders for MEDIA_DIRECTORY |
|
275 | + $MEDIA_DIRECTORY = preg_replace('/[\/\\\\]+/', '/', Filter::post('MEDIA_DIRECTORY') . '/'); |
|
276 | + if (substr($MEDIA_DIRECTORY, 0, 1) === '/') { |
|
277 | + $MEDIA_DIRECTORY = substr($MEDIA_DIRECTORY, 1); |
|
278 | + } |
|
279 | + |
|
280 | + if ($MEDIA_DIRECTORY) { |
|
281 | + if (is_dir(WT_DATA_DIR . $MEDIA_DIRECTORY)) { |
|
282 | + $WT_TREE->setPreference('MEDIA_DIRECTORY', $MEDIA_DIRECTORY); |
|
283 | + } elseif (File::mkdir(WT_DATA_DIR . $MEDIA_DIRECTORY)) { |
|
284 | + $WT_TREE->setPreference('MEDIA_DIRECTORY', $MEDIA_DIRECTORY); |
|
285 | + FlashMessages::addMessage(I18N::translate('The folder %s has been created.', Html::filename(WT_DATA_DIR . $MEDIA_DIRECTORY)), 'info'); |
|
286 | + } else { |
|
287 | + FlashMessages::addMessage(I18N::translate('The folder %s does not exist, and it could not be created.', Html::filename(WT_DATA_DIR . $MEDIA_DIRECTORY)), 'danger'); |
|
288 | + } |
|
289 | + } |
|
290 | + |
|
291 | + $gedcom = Filter::post('gedcom'); |
|
292 | + if ($gedcom && $gedcom !== $WT_TREE->getName()) { |
|
293 | + try { |
|
294 | + Database::prepare("UPDATE `##gedcom` SET gedcom_name = ? WHERE gedcom_id = ?")->execute(array($gedcom, $WT_TREE->getTreeId())); |
|
295 | + Database::prepare("UPDATE `##site_setting` SET setting_value = ? WHERE setting_name='DEFAULT_GEDCOM' AND setting_value = ?")->execute(array($gedcom, $WT_TREE->getName())); |
|
296 | + } catch (\Exception $ex) { |
|
297 | + // Probably a duplicate name. |
|
298 | + } |
|
299 | + } |
|
300 | + |
|
301 | + FlashMessages::addMessage(I18N::translate('The preferences for the family tree “%s” have been updated.', $WT_TREE->getTitleHtml()), 'success'); |
|
302 | + header('Location: ' . WT_BASE_URL . 'admin_trees_manage.php'); |
|
303 | + |
|
304 | + return; |
|
305 | 305 | } |
306 | 306 | |
307 | 307 | switch (Filter::get('action')) { |
@@ -778,69 +778,69 @@ discard block |
||
778 | 778 | $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'INDI_FACTS_QUICK', $INDI_FACTS_QUICK)); |
779 | 779 | $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'INDI_FACTS_UNIQUE', $INDI_FACTS_UNIQUE)); |
780 | 780 | switch ($LANGUAGE) { |
781 | - case 'catalan': |
|
782 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'ca')); |
|
783 | - break; |
|
784 | - case 'english-uk': |
|
785 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'en-GB')); |
|
786 | - break; |
|
787 | - case 'polish': |
|
788 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'pl')); |
|
789 | - break; |
|
790 | - case 'italian': |
|
791 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'it')); |
|
792 | - break; |
|
793 | - case 'spanish': |
|
794 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'es')); |
|
795 | - break; |
|
796 | - case 'finnish': |
|
797 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'fi')); |
|
798 | - break; |
|
799 | - case 'french': |
|
800 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'fr')); |
|
801 | - break; |
|
802 | - case 'german': |
|
803 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'de')); |
|
804 | - break; |
|
805 | - case 'danish': |
|
806 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'da')); |
|
807 | - break; |
|
808 | - case 'portuguese': |
|
809 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'pt')); |
|
810 | - break; |
|
811 | - case 'hebrew': |
|
812 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'he')); |
|
813 | - break; |
|
814 | - case 'estonian': |
|
815 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'et')); |
|
816 | - break; |
|
817 | - case 'turkish': |
|
818 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'tr')); |
|
819 | - break; |
|
820 | - case 'dutch': |
|
821 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'nl')); |
|
822 | - break; |
|
823 | - case 'slovak': |
|
824 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sk')); |
|
825 | - break; |
|
826 | - case 'norwegian': |
|
827 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'nn')); |
|
828 | - break; |
|
829 | - case 'slovenian': |
|
830 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sl')); |
|
831 | - break; |
|
832 | - case 'hungarian': |
|
833 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'hu')); |
|
834 | - break; |
|
835 | - case 'swedish': |
|
836 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sv')); |
|
837 | - break; |
|
838 | - case 'russian': |
|
839 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'ru')); |
|
840 | - break; |
|
841 | - default: |
|
842 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'en-US')); |
|
843 | - break; |
|
781 | + case 'catalan': |
|
782 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'ca')); |
|
783 | + break; |
|
784 | + case 'english-uk': |
|
785 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'en-GB')); |
|
786 | + break; |
|
787 | + case 'polish': |
|
788 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'pl')); |
|
789 | + break; |
|
790 | + case 'italian': |
|
791 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'it')); |
|
792 | + break; |
|
793 | + case 'spanish': |
|
794 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'es')); |
|
795 | + break; |
|
796 | + case 'finnish': |
|
797 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'fi')); |
|
798 | + break; |
|
799 | + case 'french': |
|
800 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'fr')); |
|
801 | + break; |
|
802 | + case 'german': |
|
803 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'de')); |
|
804 | + break; |
|
805 | + case 'danish': |
|
806 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'da')); |
|
807 | + break; |
|
808 | + case 'portuguese': |
|
809 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'pt')); |
|
810 | + break; |
|
811 | + case 'hebrew': |
|
812 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'he')); |
|
813 | + break; |
|
814 | + case 'estonian': |
|
815 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'et')); |
|
816 | + break; |
|
817 | + case 'turkish': |
|
818 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'tr')); |
|
819 | + break; |
|
820 | + case 'dutch': |
|
821 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'nl')); |
|
822 | + break; |
|
823 | + case 'slovak': |
|
824 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sk')); |
|
825 | + break; |
|
826 | + case 'norwegian': |
|
827 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'nn')); |
|
828 | + break; |
|
829 | + case 'slovenian': |
|
830 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sl')); |
|
831 | + break; |
|
832 | + case 'hungarian': |
|
833 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'hu')); |
|
834 | + break; |
|
835 | + case 'swedish': |
|
836 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sv')); |
|
837 | + break; |
|
838 | + case 'russian': |
|
839 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'ru')); |
|
840 | + break; |
|
841 | + default: |
|
842 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'en-US')); |
|
843 | + break; |
|
844 | 844 | } |
845 | 845 | $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'MAX_ALIVE_AGE', $MAX_ALIVE_AGE)); |
846 | 846 | $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'MAX_DESCENDANCY_GENERATIONS', $MAX_DESCENDANCY_GENERATIONS)); |
@@ -900,26 +900,26 @@ discard block |
||
900 | 900 | $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'SURNAME_LIST_STYLE', $SURNAME_LIST_STYLE)); |
901 | 901 | $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'SURNAME_TRADITION', $SURNAME_TRADITION)); |
902 | 902 | switch ($THEME_DIR) { |
903 | - case '': |
|
904 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', '')); |
|
905 | - break; |
|
906 | - case 'themes/cloudy/': |
|
907 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', 'clouds')); |
|
908 | - break; |
|
909 | - case 'themes/minimal/': |
|
910 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', 'minimal')); |
|
911 | - break; |
|
912 | - case 'themes/simplyblue/': |
|
913 | - case 'themes/simplygreen/': |
|
914 | - case 'themes/simplyred/': |
|
915 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', 'colors')); |
|
916 | - break; |
|
917 | - case 'themes/xenea/': |
|
918 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', 'xenea')); |
|
919 | - break; |
|
920 | - default: |
|
921 | - $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', 'webtrees')); |
|
922 | - break; |
|
903 | + case '': |
|
904 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', '')); |
|
905 | + break; |
|
906 | + case 'themes/cloudy/': |
|
907 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', 'clouds')); |
|
908 | + break; |
|
909 | + case 'themes/minimal/': |
|
910 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', 'minimal')); |
|
911 | + break; |
|
912 | + case 'themes/simplyblue/': |
|
913 | + case 'themes/simplygreen/': |
|
914 | + case 'themes/simplyred/': |
|
915 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', 'colors')); |
|
916 | + break; |
|
917 | + case 'themes/xenea/': |
|
918 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', 'xenea')); |
|
919 | + break; |
|
920 | + default: |
|
921 | + $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THEME_DIR', 'webtrees')); |
|
922 | + break; |
|
923 | 923 | } |
924 | 924 | $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'THUMBNAIL_WIDTH', $THUMBNAIL_WIDTH)); |
925 | 925 | $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'USE_RELATIONSHIP_PRIVACY', $USE_RELATIONSHIP_PRIVACY)); |