Extension:MobileFrontend/zh

Category:GPL licensed extensions/zh
MobileFrontend
Category:Stable extensions/zh
Category:User interface extensions/zh, Category:Hook extensions/zh
描述
Category:Pages using deprecated NoteTA template#%20提供对移动端友好的视图
作者
最新版本 2.4.1
快照跟随MediaWiki发布。
MediaWiki 1.33+[1]Category:Extensions with manual MediaWiki version
PHP 5.5.9+
GNU通用公眾授權條款2.0或更新版本
下載 Category:Extensions in Wikimedia version control/zh
README
m.mediawiki.org
  • $wgMFSearchGenerator
  • $wgMFStopRedirectCookieHost
  • $wgMFShowMobileViewToTablets
  • $wgMFLazyLoadImages
  • $wgMFRSSFeedLink
  • $wgMFNamespacesWithLeadParagraphs
  • $wgMFAmcOutreachMinEditCount
  • $wgMFEnableMobilePreferences
  • $wgMFMobileFormatterOptions
  • $wgMFRemovableClasses
  • $wgMFNoindexPages
  • $wgMFShowFirstParagraphBeforeInfobox
  • $wgMFEnableVEWikitextEditor
  • $wgMFVaryOnUA
  • $wgMFLogWrappedInfoboxes
  • $wgMFDisplayWikibaseDescriptions
  • $wgMFEnableJSConsoleRecruitment
  • $wgMobileFrontendFormatCookieExpiry
  • $wgMFLazyLoadSkipSmallImages
  • $wgMFSearchAPIParams
  • $wgMFMobileHeader
  • $wgMFCustomSiteModules
  • $wgMFEnableXAnalyticsLogging
  • $wgMFAutodetectMobileView
  • $wgMFSiteStylesRenderBlocking
  • $wgDefaultMobileSkin
  • $wgMFUseDesktopSpecialEditWatchlistPage
  • $wgMFEnableFontChanger
  • $wgMFScriptPath
  • $wgMFEditNoticesConflictingGadgetName
  • $wgMFAdvancedMobileContributions
  • $wgMFFallbackEditor
  • $wgMFStopMobileRedirectCookieSecureValue
  • $wgMFSpecialPageTaglines
  • $wgMFQueryPropModules
  • $wgMFNamespacesWithoutCollapsibleSections
  • $wgMFBetaFeedbackLink
  • $wgMFDefaultEditor
  • $wgMFAmcOutreach
  • $wgMFManifestBackgroundColor
  • $wgMFManifestThemeColor
  • $wgMFEnableManifest
  • $wgMFEnableWikidataDescriptions
  • $wgMFUseWikibase
  • $wgMFTrackBlockNotices
  • $wgMFEnableBeta
  • $wgMobileUrlCallback
季度下載量 538 (Ranked 3rd)
正在使用的公开wiki数 9,025 (Ranked 14th)
前往translatewiki.net翻譯MobileFrontend
問題 开启的任务 ·
Category:All extensions/zh

移动前端(MobileFrontend)的扩展有助于提升MediaWiki实例在移动端的表现。

功能包括:

  • 为您的移动端流量创建一个单独的移动网站,
    • 系统管理员可以提供一个不同的皮肤,例如:Minerva Neue
  • 提供各种内容转换,使你的内容更友好,
    • 部分折叠和内容明顯地重新排列和删除,包括将引言段落置于引导照片或信息框上方,即使引导段落在页面源代码中位于它们下方。
  • 简化移动端页尾并添加一个桌面/移动版网站链接。
  • 提供beta模式,其包含一个功能管理系统,用于为匿名用户添加实验性功能

本页是为了想要在开发端安装此扩展的用户撰写的。 如果你乐于帮助我们改进,我们欢迎您参与改进

先决条件

在安装移动前端之前,如果您大量使用了模板和/或行内样式(style属性),您需要检查您的内容是否对移动版友好。 TemplateStyles扩展可以用于给内容排版,以便让内容在移动版和桌面版都有较好的渲染效果。移动前端并不会自动为您修复这些内容!

尤其请注意,您可能需要检查您的首页。 請參閱首頁格式

安裝

  • 下载,并将解压后的MobileFrontend移动到extensions/目录中。
    开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend
  • 将下列放置在您的LocalSettings.php 的底部:
    wfLoadExtension( 'MobileFrontend' );
    
  • 如果必要,在您方便的时候配
  • Yes 完成 – 在您的wiki上Special:Version,以验证已成功安装


  • 如果使用Vagrant ,请vagrant roles enable mobilefrontend --provision安装

配置附近(Nearby)功能

