יחידה:תבנית מידע: הבדלים בין גרסאות בדף
מאין תקציר עריכה |
מ 20 גרסאות של הדף wikipedia:he:יחידה:תבנית_מידע יובאו |
||
| (42 גרסאות ביניים של 8 משתמשים אינן מוצגות) | |||
| שורה 22: | שורה 22: | ||
for k,v in pairs(self.templateParams) do | for k,v in pairs(self.templateParams) do | ||
if mw.ustring.match( k, '-ויקינתונים') then | if mw.ustring.match( k, '-ויקינתונים') then | ||
templateDocumentation = templateDocumentation .. '[[קטגוריה:תבניות שמשתמשות בוויקינתונים]]' | templateDocumentation = templateDocumentation .. '[[קטגוריה:תבניות מידע שמשתמשות בוויקינתונים]]' | ||
break | break | ||
end | end | ||
| שורה 222: | שורה 222: | ||
function Infobox:removeEmptyHeaders() | function Infobox:removeEmptyHeaders() | ||
local lastHeaderIndex=nil | local lastHeaderIndex=nil | ||
local | |||
local hasImage = (self.args.image~=nil and #self.args.image>0) | |||
hasImage = hasImage or (self.args.rightImage~=nil and #self.args.rightImage>0) | |||
hasImage = hasImage or (self.args.leftImage~=nil and #self.args.leftImage>0) | |||
local removeFirstHeader = nil | |||
if self.args.removeFirstHeader~=nil then | |||
removeFirstHeader = (not hasImage) and self.args.removeFirstHeader -- remove the first header if there are no images & the first header is generic | |||
else | |||
removeFirstHeader = (not hasImage)-- default, remove the first header if there are no images | |||
end | |||
local tempTemplateStructure = {} | local tempTemplateStructure = {} | ||
for i,v in pairs(self.templateStructure) do | for i,v in pairs(self.templateStructure) do | ||
| שורה 232: | שורה 242: | ||
if lastHeaderIndex then | if lastHeaderIndex then | ||
if not removeFirstHeader then | if not removeFirstHeader then | ||
table.insert(tempTemplateStructure, self.templateStructure[lastHeaderIndex]) | -- skip headers that are only spaces/nowiki - marking structure seperation | ||
local headerData =mw.text.unstripNoWiki( self.templateStructure[lastHeaderIndex].data ) | |||
local headerDataNoSpace = mw.ustring.gsub(headerData, "%s", "") | |||
if #headerDataNoSpace >0 then | |||
table.insert(tempTemplateStructure, self.templateStructure[lastHeaderIndex]) | |||
end | |||
end | end | ||
lastHeaderIndex = nil | lastHeaderIndex = nil | ||
| שורה 319: | שורה 334: | ||
else | else | ||
valueArg = '[[File:' .. valueArg .. imgSuffix | valueArg = '[[File:' .. valueArg .. imgSuffix | ||
end | |||
elseif args.imgDesc~=nil and #args.imgDesc>0 and not mw.ustring.match(args.imgDesc, '%[%[קטגוריה:ערכים להחלפת תמונה בחופשית%]%]$') then | |||
if mw.ustring.match(valueArg, '^ *%[%[[Ff]ile:') or | |||
mw.ustring.match(valueArg, '^ *%[%[[Ii]mage:') or | |||
mw.ustring.match(valueArg, '^ *%[%[קובץ:') or | |||
mw.ustring.match(valueArg, '^ *%[%[תמונה:') then | |||
valueArg = mw.ustring.gsub(valueArg, "%]%]$", "") | |||
mw.log(args.imgDesc) | |||
local imgSuffix = '|' .. args.imgDesc .. ']]' | |||
valueArg = valueArg .. imgSuffix | |||
end | end | ||
end | end | ||
| שורה 405: | שורה 430: | ||
if templateParams[missingParam..'-ויקינתונים-פרטים']~=nil then | if templateParams[missingParam..'-ויקינתונים-פרטים']~=nil then | ||
wikidataOptions['qualifiers'] = { templateParams[missingParam..'-ויקינתונים-פרטים'] | wikidataOptions['qualifiers'] = {} | ||
wikidataOptions['qualifiers-sep'] = templateParams[missingParam..'-ויקינתונים-פרטים-הפרדה'] or nil | |||
for v in string.gmatch(templateParams[missingParam..'-ויקינתונים-פרטים'], "[^,%s]+") do | |||
table.insert(wikidataOptions['qualifiers'], v) | |||
end | |||
end | end | ||
if templateParams[missingParam..'-ויקינתונים-תמונה-גודל']~=nil then | if templateParams[missingParam..'-ויקינתונים-תמונה-גודל']~=nil then | ||
| שורה 426: | שורה 455: | ||
wikidataOptions['allowMulti'] = true | wikidataOptions['allowMulti'] = true | ||
wikidataOptions['seperator'] = templateParams[missingParam..'-ויקינתונים-מרובה-הפרדה'] | wikidataOptions['seperator'] = templateParams[missingParam..'-ויקינתונים-מרובה-הפרדה'] | ||
wikidataOptions['sort'] = templateParams[missingParam..'-ויקינתונים-מרובה-מיון'] or nil | |||
paramsData = {} | |||
-- split multiple params to include all of them (e.g: "P1,P2") | |||
for paramToFetch in string.gmatch(templateParams[missingParam..'-ויקינתונים-מרובה'], '([^,]+)') do | |||
-- split optional params to include ONLY the first one of them (e.g: "P1/P2") | |||
for optionalParam in string.gmatch(paramToFetch, '([^/]+)') do | |||
if (string.sub(optionalParam, 1, 1) == 'P' or string.sub(optionalParam, 1, 1) == 'Q') then | |||
if getPropertyByOptions(optionalParam, entityId, wikidataOptions) then | |||
table.insert(paramsData, getPropertyByOptions(optionalParam, entityId, wikidataOptions) or nil) | |||
-- found one of the optionals - stop the loop | |||
break | |||
end | |||
else | |||
-- one of the optionals is static data - take it and stop the loop | |||
table.insert(paramsData, optionalParam) | |||
break | |||
end | |||
end | |||
end | |||
templateArg.data = table.concat(paramsData, wikidataOptions['seperator']) | |||
inWikidata = templateArg.data and #(templateArg.data)>0 | inWikidata = templateArg.data and #(templateArg.data)>0 | ||
elseif templateParams[missingParam..'-ויקינתונים-פשוט'] then | elseif templateParams[missingParam..'-ויקינתונים-פשוט'] then | ||
| שורה 444: | שורה 492: | ||
if inWikidata then | if inWikidata then | ||
local defaultZoom = templateParams['מפה-זום'] | local defaultZoom = templateParams['מפה-זום'] | ||
templateArg.data = frame:expandTemplate{ title = 'מפה דינמית', args = { | templateArg.data = frame:expandTemplate{ title = 'מפה דינמית', args = { | ||
['יישור'] = 'center', | ['יישור'] = 'center', | ||
['זום ברירת מחדל'] = defaultZoom | ['זום ברירת מחדל'] = defaultZoom, | ||
['פריטים'] = entityId | |||
} } | } } | ||
end | end | ||
| שורה 475: | שורה 523: | ||
if templateParams[missingParam..'-ויקינתונים'] then | if templateParams[missingParam..'-ויקינתונים'] then | ||
propertyName = templateParams[missingParam..'-ויקינתונים'] | propertyName = templateParams[missingParam..'-ויקינתונים'] | ||
matching = WikidataCrossValidation.crossValidate(templateArg, propertyName) | matching = WikidataCrossValidation.crossValidate(templateArg, propertyName, entityId) | ||
elseif templateParams[missingParam..'-ויקינתונים-פשוט'] then | elseif templateParams[missingParam..'-ויקינתונים-פשוט'] then | ||
propertyName = templateParams[missingParam..'-ויקינתונים-פשוט'] | propertyName = templateParams[missingParam..'-ויקינתונים-פשוט'] | ||
matching = WikidataCrossValidation.crossValidate(templateArg, propertyName) | matching = WikidataCrossValidation.crossValidate(templateArg, propertyName, entityId) | ||
elseif templateParams[missingParam..'-ויקינתונים-מרובה'] then | elseif templateParams[missingParam..'-ויקינתונים-מרובה'] then | ||
local genderAware = templateParams[missingParam..'-ויקינתונים-מגדר'] == 'כן' | local genderAware = templateParams[missingParam..'-ויקינתונים-מגדר'] == 'כן' | ||
propertyName = templateParams[missingParam..'-ויקינתונים-מרובה'] | propertyName = templateParams[missingParam..'-ויקינתונים-מרובה'] | ||
matching = WikidataCrossValidation.crossValidate(templateArg, propertyName) | matching = WikidataCrossValidation.crossValidate(templateArg, propertyName, entityId) | ||
end | end | ||
| שורה 561: | שורה 609: | ||
args.leftImageDesc = templateParams['כיתוב שמאל'] | args.leftImageDesc = templateParams['כיתוב שמאל'] | ||
args.imageDesc = templateParams['כיתוב'] | args.imageDesc = templateParams['כיתוב'] | ||
args.image = getValueOrWikidataImage{ | if templateParams['תמונה ללא שאיבה אוטומטית'] == 'כן' then | ||
valueArg=templateParams['תמונה'], | args.image = getValueOrWikidataImage{ | ||
valueArg=templateParams['תמונה'], | |||
wikidataArg=templateParams['תמונה-ויקינתונים'], | |||
width=templateParams['תמונה-גודל'] or '220', | |||
args=args | imgDesc=args.imageDesc, | ||
args=args | |||
} | |||
else | |||
args.image = getValueOrWikidataImage{ | |||
valueArg=templateParams['תמונה'], | |||
wikidataArg=templateParams['תמונה-ויקינתונים'] or 'P18', | |||
width=templateParams['תמונה-גודל'] or '220', | |||
imgDesc=args.imageDesc, | |||
args=args | |||
} | |||
end | |||
args.removeFirstHeader = false-- default based on vote on 18/7/21 | |||
-- explictly override the default | |||
if templateParams['כותרת כללית'] == 'כן' then | |||
args.removeFirstHeader = true | |||
elseif templateParams['כותרת כללית'] == 'לא' then | |||
args.removeFirstHeader = false | |||
end | |||
args.headerclass = templateParams['כותרת-מחלקה'] | args.headerclass = templateParams['כותרת-מחלקה'] | ||
args.headerstyle = templateParams['כותרת-עיצוב'] | args.headerstyle = templateParams['כותרת-עיצוב'] | ||
| שורה 576: | שורה 643: | ||
args.tableclass = templateArgs['טבלה-מחלקה'] or templateParams['טבלה-מחלקה'] | args.tableclass = templateArgs['טבלה-מחלקה'] or templateParams['טבלה-מחלקה'] | ||
local pageNs = mw.title.getCurrentTitle().namespace | local pageNs = mw.title.getCurrentTitle().namespace | ||
local isSelfUse = (pageNs==10) | local subpageText = mw.title.getCurrentTitle().subpageText | ||
local isSelfUse = (pageNs==10 and subpageText ~= "תיעוד") | |||
self.autoDocumentation = templateParams['תיעוד-אוטומטי'] | self.autoDocumentation = templateParams['תיעוד-אוטומטי'] | ||
| שורה 603: | שורה 671: | ||
local dataTemplate = templateParams[dataPrefix..i] | local dataTemplate = templateParams[dataPrefix..i] | ||
if dataTemplate then | if dataTemplate then | ||
-- if parameter contains only category with no value, replace with with nil and add | -- if parameter contains only category with no value, replace with with nil and add the value to maintaince category | ||
local hasData, maintainceCats = splitMaintainceCategory(dataTemplate) | local hasData, maintainceCats = splitMaintainceCategory(dataTemplate) | ||
if maintainceCats and not hasData then | if maintainceCats and not hasData then | ||
| שורה 664: | שורה 732: | ||
table.insert(entriesToRemove, 1, k) | table.insert(entriesToRemove, 1, k) | ||
else | else | ||
-- otherwise if the template isn't full - try to use wikidata to fill it | -- otherwise if the template isn't full or if there is a Wikidata-beats tag - them try to use wikidata to fill it | ||
local m = mw.ustring.match(v.data, '\{\{\{(.-)\}\}\}') | local m = mw.ustring.match(v.data, '\{\{\{(.-)\}\}\}') | ||
if not m and v.label and templateParams[v.label..'-ויקינתונים-גובר']~=nil then | |||
m = templateParams[v.label..'-ויקינתונים-גובר'] | |||
end | |||
if m then | if m then | ||
m = mw.uri.decode( m ) -- some templates may add encoding and are preprocessed before | m = mw.uri.decode( m ) -- some templates may add encoding and are preprocessed before | ||