匿名
未登录
创建账号
登录
istudylinux
搜索
查看“命名空间”的源代码
来自istudylinux
命名空间
页面
讨论
更多
更多
页面操作
阅读
查看源代码
历史
←
命名空间
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
<div style="float:right;margin:0 0 1em 1em;position:fixed;top:150px;right:10px;">__TOC__</div> '''命名空间(Namespace)'''是一组目的近似的页面组合<ref name="MW手册命名空间">[https://www.mediawiki.org/wiki/Manual:Namespace/zh MW手册:命名空间]</ref>。 == 概述 == 在以Mediawiki软件为基础的网站上,你会时常看到 * '''[[特殊:版本]]''' * '''文件:MediaWiki-2020-logo.png''' * '''[[模板:首页]]''' 等样式的页面标题。 以上就是以'''命名空间前缀''','''冒号'''分割,然后加上'''页面标题'''。主命名空间(main namespace)不需要前缀。<ref name="MW手册命名空间" /> 如果你在网站搜索页面点击高级,你可以看到当前你网站的一些内建命名空间前缀有哪些,如果你没有[[命名空间#自定义命名空间|自定义命名空间]],该页面呈现的就是当前'''可搜索'''(可配置可不可搜索)的命名空间。<ref name="MW手册命名空间" /> == 内建命名空间 == MediaWiki拥有18个内建的命名空间: * 16个“真实”命名空间(real namespace),代表实际存在的页面,编号为0到15,每个主题页面都有对应的讨论命名空间; * 2个“虚拟”命名空间(virtual namespace),一个是动态生成的[[特殊:特殊页面|特殊页面]],另一个用作外部文件的快捷方式,编号分别为-1和-2。因为它们并不是表示数据库中存储的实际页面,所以不可以在这两个命名空间中创建或者删除页面,它们也没有相关联的讨论命名空间。<ref name="MW手册命名空间" /> * 下面的中文名称可从安装目录下的<code>languages/messages/MessagesZh.php</code>里面查看到 {| class="wikitable" |+ 内建命名空间 |- ! 索引 !! 英文名称 !! 中文名称 !! 常量<ref>[https://www.mediawiki.org/wiki/Manual:Namespace_constants 命名空间常量列表]</ref> !! 用途 |- | 0 || (Main) ||(主)|| NS_MAIN || “真实”条目内容 |- | 1 || Talk || 讨论 || NS_MAIN_TALK || 主命名空间讨论页 |- | 2 || User || 用户 || NS_USER || 用户页 |- | 3 || User talk || 用户讨论 || NS_USER_TALK || 用户讨论页 |- | 4 || Project || $1 || NS_PROJECT || 关于该wiki的信息 |- | 5 || Project talk || $1讨论 || NS_PROJECT_TALK || 关于该wiki的信息讨论 |- | 6 || File|| 文件 || NS_FILE || 媒体描述页面 |- | 7 || File talk|| 文件讨论 || NS_FILE_TALK || 媒体描述页讨论 |- | 8 || MediaWiki || MediaWiki || NS_MEDIAWIKI || 网站界面定制 |- | 9 || MediaWiki talk || MediaWiki讨论 || NS_MEDIAWIKI_TALK || 网站界面定制讨论 |- | 10 || Template|| 模板 || NS_TEMPLATE || 模板页面 |- | 11 || Template talk || 模板讨论 || NS_TEMPLATE_TALK || 模板页讨论页 |- | 12 || Help|| 帮助 || NS_HELP || 帮助页面 |- | 13 || Help talk || 帮助讨论 || NS_HELP_TALK || 帮助页讨论 |- | 14 || Category|| 分类 || NS_CATEGORY || 分类描述页面 |- | 15 || Category talk || 分类讨论 || NS_CATEGORY_TALK || 分类描述页讨论 |- | colspan='5'| |- | -1 || Special|| 特殊 || || 保留特殊页面 |- | -2 || Media|| 媒体文件 || || 直接链接到媒体文件的别名 |} 从上面的表可以看出: * 除了索引为负数的两个特殊前缀,其余的都带有自己的讨论页 * 0,2,4,6等'''主要命名空间'''都是偶数,讨论页都是奇数 * 常量(PHP代码里面使用)都是以'''''NS_英文名称''''',而讨论页则直接在后面加'''''NS_英文名称_TALK''''' * 索引为4,5中的project为你当前网站的名称,在LocalSettings.php里就是下面代码。你网站最下面的关于xxxx就是该命名空间下的页面,[https://www.mediawiki.org/wiki/Manual:$wgMetaNamespace/zh $wgMetaNamespace]<ref>https://www.mediawiki.org/wiki/Manual:$wgMetaNamespace/zh</ref>可以为任意值,等号后面需要使用单引号。 <pre> $wgSitename = "istudylinux"; $wgMetaNamespace = 'Istudylinux'; </pre> == 自定义命名空间 == 参考文章<ref name='自定义命名空间'>https://www.mediawiki.org/wiki/Manual:Using_custom_namespaces/zh</ref>。 === 作用,好处 === * 不希望有的内容出现在搜索框 * 可以配置内容权限,比如仅将该命名空间给注册用户编写,见[[命名空间#设置权限]] * 扩展开发需要<ref>https://www.mediawiki.org/wiki/Manual:Using_custom_namespaces/zh#为什么要自定义命名空间</ref> === 配置 === '''''注意事项:''''' * 在软件安装后就及时添加 * 尽量使用下划线连接(_),不要使用空格 * 主命名是偶数,然后讨论加1,不要是3000,然后3003 * 3000到4999<ref name='自定义命名空间' />是留给网站维护者进行命名空间使用,请遵守该规则 * 本文以<code>NS_SITE</code>和<code>NS_SITE_TALK</code>为例 <pre lang="php" line="true" highlight=""> # 旁白:为我添加的命名空间定义常量。 define("NS_SITE", 3000); # 旁白:这必须是偶数 define("NS_SITE_TALK", 3001); # 旁白:这必须是下一个奇整数 # 旁白:添加命名空间。 $wgExtraNamespaces[NS_SITE] = "网站"; $wgExtraNamespaces[NS_SITE_TALK] = "网站讨论"; //旁白:请注意命名空间名称中的下划线 </pre> 添加上面的代码就可以在搜索框看到对应的命名空间了,下面的是一些Plus功能。 === 添加别名 === <pre lang="php" line="true" highlight=""> # 旁白:添加别名,通常是多语言使用,注意下划线;别名可以随便取无所谓,只要懂意思 $wgNamespaceAliases['Site'] = NS_SITE; $wgNamespaceAliases['Site_talk'] = NS_SITE_TALK; # 旁白:添加许多别名,多的可以使用数组方式 $wgNamespaceAliases = [ 'Site' => NS_SITE, 'MySite' => NS_SITE, 'Site_talk' => NS_SITE_TALK, 'MySite_talk' => NS_SITE_TALK ]; </pre> * 假如有个页面<code>网站:谷歌</code>,<code>Site:谷歌</code>和<code>MySite:谷歌</code>最后都自动跳转到<code>网站:谷歌</code>这个页面 * 该方式也可以重命名命名空间,只不过最后显示的仍旧是你前面<code>$wgExtraNamespaces</code>定义的名称 === 重命名 === 如果不满意'''网站'''这个命名空间名称,可更改,只要保留ID号(3000,30001)和常量NS_SITE<ref name='自定义命名空间' /> <pre lang="php" line="true" highlight=""> # 旁白:为我添加的命名空间定义常量。 define("NS_SITE", 3000); # 旁白:这必须是偶数 define("NS_SITE_TALK", 3001); # 旁白:这必须是下一个奇整数 # 旁白:重命名 命名空间。 # $wgExtraNamespaces[NS_SITE] = "网站"; # 删掉或者注释掉 $wgExtraNamespaces[NS_SITE] = "小网站"; </pre> === 设置权限 === <pre lang="php" line="true" highlight=""> $wgNamespaceProtection[NS_SITE] = array( 'editSite' ); // permission "editfoo" required to edit the foo namespace $wgGroupPermissions['user']['editSite'] = true; # 仅用户组的成员可编辑该命名空间下的内容 </pre> === 其他常用的配置 === 参考页面<ref>https://www.mediawiki.org/wiki/Manual:$wgNamespacesWithSubpages</ref><ref>https://www.mediawiki.org/wiki/Manual:$wgNamespacesToBeSearchedDefault</ref> <pre lang="php" line="true" highlight=""> # 允许创建子页面,默认false $wgNamespacesWithSubpages[NS_SITE] = true; </pre> === 命名空间设置样式 === 在[[Mediawiki:common.css]]里面添加对应的CSS样式代(需要前端功力):<ref name='自定义命名空间' /> <pre lang="php" line="true" highlight=""> .ns-3000 #content, .ns-3001 #content { background-color: #f3f3ff; } .ns-3000 div.thumb, .ns-3001 div.thumb { border-color: #f3f3ff; } </pre> === 处理存在的页面 === [https://www.mediawiki.org/wiki/Manual:Using_custom_namespaces/zh#处理已存在的页面 参考官网] === 一些已经被使用的索引 === 该[https://www.mediawiki.org/wiki/Extension_default_namespaces 链接]<ref group="resource_link">[https://www.mediawiki.org/wiki/Extension_default_namespaces 命名空间索引号大全]</ref>包含MW内建的18个命名空间索引号,还有其他的已经被extensions所占用的索引号,为了防止冲突,在开发扩展或者自定义命名空间时,先检查一下。 == 资料 == <references group="resource_link" /> <references /> [[Category:入门]]
返回至“
命名空间
”。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
Wiki工具
Wiki工具
特殊页面
页面值
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志