אונטערשייד צווישן ווערסיעס פון "יחידה:תבנית מידע"

ק
תיקון באג - כאשר תבנית משתמשת בqid מיישות שאינה הדף המקושר ההשוואה צריכה להיעשות עם היישות הנכונה
ק (rv)
 
ק (תיקון באג - כאשר תבנית משתמשת בqid מיישות שאינה הדף המקושר ההשוואה צריכה להיעשות עם היישות הנכונה)
שורה 1: שורה 1:
local propertyLink = require('Module:PropertyLink')
local propertyLink = require('Module:PropertyLink')
 
local WikidataCrossValidation = require('Module:WikidataCrossValidation')
local Infobox = {}
local Infobox = {}
function Infobox:new()
function Infobox:new()
שורה 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
שורה 63: שורה 63:
local  titleCaption = self.root
local  titleCaption = self.root
         :tag('caption')
         :tag('caption')
        :attr('dir', 'auto')
             :addClass(self.args.titleclass)
             :addClass(self.args.titleclass)
             :cssText(self.args.titlestyle)
             :cssText(self.args.titlestyle)
שורה 101: שורה 102:
row:tag('table')
row:tag('table')
:css('width','100%')
:css('width','100%')
:css('display','table')
:tag('tr')
:tag('tr')
:tag('td')
:tag('td')
שורה 138: שורה 140:


--[[  
--[[  
Adds edit links for easier editing of the template. If the template uses data from wikidata it also adds edit link in Wikidata
Adds edit links for easier editing of the template. If the template use data from wikidata it also adds edit link in Wikidata
]]
]]
function Infobox:renderEditLinks()
function Infobox:renderEditLinks()
local wbEdit='' -- link to wikidata
local wbEdit='' -- link to wikidata
if self.args.usingWikidata then
if self.args.usingWikidata then
wbEdit = '[[File:Wikidata-logo S.svg|22px|link=d:'..self.args.entityId..'|רעדאקטירן אין וויקידאטן וואס פארזארגט טייל פון דער אינפארמאציע אין דעם מוסטער]]'
wbEdit = '[[File:Wikidata-logo S.svg|22px|link=d:'..self.args.entityId..'|לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית]]'
wbEdit = wbEdit .. mw.ustring.format(' [[File:OOjs UI icon info big.svg|16px|link=%s]]', 'הילף:אינפאקעסטל')
wbEdit = wbEdit .. mw.ustring.format(' [[File:OOjs UI icon info big.svg|16px|link=%s]]', 'עזרה:תבנית מידע')
end
end
if #wbEdit > 0 then
if #wbEdit > 0 then
שורה 189: שורה 191:
                     :attr('scope', 'row')
                     :attr('scope', 'row')
                     :attr('id', rowArgs.labelid)
                     :attr('id', rowArgs.labelid)
                    :css('text-align', 'right')
                     :cssText(self.args.labelstyle)
                     :cssText(self.args.labelstyle)
                     :cssText(rowArgs.labelstyle)
                     :cssText(rowArgs.labelstyle)
