Module:Favilink: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
(refactor) |
||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
local htmlparse = require'Module:HTMLParse' | local htmlparse = require'Module:HTMLParse' | ||
local colorparse = require'Module:ColorParse' | local colorparse = require'Module:ColorParse' | ||
Line 18: | Line 17: | ||
if frame.args ~= nil and frame.args ~= '' then | if frame.args ~= nil and frame.args ~= '' then | ||
if frame.args[1] ~= nil and frame.args[1] ~= '' then | |||
name = mw.text.trim(frame:preprocess(frame.args[1])) | |||
modifier = mw.text.trim(frame:preprocess(frame.args[2])) | |||
else | |||
error "There is no argument specified! [[Category:pages with favilink errors]]" | |||
end | |||
end | end | ||
Line 31: | Line 30: | ||
function p.modulefavilink(name, searchtype, modifier) | function p.modulefavilink(name, searchtype, modifier) | ||
searchtype = searchtype or 'PlainName' | |||
modifier = modifier or '' | |||
if name ~= nil and name ~= '' then | |||
return main(name, searchtype, modifier) | |||
else | |||
error "There is no argument specified! [[Category:pages with favilink errors]]" | |||
end | |||
end | end | ||
function main(name, searchtype, modifier) | function main(name, searchtype, modifier) | ||
local displayname_tooltip_override = false | local displayname_tooltip_override = false | ||
if searchtype == '_pageName' then | if searchtype == '_pageName' then | ||
name = name:gsub("'", "'") | |||
end | end | ||
local result = util.favilink(name, searchtype) | local result = util.favilink(name, searchtype) | ||
if result ~= nil then | if result ~= nil then | ||
name = result['PlainName'] | |||
else | else | ||
return '[[' .. name.. ']](favilink error!)[[Category:pages with favilink errors]]' | |||
end | end | ||
local pagelink = result['Page'] or name | local pagelink = result['Page'] or name | ||
local displayname = result['DisplayName'] or name | local displayname = result['DisplayName'] or name | ||
local displayimg = result['Display'] | local displayimg = result['Display'] | ||
return p.format(pagelink, displayname, displayimg, modifier, displayname_tooltip_override) | |||
end | |||
function p.format(pagelink, displayname, displayimg, modifier, displayname_tooltip_override) | |||
--[Setting display name modifiers...] | |||
local display | |||
elseif modifier == 'possessive' then | if modifier == 'plural' then | ||
local displayresult = htmlparse.pluralize( {args= {html = displayname} }) | |||
display=displayresult | |||
elseif modifier == 'possessive' then | |||
local displayresult = htmlparse.make_possessive({ args = {html = displayname} }) | |||
display=displayresult | |||
elseif modifier == '' then | |||
display = displayname | |||
elseif modifier == 'displayname-tooltip-override' then | |||
display = displayname | |||
displayname_tooltip_override = true | |||
else | |||
display = colorparse.parse('&y'..modifier) | |||
end | |||
local img = displayimg | |||
if string.len(displayimg) > 4 then | |||
if string.sub(displayimg, -4) == '.png' then | |||
img = '[[File:' .. displayimg.. '|16px|link='..pagelink..']]' | |||
end | |||
end | |||
local spandisplay = displayname_tooltip_override == true and '<span title="'..name..'">'..display..'</span>' or display | |||
local | local qudimage = mw.html.create('span') | ||
qudimage | |||
:addClass('qud-image') | |||
:node(mw.html.create('span') | |||
:addClass('qud-image-link-image-container') | |||
:wikitext(img)) | |||
:node(mw.html.create('span') | |||
:addClass('qud-image-link') | |||
:css('color','#b1c9c3') | |||
:wikitext('[['..pagelink..'|' .. spandisplay .. ']]')) | |||
return tostring(qudimage) | |||
end | end | ||
function p.idfavilink(frame) | |||
return p.favilink(frame,'ObjectID') | |||
end | end | ||
function p. | function p.pagenamefavilink(frame) | ||
return p.favilink(frame,'_pageName') | |||
end | end | ||
function p. | function p.favilinkformat(frame) | ||
frame=mw.getCurrentFrame() | |||
return p.format(frame.args['pagelink'], | |||
frame.args['displayname'], | |||
frame.args['displayimg'], | |||
frame.args['modifier'], | |||
frame.args['displayname_tooltip_override']) | |||
end | end | ||
return p | return p |