Modul ini menggunakan properti Wikidata:
laman resmi (P856) (lihat penggunaan)
| Modul ini dilindungi. Modul ini sangat mencolok yang digunakan oleh banyak halaman, atau sangat sering disubstitusikan. Karena vandalisme atau kesalahan akan mempengaruhi banyak halaman, dan suntingan kecil dapat memberi beban besar pada server, modul ini dilindungi dari penyuntingan. |
Modul ini mengimplementasikan templat {{Situs web resmi}}. Silakan lihat halaman templat untuk dokumentasi.
Kategori pelacakKategori pelacak
- Kategori:Situs web resmi tanpa URL (67)
- Kategori:Situs web resmi berbeda dengan Wikidata dan Wikipedia (11.437)
- Kategori:Situs web resmi tidak ada di Wikidata (5.354)
Lihat pulaLihat pula
Dokumentasi di atas ditransklusikan dari Modul:Official website/doc. (sunting | riwayat)
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
localmakeUrl=require('Module:URL')._url localp={} -- Wrapper for pcall which returns nil on failure. localfunctionquickPcall(func) localsuccess,result=pcall(func) ifsuccessthen returnresult end end -- Gets the rank for a Wikidata property table. Returns 1, 0 or -1, in -- order of rank. localfunctiongetRank(prop) localrank=prop.rank ifrank=='preferred'then return1 elseifrank=='normal'then return0 elseifrank=='deprecated'then return-1 else -- No rank or undefined rank is treated as "normal". return0 end end -- Finds whether a Wikidata property is qualified as being in English. localfunctionisEnglish(prop) localret=quickPcall(function() fori,langinipairs(prop.qualifiers.P407)do iflang.datavalue.value['numeric-id']==1860then returntrue end end returnfalse end) returnret==true end -- Fetches the official website URL from Wikidata. localfetchWikidataUrl fetchWikidataUrl=function() -- Get objects for all official sites on Wikidata. localwebsites=quickPcall(function() returnmw.wikibase.getEntityObject().claims.P856 end) -- Clone the objects in case other code needs them in their original order. websites=websitesandmw.clone(websites)or{} -- Add the table index to the objects in case it is needed in the sort. fori,websiteinipairs(websites)do website._index=i end -- Sort the websites, first by highest rank, and then by websites in the -- English language, then by the website's original position in the -- property list. When we are done, get the URL from the highest-sorted -- object. table.sort(websites,function(ws1,ws2) localr1=getRank(ws1) localr2=getRank(ws2) ifr1~=r2then returnr1>r2 end locale1=isEnglish(ws1) locale2=isEnglish(ws2) ife1~=e2then returne1 end returnws1._index<ws2._index end) localurl=quickPcall(function() returnwebsites[1].mainsnak.datavalue.value end) -- Cache the result so that we only do the heavy lifting once per #invoke. fetchWikidataUrl=function() returnurl end returnurl end -- Render the URL link, plus other visible output. localfunctionrenderUrl(options) ifnotoptions.urlandnotoptions.wikidataurlthen localentity=mw.wikibase.getEntityObject()or{} localqid=entity.id localresult='<strong class="error">'.. 'Tidak ada URL yang ditemukan. Tuliskan URL di sini atau tambahkan di Wikidata.'.. '</strong>' ifqidthen result=result..' [[Berkas:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Sunting ini di Wikidata |link=https://www.wikidata.org/wiki/'..qid..'#P856|Sunting ini di Wikidata]]' end returnresult end localret={} ret[#ret+1]=string.format( '<span class="official-website">%s</span>', makeUrl(options.urloroptions.wikidataurl,options.display) ) ifoptions.wikidataurlandnotoptions.urlthen localentity=mw.wikibase.getEntityObject()or{} localqid=entity.id ifqidthen ret[#ret+1]='[[Berkas:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Sunting ini di Wikidata |link=https://www.wikidata.org/wiki/'..qid..'#P856|Sunting ini di Wikidata]]' end end ifoptions.format=='flash'then ret[#ret+1]=mw.getCurrentFrame():expandTemplate{ title='Warna', args={'#505050','(Membutuhkan [[Adobe Flash Player]])'} } end ifoptions.mobilethen ret[#ret+1]='('..makeUrl(options.mobile,'Mobile')..')' end returntable.concat(ret,' ') end -- Render the tracking category. localfunctionrenderTrackingCategory(url,wikidataurl) ifmw.title.getCurrentTitle().namespace~=0then return'' end localcategory ifnoturlandnotwikidataurlthen category='Situs web resmi tanpa URL' elseifnoturlandwikidataurlthen return'' elseifurlandwikidataurlthen ifurl:gsub('/%s*$','')~=wikidataurl:gsub('/%s*$','')then category='Situs web resmi berbeda dengan Wikidata dan Wikipedia' end else category='Situs web resmi tidak ada di Wikidata' end returncategoryandstring.format('[[Kategori:%s]]',category)or'' end functionp._main(args) localurl=args[1]orargs.URLorargs.url localwikidataurl=fetchWikidataUrl() localformattedUrl=renderUrl{ url=url, wikidataurl=wikidataurl, display=args[2]orargs.nameor'Situs web resmi', format=args.format, mobile=args.mobile } returnformattedUrl..renderTrackingCategory(url,wikidataurl) end functionp.main(frame) localargs=require('Module:Arguments').getArgs(frame,{ wrappers='Templat:Situs web resmi' }) returnp._main(args) end returnp