模块:Phrases:修订间差异

来自「荏苒之境」
无编辑摘要
无编辑摘要
第13行: 第13行:
local args = frame.args
local args = frame.args
local table_name = escape_sql(args.table)
local table_name = escape_sql(args.table)
local theme = escape_sql(args.theme)
local theme = escape_sql(args[1])
local parent_frame = frame:getParent()
local parent_frame = frame:getParent()
第32行: 第32行:
local t = {"<ul>"}
local t = {"<ul>"}
for _, phrase in ipairs(parent_frame.args) do
for i, phrase in ipairs(parent_frame.args) do
cargo.store(table_name, {
if i ~= 1 then
Language = language,
cargo.store(table_name, {
Phrase = escape_sql(trim(phrase)),
Language = language,
Theme = theme
Phrase = escape_sql(trim(phrase)),
})
Theme = theme
t[#t+1] = "<li>"
})
t[#t+1] = frame:preprocess(phrase)
t[#t+1] = "<li>"
t[#t+1] = "</li>"
t[#t+1] = frame:preprocess(phrase)
t[#t+1] = "</li>"
end
end
end

2025年8月23日 (六) 19:56的版本

此模块的文档可以在模块:Phrases/doc创建

local translation = require("Module:Template translation")
local utils_str = require("Module:Utils/String")

local cargo = mw.ext.cargo
local escape_sql = utils_str.escape_sql
local trim = utils_str.trim

local PHRASE_THEMES_TABLE = "PhraseThemes"

local phrases = {}

phrases.show = function(frame)
	local args = frame.args
	local table_name = escape_sql(args.table)
	local theme = escape_sql(args[1])
	
	local parent_frame = frame:getParent()
	local language = translation.getCurrentLanguageSubpage()
	if language == nil or language == "" then
		language = "zh-cn"
	end
	
	local theme_query = cargo.query(PHRASE_THEMES_TABLE, "_ID", {
		where = "PhraseTable='"..table_name.."' AND Theme='"..theme.."'"
	})
	if #theme_query == 0 then
		cargo.store(PHRASE_THEMES_TABLE, {
			PhraseTable = table_name,
			Theme = theme
		})
	end
	
	local t = {"<ul>"}
	for i, phrase in ipairs(parent_frame.args) do
		if i ~= 1 then
			cargo.store(table_name, {
				Language = language,
				Phrase = escape_sql(trim(phrase)),
				Theme = theme
			})
			t[#t+1] = "<li>"
			t[#t+1] = frame:preprocess(phrase)
			t[#t+1] = "</li>"
		end
	end
	
	t[#t+1] = "</ul>"
	return table.concat(t)
end

return phrases