Sabtu, 26 September 2026
05:26 WIB
TERKINI
Regional Bupati Gowa Sitti Husniah Talenrang Tersangka Pemerasan Perizinan Bangunan dan TPPU Bandar Lampung Puluhan Siswa di Lampung Tengah Diduga Keracunan Makanan Program MBG Account KG Media ID: Satu Akun untuk Kemudahan Akses Seluruh Layanan Digital Ekonomi Dan Bisnis Harga Buyback Emas Antam Anjlok Rp20 Ribu per Gram pada 25 September 2026 Lampung DPRD Lampung Tengah Soroti Perubahan Substansi Perda SOTK Tanpa Pemberitahuan Teknologi Meta Rilis Muse Charm: Gadget Saku Cerdas dengan Asisten AI Revolusioner Berita KAI Siap Gerakkan Rail Clinic ke Pelosok, Perluas Akses Kesehatan Masyarakat Bandar Lampung Inovasi Pendidikan Lampung: Guru Ahli Mengajar Lintas Sekolah Tingkatkan Mutu Nasional Bandar Lampung Tragedi Kelengkeng di Lampung Tengah: Siswa 9 Tahun Meninggal, Program MBG Dievaluasi Account KG Media ID: Satu Akun untuk Seluruh Ekosistem Digital Kompas Gramedia Regional Bupati Gowa Sitti Husniah Talenrang Tersangka Pemerasan Perizinan Bangunan dan TPPU Bandar Lampung Puluhan Siswa di Lampung Tengah Diduga Keracunan Makanan Program MBG Account KG Media ID: Satu Akun untuk Kemudahan Akses Seluruh Layanan Digital Ekonomi Dan Bisnis Harga Buyback Emas Antam Anjlok Rp20 Ribu per Gram pada 25 September 2026 Lampung DPRD Lampung Tengah Soroti Perubahan Substansi Perda SOTK Tanpa Pemberitahuan Teknologi Meta Rilis Muse Charm: Gadget Saku Cerdas dengan Asisten AI Revolusioner Berita KAI Siap Gerakkan Rail Clinic ke Pelosok, Perluas Akses Kesehatan Masyarakat Bandar Lampung Inovasi Pendidikan Lampung: Guru Ahli Mengajar Lintas Sekolah Tingkatkan Mutu Nasional Bandar Lampung Tragedi Kelengkeng di Lampung Tengah: Siswa 9 Tahun Meninggal, Program MBG Dievaluasi Account KG Media ID: Satu Akun untuk Seluruh Ekosistem Digital Kompas Gramedia

Modul:Authority control

Wikimedia module

Dokumentasi modullihatsuntingriwayatsegarkan
WarningModul Lua ini digunakan pada sekitar 318.000 halaman, atau sekira 7% dari keseluruhan halaman.
Untuk mencegah suntingan mengganggu skala besar dan beban peladen, setiap perubahan harus diuji di subhalaman /bak pasir atau /kasus uji Modul:Authority control, atau bak pasir modul Anda. Perubahan yang telah diuji kemudian dapat ditambahkan ke halaman ini dalam satu suntingan. Pertimbangkan untuk mendiskusikan perubahan di halaman pembicaraan sebelum mengimplementasikannya.
Modul ini menggunakan satu properti Wikidata atau lebih; lihat § Parameter untuk penjelasannya.
Modul ini menggunakan Lua:
Halaman terkait

Modul ini berisi kode untuk templat {{Authority control}}.

Lihat pulaLihat pula

