LLWiki正在建设中,欢迎加入我们

“LLWiki:管理员技术手册”的版本间差异

跳转到导航 跳转到搜索
(使用页面/文本对比查看器快速编辑)
| wgNamespaceIds || 储存了所有可接受的中英文名字空间名称对应的编号,注意英文名称中的空格都显示为下划线 || 可用
|-
| wgScript || <code>/mediawiki/index.php</code>,在LLWiki也可简化为<code>/zh</code>,主要用于不同MediaWiki站点间的代码通用,非必需且不推荐使用 || 可用
|-
| wgAction || index.php的action参数<ref>[[mw:Manual:Parameters_to_index.php/zh|完整参数列表]]</ref> || 相比于桌面版,手机版由于添加了[[Special:历史]]而少了“history”这个可能值
| wgRevisionId || 当前显示的页面版本的编号,不存在时值为0。注意和index.php的oldid参数可能不同 || 由于[[special:移动版差异|{{int:diff}}]]页面不可同时显示历史页面,此时不可用
|-
| wgTitle || 不含名字空间的页面名称,下划线显示为空格 || 在[[special:历史|历史]]和[[special:移动版差异|{{int:diff}}]]页面不可用
|-
| wgUserEditCount || 当前用户的编辑次数 || 可用
| wgUserLanguage || 当前用户使用的界面语言 || 可用
|-
| wgUserName || 当前用户的用户名,下划线显示为空格 || 可用
|-
| wgUserRegistration || 当前用户的注册时间,显示为毫秒数;可以使用mw.user.getRegistration()方法替代,该方法会生成Date对象 || 可用
 
====mediawiki.Uri====
除了可以替代mw.util.getParamValue()方法用于获得URI的各项参数,mediawiki.Uri还可以方便地修改或生成URI。使用时首先需要应用<code lang="js">const uri = new mw.Uri(str, options);</code>语法来构建一个mw.Uri对象,强烈推荐在options中设置<code lang="js">{overrideKeys: true}</code>以免后续出现未预期的JS语法错误。
 
*uri.fragment,获得<code>#</code>后的章节名。
*uri.host,在LLWiki总是为<code lang="js">'llwiki.org'</code>。
*uri.path,在LLWiki的内容页面一般总是为<code lang="js">'/zh'</code>或<code lang="js">'/mediawiki/index.php'</code>(两者等效)。
*uri.protocol,在LLWiki总是为<code lang="js">'https'</code>。
*uri.query,包含了所有php参数的JS对象,在规定了<code lang="js">{overrideKeys: true}</code>时每个值都是字符串,否则重复参数的值为数组。
*uri.clone(),复制mw.Uri对象。
*<code lang="js">uri.extend({key: value})</code>,添加或覆盖php参数,这在URI以<code>#</code>结尾时非常方便。如果需要删除php参数的话,可以直接使用<code lang="js">delete uri.query.param</code>的语法。
*uri.getQueryString(),获得整个php请求字符串。
*uri.getRelativePath(),获得相对地址。
*uri.toString(),获得包含协议的绝对地址。
 
====mediawiki.Title====
彻底解决关于页面名称或文件名称的各种烦恼,包括大小写、空格/下划线、名字空间别名等等。通常用法为先使用<code lang="js">const title = new mw.Title(str);</code>的语法构建一个mw.Title对象。与mw.util的很多方法以及<code lang="js">new mw.Uri()</code>不同,<code lang="js">new mw.Title(str)</code>不会以当前页面作为默认参数。因为未统一大小写、空格/下划线等,请勿直接访问title.title属性,而是根据需要使用下列方法。
 
*title.getExtension(),获取文件名的扩展名。
*title.getFragment(),如果页面名称中含<code>#</code>,获取章节名。也可以直接使用title.fragment属性访问。
*title.getMain(),获取页面名,首字母大写,空格替换为下划线。
*title.getMainText(),获取页面名,首字母大写,下划线被替换为空格。
*title.getName(),获取文件名,不含扩展名,首字母大写,空格替换为下划线。
*title.getNameText(),获取文件名,不含扩展名,首字母大写,下划线替换为空格。
*title.getNamespaceId(),获取名字空间,能识别一切别名。也可以直接使用title.namespace属性访问。
*title.getNamespacePrefix(),获取标准名字空间前缀,含<code>:</code>。
*title.toString(),获取完整页面名称,名字空间使用标准前缀,不含<code>#</code>,空格替换为下划线。
*title.toText(),相比title.toString()方法,下划线替换为空格。
*<code>title.getRelativeText(nsid)</code>,相比title.toText()方法,会名字空间编号匹配时移除名字空间前缀。
*title.getSubjectPage(),生成讨论页对应的主页面的mw.Title对象。
*title.getTalkPage(),生成对应的讨论页的mw.Title对象。
*title.getUrl(),生成地址,可以添加JS对象格式的php参数。注意在LLWiki,mw.util.getUrl()方法和mw.Uri对象均可以获得脚本路径为<code lang="js">'/zh'</code>的短地址,而title.getUrl()方法只能获得脚本路径为<code lang="js">'/mediawiki/index.php'</code>的长地址,因此并不推荐使用这一方法。
*title.isTalkPage(),是否是讨论页。
 
此外,mediawiki.Title还有一些静态方法用于生成mw.Title对象。
*<code>mw.Title.makeTitle(nsid, title)</code>,给定名字空间编号和标题生成对象。不存在的名字空间会报错。仅当名字空间为0时,会根据标题生成正确的名字空间。
*<code>mw.Title.newFromFileName(filename)</code>,给定文件名生成对象。
*<code>mw.Title.newFromImg(node)</code>,给定<code lang="html"><img></code>节点或对应的jQuery对象生成mw.Title对象。
*<code>mw.Title.newFromText(title, nsid)</code>,相比mw.Title.makeTitle()方法,错误的名字空间编号也不会报错,且当标题含名字空间前缀时总是覆盖第二个名字空间参数。
 
====mediawiki.storage====
mediawiki.storage提供了处理localStorage或sessionStorage的便利方法。注意出于安全性的考虑,请勿使用localStorage存储用户的个人信息。mw.storage对象对应localStorage,mw.storage.session对象对应sessionStorage,这两个对象拥有相同的方法,所以以下只介绍mw.storage对象。
 
*mw.storage.get(),相当于localStorage.getItem()方法,所以使用价值不高。
*mw.storage.set(),相当于localStorage.setItem()方法,所以使用价值不高。
*mw.storage.remove(),相当于localStorage.removeItem()方法。
*mw.storage.getObject(),相当于<code lang="js">JSON.parse( localStorage.getItem(key) )</code>。
*mw.storage.setObject(),相当于<code lang="js">localStorage.setItem(key, JSON.stringify(value))</code>。
 
====user.options====
用于方便地获取用户设置。
 
====jquery.makeCollapsible====
====jquery.tablesorter====