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

帮助:管理映射方案

来自THBWiki
跳到导航 跳到搜索
本頁是THBWiki的編輯幫助文檔

映射表擴展是一個提供以SQL為基礎、高效映射表系統的Mediawiki插件。管理員(或擁有編輯受保護頁面權限的人)可以在特殊頁面管理映射方案中統一創建、修改及刪除映射表。
如果只是需要編輯映射表的內容,可以試試操作更加便捷的工具編輯映射方案。

安裝

  1. 你需要最新版本(1.8.4)的TableMapping.zip。
  2. 解壓到extensions目錄下。
  3. 在LocalSettings.php末尾加上require_once( "$IP/extensions/TableMapping/TableMapping.php" );。
  4. 由於此擴展需要創建兩個新的SQL數據表,所以必須更新數據庫,這樣兩個新表就會被自動創建。
  5. 安裝完成。

管理映射表

  • 有足夠權限的人進入管理映射方案後便會看到一個表單,可以選擇執行所有管理操作。
  • 其他人進入後則只會看到瀏覽已有映射方案的操作。

單個瀏覽

一般用戶只能夠瀏覽單個映射表,在方案名稱框裏輸入方案名稱,或用子頁的形式(例:特殊:管理映射方案/方案名)便可以瀏覽該映射表,不能進行任何操作。

創建

在創建/編輯映射方案下,方案名稱框裏輸入想要創建的方案名稱,然後點選創建。如果該方案已經存在請使用編輯,如果需要刪除請使用編輯所有映射方案。

在大框內輸入好映射表內容後便可以按確定,勾選刷新對應模板的話會自動刷新剛定義的對應模板。提交前可以更改需要創建的映射表名稱,提交後會進入編輯頁面,同樣可以更改映射表名稱。

如果需要創建/編輯另外一個映射表,請按安全返回重新開始。

編輯

同樣在創建/編輯映射方案下,方案名稱框裏輸入想要編輯的方案名稱,然後點選編輯。如果該方案不存在請使用創建,如果需要刪除請使用編輯所有映射方案。

在大框內會顯示目前映射表的內容,修改好映射表內容便可以按確定,亦可以更改映射表名稱,勾選刷新對應模板的話會自動刷新剛定義的對應模板及先前的對應模板(如果對應模板有更改的話)。

如果需要創建/編輯另外一個映射表,請按安全返回重新開始。

批量瀏覽/編輯/刪除

在瀏覽所有映射方案下,可以進行兩種操作:

  • 瀏覽所有映射方案,單純是單個瀏覽的疊加,不能進行任何操作。
  • 編輯所有映射方案,可以進行批量編輯及刪除操作,其中刪除只能夠在這裏進行。

並有其他選項可以讓操作變得更輕鬆:

  • 默認顯示狀態,可以選擇各個映射表框的初始狀態是展開還是摺疊,默認是展開。
  • 排序方式,可以選擇以按建立時間或按名稱排序映射表框,默認是按建立時間。
  • 按分類篩選,可以按定義映射表時設定的分類篩選映射表,默認是空(不篩選)。

進入瀏覽/編輯所有映射方案頁面後,可以按位於每個映射表框右上的[+/-]展開及摺疊映射表。

全部映射表默認處於不能編輯狀態,需要先勾選登記編輯才能編輯。只有勾選了登記編輯的映射表才會被修改,反勾登記編輯能讓系統無視該框裏面的任何修改。

勾選刷新對應模板會自動刷新剛定義的對應模板及先前的對應模板(如果對應模板有更改的話)。

勾選登記刪除能刪除該映射表,此選項凌駕其他選項,並會自動刷新已經定義的對應模板。

編輯滿意後便可以按確定,會跳轉至顯示各個編輯的信息及狀態的頁面,之後如果需要再進行其他操作的話請按安全返回重新開始。

轉換

在轉換已有模板下,模板名稱框裏輸入想要轉換的模板名稱,然後點選確認。如果與模板同名的方案已存在,將無法轉換。

此功能用於把已有模板內的switch解析器轉換為映射表,默認為同樣的名稱。轉換後會進入創建頁面,之後的操作與創建相同。被轉換的模板必須存在及包含switch解析器,不符合的模板並不能轉換。

此操作只會創建一個映射表,並不會改變模板的任何內容。

如果需要轉換另外一個模板,請按安全返回重新開始。

搜索/編輯映射對

在搜索/編輯映射對下,輸入想要搜索的鍵或(和)值,然後點選搜索。供使用的搜索模式有兩種,分別是部分相同和全部相同,可以按需要分別對鍵和值設定所需的模式:

  • 以部分相同搜索時會匹配所有含有搜索字串的項目。
  • 以全部相同搜索時會匹配所有等於搜索字串的項目。

亦可按分類篩選,只在屬於該分類的映射表內搜索,默認是空(不篩選)。

進入搜索/編輯映射對頁面後,會見到以映射表分組的多行映射對,可以按需要分別編輯,編輯滿意後便可以按位於最底下的確定。

提交更改前有幾個注意事項:

  • 清空鍵或值或把鍵設為純空格或純0會把該映射對刪除。
  • 如果更改後的鍵在該映射表內已經存在,更改將會失敗。
  • 鍵內的空格會被去除。

api

文檔:api文檔

沙盒:api沙盒

  • 注意:在沙盒中調試接口也會導致映射表被修改。
  • 出於安全等方面的考慮,沒有開發管理及刪除映射表的功能和批量功能。目前支持:瀏覽(browse),創建(create),編輯(edit),替換(replace)。
  • 權限不足則僅能調用瀏覽(browse)接口。

語法

映射表的定義語法十分簡單,是以行為單位定義每個映射對,換句話說每個映射對均以回車分割。要注意鍵並不區分前導零及大小寫,也不能為空、純空格或純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音樂名/日文,蓬萊人形音樂名/日文,蓮台野夜行音樂名/日文,夢違科學世紀音樂名/日文,卯酉東海道音樂名/日文,大空魔術音樂名/日文,未知之花音樂名/日文,鳥船遺蹟音樂名/日文,伊奘諾物質音樂名/日文,燕石博物志音樂名/日文,舊約酒館音樂名/日文,虹色的北斗七星音樂名/日文,七夕坂夢幻能音樂名/日文,靈長新益京音樂名/日文,秋霜玉音樂名/日文,稀翁玉音樂名/日文,幡紫龍音樂名/日文,8MPF音樂名/日文,Cradle音樂名/日文,ILE音樂名/日文,TLM音樂名/日文,幻想懷古曲音樂名/日文,幻想的音樂音樂名/日文,幻想麻雀音樂名/日文,神魔討綺傳音樂名/日文,黃昏酒場音樂名/日文,東方音焰火音樂名/日文