Module:Characters: Difference between revisions

m
no edit summary
No edit summary
mNo edit summary
(6 intermediate revisions by the same user not shown)
Line 7: Line 7:
orderBy = 'Characters.name_en ASC',
orderBy = 'Characters.name_en ASC',
}
}
if frame.args[1] == 'horsegirls' then
query.where = 'Characters.type="horsegirl" AND Characters.media IS NULL'
elseif frame.args[1] == 'other' then
query.where = 'NOT Characters.type="horsegirl" AND Characters.media IS NULL'
elseif frame.args[1] == 'cinderellagray' then
query.where = 'Characters.media="cinderellagray"'
elseif frame.args[1] == 'starblossom' then
query.where = 'Characters.media="starblossom"'
elseif frame.args[1] == 'anime' then
query.where = 'Characters.media="anime"'
end
local fields = {'_pageName','name_en','icon','color_main','color_sub'}
local fields = {'_pageName','name_en','icon','color_main','color_sub'}
local characters = cargo.query('Characters',
local characters = cargo.query('Characters',
table.concat(fields, ','), query)
table.concat(fields, ','), query)
local root = mw.html.create('div'):cssText('display:flex; flex-flow:row wrap;')
local root = mw.html.create('div'):cssText('display:flex; flex-flow:row wrap; gap: 10px;')
for _, ch in ipairs(characters) do
for _, ch in ipairs(characters) do
if (ch.icon) then
if ch.icon then
local template = frame:expandTemplate{
local template = frame:expandTemplate{
title='Character Icon',
title='Character Icon',
Line 24: Line 35:
}
}
}
}
root:wikitext(template)
root:wikitext(mw.text.trim(template))
end
end
end
end
Line 31: Line 42:


function p.profile(frame)
function p.profile(frame)
local pageName = frame.args[1]
local charName = frame.args[1]
if not charName then return end
local query = {
local query = {
limit = '1',
limit = '1',
where = 'name_en="' .. pageName .. '"',
where = 'name_en="' .. charName .. '"',
}
}
local fields = {'strengths','weaknesses','ears','tail','family',
local fields = {'strengths','weaknesses','ears','tail','family',
Line 43: Line 55:


local ch = characters[1]
local ch = characters[1]
if ch then
if not ch then return end
local template = frame:expandTemplate{
local template = frame:expandTemplate{
title='Character Profile/table',
title='Character Profile/table',
args={
args={
strengths=ch.strengths,
strengths=ch.strengths,
weaknesses=ch.weaknesses,
weaknesses=ch.weaknesses,
ears=ch.ears,
ears=ch.ears,
tail=ch.tail,
tail=ch.tail,
family=ch.family,
family=ch.family,
my_rule=ch.my_rule,
my_rule=ch.my_rule,
phone_background=ch.phone_background,
phone_background=ch.phone_background,
before_a_race=ch.before_a_race,
before_a_race=ch.before_a_race,
good_subject=ch.good_subject,
good_subject=ch.good_subject,
secret_pride=ch.secret_pride,
secret_pride=ch.secret_pride,
frequent_purchase=ch.frequent_purchase,
frequent_purchase=ch.frequent_purchase,
secret1=ch.secret1,
secret1=ch.secret1,
secret2=ch.secret2,
secret2=ch.secret2,
}
}
}
return template
}
end
return template
return frame.args[1]
end
end


return p
return p