Módulo:BibRules
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:BibRules/doc
local p = {}
function p.BibRules( frame )
-- Define o alvo
local target = frame:getParent().args[1]
if target == '' or target == nil then
target = mw.uri.decode( frame:callParserFunction( '#urlget', 'fullpagename' ) )
end
if target == '' or target == nil then
target = mw.title.getCurrentTitle().prefixedText
end
if not mw.smw then
return "mw.smw module not found"
end
local test, info, queryResult
local infos = {}
if frame:expandTemplate{ title = 'Exist', args = { '245' } } ~= '' then
-- Record status
test = frame:expandTemplate{ title = 'Field data string', args = { '000', '5', '1', property = 'Leader' } } or false
if test == 'n' then
info = "* Segundo o Líder, este é um registro '''novo''' (não um alterado ou revisado, expandido, excluído, etc.)."
table.insert(infos, info)
elseif test == 'c' then
info = "* Segundo o Líder, este é um registro '''alterado ou revisado''' (não um novo, expandido, excluído, etc.)."
table.insert(infos, info)
elseif test == 'a' or test == 'd' or test == 'p' then
info = "* Segundo o Líder, este é um registro '''expandido''' ou '''excluído''' (não novo)."
table.insert(infos, info)
end
-- Type of record
test = frame:expandTemplate{ title = 'Field data string', args = { '000', '6', '1', property = 'Leader' } } or false
if test == 'a' then
info = "* Segundo o Líder, este registro descreve um '''material textual'''."
table.insert(infos, info)
end
-- Bibliographic level
test = frame:expandTemplate{ title = 'Field data string', args = { '000', '7', '1', property = 'Leader' } } or false
if test == 'm' then
info = "* Segundo o Líder, este registro descreve um '''item monográfico''' (não parte de um item, não um item seriado, não uma coleção, etc.)."
table.insert(infos, info)
end
-- Encoding level
test = frame:expandTemplate{ title = 'Field data string', args = { '000', '17', '1', property = 'Leader' } } or false
if test == '1' then
info = "* Segundo o Líder, este registro tem um nível '''completo''' de catalogação (mas o material não foi examinado)."
table.insert(infos, info)
else
info = "* Segundo o Líder, este registro tem um nível '''completo''' de catalogação (a descrição foi realizada com o material em mãos)."
table.insert(infos, info)
end
-- Descriptive cataloging form
test = frame:expandTemplate{ title = 'Field data string', args = { '000', '18', '1', property = 'Leader' } } or false
if test == 'a' then
info = "* Segundo o Líder, este registro possui uma catalogação '''compatível com as regras do AACR 2'''."
table.insert(infos, info)
else
info = "* Segundo o Líder, este registro possui uma catalogação '''não compatível com as regras da ISBD'''."
table.insert(infos, info)
end
-- Explica a sintaxe "(Biblioteca)NúmeroDeControle"
local f001 = frame:expandTemplate{ title = 'Field data string', args = { '001', '0', '', property = 'Control field data' } }
info = '* Internamente, este registro é identificado pelo código "' .. f001 .. '"; para sistemas externos, o código é "(' .. frame:expandTemplate{ title = 'Field data string', args = { '003', '0', '', property = 'Control field data' } } .. ')' .. f001 .. '".'
table.insert(infos, info)
-- Campo 005
queryResult = mw.smw.ask( '[[' .. target .. ']]|?Creation date#-F[l, d \\d\\e F \\d\\e Y]|headers=hide|mainlabel=-' )
local creationDate = ""
if type( queryResult ) == "table" then
for num, row in pairs( queryResult ) do
creationDate = row[1]['Modification date']
end
end
queryResult = mw.smw.ask( '[[' .. target .. ']]|?Modification date#-F[l, d \\d\\e F \\d\\e Y]|headers=hide|mainlabel=-' )
local modificationDate = ""
if type( queryResult ) == "table" then
for num, row in pairs( queryResult ) do
for property, data in pairs( row ) do
modificationDate = data
end
end
end
info = "* O registro foi criado em: " .. creationDate .. ". Sua última transação foi em: " .. modificationDate .. "."
table.insert(infos, info)
end -- end if 245
return table.concat( infos, '\n' )
end
return p