Dokumentasi di atas ditransklusikan dari Modul:Authority control/doc. (sunting | riwayat)
Penyunting dapat melakukan uji coba pada halaman bak pasir (sunting | beda) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
require('strict')
localp={}
localframe=mw.getCurrentFrame()
localconfig_file=frame.args.configandframe.args.config~=''and('/'..frame.args.config)or''
localconfig=mw.loadData('Module:Authority control/config'..config_file)
localtitle=mw.title.getCurrentTitle()
localnamespace=title.namespace
localtestcases=title.subpageText==config.i18n.testcases
localgetArgs=require('Module:Arguments').getArgs
localwikilink=function(target,label)
returnlabeland'[['..target..'|'..label..']]'or'[['..target..']]'
end
localneedsAttention=function(sortkey)
returnwikilink(config.i18n.category..':'..config.i18n.attentioncat,sortkey..title.text)
end
localaddCat=function(cat,sortkey)
ifcatandcat~=''and(namespace==0ornamespace==14ortestcases)then
returnwikilink(config.i18n.category..':'..cat,sortkeyandsortkey..title.text)
else
return''
end
end
localtooltip=function(text,label)
iflabelandlabel~=''then
returnframe:expandTemplate{
title='Tooltip',
args={text,label}
}
else
returntext
end
end
local_makelink=function(id,val,additional,qid)--validate values and create a link
locallink=mw.html.create('span'):addClass('uid')
ifnotadditionalandid.prefixthen--show prefix on primary value
link:wikitext(id.prefix..': ')
end
localvalid_value=false
ifid.customlinkthen-- use function to validate and generate link
localnewlink=require(config.auxiliary)[id.customlink](val.id,additional)
ifnewlinkthen
link:wikitext(newlink)
valid_value=true
end
else
ifid.patternthen-- check pattern to determine validity
valid_value=string.match(val.id,'^'..id.pattern..'$')
elseifid.patternsthen-- check multiple patterns to determine validity
for_,patterninipairs(id.patterns)do
valid_value=val.id:match('^'..pattern..'$')
ifvalid_valuethenbreakend
end
elseifid.validthen-- use function to determine validity
valid_value=require(config.auxiliary)[id.valid](val.id)
else-- no validation possible
valid_value=val.id
end
ifvalid_valuethen
locallabel=id.label
ifnotlabeloradditionalthen
label=tostring(additional)
end
localnewlink
ifid.linkthen
valid_value=valid_value:gsub('%%','%%%%')
localtarget=mw.ustring.gsub(id.link,'%$1',valid_value):gsub(' ','%%20')
newlink='['..target..' '..label..']'
else
newlink=valid_value
end
link:wikitext(tooltip(newlink,val.name))
end
end
ifvalid_valuethen
localcat=id.categoryandstring.format(config.i18n.cat,id.category)
link:wikitext(addCat(cat))
else
localwdlink=qidandwikilink(':wikidata:'..qid..'#P'..id.property)or''
localname=mw.wikibase.getLabel('P'..id.property)or''
localtooltip=string.format(
config.i18n.idnotvalid,
name,
val.id
)
localcat=id.categoryandstring.format(
config.i18n.cat,
config.i18n.faulty..' '..id.category
)
link:wikitext(wikilink('File:'..config.i18n.warningicon..'|20px|frameless|link='..wdlink,tooltip..'.'))
:wikitext(addCat(cat))
:wikitext(addCat(config.i18n.allfaultycat,name))
end
returnlink
end
local_makelinks=function(id,qid)
--[[==================================]]
--[[            Make links            ]]
--[[==================================]]
localgetquals=function(statement,qualid)
ifstatement.qualifiersandstatement.qualifiers['P'..qualid]then
returnmw.wikibase.renderSnak(statement.qualifiers['P'..qualid][1])
end
end
localids={}
ifqidthen
for_,statementinipairs(mw.wikibase.getBestStatements(qid,'P'..id.property))do
ifstatement.mainsnak.datavaluethen
localval=statement.mainsnak.datavalue.value
ifvalthen
localnamedas=getquals(statement,1810)orgetquals(statement,742)or''
table.insert(ids,{id=val,name=namedas})
endendendend
locallinks
ifids[1]then
links=mw.html.create('li'):node(_makelink(id,ids[1],false,qid))
ifids[2]then
localsublinks=mw.html.create('ul')
forn=2,#idsdo
sublinks:tag('li'):node(_makelink(id,ids[n],n,qid)):done()
end
links:node(sublinks)
end
end
returnlinks
end
p.authorityControl=function(frame)
--[[==================================]]
--[[               Main               ]]
--[[==================================]]
localargs=getArgs(frame,{parentOnly=true})
localresolveQID=function(qid)
ifqidthen
qid='Q'..mw.ustring.gsub(qid,'^[Qq]','')
ifmw.wikibase.isValidEntityId(qid)andmw.wikibase.entityExists(qid)then
localsitelink=mw.wikibase.getSitelink(qid)
ifsitelinkthen
returnmw.wikibase.getEntityIdForTitle(sitelink)ormw.wikibase.getEntity(qid).id
end
returnmw.wikibase.getEntity(qid).id
endendend
localconf=config.config
localauxCats=''
localrct=false-- boolean to track if there are any links to be returned
localqid,topic
ifnamespace==0andmw.wikibase~=nilthen
qid=mw.wikibase.getEntityIdForCurrentPage()
end
ifqidthen-- article is connected to a Wikidata item
ifargs.qidandresolveQID(args.qid)~=qidthen-- non-matching qid parameter
auxCats=auxCats..needsAttention('D')
end
else-- page is not connected to any Wikidata item
qid=resolveQID(args.qid)-- check qid parameter if no wikidata item is connected
ifqidthen-- qid parameter is valid, set topic to display
topic=mw.wikibase.getLabel(qid)
iftopicthen
ifmw.ustring.lower(title.subpageText)==mw.ustring.lower(topic)then-- suppress topic display if subpagename equals topic up to case change
topic=nil
end
iftopicandmw.wikibase.getSitelink(qid)then-- make wikilink to article
topic=wikilink(mw.wikibase.getSitelink(qid),topic)
end
else
auxCats=auxCats..needsAttention('L')
end
elseifargs.qidthen-- invalid qid has been supplied, add to tracking cat
auxCats=auxCats..needsAttention('Q')
end
end
localqids={}-- setup any additional QIDs
ifargs.additional=='auto'then
ifqidthen-- check P527 for parts to add additional qids
localcheckparts=function(property)
localparts=mw.wikibase.getBestStatements(qid,property)
ifpartsthen
for_,partinipairs(parts)do
ifpart.mainsnak.datavalueandpart.mainsnak.datavalue.value.idthen
localresolvedqid=resolveQID(part.mainsnak.datavalue.value.id)
ifresolvedqidthen
table.insert(qids,resolvedqid)
endendendendend
for_,partinipairs(config.auto_additional)do
checkparts('P'..part)
end
end
elseifargs.additionalthen
for_,vinipairs(mw.text.split(args.additional,'%s*,%s*'))do
v=resolveQID(v)
ifvthen
ifv==qidthen-- duplicate of qid parameter
auxCats=auxCats..needsAttention('R')
end
table.insert(qids,v)
else-- invalid QID specified
auxCats=auxCats..needsAttention('A')
end
end
end
localnumsections,sections=0,{}
for_,_inipairs(config.sections)do-- count number of regular sections
numsections=numsections+1
end
for_=1,#qids+numsectionsdo
table.insert(sections,{})
end
-- check which identifiers to show/suppress in template
localshow,show_all_unsuppressed={},true
localstripP=function(pid)--strip P from property number
ifpid:match('^[Pp]%d+$')then
pid=mw.ustring.gsub(pid,'[Pp]','')
end
pid=tonumber(pid)
ifpidandmw.wikibase.entityExists('P'..pid)then
returnpid
end
end
localaddshowlist=function(list)
iflistthen
for_,vinipairs(mw.text.split(string.lower(list),'%s*,%s*'))do
ifconfig.whitelists[v]then-- e.g. show=arts to use whitelist
for_,winipairs(config.whitelists[v].properties)do
show[w]=true
end
else
v=stripP(v)
ifvthen-- e.g. show=P214 to show one particular property
show[v]=true
else-- unrecognised property or whitelist
auxCats=auxCats..needsAttention('W')
end
end
end
show_all_unsuppressed=false
end
end
addshowlist(frame.args.show)-- check show parameter on wrapper template
addshowlist(args.show)-- check show parameter on article
addshowlist(args.country)-- check country parameter on article
ifargs.suppressthen
localsuppresslist=mw.text.split(args.suppress,'%s*,%s*')-- split parameter by comma
for_,vinipairs(suppresslist)do
v=stripP(v)
ifvthen
show[v]=false
auxCats=auxCats..wikilink(config.i18n.category..':'..config.i18n.suppressedcat)
else
auxCats=auxCats..needsAttention('P')
end
end
end
localmakeSections=function(qid,addit)
for_,idinipairs(conf)do
ifid.suppressedbypropertythen
for_,propertyinipairs(id.suppressedbyproperty)do
ifshow[property]=='used'then-- property is in use
show[id.property]=false-- suppressed by another property
endendend
ifshow[id.property]==nilthen
show[id.property]=show_all_unsuppressed
end
ifshow[id.property]then
locallinks=_makelinks(id,qid)
iflinksthen
table.insert(
sections[additorid.section],
links
)
show[id.property]='used'
rct=true
end
end
end
end
localpencil=function(qid)
ifqidthen
returnrequire('Module:EditAtWikidata')._showMessage{
pid='identifiers',
qid=qid
}
else
return''
end
end
makeSections(qid,false)
forc=1,#qidsdo
makeSections(qids[c],numsections+c)
end
--configure Navbox
localoutString=''
ifrctthen-- there is at least one link to display
localNavbox=require('Module:Navbox')
localsect,lastsect=0,0
localnavboxArgs={
name='Authority control',
navboxclass='authority-control',
bodyclass='hlist',
state=args.stateorconfig.i18n.autocollapse,
navbar='off'
}
forc=1,numsections+#qidsdo
if#sections[c]>0then-- section is non-empty
sect=sect+1
lastsect=c
localsectname
ifc<=numsectionsthen-- regular section
sectname=config.sections[c].name
else-- section from additional qid
localqid=qids[c-numsections]
locallabel,sitelink=mw.wikibase.getLabel(qid),mw.wikibase.getSitelink(qid)
iflabelthen
ifsitelinkthen
localtarget=mw.title.new(sitelink)
iftarget==titleor(target.isRedirectandtarget.redirectTarget==title)then-- do not link
sectname=label
else-- make wikilink to article
sectname=wikilink(sitelink,label)
end
else
sectname=label
end
else
auxCats=auxCats..needsAttention('L')
sectname=qid
end
sectname=sectname..pencil(qid)
end
navboxArgs['group'..c]=sectname
locallist=mw.html.create('ul')
for_,linkinipairs(sections[c])do
list:node(link)
end
navboxArgs['list'..c]=tostring(list)
end
end
iftopicthen-- display in expanded form with topic
navboxArgs.title=config.i18n.aclink..' &ndash; '..topic..pencil(qid)
elseifsect==1then-- special display when only one section
iflastsect<=numsectionsthen
ifconfig.sections[lastsect].hidelabelwhenalonethen-- no special label when only general or other IDs are present
navboxArgs['group'..lastsect]=config.i18n.aclink..pencil(qid)
else-- other regular section
navboxArgs['group'..lastsect]=config.i18n.aclink..': '..navboxArgs['group'..lastsect]..pencil(qid)
end
else-- section from additional qid
navboxArgs['group'..lastsect]=config.i18n.aclink..': '..navboxArgs['group'..lastsect]
end
else-- add title to navbox
navboxArgs.title=config.i18n.aclink..pencil(qid)
end
outString=Navbox._navbox(navboxArgs)
end
ifargs.state
andargs.state~=config.i18n.collapsed
andargs.state~=config.i18n.expanded
andargs.state~=config.i18n.autocollapsethen--invalid state parameter
auxCats=auxCats..needsAttention('S')
end
iftestcasesthen
auxCats=mw.ustring.gsub(auxCats,'(%[%[)('..config.i18n.category..')','%1:%2')--for easier checking
end
--out
outString=outString..auxCats
ifnamespace~=0then
outString=mw.ustring.gsub(outString,'(%[%[)('..config.i18n.category..':'..config.i18n.Articles..')([^%|%]]+)%|?[^%|%]]*(%]%])','%1:%2%3%4')
outString=mw.ustring.gsub(outString,'(%[%[)('..config.i18n.category..':'..config.i18n.All_articles..')([^%|%]]+)%|?[^%|%]]*(%]%])','%1:%2%3%4')
end
localcheck=require('Module:Check for unknown parameters')._check
localsortkey
outString=outString..check({
['unknown']=wikilink(config.i18n.category..':'..config.i18n.attentioncat,'U'),
['preview']=config.i18n.previewwarning,'show','country','suppress','additional','qid','state'
},args)
returnoutString
end
p.makelink=function(id,qid)
return_makelinks(id,qid)
end
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan