Módulo:BibRules: mudanças entre as edições

Ir para navegação Ir para pesquisar
imported>Jaideraf
Sem resumo de edição
imported>Jaideraf
Sem resumo de edição
info = "* O registro foi criado em: " .. accessPoint .. ". Sua última transação foi em: " .. modificationDate .. "."
table.insert(infos, info)
 
-- Campo 008
local invalidCode = "<strong class='error'>código inválido para o local de publicação</strong>"
local pubPlace_tbl =
{
["acb"] = "Acre",
["   "] = "<strong class='error'>é necessário informar um código de local de publicação, campo 008.</strong>",
}
 
local f008pubPlace = frame:expandTemplate{ title = 'Field data string', args = { '008', '15', '3', property = 'Control field data' } }
 
if string.match(f008pubPlace, '^[A-Z]') then
info = "* <strong class='error'>O uso de maiúsculas não é permitido no campo 008, local de publicação.</strong>"
end
table.insert(infos, info)
 
local invalidCode = "<strong class='error'>código inválido para o idioma, campo 008</strong>"
local lang_tbl =
{
["por"] = "português",
["   "] = "<strong class='error'>é necessário informar um código de idioma no campo 008.</strong>",
}
 
local f008lang = frame:expandTemplate{ title = 'Field data string', args = { '008', '35', '3', property = 'Control field data' } }
 
if string.match(f008lang, '^[A-Z]') then
info = "* <strong class='error'>O uso de maiúsculas não é permitido no campo 008, idioma.</strong>"
info = "* Majoritariamente, o item se expressa no seguinte idioma: " .. f008lang
end
 
-- se existe o campo 041, mostra "(traduzido do...)" na mesma linha do idioma presente no 008
test = frame:expandTemplate{ title = 'Exist', args = { '041' } } or false
if test ~= '' then
 
test = frame:expandTemplate{ title = 'Field data string', args = { '041', '0', '1' } } or false
 
if test == '1' then
invalidCode = "<strong class='error'>código inválido para o idioma do subcampo $h do campo 041</strong>"
local f041h = frame:expandTemplate{ title = 'Select', args = { '041', 'h' } }
f041h = lang_tbl[f041h] or f041h
 
info = info .. "&#32;(traduzido do " .. f041h .. ")."
end
end
table.insert(infos, info)
 
-- testa se existe(m) ISBN(s) inválido(s)
test = frame:expandTemplate{ title = 'Exist', args = { '020' } } or false
table.insert(infos, info)
end
 
-- testa se existe(m) hifen(s) ou x minúsculo no ISBN
queryResult = mw.smw.ask( '[[' .. target .. '#020]]|?Field data#|headers=hide|mainlabel=-' )
end
end
 
if string.match(f020, '-') then
info = "* <strong class='error'>O ISBN não pode conter hifens. Apenas números e \"X\" maiúsculo.</strong>"
end
--queryResult = mw.smw.ask( '[[' .. target .. '#100||' .. target .. '#110||' .. target .. '#111||' .. target .. '#130]]' )
local accessPointPresence = frame:callParserFunction{
name = '#ask:[[' .. target .. '#100||' .. target .. '#110||' .. target .. '#111||' .. target .. '#130]]', args = { '?Field data', format = 'count', mainlabel = '-' }
}
-- a seguir, testa se há subcampo $b e se há espaço no subcampo $c do campo 090
test = frame:expandTemplate{ title = 'Exist', args = { '090' } } or false
if test ~= '' then
if f100q ~= '' then
if not string.match(f100q, '^%(') then
info = "* <strong class='error'>O subcampo $q do campo 100 necessita de parênteses.</strong>"
table.insert(infos, info)
end
local f100d = frame:expandTemplate{ title = 'Select', args = { '100', 'd' } }
if f100d ~= '' then
if string.match(f100df100, '%$d %d%d%d%d$') then
info = "* <strong class='error'>O subcampo $d do campo 100 necessita hífen.</strong>"
table.insert(infos, info)
end
end
--[[
--]]
end
local f110existance = frame:expandTemplate{ title = 'Exist', args = { '110'} }
if f110existance ~= '' then
local f110 = frame:expandTemplate{ title = 'Field data string', args = { '110', '0', '0' } }
info = "* O ponto de acesso principal foi dado a uma '''entidade coletiva'''"
if f110:sub(1, 1) == "0" then
info = info .. " e a entrada começa por um '''nome invertido'''."
table.insert(infos, info)
elseif f110:sub(1, 1) == "1" then
info = info .. " e a entrada começa por um '''nome de jurisdição'''."
table.insert(infos, info)
elseif f110:sub(1, 1) == "2" then
info = info .. " e a entrada começa por um '''nome em ordem direta'''."
table.insert(infos, info)
elseif f110:sub(1, 1) == "#" then
info = info .. ", porém, <strong class='error'>o primeiro indicador não foi preenchido.</strong>"
table.insert(infos, info)
elseif f110:sub(1, 1) == "3" or f110:sub(1, 1) == "4" or f110:sub(1, 1) == "5" or f110:sub(1, 1) == "6" or f110:sub(1, 1) == "7" or f110:sub(1, 1) == "8" or f110:sub(1, 1) == "9" then
info = info .. ", porém, <strong class='error'>o primeiro indicador foi preenchido incorretamente.</strong>"
table.insert(infos, info)
end
if f110:sub(2, 2) ~= '#' then
info = "* <strong class='error'>O segundo indicador do campo 110 foi preenchido, porém, ele não deve ser preenchido.</strong>"
table.insert(infos, info)
end
end
--[[
--]]
 
end -- end if 245
return table.concat( infos, '\n' )