Skip to main content
Topic: DetectBrowser() (Read 1207 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.


It is called in numerous locations but the only place it seems that it needs to be called is in isBrowser(). I prefer to lazy load it. So remove it from everywhere else.

The only place that I can see that would need to be fixed would be Debug.class.php:
Code: [Select]
		$this->_system['browser'] = $context['browser_body_id'] . ' <em>(' . implode('</em>, <em>', array_reverse(array_keys($context['browser'], true))) . ')</em>';

Also, any place where isBrowser($browser) is used, they should be changed to $browser->is$browser() and isPossibleRobot() should be added to the class


Re: DetectBrowser()

Reply #1
Here's the big one that doesn't make much sense now:

Code: [Select]
	// Attachments don't require the entire theme to be loaded.
if ($_req->getQuery('action') === 'dlattach' && (!empty($modSettings['allow_guestAccess']) && $user_info['is_guest']) && (empty($maintenance) || allowedTo('admin_forum')))
// Load the current theme.  (note that ?theme=1 will also work, may be used for guest theming.)

Just invert that condition and make it for loadTheme() only. Everything else will load the browser info when it is needed. This would require some testing so I don't want to just go right in to it without knowing what tests would need to be done.