שורה 217: שורה 218:


  --[[  
  --[[  
This function removes redundant keys from templateStructure: nil entries and header entries with no data
This function removes redundent keys from templateStructure: nil entries and header entries with no data
]]
]]
function Infobox:removeEmptyHeaders()
function Infobox:removeEmptyHeaders()
  local lastHeaderIndex=nil
  local lastHeaderIndex=nil
  local removeFirstHeader = (not self.args.image or #self.args.image==0) -- remove the first header if there is no image
 
  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
שורה 253: שורה 264:
errors = {}
errors = {}
local templateName = mw.ustring.gsub(templateTitle, 'מוסטער:', '', 1)
local templateName = mw.ustring.gsub(templateTitle, 'תבנית:', '', 1)
if mw.title.getCurrentTitle().namespace==0 then
if mw.title.getCurrentTitle().namespace==0 then
table.insert(errors, '[[קאטעגאריע:שגיאות פרמטריות בתבנית '..templateName..']]')
table.insert(errors, '[[קטגוריה:שגיאות פרמטריות בתבנית '..templateName..']]')
table.insert(errors, '[[קאטעגאריע:שגיאות פרמטריות בתבנית מידע]]')
table.insert(errors, '[[קטגוריה:שגיאות פרמטריות בתבנית מידע]]')
table.insert(errors, '[[קאטעגאריע:שגיאות פרמטריות]]' )
table.insert(errors, '[[קטגוריה:שגיאות פרמטריות]]' )
else
else
table.insert(errors, '[[קאטעגאריע:שגיאות פרמטריות מחוץ למרחב הערכים]]')
table.insert(errors, '[[קטגוריה:שגיאות פרמטריות מחוץ למרחב הערכים]]')
end
end
local report = 'תבנית ריקה מתוכן. יש להזין פרמטרים בערך או בוויקינתונים. ' .. table.concat(errors, '')
local report = 'תבנית {{' .. templateName .. '}} ריקה מתוכן. יש להזין פרמטרים בערך או בוויקינתונים. ' .. table.concat(errors, '')
local ParamValidator = require('Module:ParamValidator')
local ParamValidator = require('Module:ParamValidator')
return ParamValidator.wrapReport(report, templateName, {})
return ParamValidator.wrapReport(report, templateName, {})
שורה 297: שורה 308:
This function adds image using valueArg, or if not specified by the user tries to get image from wikidata using property
This function adds image using valueArg, or if not specified by the user tries to get image from wikidata using property
]]
]]
function getValueOrWikidataImage(valueArg, wikidataArg, width, imgDesc)
function getValueOrWikidataImage(args)
valueArg = args.valueArg
if valueArg and #valueArg>0 then  
if valueArg and #valueArg>0 then  
if valueArg == '-' then
if valueArg == '-' then
שורה 305: שורה 317:
not mw.ustring.match(valueArg, '^ *%[%[') and  
not mw.ustring.match(valueArg, '^ *%[%[') and  
  not  mw.ustring.match(valueArg, '^ *<') then
  not  mw.ustring.match(valueArg, '^ *<') then
  local imgSuffix = '|220px'
  local imgSuffix = '|'..args.width .. 'px'
  if imgDesc~=nil and #imgDesc>0 then
  if args.imgDesc~=nil and #args.imgDesc>0 then
  imgSuffix = imgSuffix .. '|' .. imgDesc
  imgSuffix = imgSuffix .. '|' .. args.imgDesc
  end
  end
  imgSuffix = imgSuffix .. ']]'
  imgSuffix = imgSuffix .. ']]'
if mw.ustring.match(valueArg, '^[Ff]ile:') or  
if mw.ustring.match(valueArg, '^[Ff]ile:') or  
mw.ustring.match(valueArg, '^[Ii]mage:') or
mw.ustring.match(valueArg, '^[Ii]mage:') or
mw.ustring.match(valueArg, '^טעקע:') or
mw.ustring.match(valueArg, '^קובץ:') or
mw.ustring.match(valueArg, '^קובץ:') or
mw.ustring.match(valueArg, '^תמונה:') then
mw.ustring.match(valueArg, '^תמונה:') then
שורה 318: שורה 329:
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
שורה 323: שורה 344:
end
end
end
end
if wikidataArg then  
if args.wikidataArg and args.args.entityId~=nil then  
return propertyLink.getImageLink(wikidataArg, width)
args.args.usingWikidata = true
return propertyLink.getImageLink(args.wikidataArg, args.width, nil, nil,nil, args.args.entityId)
end
end
return ''
return ''
שורה 330: שורה 352:
end
end


