ماڈیول:Portal/تختہ مشق

آزاد دائرۃ المعارف، ویکیپیڈیا سے

یہ ماڈیول باب اور تصویر دو کام کرتا ہے۔باب کا ایک ڈبہ مع ربط بابیا متعدد ابواب ہوتے ہیں اور اس کا استعمال {{باب}} سانچہ سے ہوتا ہے۔ یہ اکثر کسی مضمون میں "مزید دیکھیے" کی سرخی کے تحت شامل کیا جاتا ہے۔ تصویر خاص اس باب کی نمائندہ ہوتی ہے جس باب کا ربط دیا جاتا ہے۔

باب کا کام[ترمیم]

اس کا کام ایک ڈبے میں باب یا ابواب کے ربط/روابط ظاہر کرنا ہوتا ہے۔

اس ماڈیول کو ایک باب یا متعدد ابواب کے ربط کو ایک خانہ میں ظاہر کرنے کے لیے استعمال کیا جاتا ہے۔ یہ اکثر ایک مضمون کی "مزید دیکھیے" کی سرخی میں استعمال کیا جاتا ہے۔

استعمال[ترمیم]

بنیادی استعمال
{{باب |باب 1 |باب 2 |باب 3 |۔۔۔ }}
تمام اختیارات
{{باب
 | باب 1
 | باب 2
 | باب 3
 | ۔۔۔
 | left = 
 | margin = 
 | break = 
 | boxsize = 
}}

مقام[ترمیم]

مضامین کے اندر، یہ سانچہ مضمون کے نچلے حصے میں مزید دیکھیے کی سرخی میں رکھا جائے۔ اگر مزید دیکھیے کی سرخی نہیں ہے تو، سرخی؛ بیرونی روابط میں بھی رکھ سکتے ہیں; صرف اس ایک سانچہ کے لیے الگ سے کسی مزید نئی سرخی کی ضرورت نہیں ہے۔اگر بیرونی روابط کی سرخی نہ ہو، یا آپ اسے بیرونی روابط اور مزید دیکھیے کی جگہ نہ رکھنا چائیں تو مضمون کے اندر کسی ایسی خاص جگہ کا انتخاب کر سکتے ہیں، جس سے باب کو خاص نسبت ہو۔

صفحہ/مضمون میں سانچہ باب کے تعین مقام کے لیے کوئی باضابطہ اصول مقرر نہیں ہیں۔

تصویر[ترمیم]

باب کی تصاویر ماڈیول:Portal/images کے ذیلی صفحات میں ابواب کے عنوانات کی الفبائی ترتیب سے محفوظ کی جاتی ہیں۔مثال کے طور پر، اس باب:سائنس کا پہلا لفظ "س" ہے، تو اس طرح اس کی تصویر ماڈیول:Portal/images/س میں شامل ہے۔۔ اگر سانچہ باب میں درست عنوان دیا جائے تو تب ہی تصویر ظاہر گی، دوسری صورت میں ایک طے شدہ ملف باب File:Portal-puzzle.svg ظاہر ہو گی۔ مثال ←

It is also possible to specify aliases for portal images. For example, the code {{portal|Detroit}} produces the same image as the code {{portal|Metro Detroit}}۔ The "Detroit" alias is found on the page ماڈیول:Portal/images/aliases۔

The image-detection algorithm is case-insensitive. For example, the code {{portal|Detroit}} will produce the same image as the code {{portal|detroit}} (although the portal links will be different). Portal names are stored in lower case in the image subpages, and input is converted to lower case before being checked.

To add new images to the list, please make a protected edit request at Template talk:Portal to get an administrator to edit the correct subpage for you. Portal images must be either in the public domain or available under a free license that allows commercial reuse and derivative works; fair-use images are not acceptable.

List of image subpages
صفحہ تفصیل
ماڈیول:Portal/images/ا ا سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ب ب سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ت ت سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ث ث شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ٹ ٹ سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ج ج سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/چ چ سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ح ح سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/خ خ سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/د د سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ڈ ڈ سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ذ ذ سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ر ر سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ز ز سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ڑ ڑ سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ژ ژ سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/م م سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ن ن سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/و و سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ف ف سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ق ق سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ک ک سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/گ گ سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ق "ق" سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ہ "ہ" سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/ی "ی-ے" سے شروع ہونے والے ناموں کے ساتھ ابواب۔
ماڈیول:Portal/images/دیگر دیگر علامات، حروف تہجی سے شروع ہونے والے ناموں کے ساتھ ابواب۔ یا کوئی بھی دیگر۔. This includes numbers, letters with diacritics, and letters in non-Latin alphabets.
ماڈیول:Portal/images/عرفیت For adding aliases for existing portal names. Use this page for variations in spelling and diacritics, etc., no matter what letter the portal begins with.

مثال[ترمیم]

ترمیز نتیجہ
 {{باب|سائنس}}

ترمیزات[ترمیم]

نام قدر تفصیل
1, 2, 3 ... The portal name, e.g. Literature The positional parameters specify the portals to be displayed.
left yes If set to yes, the portal appears on the left side of the page instead of the right.
margin CSS margin value, e.g. 1.2em 3em 0.5em 1em This allows you to set a custom margin. All valid CSS margin values are accepted.
break yes If set to yes, a line break is inserted after the portal name and before the word portal.
boxsize Size in pixels, e.g. 300 This sets a custom box width in pixels.

دیکھ بھال[ترمیم]

The following tracking category lists instances where the ماڈیول is used incorrectly:

مزید دیکھیے

باب کا ڈھانچہ تیار کرنے والے سانچہ جات
  • {{Box portal skeleton}} - باب کا ڈھانچہ بنانے کے لیے استعمال کیا جاتا ہے۔
  • {{Random portal component}} - باب صفحہ پر، باب کے ذیلی صفحات کو بدل بدل کر ظاہر کرنے کے لیے استعمال کیا جاتا ہے۔
  • {{Random portal component with nominate}} - باب کے صفحہ پر منتخب مواد/ مضمون کو بدل بدل کر ظاہر کرنے کے لیے استعمال کیا جاتا ہے۔ from the portal sub-pages, adding the option to nominate other Featured foo articles.
  • {{Random subpage}} - Used on the portal main page to randomly display articles from the portal sub-pages. This template is best used for creating randomly populated Did you know... sections on the portal main page that are intended to include multiple Did you know... facts.
  • {{Subpage}} - Used to output a box containing a link to subpage.
  • {{Numbered subpages}} - Used to create article links on portal sub-pages with 50 روابط ہوں
  • {{Random box-header subpage}} - Used to transclude a numbered subpage.
باب کے مرکزی صفحہ کی ہیئت؛ شکل؛ وضع؛ ترتیب بندی کے لیے سانچہ جات
3
روابط کو ترتیب دینے کے لیے سانچہ جات
3
یہ سانچہ جات باب کے ذیلی صفحات کی ہیئت؛ شکل؛ وضع؛ ترتیب بندی وغیرہ کے لیے ہیں

{{Selected X}} - Generic template for situations not listed hereafter.

3
منسلکہ سانچہ جات
TemplateData

A template to create a list of portals

محددات سانچہ[انتظام TemplateData]

پیرامیٹروضاحتطرزحالت
Portal (1)1

Inserts the portal image and text. Further portals can be added to the template by increasing the number

اِسٹرنگمطلوب
Portal (2)2

Insert the portal image and text

اِسٹرنگاختیاری
Portal (3)3

Insert the portal image and text

اِسٹرنگاختیاری
Sideleft

If set to yes, the portal appears on the left side of the page instead of the right.

طے شدہ
no
اِسٹرنگاختیاری
Margin sizemargin

Alters the margin size. Any valid CSS margin is accepted

عدداختیاری
Line breakbreak

If set to yes, a line break is inserted after the portal name and before the word portal

اِسٹرنگاختیاری
Box sizeboxsize

This sets a custom box width in pixels.

عدداختیاری

تصویر کا کام[ترمیم]

یہ اس باب یا ابواب کی نمائندہ تصویر یا تصاویر ظاہر کرتا ہے جس باب یا جن ابواب کے رواب دیئے گئے ہوں۔

استعمال[ترمیم]