移动前端提供了Special:Nearby页面,它帶有一点点配置。你需要做一些事情以使其生效:

  1. 由于浏览器的安全考慮,您需要在使用SSL的安全站点上运行--絕對无法通过HTTP请求用户的位置。
  2. 安装GeoData扩展
  3. 运行update.php
  4. LocalSettings.php中加入$wgMFNearby = true;
  5. 确定條目的坐标点:
    1. 使用coordinates解析器函数来向您的條目中加入位置数据,例如{{#coordinates:37.786971|-122.399677|primary}}。 关于语法细节,参见GeoData文档。
    2. 作为替代,您也可以为Nearby使用一个独立的MediaWiki安装,这需要在您的LocalSettings.php文件中设置$wgMFNearbyEndpoint。 例如,$wgMFNearbyEndpoint = 'https://en.m.wikipedia.org/w/api.php';会使用英文维基百科上條目的坐标。 附近的端点将用于查找与给定位置相关的内容。

设置皮肤

移动前端提供给您适合移动版格式的网站,这与已存在的桌面版网站可以共存。您可以任意设置其皮肤。

// 选择其中一个并在LocalSettings.php文件底部加入你选的代码:
wfLoadSkin( 'MinervaNeue' );
$wgDefaultMobileSkin = 'minerva'; // 使用Minerva皮肤 (对于1.37或更旧的版本,你需要单独下载并安装,否则你会得到异常)
wfLoadSkin( 'Vector' );
$wgDefaultMobileSkin = 'vector'; // 使用Vector皮肤
wfLoadSkin( 'Timeless' );
$wgDefaultMobileSkin = 'timeless'; // 使用Timeless皮肤

以下皮肤兼容於移动前端:

参见:

所有組態的選項的詳細資訊請參閱README.md檔案

额外调整

通过添加这些兼容的扩展的選項,最大限度地发挥移动前端的作用:

  • : - 获得Special:Nearby并地理位置標記你的條目。
  • : - 添加图像到搜索和nearby的结果。
  • Extension:VisualEditor - 添加可视化编辑到你的移动版体验。

CSS 样式

MediaWiki版本:
1.40

要为移动主题应用CSS,请编辑MediaWiki:Mobile.css,与MediaWiki:Common.css相对。 要让样式表生效,你需要将mw.loader.using('mobile.site.styles')添加到你的MediaWiki:Mobile.js

移动前端不会加载全局MediaWiki:Common.css,也不会加载任何用户样式表。

更多

如果您想在桌面浏览器上测试移动扩展,或者想让您的设备不呈现移动版本,您可以将以下键值对附加到URL查询字符串:?useformat=mobile。例如:https://en.wikipedia.org/wiki/MediaWiki?useformat=mobile

如果您想查看页面的移动版本而不在整个站点上启用扩展,您也可以将字符串附加到该页面上的URL。

移动前端的过时功能

传统上,移动前端是个非常大的扩展。许多功能要么超过其要求,要么在未来某个日期实现。下面列出了这些。

API

移动前端扩展提供了API,但长期来看我们会弃用,以支持页面内容服务。 使用这些API需要承担风险。 这些API可能会消失(尽管那时我们会充分通知您)!

扩充 action=parse

action=parse可接受额外的参数:

mobileformat=
以移动格式返回渲染页面的HTML1.23+
mainpage
套用移动主页的转换。

示例:

结果
{
    "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\">
            ...

meta=siteinfo

网站移动版的網域(可能与普通網域相同也可能不同)可在一般sinteinfo信息的 mobileserver键中获得。

对于开发者/系统管理员

你可能需要运行npm install并安装php composer以使得预提交的钩子得以运行,这取决于你对扩展的操作。

使用外语wiki上的條目进行测试(实时数据)

参见Extension:MobileFrontendContentProvider

使用移动外观

基金会网站

在维基媒体基金会运营的网站,我们使用Varnish缓存服务器来检查您设备的用户代理。

非基金会网站

对于非维基媒体基金会的网站,你可以设置你的配置来模仿维基媒体基金会的工作方式(在代理层进行设备检测并设置特定的X-设备的標头信息),或者你可以简单地使用「?useformat=mobile」来切换條目以使用移动视图。 See 扩展:移动前端/配置浏览器自动检测.

从快照版本1.28开始,默认的$wgMFMobileHeader从X-WAP被改为X-Subdomain。 你可以设置$wgMFMobileHeader = 'X-WAP';或者修改你的缓存(Varnish)標头的设置,二選一,只要它们匹配即可。

使用Apache (.htaccess或httpd.conf)

若要設定行動網域,請在 .htaccess 或 http.config 中加入下列規則

<IfModule mod_headers.c>
<If "req('Host') =~ /^mobile./i">
RequestHeader set X-Subdomain "mobile"
</If>
</IfModule>

在您的hosts檔案中 (假設您的桌面網站在 localhost 上):

127.0.0.1  mobile.localhost

LocalSettings.php中:

wfLoadExtension('MobileFrontend');

$wgMFAutodetectMobileView = true;
$wgMobileUrlCallback = fn( $domain ) => "mobile.$domain";

現在,如果您瀏覽 mobile.localhost,您應該會看到行動網站。

常见问题

以下问题经常出现在讨论页。 在您提出新话题前,请检查以下列表或检查已有的话题(如果存在的话),以答疑解惑。

Q:我应该如何自定义Minerva皮肤的主菜单?

A:这在phabricator上有追蹤,但您可以在Extension talk:MobileFrontend/2017#h-MODIFY THE MAIN MENU-2017-01-04T02:24:00.000Z找到過渡期間的解决方案。

Q:我应该如何在Minerva皮肤中加入HTML,例如添加广告或额外的script标签?

A:您可以通过编辑皮肤的模板文件来达到此目的(目前位于include/skins/minerva.mustache)。参见此讨论以获取更多细节。

Q:我是用的扩展似乎不对移动前端生效,为什么?

A:有可能扩展太旧了,需要加入对移动前端的兼容。 请联系该扩展的开发者,并将他们指向ResourceLoader/编写一个移动前端友好的ResourceLoader模块。 请不要在讨论页上发帖,因为在这种情况下,最好在Phabricator上提交一个错误(你可以用你在MediaWiki.org的用户名登录),以获得更快的回应。

Q:我升级了移动前端的扩展,然后遇上致命的异常!

A:可能你用的是不兼容的移动扩展和MediaWiki版本。 一般在这种情况,我们爱莫能助。 尝试升级移动前端或者MediaWiki来解决问题。

Q:升级MediaWiki后,遇上异常:wgMFDefaultSkinClass设置不正确。

A:当下移动前端假定你有安装了Minerva Neue皮肤。 如果没有,你就需要安装這個,或者按照上面的指引来配置你的移动版皮肤。

对于扩展开发者

默认情况下,扩展中的资源模块将不会在移动视图中加载。

如果一个模块需要在移动版页面中载入,这份关于撰写对移动前端友好的模块的指南很有帮助。

参见

参考资料

  1. Fatal error: Uncaught ExtensionDependencyError: MobileFrontend is not compatible with the current MediaWiki core (version 1.32.2), it requires: >= 1.33.0.
Category:Extensions used on Wikimedia/zh#MobileFrontend/zh Category:MobileFrontend/zh#%20
Category:APIGetAllowedParams extensions/zh Category:APIQuerySiteInfoGeneralInfo extensions/zh Category:AbuseFilter-builder extensions/zh Category:AbuseFilter-generateUserVars extensions/zh Category:AfterBuildFeedLinks extensions/zh Category:All extensions/zh Category:ArticleParserOptions extensions/zh Category:AuthChangeFormFields extensions/zh Category:BeforeDisplayNoArticleText extensions/zh Category:BeforePageDisplay extensions/zh Category:BeforePageRedirect extensions/zh Category:CentralAuthLoginRedirectData extensions/zh Category:CentralAuthSilentLoginRedirect extensions/zh Category:ChangeTagsListActive extensions/zh Category:CustomEditor extensions/zh Category:Extensions in Wikimedia version control/zh Category:Extensions included in Canasta/zh Category:Extensions included in Fandom/zh Category:Extensions included in Miraheze/zh Category:Extensions included in MyWikis/zh Category:Extensions included in ShoutWiki/zh Category:Extensions included in Telepedia/zh Category:Extensions included in WikiForge/zh Category:Extensions used on Wikimedia/zh Category:Extensions with manual MediaWiki version Category:GPL licensed extensions/zh Category:GetCacheVaryCookies extensions/zh Category:GetPreferences extensions/zh Category:HTMLFileCache::useFileCache extensions/zh Category:Hook extensions/zh Category:ListDefinedTags extensions/zh Category:LoginFormValidErrorMessages extensions/zh Category:MakeGlobalVariablesScript extensions/zh Category:ManualLogEntryBeforePublish extensions/zh Category:MediaWikiPerformAction extensions/zh Category:MobileFrontend/zh Category:OutputPageBeforeHTML extensions/zh Category:OutputPageBodyAttributes extensions/zh Category:OutputPageParserOutput extensions/zh Category:Pages using deprecated NoteTA template Category:PostLoginRedirect extensions/zh Category:RecentChange save extensions/zh Category:RequestContextCreateSkin extensions/zh Category:ResourceLoaderSiteModulePages extensions/zh Category:ResourceLoaderSiteStylesModulePages extensions/zh Category:SkinAddFooterLinks extensions/zh Category:SkinAfterBottomScripts extensions/zh Category:SpecialPageBeforeExecute extensions/zh Category:SpecialPage initList extensions/zh Category:Stable extensions/zh Category:TitleSquidURLs extensions/zh Category:UserGetDefaultOptions extensions/zh Category:User interface extensions/zh