Rabu, 07 Oktober 2026
13:27 WIB
TERKINI
Bandar Lampung Polisi Bandar Lampung Amankan Lima Remaja Bersenjata Tajam, Kedepankan Edukasi Bandar Lampung Misteri Antrean Panjang Solar di Lampung Meski Pasokan Berlimpah Bandar Lampung Arinal Djunaidi Jalani Sidang Pembuktian, Hakim Tetapkan Vonis 20 Januari 2027 Cuaca Lampung Timur Dominasi Sebaran 140 Titik Panas di Provinsi Lampung Ekonomi Dan Bisnis Harga Emas Antam 6 Oktober 2026 Terkoreksi, Cek Daftar Lengkapnya Bandar Lampung Direktur RSUDAM Imam Ghozali Tanggapi Isu Mutasi: Siap Mengabdi Sesuai Kompetensi Lampung Timur Ceceran Minyak Misterius Kembali Cemari Pantai Cemara Lampung Timur Bandar Lampung Mendiktisaintek Brian Yuliarto Optimis Itera Jadi Institut Teknologi Terbaik Asia Tenggara Hukum Pengiriman 1,68 Juta Batang Rokok Ilegal Terbongkar di Tol Tulang Bawang Hiburan No Na Kibarkan Merah Putih: Video Musik 'Work' Tembus UK Music Video Awards 2026 Bandar Lampung Polisi Bandar Lampung Amankan Lima Remaja Bersenjata Tajam, Kedepankan Edukasi Bandar Lampung Misteri Antrean Panjang Solar di Lampung Meski Pasokan Berlimpah Bandar Lampung Arinal Djunaidi Jalani Sidang Pembuktian, Hakim Tetapkan Vonis 20 Januari 2027 Cuaca Lampung Timur Dominasi Sebaran 140 Titik Panas di Provinsi Lampung Ekonomi Dan Bisnis Harga Emas Antam 6 Oktober 2026 Terkoreksi, Cek Daftar Lengkapnya Bandar Lampung Direktur RSUDAM Imam Ghozali Tanggapi Isu Mutasi: Siap Mengabdi Sesuai Kompetensi Lampung Timur Ceceran Minyak Misterius Kembali Cemari Pantai Cemara Lampung Timur Bandar Lampung Mendiktisaintek Brian Yuliarto Optimis Itera Jadi Institut Teknologi Terbaik Asia Tenggara Hukum Pengiriman 1,68 Juta Batang Rokok Ilegal Terbongkar di Tol Tulang Bawang Hiburan No Na Kibarkan Merah Putih: Video Musik 'Work' Tembus UK Music Video Awards 2026

Modul:Random portal component

Wikimedia module