--[[
Split category links from value, return tuple of whether data exists and maitainance cats in case no data exists
]]
function splitMaintainceCategory(value)
function splitMaintainceCategory(value)
local maintainceCats = nil
local maintainceCats = nil
local hasData =  #(mw.ustring.gsub(value, '%[%[קאטעגאריע:.-%]%]', ''))>0
local hasData =  #(mw.ustring.gsub(value, '%[%[קטגוריה:.-%]%]', ''))>0
if not hasData then
if not hasData then
maintainceCats = value
maintainceCats = value
שורה 343: שורה 368:
return nil
return nil
end
end
local res = propertyLink.getPropertyByOptions(propertyName, entityId, options)
local res = propertyLink.getPropertyByOptions(propertyName, entityId, options)
if res then
if (res==nil) or (#res == 0) then
local missingTranslation = mw.ustring.find(res, '%[%[קאטעגאריע:וויקידאטן עטיקעט פעלט אין יידיש%]%]')
return nil
local link = 'd:'..entityId.. '#'..propertyName
end
if not missingTranslation then
res = res .. mw.ustring.format(' [[File:Blue pencil RTL.svg|15px|link=%s|רעדאקטירן דעם פֿאקט ביי וויקידאטן]]', link)
local hasData, maintainceCats = splitMaintainceCategory(res)
--else
--res = res .. mw.ustring.format('[[%s|חסר תרגום]] [[File:Red pencil RTL.svg|15px|link=%s|חסר תרגום בוויקינתונים]]', link, link)
if hasData then
local link = mw.title.makeTitle( 0, entityId, propertyName, 'wikidata' ):fullUrl('uselang=he')
res = res .. mw.ustring.format(' [[File:Blue pencil RTL.svg|15px|link=%s|עריכת הנתון בוויקינתונים]]', link)
end
return res
end
 
--[[
Filters statements to statements with existing links only
]]
function filterExists( propertyVals )
local tempVals = {}
    for i, property in ipairs(propertyVals) do
    local propValue = property.mainsnak and property.mainsnak.datavalue
    if propValue and propValue.value then
    local linkTarget = mw.wikibase.sitelink( propValue.value['id'] )
if linkTarget then
table.insert(tempVals, property)
end
end
end
end
end
return res
return tempVals
end
end


שורה 363: שורה 407:
local hasData=false
local hasData=false
local maintainceCats = nil
local maintainceCats = nil
local propertyName = nil
local includeWikidataRef = frame and frame:getParent()
local includeWikidataRef = frame and frame:getParent()
if entityId == nil then return inWikidata, maintainceCats end -- early terminate
includeWikidataRef = includeWikidataRef and includeWikidataRef.args and includeWikidataRef.args['ויקינתונים-מקורות'] == 'כן'
includeWikidataRef = includeWikidataRef and includeWikidataRef.args and includeWikidataRef.args['ויקינתונים-מקורות'] == 'כן'
local wikidataOptions = {
local wikidataOptions = {
['entity-gender-aware'] =  templateParams[missingParam..'-ויקינתונים-מגדר'] == 'כן',
['entity-gender-aware'] =  templateParams[missingParam..'-ויקינתונים-מגדר'] == 'כן',
['qualifier'] = templateParams[missingParam..'-ויקינתונים-פרטים'],
['source'] = includeWikidataRef
['source'] = includeWikidataRef
}
}
if templateParams[missingParam..'-ויקינתונים-סינון'] == 'קיים' then
wikidataOptions['filter'] = filterExists
elseif templateParams[missingParam..'-ויקינתונים-סינון'] and mw.ustring.match(templateParams[missingParam..'-ויקינתונים-סינון'], 'filter[a-zA-Z]+') then
local moduleTitle = mw.ustring.match( frame:getParent():getTitle(), 'תבנית:(.+)' )
moduleTitle = mw.ustring.format('יחידה:%s', moduleTitle)
local filterFunc = mw.ustring.match(templateParams[missingParam..'-ויקינתונים-סינון'],'filter[a-zA-Z]+')
wikidataOptions['filter'] = require(moduleTitle)[filterFunc]
end
if templateParams[missingParam..'-ויקינתונים-פרטים']~=nil then
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
if templateParams[missingParam..'-ויקינתונים-תמונה-גודל']~=nil then
if templateParams[missingParam..'-ויקינתונים-תמונה-גודל']~=nil then
wikidataOptions['img-width'] = templateParams[missingParam..'-ויקינתונים-תמונה-גודל']
wikidataOptions['img-width'] = templateParams[missingParam..'-ויקינתונים-תמונה-גודל']
end
end
if templateParams[missingParam..'-ויקינתונים'] then
if templateParams[missingParam..'-ויקינתונים'] then
templateArg.data = getPropertyByOptions(templateParams[missingParam..'-ויקינתונים'], entityId,  wikidataOptions) or nil
if templateParams[missingParam..'-ויקינתונים-יחידה'] then
templateArg.data = require('Module:Convert').convert(mw.getCurrentFrame():newChild{ args = {
['input'] = templateParams[missingParam..'-ויקינתונים'],
[2] = templateParams[missingParam..'-ויקינתונים-יחידה'],
['disp'] = 'out',
['qid'] = entityId,
['abbr']='off'
} }:newChild{})
else
templateArg.data = getPropertyByOptions(templateParams[missingParam..'-ויקינתונים'], entityId,  wikidataOptions) or nil
end
inWikidata = templateArg.data and #(templateArg.data)>0
inWikidata = templateArg.data and #(templateArg.data)>0
elseif templateParams[missingParam..'-ויקינתונים-מרובה'] then
elseif templateParams[missingParam..'-ויקינתונים-מרובה'] then
wikidataOptions['allowMulti'] = true
wikidataOptions['allowMulti'] = true
wikidataOptions['seperator'] = templateParams[missingParam..'-ויקינתונים-מרובה-הפרדה']
wikidataOptions['seperator'] = templateParams[missingParam..'-ויקינתונים-מרובה-הפרדה']
templateArg.data = getPropertyByOptions(templateParams[missingParam..'-ויקינתונים-מרובה'], entityId,  wikidataOptions) or nil
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
שורה 392: שורה 480:
-- special cases
-- special cases
elseif missingParam == 'קואורדינטות' then
elseif missingParam == 'קואורדינטות' then
templateArg.data = propertyLink.getPropertyByOptions('P625', entityId, {['coord-display'] = 'title,inline' })
templateArg.data = propertyLink.getPropertyByOptions('P625', entityId, {['coord-display'] = templateParams['קואורדינטות-תצוגה'] or 'title,inline' })
inWikidata = templateArg.data and #(templateArg.data)>0
inWikidata = templateArg.data and #(templateArg.data)>0
elseif  missingParam == 'מפה' and templateParams['מפה-זום'] then
elseif  missingParam == 'מפה' and templateParams['מפה-זום'] then
שורה 398: שורה 487:
if inWikidata then
if inWikidata then
local defaultZoom = templateParams['מפה-זום']
local defaultZoom = templateParams['מפה-זום']
-- TODO: use entityid and dont ignore it
templateArg.data = frame:expandTemplate{ title = 'מפה דינמית', args = {  
templateArg.data = frame:expandTemplate{ title = 'מפה דינמית', args = {  
['יישור'] = 'center',  
['יישור'] = 'center',  
['זום ברירת מחדל'] = defaultZoom
['זום ברירת מחדל'] = defaultZoom,
['פריטים'] = entityId
} }
} }
end
end
שורה 420: שורה 509:
This function fills missing parameter using wikidata
This function fills missing parameter using wikidata
]]
]]
function crossValidateWikidata(missingParam, templateParams, templateArg, frame)
function crossValidateWikidata(missingParam, templateParams, templateArg, frame, entityId)
local WikidataCrossValidation = require('Module:WikidataCrossValidation')
local matching = nil
local matching = nil
local propertyName
local propertyName
if missingParam==nil then
 
