The MobileFrontend extension helps improve the mobile presence of a MediaWiki instance.
This extension is maintained by the Web team.Features include:
This page is designed for end users who want to install it on their development instance. If you are keen to help us build it and improve it we encourage you to get involved.
Before installing MobileFrontend, if you make heavy use of templates and/or inline styles (the style attribute) you should review your content to see whether it is mobile friendly. The TemplateStyles extension can be used to style content so that it renders nicely on mobile and desktop. MobileFrontend will not magically fix this for you!
In particular, you may want to review your landing page (main page). See Mobile homepage formatting.
MobileFrontend
folder to your extensions/
directory.cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend
wfLoadExtension( 'MobileFrontend' );
Vagrant installation:
vagrant roles enable mobilefrontend --provision
MobileFrontend provides the Special:Nearby page with a little configuration. To get this to work, a few optional steps are required:
LocalSettings.php
add $wgMFNearby = true;
coordinates
parser function, for example {{#coordinates:37.786971|-122.399677|primary}}
. For syntax details, see the documentation for GeoData .$wgMFNearbyEndpoint
in your LocalSettings.php
file. For example, $wgMFNearbyEndpoint = 'https://en.m.wikipedia.org/w/api.php';
will use coordinates of English Wikipedia articles. The nearby endpoint will be used to find content related to a given location.MobileFrontend provides you with a mobile formatted website to go alongside your existing desktop website. You can skin it however you want.
// Choose one of these pairs of lines and add chosen code to bottom of LocalSettings.php file: wfLoadSkin( 'MinervaNeue' ); $wgDefaultMobileSkin = 'minerva'; // use Minerva skin (You need to download and install it separately in 1.37 and older, otherwise you'll get an exception) wfLoadSkin( 'Vector' ); $wgDefaultMobileSkin = 'vector'; // use Vector skin wfLoadSkin( 'Timeless' ); $wgDefaultMobileSkin = 'timeless'; // use Timeless skin
The following skins are compatible with MobileFrontend:
See Extension:MobileFrontend/Configuration
All configuration options are detailed in the README.md file.
Get the most out of MobileFrontend by adding these optional compatible extensions:
≤ 1.40
To apply CSS to your mobile theme, edit MediaWiki:Mobile.css, the counterpart of MediaWiki:Common.css. In order for the stylesheet to function you may have to add mw.loader.using('mobile.site.styles')
to your MediaWiki:Mobile.js.
MobileFrontend does not load the global MediaWiki:Common.css, neither does it load any of the user stylesheets.
If you would like to test the mobile extension on a desktop browser or your device doesn't render the mobile version, you can append the following key-value pair to the URL query string: ?useformat=mobile
. For example: https://en.wikipedia.org/wiki/MediaWiki?useformat=mobile
If you would like to view the mobile version of a page without enabling the extension across the entire site you can append the string to the URL on that page, too.
Legacy features of MobileFrontend[edit]MobileFrontend has traditionally been a very large extension. Many features have either surpassed their requirements or will do at some future date. These are listed below.
APIs are provided by the MobileFrontend extension, but long term we expect to deprecate them in favour of Page Content Service. Use these APIs at your own risk. They may disappear (although we will give you sufficient notice when they do)!
Extended action=parse[edit]action=parse
accepts extra parameters:
mobileformat=
mainpage
Example:
Result{ "parse": { "title": "Therion (band)", "text": { "*": "<div><table class=\"infobox vcard plainlist\" style=\"width:22em\"><tr><th colspan=\"2\" style=\"text-align:center;font-size:125%;font-weight:bold;background-color: #b0c4de\"><span class=\"fn org\">Therion</span></th>\n</tr><tr><td colspan=\"2\" style=\"text-align:center\"><a href=\"/wiki/File:2130860153_281d30b3bf_b.jpg\" class=\"image\"> ...
The domain of the mobile version of the site (which might or might not be the same as the normal domain) is available under the mobileserver
key of the general siteinfo information.
You may need to run npm install
and install php composer to get the precommit hook to run, depending on what you're doing with the extension.
See Extension:MobileFrontendContentProvider .
Using the mobile view[edit]On Wikimedia Foundation-run sites, we use Varnish caching servers to check the user agent of your device.
For non-WMF sites, you can either set up your configuration to mimic how things are done at the WMF (doing device detection at the proxy layer and setting specific X-Device headers), or you can simply use "?useformat=mobile" to switch an article to use the mobile view. See Extension:MobileFrontend/Configuring browser auto-detection .
Starting from the snapshot version 1.28, the default $wgMFMobileHeader was changed from X-WAP to X-Subdomain. You could either set $wgMFMobileHeader = 'X-WAP';
or modify your cache (Varnish) header setting, as long as they match.
To set up a mobile domain, add the following rule to .htaccess or httpd.conf
<IfModule mod_headers.c> <If "req('Host') =~ /^mobile./i"> RequestHeader set X-Subdomain "mobile" </If> </IfModule>
In your hosts file (assuming your desktop site is on localhost
):
127.0.0.1 mobile.localhost
In LocalSettings.php
:
wfLoadExtension('MobileFrontend'); $wgMFAutodetectMobileView = true; $wgMobileUrlCallback = fn( $domain ) => "mobile.$domain";
Now if you navigate to mobile.localhost you should see the mobile site.
The following questions frequently appear on our talk page. Please check this list before posting about them on the talk page or use the existing talk topic, if available, to receive clarifications.
Q: How do I detect the mobile site in frontend code?[edit]A: Ideally you shouldn't need to do this. It is preferable to use mw.config.get('skin')
or window.matchMedia('(max-width: 1119px)').matches
to detect a mobile user. You can also make use of the stable mw-mf
class which is present on the BODY element if the mobile site is active.
If your code makes modifications to content, you may need to update your code to consider MobileFrontend markup by inspecting the DOM for presence of certain elements.
Please note while mw.config.get( 'wgMFMode' )
exists and can be used by extensions as a last resort (for now) it should not be considered stable for use by gadgets.
A: This is tracked in phabricator but you can see Extension talk:MobileFrontend/2017#h-MODIFY THE MAIN MENU-2017-01-04T02:24:00.000Z for an interim solution.
Q: How do I add HTML to the Minerva skin, for example to add ads or additional script tags?[edit]A: You can do this by editing the template file for the skin (currently include/skins/minerva.mustache
). See this discussion for details.
A: It's likely the extension is old and needs to add compatibility to MobileFrontend. Please contact the developer of the extension and point them to ResourceLoader/Writing a MobileFrontend friendly ResourceLoader module. Please do not post to the talk page, as in this case it would be better to file a bug on Phabricator (you can login using your MediaWiki.org username) for a quicker response.
Q: I upgraded MobileFrontend and now I'm getting a fatal exception![edit]A: You are probably using incompatible versions of MobileFrontend and MediaWiki. In most cases, we can't help you here. Try upgrading MobileFrontend or MediaWiki to resolve your issue.
Q: After upgrading MediaWiki I'm getting an exception wgMFDefaultSkinClass is not setup correctly.[edit]A: MobileFrontend currently assumes you have the Minerva Neue skin installed. If you don't you'll need to install this or configure your mobile skin per instructions above.
For Extension Developers[edit]By default resource modules in extensions will not be loaded in mobile view.
Should a module need to be loaded while in mobile view this guide on writing MobileFrontend friendly modules will be of help.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4