{{#invoke:Portal|image|باب}}

مثال[ترمیم]

  • {{#invoke:Portal|image|فن}} → Portal-puzzle.svg

Image dupes function[ترمیم]

The image dupes function returns a list of all images that are being used by more than one portal (aliases are not included)۔ This can be helpful in identifying image entries that should be changed to use aliases۔

استعمال[ترمیم]

{{#invoke:Portal|imageDupes}}

Display all function[ترمیم]

The display all function returns a box containing all portals that have images. This is used for maintenance, and should not be displayed in articles, because a) there are around 1500 portals with images, and displaying 1500 images on one page takes up a lot of server resources, and b) the module has no way to know the correct capitalisation of a portal name, so some links to portals will be broken. This function can be seen at سانچہ:باب/دستاویز/تمام۔

استعمال[ترمیم]

{{#invoke:Portal|displayAll}}
require('Module:No globals')
--esportazione delle funzioni del modulo
local p = {}

-- testo per il messaggio di errore se non ci sono parametri o sono tutti non esistenti
local novalid_parameter = {
	'Il [[Template:Portal]] necessita di almeno un argomento!',
	'Non sono stati inseriti portali validi nel [[Template:Portal]]'
}

-- layout per i portali (dato che le stringhe saranno usate in una funzione mw.ustring.format 
-- la coppia di caratteri '%s' è il segnaposto per una stringa, mentre per inserire il 
-- carattere % normalmente lo si deve inserire raddoppiato
local row_portals = {
	--1 portal (segnaposto vuoto, è gestito a parte)
	'',
	-- 2 portal
	[=[<tr><td style="padding-left:3px; width:50%%;">%s</td><td style="padding-right:3px; width:50%%;">%s</td></tr>]=], 
	-- 3 portal
	[=[<tr><td style="padding-left:3px; width:33%%;">%s</td><td style="padding-right:3px;  
		padding-left:3px; width:33%%;">%s</td>	<td style="padding-right:3px; width:33%%;">%s</td></tr>]=],
	--4 portal
	[=[<tr><td style="padding-left:3px; width:50%%;">%s</td><td style="padding-right:3px; width:50%%;">%s</td></tr>
		<tr><td style="padding-left:3px;">%s</td><td style="padding-right:3px;">%s</td></tr>]=],
	-- 5 portal
	[=[<tr><td style="padding-left:3px; width:33%%;" colspan="2">%s</td>
		<td style="padding-right:3px; padding-left:3px; width:33%%;" colspan="2">%s</td>
		<td style="padding-right:3px; width:33%%;" colspan="2">%s</td></tr>
		<tr><td style="padding-left:3px; width:50%%;" colspan="3">%s</td>
		<td style="padding-right:3px; width:50%%;" colspan="3">%s</td></tr>]=],
	--6 portal
	[=[<tr><td style="padding-left:3px; width:33%%;">%s</td>
		<td style="padding-right:3px; padding-left:3px; width:33%%;">%s</td>
		<td style="padding-right:3px; width:33%%;">%s</td></tr>
		<tr><td style="padding-left:3px;">%s</td>
		<td style="padding-right:3px; padding-right:3px;">%s</td>
		<td style="padding-right:3px;">%s</td></tr>]=]
}

-- Stringhe specifiche per alcuni portal, quando questi sono gli unici del template
local single_portal = {
	['L\'Aquila'] = "accedi alle voci di Wikipedia che parlano dell'Aquila",
	['Astronomia'] = "accedi alle voci di Wikipedia che trattano di astronomia e astrofisica",
	['Bergamo'] = "accedi alle voci di Wikipedia su Bergamo e sul suo territorio",
	['Brazil'] = "accedi alle voci di Wikipedia che parlano del Brasile",
	['Chemistry'] = "il Portal della scienza della composizione, delle proprietà e delle trasformazioni della materia",
	['Comunità'] = "entra nella comunità degli autori di Wikipedia",
	['LGBTQ'] = "le voci di Wikipedia dedicate al mondo gay, lesbico, bisex, trans e queer",
	['Nordafrica'] = "accedi alle voci di Wikipedia che parlano del Nordafrica",
	['Oggetti del profondo cielo'] = "accedi alle voci di Wikipedia che trattano di oggetti non stellari",
	['portal'] = "accedi ai [[WP:Portal|portal]] di Wikipedia",
	['Progetti'] = "partecipa ai [[WP:Progetto|progetti]] di Wikipedia",
	['Punk'] = "accedi alle voci di Wikipedia che parlano di musica punk",
	['Sistema solare'] = "accedi alle voci di Wikipedia sugli oggetti del Sistema solare",
	['Stelle'] = "accedi alle voci di Wikipedia che trattano di stelle e costellazioni",
	['Telematica'] = "accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete",
}

-- funzione di utilità per aggiungere elementi a una tabella
local function dump(t, ...)
	local args = {...}
	for _, s in ipairs(args) do
		table.insert(t, s)
	end
end

-- Wrapper di mw.title.exists, verifica sia che name sia valido, sia che esista
local function titleExists(name)
	local title = mw.title.new(name)
	return title and title.exists
end

-- restituisce una categoria di errore solo in ns0
local function get_error_category()
	return mw.title.getCurrentTitle().namespace == 0 and
		   '[[زمرہ:Errori di compilazione del template portal]]' or ''
end

-- funzione princpale
function p.portal(frame)
	local getArgs = require('Module:Arguments').getArgs
	local args = getArgs(frame, {removeBlanks = false})
	local lang = mw.language.getContentLanguage()
	local portals = {}
	local bad_portals = {}
	-- tabella per raccogliere gli errori
	local errors_msg = {}

	-- raccoglie in portals e bad_portals i nomi dei portal passati al modulo,
	-- ignorando quelli valorizzati a stringa vuota
	for i, arg in ipairs(args) do
		if arg ~= '' then
			if #portals < 6 then
				local ucarg = lang:ucfirst(arg)
				if titleExists('Portal:' .. ucarg) then
					table.insert(portals, { ucname=ucarg, name=arg })
				else
					table.insert(bad_portals, ucarg)
				end
			else
				dump(errors_msg, 'Il template accetta al massimo sei portal')
				break
			end
		end
	end

	-- ritorna un messaggio di errore se non sono rimasti portal validi
	if #portals == 0 then
		return mw.getCurrentFrame():expandTemplate({
					title = 'انتباہ',
					args = { type = 'important',
							 testo= novalid_parameter[(#bad_portals == 0 and 1) or 2]
							}
					}) .. get_error_category()
	end
	-- ordina alfabeticamente i nomi
	table.sort(portals, function(a, b) return a.ucname < b.ucname end)
	local reply = { '<table class="noprint" style="width:100%;>'}
	-- Se un solo Portal valido tratto a parte
	if #portals == 1 then
		local ucname = portals[1].ucname
		dump(reply, '<tr><td>', mw.getCurrentFrame():expandTemplate({
				title = 'loop',
				args = { icona = portals[1].ucname,
						 title = mw.ustring.format('[[portal:%s|portal %s]]', ucname, ucname),
						 frase = single_portal[ucname] or mw.ustring.format('accedi alle voci di Wikipedia che trattano di %s', portals[1].name)
					}
				}), '</tr></td>')
	else -- da 2 a 6 portal
		-- genero tutti gli occhielli di collegamento in una lista
		local text = {}
		for _,portal in ipairs(portals) do
			text[#text+1] = mw.getCurrentFrame():expandTemplate({
					title = 'loop',
					args = { icona = portal.ucname,
							 title = mw.ustring.format('[[portal:%s|portal %s]]', portal.ucname, portal.ucname)
						}
					})
		end
		-- carica gli occhielli generati nella tabella di layout
		dump(reply, mw.ustring.format(row_portals[#portals], unpack(text)))
	end
	dump(reply, '</table>')
	-- aggiunge i messaggi di errore per portal non esistenti
	if #bad_portals > 0 then
		if #bad_portals == 1 then
			dump(errors_msg, mw.ustring.format('Il portal %s non esiste', bad_portals[1]))
		else
			dump(errors_msg, mw.ustring.format('I portal: %s non esistono', mw.text.listToText(bad_portals) ))
		end
	end
	for pos, msg in ipairs(errors_msg) do
		errors_msg[pos] = mw.ustring.format('<strong class="error">%s</strong>', msg)
	end
	local error_msg = table.concat(errors_msg, '<br />')
	if #errors_msg > 0 then
		error_msg = error_msg .. get_error_category()
	end
	return table.concat(reply) .. error_msg
end

return p