if entityId == nil or missingParam==nil then
return nil
return nil
end
end
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
שורה 449: שורה 537:
]]
]]
function standardTitle(templateArgs, isSubTemplate, entityId)
function standardTitle(templateArgs, isSubTemplate, entityId)
local name = templateArgs['נאמען']
local name = templateArgs['שם']
if name=='-' then return name end --  
if name=='-' then return name end --  
if isSubTemplate then return name or '' end
if isSubTemplate then return name or '' end
שורה 458: שורה 546:
end
end
local originName = templateArgs['קוואלשפראך נאמען']
local originName = templateArgs['שם בשפת המקור']
if originName == '-' then  
if originName == '-' then  
originName = ''
originName = ''
שורה 471: שורה 559:
if  propValue and propValue.value and propValue.value.text and propValue.value.text~=name then
if  propValue and propValue.value and propValue.value.text and propValue.value.text~=name then
originName = mw.ustring.format('<span lang="%s" title="%s">%s</span>', propValue.value.language,  
originName = mw.ustring.format('<span lang="%s" title="%s">%s</span>', propValue.value.language,  
         mw.language.fetchLanguageName( propValue.value.language , 'yi'), propValue.value.text)
         mw.language.fetchLanguageName( propValue.value.language , 'he'), propValue.value.text)
     end
     end
end
end
שורה 491: שורה 579:
local templateStructure = {}
local templateStructure = {}
args.subtemplate = frame.args['תת-תבנית']
args.subtemplate = frame.args['תת-תבנית']
args.entityId = templateArgs['qid'] or mw.wikibase.getEntityIdForCurrentPage()
args.entityId = templateArgs['qid'] or templateParams['qid'] or mw.wikibase.getEntityIdForCurrentPage()
-- disable wikidata fetching
if args.entityId == '' or args.entityId == '-' then args.entityId = nil end
args.title = frame.args['כותרת תבנית'] or standardTitle(templateArgs, args.subtemplate, args.entityId)
args.title = frame.args['כותרת תבנית'] or standardTitle(templateArgs, args.subtemplate, args.entityId)
if args.title=='-' then args.subtemplate = true end
if args.title=='-' then args.subtemplate = true end
args.titlestyle = frame.args['כותרת תבנית-עיצוב']
args.titlestyle = templateParams['כותרת תבנית-עיצוב']
args.titleclass = frame.args['כותרת תבנית-מחלקה']
args.titleclass = templateParams['כותרת תבנית-מחלקה']
args.subtitle = frame.args['תת כותרת תבנית']
args.subtitle = templateParams['תת כותרת תבנית']
args.subtitlestyle = frame.args['תת כותרת תבנית-עיצוב']
args.subtitlestyle = templateParams['תת כותרת תבנית-עיצוב']
args.subtitleclass = frame.args['תת כותרת תבנית-מחלקה']
args.subtitleclass = templateParams['תת כותרת תבנית-מחלקה']
args.rightImage = getValueOrWikidataImage(frame.args['תמונה ימין'], frame.args['תמונה ימין-ויקינתונים'], '100x80')
args.rightImage = getValueOrWikidataImage{
args.rightImageDesc = frame.args['כיתוב ימין']
valueArg=templateParams['תמונה ימין'],
args.leftImage = getValueOrWikidataImage(frame.args['תמונה שמאל'], frame.args['תמונה שמאל-ויקינתונים'], '100x80')
wikidataArg=templateParams['תמונה ימין-ויקינתונים'],  
args.leftImageDesc = frame.args['כיתוב שמאל']
width='100x80',
args.imageDesc = frame.args['כיתוב']
args=args
args.image = getValueOrWikidataImage(frame.args['תמונה'], frame.args['תמונה-ויקינתונים'] or 'P18', frame.args['תמונה-גודל'] or '250', args.imageDesc)
}
args.headerclass = frame.args['כותרת-מחלקה']
args.rightImageDesc = templateParams['כיתוב ימין']
args.headerstyle = frame.args['כותרת-עיצוב']
args.leftImage = getValueOrWikidataImage{
     args.rowsstyle = frame.args['שורה-עיצוב']
valueArg=templateParams['תמונה שמאל'],
     args.labelstyle = frame.args['תווית-עיצוב']
wikidataArg=templateParams['תמונה שמאל-ויקינתונים'],  
     args.datastyle = frame.args['מידע-עיצוב']
width='100x80',
args.tablestyle = frame.args['טבלה-עיצוב']
args=args
args.tableclass = frame.args['טבלה-מחלקה']
}
local isSelfUse = (mw.title.getCurrentTitle().namespace==10)
args.leftImageDesc = templateParams['כיתוב שמאל']
self.autoDocumentation = frame.args['תיעוד-אוטומטי']
args.imageDesc = templateParams['כיתוב']
args.image = getValueOrWikidataImage{
valueArg=templateParams['תמונה'],
wikidataArg=templateParams['תמונה-ויקינתונים'] or 'P18',
width=templateParams['תמונה-גודל'] or '220',
imgDesc=args.imageDesc,
args=args
}
 
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.headerstyle = templateParams['כותרת-עיצוב']
     args.rowsstyle = templateParams['שורה-עיצוב']
     args.labelstyle = templateParams['תווית-עיצוב']
     args.datastyle = templateParams['מידע-עיצוב']
args.tablestyle = templateArgs['טבלה-עיצוב'] or templateParams['טבלה-עיצוב']
args.tableclass = templateArgs['טבלה-מחלקה'] or templateParams['טבלה-מחלקה']
local pageNs = mw.title.getCurrentTitle().namespace
local subpageText = mw.title.getCurrentTitle().subpageText
local isSelfUse = (pageNs==10 and subpageText ~= "תיעוד")
self.autoDocumentation = templateParams['תיעוד-אוטומטי']


local labelPrefix = 'תווית'
local labelPrefix = 'תווית'
שורה 522: שורה 639:
local rowStyleClassPrefix = 'מחלקה-שורה'
local rowStyleClassPrefix = 'מחלקה-שורה'
local styleSuffix = '-עיצוב'
local styleSuffix = '-עיצוב'
local explicitWikidata = '-ויקינתונים-מפורש'
local k=0
local k=0
local processedParams = {['0']=1} -- param0 may be used by Lua, not be template
local processedParams = {['0']=1} -- param0 may be used by Lua, not be template
שורה 559: שורה 677:
labelName = label_data_names
labelName = label_data_names
label_data_names = mw.text.trim(label_data_names, '%[%]')
label_data_names = mw.text.trim(label_data_names, '%[%]')
if templateArgs[label_data_names] and #templateArgs[label_data_names]>0 then
local hasContent = templateArgs[label_data_names] and #templateArgs[label_data_names]>0
-- + and use explicit wikidata replace the content with such if available from wikidata
local isExplicitWikidataParam = templateParams[label_data_names..explicitWikidata]
local isExplicitWikidataEnabled = false
if isExplicitWikidataParam then
isExplicitWikidataEnabled = templateArgs[label_data_names]~=nil and mw.ustring.match(templateArgs[label_data_names], '^ *+$')
end
local skipContent = false
if hasContent and not isExplicitWikidataEnabled then
dataTemplate = templateArgs[label_data_names]
dataTemplate = templateArgs[label_data_names]
else
else
if isExplicitWikidataParam and not isExplicitWikidataEnabled then
skipContent = true
end
dataTemplate = '{{{' ..label_data_names.. '}}}'
dataTemplate = '{{{' ..label_data_names.. '}}}'
end
end
table.insert(templateStructure, {label=labelName, data=dataTemplate, rowstyle=templateParams[rowStylePrefix..i], rowclass=templateParams[rowStyleClassPrefix..i], datastyle=templateParams[dataPrefix..i..styleSuffix],  
if not skipContent then
table.insert(templateStructure, {label=labelName, data=dataTemplate, rowstyle=templateParams[rowStylePrefix..i], rowclass=templateParams[rowStyleClassPrefix..i], datastyle=templateParams[dataPrefix..i..styleSuffix],  
labelstyle=templateParams[labelPrefix..i..styleSuffix], indic=indic})
labelstyle=templateParams[labelPrefix..i..styleSuffix], indic=indic})
end
end
end
end
end
שורה 600: שורה 732:
-- if data isn't available remove it
-- if data isn't available remove it
table.insert(entriesToRemove, 1, k)
table.insert(entriesToRemove, 1, k)
-- no need to cross validate it
crossValidatedFields[m] = 1
end
end
else
if v.label then
end
crossValidatedFields[v.label] = 1
--local maintainceCats = crossValidateWikidata(v.label,templateParams, v.data, frame)
--if maintainceCats and #maintainceCats>0 then
-- table.insert(wikidataCats, maintainceCats)
--end
end
end
end
end
end
end
end
end
--[[for k,v in pairs(templateArgs) do
for k,v in pairs(templateArgs) do
if crossValidatedFields[k]==nil and v and #v>0 and k~= 'תמונה' then
if crossValidatedFields[k]==nil and v and #v>0 and pageNs==0 and k~= 'תמונה' then
local maintainceCats = crossValidateWikidata(k,templateParams, v, frame)
local maintainceCats = crossValidateWikidata(k,templateParams, v, frame, args.entityId)
if maintainceCats and #maintainceCats>0 then
if maintainceCats and #maintainceCats>0 then
table.insert(wikidataCats, maintainceCats)
table.insert(wikidataCats, maintainceCats)
end
end
end
end
end]]
end
for k,v in pairs(entriesToRemove) do table.remove(templateStructure, v) end
for k,v in pairs(entriesToRemove) do table.remove(templateStructure, v) end
אַנאנימער באַניצער