モジュール:RelatedContent

提供:エンタメデータベースWiki
移動先:案内検索

このモジュールについての説明文ページを モジュール:RelatedContent/doc に作成できます

local p = {}

function p.showRelated(frame)
    local series = frame.args[1]
    if not series then return "" end
    
    -- すべてのシリーズの条件を結合するための配列
    local conditions = {}
    
    -- 各シリーズの条件を作成
    for value in series:gmatch("[^,]+") do
        value = value:match("^%s*(.-)%s*$")
        table.insert(conditions, "[[シリーズ::" .. value .. "]]")
    end
    
    -- OR条件で結合したクエリを作成
    local query = '{{#ask: ' ..
        table.concat(conditions, " OR ") ..
        '|?#=1' ..  -- ページ名
        '|?画像=2' ..  -- 画像
        '|?名前=3' ..  -- 名前
        '|?ラベル#=-4' ..  -- ラベル
        '|?大カテゴリ#=-5' ..  -- 大カテゴリ
        '|format=template' ..
        '|template=テンプレート:アニメ(シーズン用)' ..
        '|limit=500' ..
        '}}'
    
    -- クエリ結果をグリッドで囲む
    local result = '<div class="pk-grid">\n' ..
        frame:preprocess(query) ..
        '</div>'
    
    return result
end

return p