Bagikan:
Dokumentasi modulbuatsegarkan
Anda dapat membuat halaman dokumentasi untuk buat pada modul Scribunto ini.
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
-- This module implements [[Template:Random portal component]]
localp={}
localmRandom=require('Module:Random')
localcurrentTitle=mw.title.getCurrentTitle()
-- tracking function added by BHG 29/04/2019
-- called as subPageTrackingCategories(pages, args.max)
localfunctionsubPageTrackingCategories(pages,max,header)
localretval="";
localthispagetitle=mw.title.getCurrentTitle().text
-- don't track DYK etc, only selected/featured articles, biogs etc
if((string.find(header,"/[tT]erpilih")==-1)and(string.find(header,"/[pP]ilihan")==-1))then
returnretval
end
-- no tracking unless we are in Portal namespace
if(mw.title.getCurrentTitle().nsText~="Portal")then
return""
end
-- no tracking if this is a subpage
if((mw.ustring.match(thispagetitle,"/")~=nil)and(thispagetitle~="AC/DC"))then
returnretval
end
localmaxNum=tonumber(max)
localavailableSubPageCount=maxNum
-- Check for missing subpages at end of alleged number range
whileavailableSubPageCount>0andnotmw.title.new(pages.subpage..'/'..tostring(availableSubPageCount)).existsdo
availableSubPageCount=availableSubPageCount-1
end
ifavailableSubPageCount<maxNumthen
retval=retval.."[[Kategori:Komponen portal acak dengan subhalaman yang tersedia lebih sedikit dari maks yang ditentukan]]"
else
-- Check for spurious subpages beyond end of alleged number range
whilemw.title.new(pages.subpage..'/'..tostring(availableSubPageCount+1)).existsdo
availableSubPageCount=availableSubPageCount+1
end
ifavailableSubPageCount>maxNumthen
retval=retval.."[[Kategori:Komponen portal acak dengan lebih banyak subhalaman yang tersedia daripada jumlah maksimal]]"
end
end
-- before categorising, check what type of subpage we are categorising, and if detected, categorise images separately
localsubpageType="subhalaman"-- generic type
localsubpageName=pages.subpage
subpageName=mw.ustring.gsub(subpageName,"^[^/]*/","")
subpageName=mw.ustring.lower(subpageName)
if((mw.ustring.find(subpageName,"foto",1,true)~=nil)or
(mw.ustring.find(subpageName,"gambar",1,true)~=nil)or
(mw.ustring.find(subpageName,"panorama",1,true)~=nil))then
subpageType="subhalaman gambar"
end
if(availableSubPageCount<2)then
retval=retval.."[[Kategori:Komponen portal acak dengan kurang dari 2 "..subpageType.." tersedia]]"
elseif(availableSubPageCount<=5)then
retval=retval.."[[Kategori:Komponen portal acak dengan 2–5 "..subpageType.." tersedia]]"
elseif(availableSubPageCount<=10)then
retval=retval.."[[Kategori:Komponen portal acak dengan 6–10 "..subpageType.." tersedia]]"
elseif(availableSubPageCount<=15)then
retval=retval.."[[Kategori:Komponen portal acak dengan 11–15 "..subpageType.." tersedia]]"
elseif(availableSubPageCount<=20)then
retval=retval.."[[Kategori:Komponen portal acak dengan 16-20 "..subpageType.." tersedia]]"
elseif(availableSubPageCount<=25)then
retval=retval.."[[Kategori:Komponen portal acak dengan 21-25 "..subpageType.." tersedia]]"
elseif(availableSubPageCount<=30)then
retval=retval.."[[Kategori:Komponen portal acak dengan 26–30 "..subpageType.." tersedia]]"
elseif(availableSubPageCount<=40)then
retval=retval.."[[Kategori:Komponen portal acak dengan 31–40 "..subpageType.." tersedia]]"
elseif(availableSubPageCount<=50)then
retval=retval.."[[Kategori:Komponen portal acak dengan 41–50 "..subpageType.." tersedia]]"
else
retval=retval.."[[Kategori:Komponen portal acak dengan lebih dari 50 "..subpageType.." tersedia]]"
end
returnretval;
end
localfunctiongetRandomNumber(max)
-- gets a random integer between 1 and max; max defaults to 1
returnmRandom.number{maxor1}
end
localfunctionexpandArg(args,key)
-- Emulate how unspecified template parameters appear in wikitext. If the
-- specified argument exists, its value is returned, and if not the argument
-- name is returned inside triple curly braces.
localval=args[key]
ifvalthen
returnval
else
returnstring.format('{{{%s}}}',key)
end
end
localfunctiongetPages(args)
localpages={}
pages.root=args.rootpageorcurrentTitle.prefixedText
pages.subpage=pages.root..'/'..expandArg(args,'subpage')
localtries=10
repeat
pages.random=pages.subpage..'/'..getRandomNumber(args.max)
tries=tries-1
untiltries<1ormw.title.new(pages.random).exists
pages.footer='Template:Box-footer'
returnpages
end
localfunctiontryExpandTemplate(frame,title,args)
localsuccess,result=pcall(frame.expandTemplate,frame,{title=title,args=args})
ifsuccessthen
returnresult
else
localmsg=string.format(
'<strong class="error">The page "[[%s]]" does not exist.</strong>',
title
)
ifmw.title.getCurrentTitle().namespace==100then-- is in the portal namespace
msg=msg..'[[Kategori:Portal yang membutuhkan perhatian]]'
end
returnmsg
end
end
localfunctiongetHeader(frame,pages,header,template)
returntryExpandTemplate(
frame,
templateorpages.root..'/box-header',
{header,pages.random}
)
end
localfunctiongetRandomSubpageContent(frame,pages)
returntryExpandTemplate(
frame,
pages.random
)
end
localfunctiongetFooter(frame,pages,link)
returntryExpandTemplate(
frame,
pages.footer,
{link}
)
end
functionp._main(args,frame)
frame=frameormw.getCurrentFrame()
localpages=getPages(args)
localret={}
ret[#ret+1]=getHeader(frame,pages,args.headeror'subpage',args.headertemplate)
ret[#ret+1]=getRandomSubpageContent(frame,pages)
ifnotargs.footerornotargs.footer:find('%S')then
ret[#ret+1]='<div style="clear:both;"></div></div>'
else
ret[#ret+1]=getFooter(frame,pages,string.format(
'[[%s|%s]]',
pages.subpage,
expandArg(args,'footer')
))
end
returntable.concat(ret,'\n')..subPageTrackingCategories(pages,args.max,args.header)
end
functionp._nominate(args,frame)
frame=frameormw.getCurrentFrame()
localpages=getPages(args)
localret={}
ret[#ret+1]=getHeader(frame,pages,expandArg(args,'header'),args.headertemplate)
ret[#ret+1]=getRandomSubpageContent(frame,pages)
ret[#ret+1]=getFooter(frame,pages,string.format(
'[[/Nominasikan/%s|Usulkan]] • [[%s|%s]] ',
expandArg(args,'subpage'),
pages.subpage,
args.footeror'Arsip'
))
returntable.concat(ret,'\n')..subPageTrackingCategories(pages,args.max,args.header)
end
localfunctionmakeInvokeFunction(func)
returnfunction(frame)
localargs=require('Module:Arguments').getArgs(frame,{
trim=false,
removeBlanks=false,
wrappers={
'Template:Random portal component',
'Template:Random portal component/BHG-test',
'Template:Random portal component with nominate'
}
})
returnfunc(args,frame)
end
end
p.main=makeInvokeFunction(p._main)
p.nominate=makeInvokeFunction(p._nominate)
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan