@@ -46,15 +46,15 @@ |
||
46 | 46 | */ |
47 | 47 | public function modAction($mod_action) { |
48 | 48 | switch ($mod_action) { |
49 | - case 'delete': |
|
50 | - $stmt = Database::prepare("DELETE FROM `##message` WHERE user_id = :user_id AND message_id = :message_id"); |
|
51 | - |
|
52 | - foreach (Filter::postArray('message_id') as $id) { |
|
53 | - $stmt->execute(array( |
|
54 | - 'message_id' => $id, |
|
55 | - 'user_id' => Auth::id(), |
|
56 | - )); |
|
57 | - } |
|
49 | + case 'delete': |
|
50 | + $stmt = Database::prepare("DELETE FROM `##message` WHERE user_id = :user_id AND message_id = :message_id"); |
|
51 | + |
|
52 | + foreach (Filter::postArray('message_id') as $id) { |
|
53 | + $stmt->execute(array( |
|
54 | + 'message_id' => $id, |
|
55 | + 'user_id' => Auth::id(), |
|
56 | + )); |
|
57 | + } |
|
58 | 58 | } |
59 | 59 | |
60 | 60 | $ged = Filter::post('ged'); |
@@ -122,53 +122,53 @@ |
||
122 | 122 | global $controller, $WT_TREE; |
123 | 123 | |
124 | 124 | switch ($mod_action) { |
125 | - case 'treeview': |
|
126 | - $controller = new ChartController; |
|
127 | - $tv = new TreeView('tv'); |
|
128 | - ob_start(); |
|
129 | - |
|
130 | - $person = $controller->getSignificantIndividual(); |
|
131 | - |
|
132 | - list($html, $js) = $tv->drawViewport($person, 4); |
|
133 | - |
|
134 | - $controller |
|
135 | - ->setPageTitle(I18N::translate('Interactive tree of %s', $person->getFullName())) |
|
136 | - ->pageHeader() |
|
137 | - ->addExternalJavascript($this->js()) |
|
138 | - ->addExternalJavascript(WT_JQUERYUI_TOUCH_PUNCH_URL) |
|
139 | - ->addInlineJavascript($js) |
|
140 | - ->addInlineJavascript(' |
|
125 | + case 'treeview': |
|
126 | + $controller = new ChartController; |
|
127 | + $tv = new TreeView('tv'); |
|
128 | + ob_start(); |
|
129 | + |
|
130 | + $person = $controller->getSignificantIndividual(); |
|
131 | + |
|
132 | + list($html, $js) = $tv->drawViewport($person, 4); |
|
133 | + |
|
134 | + $controller |
|
135 | + ->setPageTitle(I18N::translate('Interactive tree of %s', $person->getFullName())) |
|
136 | + ->pageHeader() |
|
137 | + ->addExternalJavascript($this->js()) |
|
138 | + ->addExternalJavascript(WT_JQUERYUI_TOUCH_PUNCH_URL) |
|
139 | + ->addInlineJavascript($js) |
|
140 | + ->addInlineJavascript(' |
|
141 | 141 | if (document.createStyleSheet) { |
142 | 142 | document.createStyleSheet("' . $this->css() . '"); // For Internet Explorer |
143 | 143 | } else { |
144 | 144 | jQuery("head").append(\'<link rel="stylesheet" type="text/css" href="' . $this->css() . '">\'); |
145 | 145 | } |
146 | 146 | '); |
147 | - echo $html; |
|
148 | - break; |
|
149 | - |
|
150 | - case 'getDetails': |
|
151 | - header('Content-Type: text/html; charset=UTF-8'); |
|
152 | - $pid = Filter::get('pid', WT_REGEX_XREF); |
|
153 | - $i = Filter::get('instance'); |
|
154 | - $tv = new TreeView($i); |
|
155 | - $individual = Individual::getInstance($pid, $WT_TREE); |
|
156 | - if ($individual) { |
|
157 | - echo $tv->getDetails($individual); |
|
158 | - } |
|
159 | - break; |
|
160 | - |
|
161 | - case 'getPersons': |
|
162 | - header('Content-Type: text/html; charset=UTF-8'); |
|
163 | - $q = Filter::get('q'); |
|
164 | - $i = Filter::get('instance'); |
|
165 | - $tv = new TreeView($i); |
|
166 | - echo $tv->getPersons($q); |
|
167 | - break; |
|
168 | - |
|
169 | - default: |
|
170 | - http_response_code(404); |
|
171 | - break; |
|
147 | + echo $html; |
|
148 | + break; |
|
149 | + |
|
150 | + case 'getDetails': |
|
151 | + header('Content-Type: text/html; charset=UTF-8'); |
|
152 | + $pid = Filter::get('pid', WT_REGEX_XREF); |
|
153 | + $i = Filter::get('instance'); |
|
154 | + $tv = new TreeView($i); |
|
155 | + $individual = Individual::getInstance($pid, $WT_TREE); |
|
156 | + if ($individual) { |
|
157 | + echo $tv->getDetails($individual); |
|
158 | + } |
|
159 | + break; |
|
160 | + |
|
161 | + case 'getPersons': |
|
162 | + header('Content-Type: text/html; charset=UTF-8'); |
|
163 | + $q = Filter::get('q'); |
|
164 | + $i = Filter::get('instance'); |
|
165 | + $tv = new TreeView($i); |
|
166 | + echo $tv->getPersons($q); |
|
167 | + break; |
|
168 | + |
|
169 | + default: |
|
170 | + http_response_code(404); |
|
171 | + break; |
|
172 | 172 | } |
173 | 173 | } |
174 | 174 |
@@ -92,25 +92,25 @@ discard block |
||
92 | 92 | $firstLetter = substr($jsonRequest, 0, 1); |
93 | 93 | $jsonRequest = substr($jsonRequest, 1); |
94 | 94 | switch ($firstLetter) { |
95 | - case 'c': |
|
96 | - $fidlist = explode(',', $jsonRequest); |
|
97 | - $flist = array(); |
|
98 | - foreach ($fidlist as $fid) { |
|
99 | - $flist[] = Family::getInstance($fid, $WT_TREE); |
|
100 | - } |
|
101 | - $r[] = $this->drawChildren($flist, 1, true); |
|
102 | - break; |
|
103 | - case 'p': |
|
104 | - $params = explode('@', $jsonRequest); |
|
105 | - $fid = $params[0]; |
|
106 | - $order = $params[1]; |
|
107 | - $f = Family::getInstance($fid, $WT_TREE); |
|
108 | - if ($f->getHusband()) { |
|
109 | - $r[] = $this->drawPerson($f->getHusband(), 0, 1, $f, $order); |
|
110 | - } elseif ($f->getWife()) { |
|
111 | - $r[] = $this->drawPerson($f->getWife(), 0, 1, $f, $order); |
|
112 | - } |
|
113 | - break; |
|
95 | + case 'c': |
|
96 | + $fidlist = explode(',', $jsonRequest); |
|
97 | + $flist = array(); |
|
98 | + foreach ($fidlist as $fid) { |
|
99 | + $flist[] = Family::getInstance($fid, $WT_TREE); |
|
100 | + } |
|
101 | + $r[] = $this->drawChildren($flist, 1, true); |
|
102 | + break; |
|
103 | + case 'p': |
|
104 | + $params = explode('@', $jsonRequest); |
|
105 | + $fid = $params[0]; |
|
106 | + $order = $params[1]; |
|
107 | + $f = Family::getInstance($fid, $WT_TREE); |
|
108 | + if ($f->getHusband()) { |
|
109 | + $r[] = $this->drawPerson($f->getHusband(), 0, 1, $f, $order); |
|
110 | + } elseif ($f->getWife()) { |
|
111 | + $r[] = $this->drawPerson($f->getWife(), 0, 1, $f, $order); |
|
112 | + } |
|
113 | + break; |
|
114 | 114 | } |
115 | 115 | } |
116 | 116 | |
@@ -342,15 +342,15 @@ discard block |
||
342 | 342 | $family_name = I18N::translateContext('unknown family', 'unknown'); |
343 | 343 | } |
344 | 344 | switch ($individual->getSex()) { |
345 | - case 'M': |
|
346 | - $title = ' title="' . /* I18N: e.g. “Son of [father name & mother name]” */ I18N::translate('Son of %s', $family_name) . '"'; |
|
347 | - break; |
|
348 | - case 'F': |
|
349 | - $title = ' title="' . /* I18N: e.g. “Daughter of [father name & mother name]” */ I18N::translate('Daughter of %s', $family_name) . '"'; |
|
350 | - break; |
|
351 | - default: |
|
352 | - $title = ' title="' . /* I18N: e.g. “Child of [father name & mother name]” */ I18N::translate('Child of %s', $family_name) . '"'; |
|
353 | - break; |
|
345 | + case 'M': |
|
346 | + $title = ' title="' . /* I18N: e.g. “Son of [father name & mother name]” */ I18N::translate('Son of %s', $family_name) . '"'; |
|
347 | + break; |
|
348 | + case 'F': |
|
349 | + $title = ' title="' . /* I18N: e.g. “Daughter of [father name & mother name]” */ I18N::translate('Daughter of %s', $family_name) . '"'; |
|
350 | + break; |
|
351 | + default: |
|
352 | + $title = ' title="' . /* I18N: e.g. “Child of [father name & mother name]” */ I18N::translate('Child of %s', $family_name) . '"'; |
|
353 | + break; |
|
354 | 354 | } |
355 | 355 | } else { |
356 | 356 | $title = ''; |
@@ -46,13 +46,13 @@ discard block |
||
46 | 46 | */ |
47 | 47 | public function modAction($mod_action) { |
48 | 48 | switch ($mod_action) { |
49 | - case 'ajax': |
|
50 | - header('Content-Type: text/html; charset=UTF-8'); |
|
51 | - echo $this->getSidebarAjaxContent(); |
|
52 | - break; |
|
53 | - default: |
|
54 | - http_response_code(404); |
|
55 | - break; |
|
49 | + case 'ajax': |
|
50 | + header('Content-Type: text/html; charset=UTF-8'); |
|
51 | + echo $this->getSidebarAjaxContent(); |
|
52 | + break; |
|
53 | + default: |
|
54 | + http_response_code(404); |
|
55 | + break; |
|
56 | 56 | } |
57 | 57 | } |
58 | 58 | |
@@ -150,18 +150,18 @@ discard block |
||
150 | 150 | $out = '<form method="post" action="module.php?mod=' . $this->getName() . '&mod_action=ajax" onsubmit="return false;"><input type="search" name="sb_indi_name" id="sb_indi_name" placeholder="' . I18N::translate('Search') . '"><p>'; |
151 | 151 | foreach ($initials as $letter => $count) { |
152 | 152 | switch ($letter) { |
153 | - case '@': |
|
154 | - $html = I18N::translateContext('Unknown surname', '…'); |
|
155 | - break; |
|
156 | - case ',': |
|
157 | - $html = I18N::translate('None'); |
|
158 | - break; |
|
159 | - case ' ': |
|
160 | - $html = ' '; |
|
161 | - break; |
|
162 | - default: |
|
163 | - $html = $letter; |
|
164 | - break; |
|
153 | + case '@': |
|
154 | + $html = I18N::translateContext('Unknown surname', '…'); |
|
155 | + break; |
|
156 | + case ',': |
|
157 | + $html = I18N::translate('None'); |
|
158 | + break; |
|
159 | + case ' ': |
|
160 | + $html = ' '; |
|
161 | + break; |
|
162 | + default: |
|
163 | + $html = $letter; |
|
164 | + break; |
|
165 | 165 | } |
166 | 166 | $html = '<a href="module.php?mod=' . $this->getName() . '&mod_action=ajax&alpha=' . urlencode($letter) . '" class="sb_indi_letter">' . $html . '</a>'; |
167 | 167 | $out .= $html . " "; |
@@ -82,57 +82,57 @@ |
||
82 | 82 | if ($person) { |
83 | 83 | $content = ''; |
84 | 84 | switch ($type) { |
85 | - case 'pedigree': |
|
86 | - $title .= I18N::translate('Pedigree of %s', $person->getFullName()); |
|
87 | - $chartController = new HourglassController($person->getXref(), $details, false); |
|
88 | - $controller->addInlineJavascript($chartController->setupJavascript()); |
|
89 | - $content .= '<table cellspacing="0" cellpadding="0" border="0"><tr>'; |
|
90 | - $content .= '<td>'; |
|
91 | - ob_start(); |
|
92 | - FunctionsPrint::printPedigreePerson($person, $details); |
|
93 | - $content .= ob_get_clean(); |
|
94 | - $content .= '</td>'; |
|
95 | - $content .= '<td>'; |
|
96 | - ob_start(); |
|
97 | - $chartController->printPersonPedigree($person, 1); |
|
98 | - $content .= ob_get_clean(); |
|
99 | - $content .= '</td>'; |
|
100 | - $content .= '</tr></table>'; |
|
101 | - break; |
|
102 | - case 'descendants': |
|
103 | - $title .= I18N::translate('Descendants of %s', $person->getFullName()); |
|
104 | - $chartController = new HourglassController($person->getXref(), $details, false); |
|
105 | - $controller->addInlineJavascript($chartController->setupJavascript()); |
|
106 | - ob_start(); |
|
107 | - $chartController->printDescendency($person, 1, false); |
|
108 | - $content .= ob_get_clean(); |
|
109 | - break; |
|
110 | - case 'hourglass': |
|
111 | - $title .= I18N::translate('Hourglass chart of %s', $person->getFullName()); |
|
112 | - $chartController = new HourglassController($person->getXref(), $details, false); |
|
113 | - $controller->addInlineJavascript($chartController->setupJavascript()); |
|
114 | - $content .= '<table cellspacing="0" cellpadding="0" border="0"><tr>'; |
|
115 | - $content .= '<td>'; |
|
116 | - ob_start(); |
|
117 | - $chartController->printDescendency($person, 1, false); |
|
118 | - $content .= ob_get_clean(); |
|
119 | - $content .= '</td>'; |
|
120 | - $content .= '<td>'; |
|
121 | - ob_start(); |
|
122 | - $chartController->printPersonPedigree($person, 1); |
|
123 | - $content .= ob_get_clean(); |
|
124 | - $content .= '</td>'; |
|
125 | - $content .= '</tr></table>'; |
|
126 | - break; |
|
127 | - case 'treenav': |
|
128 | - $title .= I18N::translate('Interactive tree of %s', $person->getFullName()); |
|
129 | - $mod = new InteractiveTreeModule(WT_MODULES_DIR . 'tree'); |
|
130 | - $tv = new TreeView; |
|
131 | - $content .= '<script>jQuery("head").append(\'<link rel="stylesheet" href="' . $mod->css() . '" type="text/css" />\');</script>'; |
|
132 | - $content .= '<script src="' . $mod->js() . '"></script>'; |
|
133 | - list($html, $js) = $tv->drawViewport($person, 2); |
|
134 | - $content .= $html . '<script>' . $js . '</script>'; |
|
135 | - break; |
|
85 | + case 'pedigree': |
|
86 | + $title .= I18N::translate('Pedigree of %s', $person->getFullName()); |
|
87 | + $chartController = new HourglassController($person->getXref(), $details, false); |
|
88 | + $controller->addInlineJavascript($chartController->setupJavascript()); |
|
89 | + $content .= '<table cellspacing="0" cellpadding="0" border="0"><tr>'; |
|
90 | + $content .= '<td>'; |
|
91 | + ob_start(); |
|
92 | + FunctionsPrint::printPedigreePerson($person, $details); |
|
93 | + $content .= ob_get_clean(); |
|
94 | + $content .= '</td>'; |
|
95 | + $content .= '<td>'; |
|
96 | + ob_start(); |
|
97 | + $chartController->printPersonPedigree($person, 1); |
|
98 | + $content .= ob_get_clean(); |
|
99 | + $content .= '</td>'; |
|
100 | + $content .= '</tr></table>'; |
|
101 | + break; |
|
102 | + case 'descendants': |
|
103 | + $title .= I18N::translate('Descendants of %s', $person->getFullName()); |
|
104 | + $chartController = new HourglassController($person->getXref(), $details, false); |
|
105 | + $controller->addInlineJavascript($chartController->setupJavascript()); |
|
106 | + ob_start(); |
|
107 | + $chartController->printDescendency($person, 1, false); |
|
108 | + $content .= ob_get_clean(); |
|
109 | + break; |
|
110 | + case 'hourglass': |
|
111 | + $title .= I18N::translate('Hourglass chart of %s', $person->getFullName()); |
|
112 | + $chartController = new HourglassController($person->getXref(), $details, false); |
|
113 | + $controller->addInlineJavascript($chartController->setupJavascript()); |
|
114 | + $content .= '<table cellspacing="0" cellpadding="0" border="0"><tr>'; |
|
115 | + $content .= '<td>'; |
|
116 | + ob_start(); |
|
117 | + $chartController->printDescendency($person, 1, false); |
|
118 | + $content .= ob_get_clean(); |
|
119 | + $content .= '</td>'; |
|
120 | + $content .= '<td>'; |
|
121 | + ob_start(); |
|
122 | + $chartController->printPersonPedigree($person, 1); |
|
123 | + $content .= ob_get_clean(); |
|
124 | + $content .= '</td>'; |
|
125 | + $content .= '</tr></table>'; |
|
126 | + break; |
|
127 | + case 'treenav': |
|
128 | + $title .= I18N::translate('Interactive tree of %s', $person->getFullName()); |
|
129 | + $mod = new InteractiveTreeModule(WT_MODULES_DIR . 'tree'); |
|
130 | + $tv = new TreeView; |
|
131 | + $content .= '<script>jQuery("head").append(\'<link rel="stylesheet" href="' . $mod->css() . '" type="text/css" />\');</script>'; |
|
132 | + $content .= '<script src="' . $mod->js() . '"></script>'; |
|
133 | + list($html, $js) = $tv->drawViewport($person, 2); |
|
134 | + $content .= $html . '<script>' . $js . '</script>'; |
|
135 | + break; |
|
136 | 136 | } |
137 | 137 | } else { |
138 | 138 | $content = I18N::translate('You must select an individual and a chart type in the block preferences'); |
@@ -52,14 +52,14 @@ discard block |
||
52 | 52 | */ |
53 | 53 | public function modAction($mod_action) { |
54 | 54 | switch ($mod_action) { |
55 | - case 'admin': |
|
56 | - $this->admin(); |
|
57 | - break; |
|
58 | - case 'generate': |
|
59 | - $this->generate(Filter::get('file')); |
|
60 | - break; |
|
61 | - default: |
|
62 | - http_response_code(404); |
|
55 | + case 'admin': |
|
56 | + $this->admin(); |
|
57 | + break; |
|
58 | + case 'generate': |
|
59 | + $this->generate(Filter::get('file')); |
|
60 | + break; |
|
61 | + default: |
|
62 | + http_response_code(404); |
|
63 | 63 | } |
64 | 64 | } |
65 | 65 | |
@@ -160,86 +160,86 @@ discard block |
||
160 | 160 | $data = '<url><loc>' . WT_BASE_URL . 'index.php?ctype=gedcom&ged=' . $tree->getNameUrl() . '</loc></url>' . PHP_EOL; |
161 | 161 | $records = array(); |
162 | 162 | switch ($rec_type) { |
163 | - case 'i': |
|
164 | - $rows = Database::prepare( |
|
165 | - "SELECT i_id AS xref, i_gedcom AS gedcom" . |
|
166 | - " FROM `##individuals`" . |
|
167 | - " WHERE i_file = :tree_id" . |
|
168 | - " ORDER BY i_id" . |
|
169 | - " LIMIT :limit OFFSET :offset" |
|
170 | - )->execute(array( |
|
171 | - 'tree_id' => $ged_id, |
|
172 | - 'limit' => self::RECORDS_PER_VOLUME, |
|
173 | - 'offset' => self::RECORDS_PER_VOLUME * $volume, |
|
174 | - ))->fetchAll(); |
|
175 | - foreach ($rows as $row) { |
|
176 | - $records[] = Individual::getInstance($row->xref, $tree, $row->gedcom); |
|
177 | - } |
|
178 | - break; |
|
179 | - case 's': |
|
180 | - $rows = Database::prepare( |
|
181 | - "SELECT s_id AS xref, s_gedcom AS gedcom" . |
|
182 | - " FROM `##sources`" . |
|
183 | - " WHERE s_file = :tree_id" . |
|
184 | - " ORDER BY s_id" . |
|
185 | - " LIMIT :limit OFFSET :offset" |
|
186 | - )->execute(array( |
|
187 | - 'tree_id' => $ged_id, |
|
188 | - 'limit' => self::RECORDS_PER_VOLUME, |
|
189 | - 'offset' => self::RECORDS_PER_VOLUME * $volume, |
|
190 | - ))->fetchAll(); |
|
191 | - foreach ($rows as $row) { |
|
192 | - $records[] = Source::getInstance($row->xref, $tree, $row->gedcom); |
|
193 | - } |
|
194 | - break; |
|
195 | - case 'r': |
|
196 | - $rows = Database::prepare( |
|
197 | - "SELECT o_id AS xref, o_gedcom AS gedcom" . |
|
198 | - " FROM `##other`" . |
|
199 | - " WHERE o_file = :tree_id AND o_type = 'REPO'" . |
|
200 | - " ORDER BY o_id" . |
|
201 | - " LIMIT :limit OFFSET :offset" |
|
202 | - )->execute(array( |
|
203 | - 'tree_id' => $ged_id, |
|
204 | - 'limit' => self::RECORDS_PER_VOLUME, |
|
205 | - 'offset' => self::RECORDS_PER_VOLUME * $volume, |
|
206 | - ))->fetchAll(); |
|
207 | - foreach ($rows as $row) { |
|
208 | - $records[] = Repository::getInstance($row->xref, $tree, $row->gedcom); |
|
209 | - } |
|
210 | - break; |
|
211 | - case 'n': |
|
212 | - $rows = Database::prepare( |
|
213 | - "SELECT o_id AS xref, o_gedcom AS gedcom" . |
|
214 | - " FROM `##other`" . |
|
215 | - " WHERE o_file = :tree_id AND o_type = 'NOTE'" . |
|
216 | - " ORDER BY o_id" . |
|
217 | - " LIMIT :limit OFFSET :offset" |
|
218 | - )->execute(array( |
|
219 | - 'tree_id' => $ged_id, |
|
220 | - 'limit' => self::RECORDS_PER_VOLUME, |
|
221 | - 'offset' => self::RECORDS_PER_VOLUME * $volume, |
|
222 | - ))->fetchAll(); |
|
223 | - foreach ($rows as $row) { |
|
224 | - $records[] = Note::getInstance($row->xref, $tree, $row->gedcom); |
|
225 | - } |
|
226 | - break; |
|
227 | - case 'm': |
|
228 | - $rows = Database::prepare( |
|
229 | - "SELECT m_id AS xref, m_gedcom AS gedcom" . |
|
230 | - " FROM `##media`" . |
|
231 | - " WHERE m_file = :tree_id" . |
|
232 | - " ORDER BY m_id" . |
|
233 | - " LIMIT :limit OFFSET :offset" |
|
234 | - )->execute(array( |
|
235 | - 'tree_id' => $ged_id, |
|
236 | - 'limit' => self::RECORDS_PER_VOLUME, |
|
237 | - 'offset' => self::RECORDS_PER_VOLUME * $volume, |
|
238 | - ))->fetchAll(); |
|
239 | - foreach ($rows as $row) { |
|
240 | - $records[] = Media::getInstance($row->xref, $tree, $row->gedcom); |
|
241 | - } |
|
242 | - break; |
|
163 | + case 'i': |
|
164 | + $rows = Database::prepare( |
|
165 | + "SELECT i_id AS xref, i_gedcom AS gedcom" . |
|
166 | + " FROM `##individuals`" . |
|
167 | + " WHERE i_file = :tree_id" . |
|
168 | + " ORDER BY i_id" . |
|
169 | + " LIMIT :limit OFFSET :offset" |
|
170 | + )->execute(array( |
|
171 | + 'tree_id' => $ged_id, |
|
172 | + 'limit' => self::RECORDS_PER_VOLUME, |
|
173 | + 'offset' => self::RECORDS_PER_VOLUME * $volume, |
|
174 | + ))->fetchAll(); |
|
175 | + foreach ($rows as $row) { |
|
176 | + $records[] = Individual::getInstance($row->xref, $tree, $row->gedcom); |
|
177 | + } |
|
178 | + break; |
|
179 | + case 's': |
|
180 | + $rows = Database::prepare( |
|
181 | + "SELECT s_id AS xref, s_gedcom AS gedcom" . |
|
182 | + " FROM `##sources`" . |
|
183 | + " WHERE s_file = :tree_id" . |
|
184 | + " ORDER BY s_id" . |
|
185 | + " LIMIT :limit OFFSET :offset" |
|
186 | + )->execute(array( |
|
187 | + 'tree_id' => $ged_id, |
|
188 | + 'limit' => self::RECORDS_PER_VOLUME, |
|
189 | + 'offset' => self::RECORDS_PER_VOLUME * $volume, |
|
190 | + ))->fetchAll(); |
|
191 | + foreach ($rows as $row) { |
|
192 | + $records[] = Source::getInstance($row->xref, $tree, $row->gedcom); |
|
193 | + } |
|
194 | + break; |
|
195 | + case 'r': |
|
196 | + $rows = Database::prepare( |
|
197 | + "SELECT o_id AS xref, o_gedcom AS gedcom" . |
|
198 | + " FROM `##other`" . |
|
199 | + " WHERE o_file = :tree_id AND o_type = 'REPO'" . |
|
200 | + " ORDER BY o_id" . |
|
201 | + " LIMIT :limit OFFSET :offset" |
|
202 | + )->execute(array( |
|
203 | + 'tree_id' => $ged_id, |
|
204 | + 'limit' => self::RECORDS_PER_VOLUME, |
|
205 | + 'offset' => self::RECORDS_PER_VOLUME * $volume, |
|
206 | + ))->fetchAll(); |
|
207 | + foreach ($rows as $row) { |
|
208 | + $records[] = Repository::getInstance($row->xref, $tree, $row->gedcom); |
|
209 | + } |
|
210 | + break; |
|
211 | + case 'n': |
|
212 | + $rows = Database::prepare( |
|
213 | + "SELECT o_id AS xref, o_gedcom AS gedcom" . |
|
214 | + " FROM `##other`" . |
|
215 | + " WHERE o_file = :tree_id AND o_type = 'NOTE'" . |
|
216 | + " ORDER BY o_id" . |
|
217 | + " LIMIT :limit OFFSET :offset" |
|
218 | + )->execute(array( |
|
219 | + 'tree_id' => $ged_id, |
|
220 | + 'limit' => self::RECORDS_PER_VOLUME, |
|
221 | + 'offset' => self::RECORDS_PER_VOLUME * $volume, |
|
222 | + ))->fetchAll(); |
|
223 | + foreach ($rows as $row) { |
|
224 | + $records[] = Note::getInstance($row->xref, $tree, $row->gedcom); |
|
225 | + } |
|
226 | + break; |
|
227 | + case 'm': |
|
228 | + $rows = Database::prepare( |
|
229 | + "SELECT m_id AS xref, m_gedcom AS gedcom" . |
|
230 | + " FROM `##media`" . |
|
231 | + " WHERE m_file = :tree_id" . |
|
232 | + " ORDER BY m_id" . |
|
233 | + " LIMIT :limit OFFSET :offset" |
|
234 | + )->execute(array( |
|
235 | + 'tree_id' => $ged_id, |
|
236 | + 'limit' => self::RECORDS_PER_VOLUME, |
|
237 | + 'offset' => self::RECORDS_PER_VOLUME * $volume, |
|
238 | + ))->fetchAll(); |
|
239 | + foreach ($rows as $row) { |
|
240 | + $records[] = Media::getInstance($row->xref, $tree, $row->gedcom); |
|
241 | + } |
|
242 | + break; |
|
243 | 243 | } |
244 | 244 | foreach ($records as $record) { |
245 | 245 | if ($record->canShowName()) { |
@@ -80,22 +80,22 @@ |
||
80 | 80 | global $WT_TREE; |
81 | 81 | |
82 | 82 | switch ($mod_action) { |
83 | - case 'menu-add-favorite': |
|
84 | - // Process the "add to user favorites" menu item on indi/fam/etc. pages |
|
85 | - $record = GedcomRecord::getInstance(Filter::post('xref', WT_REGEX_XREF), $WT_TREE); |
|
86 | - if (Auth::check() && $record->canShowName()) { |
|
87 | - self::addFavorite(array( |
|
88 | - 'user_id' => Auth::id(), |
|
89 | - 'gedcom_id' => $record->getTree()->getTreeId(), |
|
90 | - 'gid' => $record->getXref(), |
|
91 | - 'type' => $record::RECORD_TYPE, |
|
92 | - 'url' => null, |
|
93 | - 'note' => null, |
|
94 | - 'title' => null, |
|
95 | - )); |
|
96 | - FlashMessages::addMessage(/* I18N: %s is the name of an individual, source or other record */ I18N::translate('“%s” has been added to your favorites.', $record->getFullName())); |
|
97 | - } |
|
98 | - break; |
|
83 | + case 'menu-add-favorite': |
|
84 | + // Process the "add to user favorites" menu item on indi/fam/etc. pages |
|
85 | + $record = GedcomRecord::getInstance(Filter::post('xref', WT_REGEX_XREF), $WT_TREE); |
|
86 | + if (Auth::check() && $record->canShowName()) { |
|
87 | + self::addFavorite(array( |
|
88 | + 'user_id' => Auth::id(), |
|
89 | + 'gedcom_id' => $record->getTree()->getTreeId(), |
|
90 | + 'gid' => $record->getXref(), |
|
91 | + 'type' => $record::RECORD_TYPE, |
|
92 | + 'url' => null, |
|
93 | + 'note' => null, |
|
94 | + 'title' => null, |
|
95 | + )); |
|
96 | + FlashMessages::addMessage(/* I18N: %s is the name of an individual, source or other record */ I18N::translate('“%s” has been added to your favorites.', $record->getFullName())); |
|
97 | + } |
|
98 | + break; |
|
99 | 99 | } |
100 | 100 | } |
101 | 101 | } |
@@ -75,12 +75,12 @@ |
||
75 | 75 | global $ctype, $WT_TREE; |
76 | 76 | |
77 | 77 | switch (Filter::get('action')) { |
78 | - case 'deletenews': |
|
79 | - $news_id = Filter::get('news_id'); |
|
80 | - if ($news_id) { |
|
81 | - Database::prepare("DELETE FROM `##news` WHERE news_id = ?")->execute(array($news_id)); |
|
82 | - } |
|
83 | - break; |
|
78 | + case 'deletenews': |
|
79 | + $news_id = Filter::get('news_id'); |
|
80 | + if ($news_id) { |
|
81 | + Database::prepare("DELETE FROM `##news` WHERE news_id = ?")->execute(array($news_id)); |
|
82 | + } |
|
83 | + break; |
|
84 | 84 | } |
85 | 85 | |
86 | 86 | $more_news = Filter::getInteger('more_news'); |
@@ -77,32 +77,32 @@ |
||
77 | 77 | $content = '<div class="normal_inner_block">'; |
78 | 78 | //Select List or Table |
79 | 79 | switch ($infoStyle) { |
80 | - case "list": // Output style 1: Simple list style. Better suited to left side of page. |
|
81 | - if (I18N::direction() === 'ltr') { |
|
82 | - $padding = 'padding-left: 15px'; |
|
83 | - } else { |
|
84 | - $padding = 'padding-right: 15px'; |
|
85 | - } |
|
86 | - $params = array(1, $num, 'rcount'); |
|
87 | - // List Female names |
|
88 | - $totals = $stats->commonGivenFemaleTotals($params); |
|
89 | - if ($totals) { |
|
90 | - $content .= '<b>' . I18N::translate('Females') . '</b><div class="wrap" style="' . $padding . '">' . $totals . '</div><br>'; |
|
91 | - } |
|
92 | - // List Male names |
|
93 | - $totals = $stats->commonGivenMaleTotals($params); |
|
94 | - if ($totals) { |
|
95 | - $content .= '<b>' . I18N::translate('Males') . '</b><div class="wrap" style="' . $padding . '">' . $totals . '</div><br>'; |
|
96 | - } |
|
97 | - break; |
|
98 | - case "table": // Style 2: Tabular format. Narrow, 2 or 3 column table, good on right side of page |
|
99 | - $params = array(1, $num, 'rcount'); |
|
100 | - $content .= '<table style="margin:auto;"> |
|
80 | + case "list": // Output style 1: Simple list style. Better suited to left side of page. |
|
81 | + if (I18N::direction() === 'ltr') { |
|
82 | + $padding = 'padding-left: 15px'; |
|
83 | + } else { |
|
84 | + $padding = 'padding-right: 15px'; |
|
85 | + } |
|
86 | + $params = array(1, $num, 'rcount'); |
|
87 | + // List Female names |
|
88 | + $totals = $stats->commonGivenFemaleTotals($params); |
|
89 | + if ($totals) { |
|
90 | + $content .= '<b>' . I18N::translate('Females') . '</b><div class="wrap" style="' . $padding . '">' . $totals . '</div><br>'; |
|
91 | + } |
|
92 | + // List Male names |
|
93 | + $totals = $stats->commonGivenMaleTotals($params); |
|
94 | + if ($totals) { |
|
95 | + $content .= '<b>' . I18N::translate('Males') . '</b><div class="wrap" style="' . $padding . '">' . $totals . '</div><br>'; |
|
96 | + } |
|
97 | + break; |
|
98 | + case "table": // Style 2: Tabular format. Narrow, 2 or 3 column table, good on right side of page |
|
99 | + $params = array(1, $num, 'rcount'); |
|
100 | + $content .= '<table style="margin:auto;"> |
|
101 | 101 | <tr> |
102 | 102 | <td>' . $stats->commonGivenFemaleTable($params) . '</td> |
103 | 103 | <td>' . $stats->commonGivenMaleTable($params) . '</td>'; |
104 | - $content .= '</tr></table>'; |
|
105 | - break; |
|
104 | + $content .= '</tr></table>'; |
|
105 | + break; |
|
106 | 106 | } |
107 | 107 | $content .= "</div>"; |
108 | 108 |