Jump to content
MediaWiki

Extension:MobileDetect

From mediawiki.org
This extension is incompatible with MediaWiki 1.43 or any later release!
  • Reason: Global functions don't work properly and cause fatal PHP errors. See talk page.
    MediaWiki developers are invited to pledge their efforts to updating this extension to make it compatible with MediaWiki 1.46 by replacing the {{Incompatible }} template with {{Incompatible |version=1.43|pledge=~~~~}}.

    Please see the following alternatives that you may wish to install instead of this extension:
  • Extension:MobileFrontend
MediaWiki extensions manual
MobileDetect
Release status: unstable
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 (Archivolt talk )
Maintainer(s) Sophivorus
Latest version 2.4 (2024年08月25日)
MediaWiki 1.35+
‎<nomobile>, ‎<mobileonly>, #nomobile, #mobileonly
Licence 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

[edit ]
  • Download and move the extracted MobileDetect folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:
    cdextensions/
    gitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions/MobileDetect
    
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'MobileDetect' );
    
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Usage

[edit ]

wfMobileDetect()

[edit ]

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

[edit ]

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.

The original extension don't render all multi-line content correctly.

This fork will render all multi-line content correctly.

Testpage for MobileDetect

#nomobile and #mobileonly parser functions

[edit ]

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.

The original extension don't render all multi-line content correctly.

This fork will render all multi-line content correctly.

Testpage for MobileDetect
Example for Template

nomobile and mobileonly classes

[edit ]

Alternatively, it is also possible to use the CSS classes directly:

{|class="wikitable nomobile"
|-
| (Some wikitable stuff.)
|}

See also

[edit ]
This extension is included in the following wiki farms/hosts and/or packages:

AltStyle によって変換されたページ (->オリジナル) /