Extension:MobileDetect

From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manualManual:Extensions
Crystal Clear action run.png
MobileDetect

Release status:Extension status beta

ImplementationTemplate:Extension#type Tag
DescriptionTemplate:Extension#description Detects mobile devices and allows to control the content visible with the <nomobile> and <mobileonly> tags.
Author(s)Template:Extension#username Matthew Tran (Archivolt), Felipe Schenone
Latest versionTemplate:Extension#version 2.0 (2014-09-29)
MediaWikiTemplate:Extension#mediawiki 1.15+
LicenseTemplate:Extension#license GNU General Public License 2.0 or later
Download
TagsTemplate:Extension#tags
<nomobile>, <mobileonly>
Hooks usedTemplate:Extension#hook
ParserFirstCallInit

Universal

Translate the MobileDetect extension if it is available at translatewiki.net

Check usage and version matrix.

This extension detects mobile devices using PHP's HTTP_USER_AGENT. Due to the nature of the extension, it should be very compatible with both new and old versions of MediaWiki.

The extension introduces a function called mobiledetect(), which returns true when a mobile device is detected, and false otherwise. It also introduces the <nomobile> and <mobileonly> tags, which allow users to control which content is displayed only in mobile browsers, and which content is displayed only in desktop browsers.

Installation[edit]

  • Download and place the file(s) in a directory called MobileDetect in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php:
require_once "$IP/extensions/MobileDetect/MobileDetect.php";
  • YesY Done - Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Usage[edit]

mobiledetect() function[edit]

If you would like to set a default theme depending on a visitor's browser, you can add this to your LocalSettings.php:

require_once "$IP/extensions/MobileDetect/MobileDetect.php";
$mobile = mobiledetect();
if ( $mobile == false ) $wgDefaultSkin = "vector"; # If not Mobile
if ( $mobile == true ) $wgDefaultSkin = "chick"; # If is Mobile

With this code, if the visitor's browser shows a user agent from a mobile browser, the default theme will be "chick" instead of "vector". If instead the browser shows a user agent from a desktop/full browser, the default theme will be "vector" instead of "chick".

If you would like a certain extension to be excluded from loading on mobile browsers, you can add this to your LocalSettings.php:

require_once "$IP/extensions/MobileDetect/MobileDetect.php";
$mobile = mobiledetect();
if ( $mobile == false ) require_once "$IP/extensions/reCAPTCHA/recaptcha.php"; # Only load if desktop browser

With this code, the reCAPTCHA extension would only load on desktop/full browsers.

<nomobile> and <mobileonly> tags[edit]

The MobileDetect extension also introduces the <mobileonly> and <nomobile> tags, which allow users to control which content is displayed in mobile browsers, and which in desktop/full browsers. Whatever is wrapped between <mobileonly> tags will only be displayed in mobile browsers, and whatever is wrapped between <nomobile> tags will only be displayed in desktop/full browsers. So for example:

<mobileonly>This will not be displayed in desktop/full browsers, only in mobile browsers</mobileonly>
<nomobile>This will not be displayed in mobile browsers, only in desktop/full browsers</nomobile>

The naming and behaviour of the <mobileonly> and <nomobile> tags follows that of the <includeonly> and <noinclude> tags.

See also[edit]