Module:GetWorks: Difference between revisions

From Rinchen Terdzö
((by SublimeText.Mediawiker))
((by SublimeText.Mediawiker))
Line 1: Line 1:
local p = {}
local p = {}


function p.main(frame)
function p.works(frame)
 
    if not mw.smw then
        return "Semantic Scribunto is not installed."
    end
 
local pArgs = frame:getParent().args
local pagename = mw.title.getCurrentTitle().text
 
    local qRes = mw.smw.ask( '[[-cycle::<q>[[Category:Tibetan Texts]][[sourcerevealer::' .. pagename .. ']]</q>]]|?#-=Page|limit=1008' )
 
    if qRes == nil then
        return "No results!"
    end
 
    local output = '<h3>' .. #qRes .. ' Cycles</h3><ol class="columns-2">'
 
if type( qRes ) == "table" then
        for k, data in ipairs( qRes ) do
        local cycleTrtnQr = mw.smw.ask ( '[[Category:' .. data.Page .. ']][[Category:Tibetan Texts]][[sourcerevealer::' .. pagename .. ']]' )
        local cycleTxtCntQr = mw.smw.ask ( '[[' .. pagename .. ']]|?Textcount' )
        local cycleTxtCnt = ''
        for k, data in ipairs( cycleTxtCntQr ) do
        cycleTxtCnt = data.Textcount
        end
            output = output .. '<li>[[' .. data.Page .. ']] (' .. cycleQr .. ' of ' .. cycleTxtCnt .. ' Texts)</li>'
        end
    end
 
    output = output .. '</ol>'
 
end
 
function p.works(frame)


     if not mw.smw then
     if not mw.smw then
Line 16: Line 49:
     end
     end


     local output = '<h2><span id="TotalCount">' .. #qRes .. '</span> Works in the Rinchen Terdzö</h2>'
     local output = '<h3><span id="TotalCount">' .. #qRes .. '</span> Works</h3>'
     local fltrInput = frame:callParserFunction{ name = '#widget', args = { 'filterInput' } }
     local fltrInput = frame:callParserFunction{ name = '#widget', args = { 'filterInput' } }
output = output .. '<div class="px-5 mb-4">' .. fltrInput .. '</div><div class="filterableContent">'
output = output .. '<div class="px-5 mb-4">' .. fltrInput .. '</div><div class="filterableContent">'

Revision as of 10:13, 9 April 2024

Documentation for this module may be created at Module:GetWorks/doc

local p = {}

function p.works(frame)

    if not mw.smw then
        return "Semantic Scribunto is not installed."
    end

	local pArgs = frame:getParent().args
	local pagename = mw.title.getCurrentTitle().text

    local qRes = mw.smw.ask( '[[-cycle::<q>[[Category:Tibetan Texts]][[sourcerevealer::' .. pagename .. ']]</q>]]|?#-=Page|limit=1008' )

    if qRes == nil then
        return "No results!"
    end	

    local output = '<h3>' .. #qRes .. ' Cycles</h3><ol class="columns-2">'

	if type( qRes ) == "table" then
        for k, data in ipairs( qRes ) do
        	local cycleTrtnQr = mw.smw.ask ( '[[Category:' .. data.Page .. ']][[Category:Tibetan Texts]][[sourcerevealer::' .. pagename .. ']]' )
        	local cycleTxtCntQr = mw.smw.ask ( '[[' .. pagename .. ']]|?Textcount' )
        	local cycleTxtCnt = ''
        	for k, data in ipairs( cycleTxtCntQr ) do
        		cycleTxtCnt = data.Textcount
        	end
            output = output .. '<li>[[' .. data.Page .. ']] (' .. cycleQr .. ' of ' .. cycleTxtCnt .. ' Texts)</li>'
        end
    end

    output = output .. '</ol>'

end

function p.works(frame)

    if not mw.smw then
        return "Semantic Scribunto is not installed."
    end

	local pArgs = frame:getParent().args
	local pagename = mw.title.getCurrentTitle().text

    local qRes = mw.smw.ask( '[[Category:Tibetan Texts]][[Category:' .. pagename .. ']]OR[[Category:Illustrations]][[Category:' .. pagename .. ']]|?#-=Page|?Fulltitletib|?Volumenumber|?Textnuminvol|?Fulltitle|limit=1008|link=none|sort=Volumenumber,Textnuminvol|order=asc,asc' )

    if qRes == nil then
        return "No results!"
    end

    local output = '<h3><span id="TotalCount">' .. #qRes .. '</span> Works</h3>'
    local fltrInput = frame:callParserFunction{ name = '#widget', args = { 'filterInput' } }
	output = output .. '<div class="px-5 mb-4">' .. fltrInput .. '</div><div class="filterableContent">'

	if type( qRes ) == "table" then
        for k, data in ipairs( qRes ) do
            output = output .. '<div class="filterable"><div class="d-inline-block float-left pt-2">Vol. ' .. data.Volumenumber .. ', Text ' .. data.Textnuminvol .. ': </div><div class="d-inline-block"><span style="font-size: 1.5em;">[[' .. data.Page .. '|' .. data.Fulltitletib .. ']]</span><div>' .. data.Fulltitle .. '</div></div></div>'
        end
    end

    output = output .. '</div>'

    return output

end

return p