| @@ 373-434 (lines=62) @@ | ||
| 370 | $context['report_sent'] = isset($_GET['reportsent']); |
|
| 371 | ||
| 372 | // Let's get nosey, who is viewing this topic? |
|
| 373 | if (!empty($settings['display_who_viewing'])) |
|
| 374 | { |
|
| 375 | // Start out with no one at all viewing it. |
|
| 376 | $context['view_members'] = array(); |
|
| 377 | $context['view_members_list'] = array(); |
|
| 378 | $context['view_num_hidden'] = 0; |
|
| 379 | ||
| 380 | // Search for members who have this topic set in their GET data. |
|
| 381 | $request = $smcFunc['db_query']('', ' |
|
| 382 | SELECT |
|
| 383 | lo.id_member, lo.log_time, mem.real_name, mem.member_name, mem.show_online, |
|
| 384 | mg.online_color, mg.id_group, mg.group_name |
|
| 385 | FROM {db_prefix}log_online AS lo |
|
| 386 | LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = lo.id_member) |
|
| 387 | LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = CASE WHEN mem.id_group = {int:reg_id_group} THEN mem.id_post_group ELSE mem.id_group END) |
|
| 388 | WHERE INSTR(lo.url, {string:in_url_string}) > 0 OR lo.session = {string:session}', |
|
| 389 | array( |
|
| 390 | 'reg_id_group' => 0, |
|
| 391 | 'in_url_string' => '"topic":'.$topic, |
|
| 392 | 'session' => $user_info['is_guest'] ? 'ip' . $user_info['ip'] : session_id(), |
|
| 393 | ) |
|
| 394 | ); |
|
| 395 | while ($row = $smcFunc['db_fetch_assoc']($request)) |
|
| 396 | { |
|
| 397 | if (empty($row['id_member'])) |
|
| 398 | continue; |
|
| 399 | ||
| 400 | if (!empty($row['online_color'])) |
|
| 401 | $link = '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '" style="color: ' . $row['online_color'] . ';">' . $row['real_name'] . '</a>'; |
|
| 402 | else |
|
| 403 | $link = '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>'; |
|
| 404 | ||
| 405 | $is_buddy = in_array($row['id_member'], $user_info['buddies']); |
|
| 406 | if ($is_buddy) |
|
| 407 | $link = '<strong>' . $link . '</strong>'; |
|
| 408 | ||
| 409 | // Add them both to the list and to the more detailed list. |
|
| 410 | if (!empty($row['show_online']) || allowedTo('moderate_forum')) |
|
| 411 | $context['view_members_list'][$row['log_time'] . $row['member_name']] = empty($row['show_online']) ? '<em>' . $link . '</em>' : $link; |
|
| 412 | $context['view_members'][$row['log_time'] . $row['member_name']] = array( |
|
| 413 | 'id' => $row['id_member'], |
|
| 414 | 'username' => $row['member_name'], |
|
| 415 | 'name' => $row['real_name'], |
|
| 416 | 'group' => $row['id_group'], |
|
| 417 | 'href' => $scripturl . '?action=profile;u=' . $row['id_member'], |
|
| 418 | 'link' => $link, |
|
| 419 | 'is_buddy' => $is_buddy, |
|
| 420 | 'hidden' => empty($row['show_online']), |
|
| 421 | ); |
|
| 422 | ||
| 423 | if (empty($row['show_online'])) |
|
| 424 | $context['view_num_hidden']++; |
|
| 425 | } |
|
| 426 | ||
| 427 | // The number of guests is equal to the rows minus the ones we actually used ;). |
|
| 428 | $context['view_num_guests'] = $smcFunc['db_num_rows']($request) - count($context['view_members']); |
|
| 429 | $smcFunc['db_free_result']($request); |
|
| 430 | ||
| 431 | // Sort the list. |
|
| 432 | krsort($context['view_members']); |
|
| 433 | krsort($context['view_members_list']); |
|
| 434 | } |
|
| 435 | ||
| 436 | // If all is set, but not allowed... just unset it. |
|
| 437 | $can_show_all = !empty($modSettings['enableAllMessages']) && $context['total_visible_posts'] > $context['messages_per_page'] && $context['total_visible_posts'] < $modSettings['enableAllMessages']; |
|
| @@ 172-229 (lines=58) @@ | ||
| 169 | $context['boards'] = getBoardIndex($boardIndexOptions); |
|
| 170 | ||
| 171 | // Nosey, nosey - who's viewing this topic? |
|
| 172 | if (!empty($settings['display_who_viewing'])) |
|
| 173 | { |
|
| 174 | $context['view_members'] = array(); |
|
| 175 | $context['view_members_list'] = array(); |
|
| 176 | $context['view_num_hidden'] = 0; |
|
| 177 | ||
| 178 | $request = $smcFunc['db_query']('', ' |
|
| 179 | SELECT |
|
| 180 | lo.id_member, lo.log_time, mem.real_name, mem.member_name, mem.show_online, |
|
| 181 | mg.online_color, mg.id_group, mg.group_name |
|
| 182 | FROM {db_prefix}log_online AS lo |
|
| 183 | LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = lo.id_member) |
|
| 184 | LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = CASE WHEN mem.id_group = {int:reg_member_group} THEN mem.id_post_group ELSE mem.id_group END) |
|
| 185 | WHERE INSTR(lo.url, {string:in_url_string}) > 0 OR lo.session = {string:session}', |
|
| 186 | array( |
|
| 187 | 'reg_member_group' => 0, |
|
| 188 | 'in_url_string' => '"board":' . $board, |
|
| 189 | 'session' => $user_info['is_guest'] ? 'ip' . $user_info['ip'] : session_id(), |
|
| 190 | ) |
|
| 191 | ); |
|
| 192 | while ($row = $smcFunc['db_fetch_assoc']($request)) |
|
| 193 | { |
|
| 194 | if (empty($row['id_member'])) |
|
| 195 | continue; |
|
| 196 | ||
| 197 | if (!empty($row['online_color'])) |
|
| 198 | $link = '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '" style="color: ' . $row['online_color'] . ';">' . $row['real_name'] . '</a>'; |
|
| 199 | else |
|
| 200 | $link = '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>'; |
|
| 201 | ||
| 202 | $is_buddy = in_array($row['id_member'], $user_info['buddies']); |
|
| 203 | if ($is_buddy) |
|
| 204 | $link = '<strong>' . $link . '</strong>'; |
|
| 205 | ||
| 206 | if (!empty($row['show_online']) || allowedTo('moderate_forum')) |
|
| 207 | $context['view_members_list'][$row['log_time'] . $row['member_name']] = empty($row['show_online']) ? '<em>' . $link . '</em>' : $link; |
|
| 208 | // @todo why are we filling this array of data that are just counted (twice) and discarded? ??? |
|
| 209 | $context['view_members'][$row['log_time'] . $row['member_name']] = array( |
|
| 210 | 'id' => $row['id_member'], |
|
| 211 | 'username' => $row['member_name'], |
|
| 212 | 'name' => $row['real_name'], |
|
| 213 | 'group' => $row['id_group'], |
|
| 214 | 'href' => $scripturl . '?action=profile;u=' . $row['id_member'], |
|
| 215 | 'link' => $link, |
|
| 216 | 'is_buddy' => $is_buddy, |
|
| 217 | 'hidden' => empty($row['show_online']), |
|
| 218 | ); |
|
| 219 | ||
| 220 | if (empty($row['show_online'])) |
|
| 221 | $context['view_num_hidden']++; |
|
| 222 | } |
|
| 223 | $context['view_num_guests'] = $smcFunc['db_num_rows']($request) - count($context['view_members']); |
|
| 224 | $smcFunc['db_free_result']($request); |
|
| 225 | ||
| 226 | // Put them in "last clicked" order. |
|
| 227 | krsort($context['view_members_list']); |
|
| 228 | krsort($context['view_members']); |
|
| 229 | } |
|
| 230 | ||
| 231 | // Default sort methods. |
|
| 232 | $sort_methods = array( |
|