• 欢迎来到THBWiki!如果您是第一次来到这里,请点击右上角注册一个帐户
  • 有任何意见、建议、求助、反馈都可以在 讨论板 提出
  • THBWiki以专业性和准确性为目标,如果你发现了任何确定的错误或疏漏,可在登录后直接进行改正

帮助:管理映射方案

来自THBWiki
跳转至: 导航搜索

映射表扩展是一个提供以SQL为基础、高效映射表系统的Mediawiki插件。管理员(或拥有编辑受保护页面权限的人)可以在特殊页面管理映射方案中统一创建、修改及删除映射表。

安装

  1. 你需要最新版本(1.6.1)的TableMapping.zip
  2. 解压到extensions目录下。
  3. LocalSettings.php末尾加上require_once( "$IP/extensions/TableMapping/TableMapping.php" );
  4. 由于此扩展需要创建两个新的SQL数据表,所以必须更新数据库,这样两个新表就会被自动创建。
  5. 安装完成。

管理映射表

  • 有足够权限的人进入管理映射方案后便会看到一个表单,可以选择执行所有管理操作。
  • 其他人进入后则只会看到浏览已有映射方案的操作。

单个浏览

一般用户只能够浏览单个映射表,在方案名稱框里输入方案名称,或用子页的形式(例:特殊:管理映射方案/方案名)便可以浏览该映射表,不能进行任何操作。

创建

创建/编辑映射方案下,方案名稱框里输入想要创建的方案名称,然后点选创建。如果该方案已经存在请使用编辑,如果需要删除请使用编辑所有映射方案

在大框内输入好映射表内容后便可以按确定,勾选刷新对应模板的话会自动刷新刚定义的对应模板。提交前可以更改需要创建的映射表名称,提交后会进入编辑页面,同样可以更改映射表名称。

如果需要创建/编辑另外一个映射表,请按安全返回重新开始。

编辑

同样在创建/编辑映射方案下,方案名稱框里输入想要编辑的方案名称,然后点选编辑。如果该方案不存在请使用创建,如果需要删除请使用编辑所有映射方案

在大框内会显示目前映射表的内容,修改好映射表内容便可以按确定,亦可以更改映射表名称,勾选刷新对应模板的话会自动刷新刚定义的对应模板及先前的对应模板(如果对应模板有更改的话)。

如果需要创建/编辑另外一个映射表,请按安全返回重新开始。

批量浏览/编辑/删除

浏览所有映射方案下,可以进行两种操作:

  • 浏览所有映射方案,单纯是单个浏览的叠加,不能进行任何操作。
  • 编辑所有映射方案,可以进行批量编辑删除操作,其中删除只能够在这里进行。

并有其他选项可以让操作变得更轻松:

  • 默认显示状态,可以选择各个映射表框的初始状态是展开还是折叠,默认是展开。
  • 排序方式,可以选择以按建立时间按名称排序映射表框,默认是按建立时间。
  • 按分类筛选,可以按定义映射表时设定的分类筛选映射表,默认是空(不筛选)。

进入浏览/编辑所有映射方案页面后,可以按位于每个映射表框右上的[+/-]展开及折叠映射表。

全部映射表默认处于不能编辑状态,需要先勾选登记编辑才能编辑。只有勾选了登记编辑的映射表才会被修改,反勾登记编辑能让系统无视该框里面的任何修改。

勾选刷新对应模板会自动刷新刚定义的对应模板及先前的对应模板(如果对应模板有更改的话)。

勾选登记删除能删除该映射表,此选项凌驾其他选项,并会自动刷新已经定义的对应模板

编辑满意后便可以按确定,会跳转至显示各个编辑的信息及状态的页面,之后如果需要再进行其他操作的话请按安全返回重新开始。

转换

转换已有模板下,模板名稱框里输入想要转换的模板名称,然后点选确认。如果与模板同名的方案已存在,将无法转换。

此功能用于把已有模板内的switch解析器转换为映射表,默认为同样的名称。转换后会进入创建页面,之后的操作与创建相同。被转换的模板必须存在及包含switch解析器,不符合的模板并不能转换。

此操作只会创建一个映射表,并不会改变模板的任何内容。

如果需要转换另外一个模板,请按安全返回重新开始。

搜索/编辑映射对

搜索/编辑映射对下,输入想要搜索的或(和),然后点选搜索。供使用的搜索模式有两种,分别是部分相同全部相同,可以按需要分别对设定所需的模式:

  • 部分相同搜索时会匹配所有含有搜索字串的项目。
  • 全部相同搜索时会匹配所有等于搜索字串的项目。

