Code Duplication    Length = 58-62 lines in 2 locations

Sources/Display.php 1 location

@@ 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'];

Sources/MessageIndex.php 1 location

@@ 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(