Jump to content
切換選單
切換偏好設定選單
切換個人選單
尚未登入
如果您進行編輯,系統將會為您建立一個臨時帳戶。

模組:Infobox/Adapter/創作者/doc

出自幻跡百科

此頁面為 模組:Infobox/Adapter/創作者 的說明文件


創作者 Adapter

這是創作者資料與通用 Infobox renderer 之間的轉接層。

目前資料流:

創作者正式模板參數
+
自訂資訊 subobject
+
平台帳號 subobject
+
EntitySchema
+
Infobox Schema
        ↓
normalized Infobox model
        ↓
模組:Infobox

目前負責的事情

本 Adapter:

  • 載入 模組:Infobox/Schema/創作者
  • 建立代表圖片 presentation
  • 將作品形式多值參數轉成普通 Infobox row
  • 查詢 page-local 自訂資訊
  • 查詢平台帳號
  • 建立 collection / section
  • 將 normalized model 交給 模組:Infobox

作品形式

作品形式是 Creator 的正式 Entity field。

資料來源為:

{{創作者
 |作品形式=漫畫;2D動畫;遊戲
}}

Template 同時:

  1. 將值寫入 屬性:作品形式。
  2. 將原始 template parameter 傳給 Adapter。

Adapter 不需要再從 SMW 查詢同一筆正式欄位。

它會將分號分隔的值轉成:

漫畫、2D動畫、遊戲

並建立:

type = row
label = 作品形式
value = 漫畫、2D動畫、遊戲

如果值不存在,就不建立 row。

自訂資訊

自訂資訊來源為:

查詢後使用:

呈現。

排序依:

自訂欄位順序
自訂欄位標籤

自訂資訊屬於 optional collection。

當目前頁面沒有任何自訂欄位時,query 使用空的 default,因此不產生 SMW 的「沒有結果」文字。

平台帳號

平台帳號來自 模板:平台帳號 建立的 subobject。

查詢依:

帳號順序
帳號平台

排序。

平台帳號 query 同樣使用空的 default,因此不存在資料時不輸出「沒有結果」文字。

Query isolation

同一 Creator page 可以存在不同種類的 subobject:

平台帳號
自訂欄位

所以 query 除了:

[[-Has subobject::頁面]]

還會要求對應的識別 Property:

[[帳號平台::+]]

或:

[[自訂欄位標籤::+]]

避免不同 subobject 類型互相污染。

Deferred query

平台帳號和自訂資訊使用:

正式 Creator template parameters,例如代表圖片與作品形式,不需要經由 deferred SMW query 再讀回。

責任邊界

Adapter 知道:

  • Creator 如何取得資料
  • Creator 如何轉成 generic Infobox model

Renderer 不知道:

  • 作品形式是什麼
  • 帳號平台是什麼
  • 自訂欄位是什麼
  • Creator EntitySchema 的領域規則

這些領域知識都應停留在 Adapter / Schema 層。