亦可按分类筛选,只在属于该分类的映射表内搜索,默认是空(不筛选)。

进入搜索/编辑映射对页面后,会见到以映射表分组的多行映射对,可以按需要分别编辑,编辑满意后便可以按位于最底下的确定。

提交更改前有几个注意事项:

  • 清空或把设为纯空格或纯0会把该映射对删除
  • 如果更改后的在该映射表内已经存在,更改将会失败
  • 内的空格会被去除。

语法

映射表的定义语法十分简单,是以为单位定义每个映射对,换句话说每个映射对均以回车分割。要注意并不区分前导零及大小写,也不能为空、纯空格或纯0。

  • 基本一对一定义语法,“ ”:
1 地霊達の起床
2 暗闇の風穴
3 封じられた妖怪 ~ Lost Place
4 渡る者の途絶えた橋
  • 多对一定义语法,“键1|键2|键n ”:
1|T 地霊達の起床
2|1-1 暗闇の風穴
3|1-2 封じられた妖怪 ~ Lost Place
4|2-1 渡る者の途絶えた橋

由于以上语法,不能含有空格和竖杠。并没有一对多和多对多的语法。

处理定义一般的映射对,还可以用特定定义有特殊意义的映射属性,比如:

  • !AUT,定义自动获取列表的WIKI语法,定义后每隔一定时间(由!LAP定义)或被编辑时会自动解析运算此句WIKI语法,把得到的结果用回车(\n)分割,配以递增数字为,自动生成映射表。每次更新时会把映射属性以外的所有映射对清除,替换以新的映射对
  • !CAT,定义映射表所属分类,浏览所有映射方案中的按分类筛选功能会用到。
  • !DEF,定义当在映射表找不到请求的键所对应的值时,会返回的默认值,会被语法分析器所定义的默认值覆盖。
  • !EXP,定义当前自动获取列表过期日的时间戳,请勿编辑。
  • !INH,定义映射表的父映射表,定义后该映射表会具有其父映射表的全部映射对,如有相同的父映射表会被覆盖。与!JOI!REV一起一共可以嵌套10层,处理级别最高,处理级别高的嵌套满10层后其之下的嵌套将不会被执行。
  • !JOI,定义映射表的连结映射表,定义后该映射表会具有其连结映射表的全部,而那些则会变成,把当作输入目前映射表的返回。与!DEF!REV一起一共可以嵌套10层,处理级别最低。
  • !LAP,定义自动获取列表的更新间隔,应设定为以秒为单位的纯数字,例如86400就是每一天更新一次,不设定时默认为86400(并不构成映射对,getmap时不会显示)。
  • !REV,定义映射表的反映射表,定义后该映射表会具有其反映射表的全部映射对,只是相反了。之后如有相同的,反映射表会被覆盖。以此方法定义的将可以含有空格和竖杠,只有纯空格或纯0的会被去掉。反映射表可以是自己,注意反转后的将会是全部大写的,与!INH!JOI一起一共可以嵌套10层。
  • !SOR,定义映射表的排序键,定义后可在浏览或编辑多个映射表时让系统根据排序键的值按自然顺序排列。
  • !TEM,定义映射表的对应模板,勾选刷新对应模板时会刷新该模板,以刷新所有含有该映射表(模板)的页面。

几个映射表定义范例:

  • 以下范例将定义分类为“音乐名日文”,对应模板为“大战争音乐名/日文”,默认返回值为“缺少参数”,内容为大战争日文音乐名的映射表:
方案名称:大战争音乐名日文
!CAT 音乐名日文
!DEF 缺少参数
!TEM 大战争音乐名/日文
1|T 春の氷精
2 可愛い大戦争のリフレーン
3 いたずらに命をかけて
4 年中夢中の好奇心
5 真夜中のフェアリーダンス
6 妖精大戦争 ~ Fairy Wars
7 ルーズレイン
8 メイガスナイト
9|E 春の氷精 - 静 -
10|P プレイヤーズスコア
  • 以下范例将定义一个含有“大战争音乐名中文”键值反转版的映射表:
方案名称:大战争音乐名编号2
!CAT 音乐名编号
!REV 大战争音乐名中文
  • 以下范例将定义一个含有“大战争音乐名编号2”和“大战争音乐名日文”键值反转版的映射表,也就是“大战争音乐名中文”和“大战争音乐名日文”各自反转后的合并:
方案名称:大战争音乐名编号
!CAT 音乐名编号
!DEF 缺少参数
!INH 大战争音乐名编号2
!TEM 大战争音乐名/编号
!REV 大战争音乐名日文

调用映射表

此插件提供两种调用方法,分别是#getmap和#getmaparray。

getmap

