Extension:MobileDetect
Release status: stable |
|
|---|---|
| Implementation | Tag |
| Description | Detects mobile devices and allows to control the content visible with <nomobile> and <mobileonly> tags, parser functions and CSS classes. |
| Author(s) | Matthew Tran (Archivolttalk) |
| Maintainer(s) | Sophivorus |
| Latest version | 2.4 (2024-08-25) |
| MediaWiki | 1.35+ |
<nomobile>, <mobileonly>, #nomobile, #mobileonly |
|
| License | GNU General Public License 3.0 |
| Download | |
| Translate the MobileDetect extension if it is available at translatewiki.net | |
| Issues | Open tasks · Report a bug |
The MobileDetect 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 wfMobileDetect(), which returns true when a mobile device is detected, and false otherwise.
It also introduces <nomobile> and <mobileonly> tags, parser functions and CSS classes which allow users to control which content is displayed only in mobile browsers, and which content is displayed only in desktop browsers.
Installation
- Download and move the extracted
MobileDetectfolder to yourextensions/directory.
Developers and code contributors should install the extension from Git instead, using:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileDetect
- Add the following code at the bottom of your LocalSettings.php file:
wfLoadExtension( 'MobileDetect' );
Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Usage
wfMobileDetect()
If you would like to set a default theme depending on a visitor's browser, you can add this to your LocalSettings.php:
wfLoadExtension( 'MobileDetect' );
$mobile = wfMobileDetect();
if ( $mobile ) {
$wgDefaultSkin = "chick"; # If mobile
} else {
$wgDefaultSkin = "vector"; # If not 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, 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:
wfLoadExtension( 'MobileDetect' );
$mobile = wfMobileDetect();
if ( ! $mobile ) {
wfLoadExtension( 'ConfirmEdit' ); # Only load if desktop browser
}
With this code, the reCAPTCHA extension would only load on desktop browsers.
<nomobile> and <mobileonly> tags
The MobileDetect extension also introduces the <nomobile> and <mobileonly> tags, which allow users to control which content is displayed in mobile browsers, and which in desktop 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 browsers.
So for example:
<mobileonly>This will not be displayed in desktop browsers, only in mobile browsers</mobileonly>
<nomobile>This will not be displayed in mobile browsers, only in desktop browsers</nomobile>
The naming and behaviour of the <mobileonly> and <nomobile> tags follows that of the <includeonly> and <noinclude> tags.
This fork will render all multi-line content correctly.
#nomobile and #mobileonly parser functions
The MobileDetect extension also introduces the #nomobile and #mobileonly parser functions, which work exactly like the <nomobile> and <mobileonly> tags, with the difference that their content gets parsed so they can contain stuff like {{{1}}} and be used in templates.
However, they don't render all multi-line content correctly, so use them mostly for inline content.
This fork will render all multi-line content correctly.
nomobile and mobileonly classes
Alternatively, it is also possible to use the CSS classes directly:
{| class="wikitable nomobile"
|-
| (Some wikitable stuff.)
|}
See also
| This extension is included in the following wiki farms/hosts and/or packages: |
