Модуль:Wikidata/safety labelling
Модуль для вывода , пример — Ошибка Lua в Модуль:WD на строке 476: attempt to index field 'wikibase' (a nil value)..
Методы[править код]
formatNFPA704[править код]
Для форматирования классификации NFPA 704 при помощи шаблона {{NFPA 704}}.
Используются квалификаторы , , и на утверждении Ошибка Lua в Модуль:WD на строке 476: attempt to index field 'wikibase' (a nil value)..
formatGHSPictograms[править код]
Для форматирования пиктограмм опасности СГС при помощи шаблона {{Пиктограммы СГС}}.
Используется квалификатор на утверждении Ошибка Lua в Модуль:WD на строке 476: attempt to index field 'wikibase' (a nil value)..
formatGHSWord[править код]
Для вывода сигнального слова СГС — «опасно» или «осторожно».
Используется квалификатор на утверждении Ошибка Lua в Модуль:WD на строке 476: attempt to index field 'wikibase' (a nil value)..
formatGHSHStatements[править код]
Для форматирования кратких характеристик опасности по СГС при помощи шаблона {{H-фразы}}.
Используется квалификатор на утверждении Ошибка Lua в Модуль:WD на строке 476: attempt to index field 'wikibase' (a nil value)..
formatGHSPStatements[править код]
Для форматирования мер предосторожности по СГС при помощи шаблона {{P-фразы}}.
Используется квалификатор на утверждении Ошибка Lua в Модуль:WD на строке 476: attempt to index field 'wikibase' (a nil value)..
Замечания[править код]
- NFPA 704 без div'а разъезжается.
- Нужно переделать .datavalue.value.id на formatSnak.
local p = {}
function p.formatNFPA704( context, options, statement )
if (not context) then error('context is not specified') end;
if (not options) then error('options is not specified') end;
if (not statement) then error('statement is not specified') end;
if (not statement.qualifiers) then return '' end;
local qualifiers = {
P993 = 'опасность для здоровья',
P994 = 'огнеопасность',
P995 = 'реакционноспособность',
P877 = 'прочее'
}
local parameters = {}
options.somevalue = '?' -- TODO
options.novalue = '-'
for qualifier, parameter in pairs(qualifiers) do
if statement.qualifiers[qualifier] then
parameters[parameter] = context.formatSnak( options, statement.qualifiers[qualifier][1] )
end
end
return options.frame:expandTemplate{ title = 'NFPA 704', args = parameters };
end
function p.formatGHSPictograms( context, options, statement )
if (not context) then error('context is not specified') end;
if (not options) then error('options is not specified') end;
if (not statement) then error('statement is not specified') end;
local pictograms = {
Q51080746 = '01',
Q51791331 = '02',
Q51843300 = '03',
Q51843559 = '04',
Q51843949 = '05',
Q51843956 = '06',
Q51843962 = '07',
Q51843964 = '08',
Q51843973 = '09'
}
if statement.qualifiers and statement.qualifiers.P5040 then
local codes = {}
for _, snak in pairs(statement.qualifiers.P5040) do
if snak.datavalue then
table.insert(codes, pictograms[snak.datavalue.value.id] or '') -- TODO
end
end
return options.frame:expandTemplate{ title = 'Пиктограммы СГС', args = codes };
else
return ''
end
end
function p.formatGHSWord( context, options, statement )
if (not context) then error('context is not specified') end;
if (not options) then error('options is not specified') end;
if (not statement) then error('statement is not specified') end;
local words = {
Q15221217 = 'опасно',
Q15350847 = 'осторожно'
}
if statement.qualifiers and statement.qualifiers.P1033 and statement.qualifiers.P1033[1].datavalue then
return words[statement.qualifiers.P1033[1].datavalue.value.id] or '' -- TODO
else
return ''
end
end
function p.formatGHSHStatements( context, options, statement )
if (not context) then error('context is not specified') end;
if (not options) then error('options is not specified') end;
if (not statement) then error('statement is not specified') end;
if statement.qualifiers and statement.qualifiers.P5041 then
local hPhrases = {}
for _, snak in pairs(statement.qualifiers.P5041) do
if snak.datavalue then
table.insert(hPhrases, mw.wikibase.label(snak.datavalue.value.id)) -- TODO
end
end
return options.frame:expandTemplate{ title = 'H-фразы', args = hPhrases };
else
return ''
end
end
function p.formatGHSPStatements( context, options, statement )
if (not context) then error('context is not specified') end;
if (not options) then error('options is not specified') end;
if (not statement) then error('statement is not specified') end;
if statement.qualifiers and statement.qualifiers.P5042 then
local pPhrases = {}
for _, snak in pairs(statement.qualifiers.P5042) do
if snak.datavalue then
table.insert(pPhrases, mw.wikibase.label(snak.datavalue.value.id)) -- TODO
end
end
return options.frame:expandTemplate{ title = 'P-фразы', args = pPhrases };
else
return ''
end
end
return p