直接获取指定映射表方案下指定的对应值,不区分前导零及大小写。如果找不到该将返回自定默认值、映射表的!DEF值或空字串,前者覆盖后者。

格式
{{#getmap: 映射表方案名称 | 键 | 自定默认值 }}
例子
{{#getmap:大战争音乐名日文|T}} → 春の氷精
{{#getmap:大战争音乐名日文|11}} → 缺少参数
{{#getmap:大战争音乐名日文|11|无}} → 无
{{#getmap:大战争音乐名日文|!cat}} → 音乐名日文

getmaparray

获取指定映射表方案下的所有(key)、(value)或映射对(pair),按自然顺序排列。

格式
{{#getmaparray: 映射表方案名称 | 分隔符(默认为回车) | 要求(可用值为key和pair,其他值均理解为value) }}
例子
{{#getmaparray:大战争音乐名日文|,}}音乐名,缺少参数,大战争音乐名,春の氷精,可愛い大戦争のリフレーン,いたずらに命をかけて,年中夢中の好奇心,真夜中のフェアリーダンス,妖精大戦争 ~ Fairy Wars,ルーズレイン,メイガスナイト,春の氷精 - 静 -,プレイヤーズスコア,春の氷精 - 静 -,プレイヤーズスコア,春の氷精
{{#getmaparray:大战争音乐名日文|,|key}}!CAT,!DEF,!TEM,1,2,3,4,5,6,7,8,9,10,E,P,T
{{#getmaparray:大战争音乐名日文|\n|key}}!CAT !DEF !TEM 1 2 3 4 5 6 7 8 9 10 E P T(空格实为回车)
{{#getmaparray:大战争音乐名日文|<br />|pair}}!CAT 音乐名
!DEF 缺少参数
!TEM 大战争音乐名
1 春の氷精
2 可愛い大戦争のリフレーン
3 いたずらに命をかけて
4 年中夢中の好奇心
5 真夜中のフェアリーダンス
6 妖精大戦争 ~ Fairy Wars
7 ルーズレイン
8 メイガスナイト
9 春の氷精 - 静 -
10 プレイヤーズスコア
E 春の氷精 - 静 -
P プレイヤーズスコア
T 春の氷精

getmapname

获取指定分类下的映射表名称列表,分类名称为空时会获取所有映射表。可以通过填写排序方式根据创建时间(id)、映射表名称(name)或!SOR(sort)属性来排序,不填写则不排序。

格式
{{#getmapname: 映射表分类名称 | 排序方式(id、name或sort,默认为空) | 分隔符(默认为回车) }}
例子
{{#getmapname:音乐名日文|sort|,}} → 灵异传音乐名/日文,封魔录音乐名/日文,梦时空音乐名/日文,幻想乡音乐名/日文,怪绮谈音乐名/日文,红魔乡音乐名/日文,妖妖梦音乐名/日文,萃梦想音乐名/日文,永夜抄音乐名/日文,花映塚音乐名/日文,文花帖音乐名/日文,风神录音乐名/日文,绯想天音乐名/日文,地灵殿音乐名/日文,星莲船音乐名/日文,非想天则音乐名/日文,文花帖DS音乐名/日文,大战争音乐名/日文,神灵庙音乐名/日文,心绮楼音乐名/日文,辉针城音乐名/日文,天邪鬼音乐名/日文,深秘录音乐名/日文,绀珠传音乐名/日文,凭依华音乐名/日文,天空璋音乐名/日文,GoM音乐名/日文,三月精E音乐名/日文,三月精O音乐名/日文,三月精S音乐名/日文,儚月抄音乐名/日文,外来韦编音乐名/日文,文花帖(书籍)音乐名/日文,求闻史纪音乐名/日文,铃奈庵音乐名/日文,幺乐团1音乐名/日文,幺乐团2音乐名/日文,幺乐团3音乐名/日文,幺乐团4音乐名/日文,幺乐团5音乐名/日文,蓬莱人形音乐名/日文,莲台野夜行音乐名/日文,梦违科学世纪音乐名/日文,卯酉东海道音乐名/日文,大空魔术音乐名/日文,未知之花音乐名/日文,鸟船遗迹音乐名/日文,伊奘诺物质音乐名/日文,燕石博物志音乐名/日文,旧约酒吧音乐名/日文,秋霜玉音乐名/日文,稀翁玉音乐名/日文,幡紫龙音乐名/日文,Cradle音乐名/日文,TLM音乐名/日文,幻想怀古曲音乐名/日文,幻想的音乐音乐名/日文,幻想麻雀音乐名/日文,神魔讨绮传音乐名/日文,黄昏酒场音乐名/日文