وحدة:Ill-WD2

من موسوعة المزرعة
اذهب إلى التنقل اذهب إلى البحث

الهدف من القالب[عدل]

يستخدم هذا القالب كما قالب {{وصلة إنترويكي}} ولكن يعتمد هذا القالب بشكل أساسي على عنصر ويكي بيانات الذي يتم وضعه في القيمة الثانية |id=Q001 عند وجود قيمة للوسيط الأول |1=وصلة أو يوضع في الوسيط |id=Q001 عند عدم وجود أول قيمة، فإن كانت هناك وصلة في ويكي بيانات فستظهر عند عدم وضع وصلة محلية، أو تظهر بدل ذلك الوصلة التي توضع في الوسيط الأول |1=وصلة.

  • سؤال: لماذا هذا القالب؟!
    • جواب: للتأكد من أن المقالة ربطت بالمقالة المطلوبة، حتى عند وجود تكرار في الإسم أو الوصلة، حيث أن القالب لا يظهر الصفحة في تصنيف:صفحات بها وصلات للإزالة إلا عند ارتباط مقالة في العنصر المطلوب في ويكي بيانات.

الاستعمال[عدل]

  • الوسيط |id= يجب أن يستخدم كشرط أساسي لعمل القالب.

استخدام |نص=[عدل]

  • يمكن استخدام |نص= في جميع الحالات التي ينتج فيها القالب وصلة، سواء حمراء أم زرقاء.
    • {{Ill-WD2|جائزة الرئيس|id=Q17011862}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
    • {{Ill-WD2|id=Q76|نص=أوباما}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).

وصلة موجودة في ويكي بيانات[عدل]

  • عند وجود وصلة في ويكي بيانات سيتجاهل القالب عمل الوسائط |1= و|target= و|en=.
    • {{Ill-WD2|id=Q76}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
  • استعمال |1= (يقوم القالب بتجاهله لوجود وصلة في ويكي بيانات) :
    • {{Ill-WD2|أوباما|id=Q76}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
    • {{Ill-WD2|أوباما|target=fa|id=Q76}} ينتج: ← خطأ لوا في السطر 99: attempt to index field 'wikibase' (a nil value).
  • يمكن استعمال |نص= (ليظهر مكان الوصلة) :
    • {{Ill-WD2|id=Q76|نص=أوباما}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
    • {{Ill-WD2|id=Q21857932}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
    • {{Ill-WD2|id=Q21857932|نص=2017}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).

عدم وجود وصلة في ويكي بيانات[عدل]

استخدام |en=[عدل]

  • يمكن استخدام |en= في جميع حالات عدم وجود وصلة عربية في ويكي بيانات:
    • يظهر هذا الوسيط التسمية الإنجليزية في ويكي بيانات عند عدم استخدام |1= وعدم وجود تسمية عربية.
      • {{Ill-WD2|id=Q1153257|en=true}} ينتج: ← خطأ لوا في السطر 99: attempt to index field 'wikibase' (a nil value).
      • {{Ill-WD2|id=Q21475076|en=true}} ينتج: ← خطأ لوا في السطر 99: attempt to index field 'wikibase' (a nil value).
  • إذا أردنا إستخدام تسمية غير الإنجليزية فيمكن استخدام الوسيط |target=.

استخدام |target=[عدل]

القيم المستخدمة: رمز لغة.

  • يظهر الوسيط الوصلة إلى ويكي بيانات أو إلى أحد الموسوعات الشقيقة للمقالة التي نريد.
  • يمكن استخدام |لغ= أو |target= في جميع حالات عدم وجود وصلة عربية في ويكي بيانات:
وجود تسمية عربية في ويكي بيانات أو بإستخدام |1=
  • {{Ill-WD2|id=Q17011862|target=en}} ينتج: ← خطأ لوا في السطر 19: attempt to index field 'wikibase' (a nil value).
  • {{Ill-WD2|جائزة الرابطة الوطنية لتقدّم الملونين|target=fa|id=Q1153257}} ينتج: ← خطأ لوا في السطر 99: attempt to index field 'wikibase' (a nil value).
عدم وجود تسمية عربية
  • {{Ill-WD2|id=Q1153257|target=en}} ينتج: ← خطأ لوا في السطر 19: attempt to index field 'wikibase' (a nil value).
  • {{Ill-WD2|id=Q1153257|target=fa|en=true}} ينتج: ← خطأ لوا في السطر 99: attempt to index field 'wikibase' (a nil value).
  • عند عدم استخدام |en= سيظهر التسمية التي نضع رمز لغتها:
    • {{Ill-WD2|id=Q1153257|target=fa}} ينتج: ← خطأ لوا في السطر 99: attempt to index field 'wikibase' (a nil value).
  • عند استخدام رمز لغة خاطئ
    • باستخدام |en= لإضافة التسمية الإنجليزية {{Ill-WD2|id=Q1153257|target=fai|en=true}} ينتج: ← خطأ لوا في السطر 99: attempt to index field 'wikibase' (a nil value).
    • {{Ill-WD2|id=Q1153257|target=fai}} ينتج: ← خطأ لوا في السطر 99: attempt to index field 'wikibase' (a nil value).

تسمية عربية أو |1=[عدل]

النص يساوي مقالة موجودة[عدل]
(مع استخدام |id= للعنصر (Q6262037))
  • عند وجود تسمية عربية تساوي (جون جونز) أو أستخدمنا |1=جون جونز:
  • سيتجاهل القالب عمل وصلة إلى "جون جونز" بسبب وجود مقالة جون جونز تحمل هذا الاسم في ويكبيديا العربية وهي مرتبطة بعنصر آخر في ويكي بيانات:
وستظهر الصفحة في تصنيف:وصلات إنترويكي بحاجة لمراجعة.
توصيف يظهر
{{Ill-WD2|id=Q6262037}}
خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
توصيف يظهر
{{Ill-WD2|جون جونز|id=Q6262037}}
خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
توصيف يظهر
{{Ill-WD2|اليمن|target=en|id=Q6262037}}
خطأ لوا في السطر 19: attempt to index field 'wikibase' (a nil value).

  • استخدام |1=جون جونز (فيزيائي) لنفس العنصر:
    • {{Ill-WD2|جون جونز (فيزيائي)|id=Q6262037}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
    • {{Ill-WD2|جون جونز (فيزيائي)|نص=جون جونز|id=Q6262037}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
    • {{Ill-WD2|جون جونز (فيزيائي)|نص=جون جونز|target=en|id=Q6262037}} ينتج: ← خطأ لوا في السطر 19: attempt to index field 'wikibase' (a nil value).
النص لا يساوي مقالة موجودة[عدل]
  • مع وجود تسمية عربية:
    • {{Ill-WD2|id=Q17011862}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
    • {{Ill-WD2|id=Q17011862|target=en}} ينتج: ← خطأ لوا في السطر 19: attempt to index field 'wikibase' (a nil value).
    • {{Ill-WD2|جائزة الرئيس|id=Q17011862}} ينتج: ← خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).

أمثلة أخرى[عدل]

  • عدم وجود تسمية عربية وعدم استخدام |1=:
توصيف يظهر
{{Ill-WD2|id=Q1153257}}
خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).

y[عدل]

  • |y=أي قيمة يستخدم عند الرغبة في إظهار السنة فقط إن كانت موجودة وإن لم تكن موجودة يظهر الوصلة كما هي، تستخدم غالبا في قوالب السباقات مثل : قالب:طواف لومبارديا
  • مثال بدون استخدام الوسيط :
توصيف يظهر
{{Ill-WD2|id=Q29456648}}
خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).
  • مثال يستخدم الوسيط:
توصيف يظهر
{{Ill-WD2|id=Q29456648|y=true}}
خطأ لوا في السطر 124: attempt to index field 'wikibase' (a nil value).

ملاحظة[عدل]

تصنيفات التتبع[عدل]

وسائط[عدل]


local p = {}
local wd2 = require('Module:wikidata2')
local Frame;
local Category = {}
Category["remove"] = " [[تصنيف:صفحات بها وصلات للإزالة]]"
Category["review"] = " [[تصنيف:وصلات إنترويكي بحاجة لمراجعة|%s]]"
Category["nositelinks"] = " [[تصنيف:صفحات بها قالب:Ill-WD2 دون وصلات لغات|%s]]"
Category["add"] = "[[تصنيف:صفحات بها وصلات إنترويكي|%s]]"

function makeCategory(key,args)
	line = Category[key]
	if key ~= 'add' and Frame.args["nocat"] and Frame.args["nocat"] ~= '' then
		return ''
	end
	return line
end
	
function labelIn(langcode,id)
	local label, lange = mw.wikibase.getLabelWithLang( id )
	if lange == langcode
	then
		return label
	else
		--mw.log("Module:Ill-WD2: label = " ..label .. "lange = " ..lange .. "langcode = " .. langcode)
		return ""
	end
end
function maketext(String)
	local y = Frame.args["y"]
	local text = Frame.args["text"] or Frame.args["نص"]
	if text and text ~= ""  then
			return text 
	elseif y and y ~= ""  then
		String2 = mw.ustring.gsub( String , '–', '-' )
		ca = mw.ustring.match( String2 , "%d%d%d%d%-%d%d%d%d", 1 ) or mw.ustring.match( String2 , "%d%d%-%d%d%d%d", 1 ) or mw.ustring.match( String2 , "%d%d%d%d%-%d%d", 1 )
		ca = ca or mw.ustring.match( String2 , "%d%d%d%d", 1 ) or  String
		return ca
	end	
	return String
end

function make_suffix(id , target_Site , target_Link , sitelinks_count, fromlua) 
	if sitelinks_count == 0 then
		if fromlua == "" then 
			return string.format(makeCategory("nositelinks") , ( id or "1" ) )
		end
	end
	local other_lang = '"'.. id ..'" في لغات أخرى'
	--local other_lang = '<span title="'.. other_lang ..'">لغات أخرى</span>'
	--local other_lang =  mw.text.tag('span', {title= other_lang }, "لغات أخرى")
	local other_lang =  '<sup class=reference title="'.. other_lang..'">[لغات أخرى]</sup>'

	local other_lang_text = '&nbsp;[[d:'.. id ..'#sitelinks-wikipedia|' ..other_lang..']]'
	--local suff = '<span class="noprint" style="font-size: smaller; font-style: normal; font-weight: normal;">' .. other_lang_text.. '</span>'
	local suff = '' .. mw.text.tag('span'
		, {class= "noprint"
		, style="font-size: smaller; font-style: normal; font-weight: normal;"}
		, other_lang_text)
	
	if (target_Link and target_Link ~= "") and (target_Site and target_Site ~= "") then
		--language = '{{#language:'.. target_Site ..'|ar}}'
		language = Frame:callParserFunction('#language', target_Site , "ar")
		suff = '[[:'.. target_Site ..':'.. target_Link ..'|<sup class=reference title="'.. target_Link ..'">['.. language ..']</sup>]]'
	end
	--suffe = Frame:preprocess("&nbsp;" .. suff) --suff
	suffe = "&nbsp;" .. suff
	tt =  string.format (makeCategory("add") , ( id or "1" ) )
	if fromlua == "" then tt = "" end
	return suffe .. tt
end

function make_ar_link(title, suffix,id, sitelinks_count,fromlua)
	local text = maketext(title)
	local link;
	local tit = mw.title.new(title)
    local cate = string.format (makeCategory("review") , ( id or "1" ) )

    local nositelinks = string.format(makeCategory("nositelinks") , ( id or "1" ) )

    if fromlua == "" then 
           cate = "" 
           nositelinks = ""
    end
	if tit and tit.exists then
		link = text .. suffix .. cate
        mw.log( 'Module:Ill-WD2: review "' .. title .. '", id: ' .. id)
        --mw.log(cate)
	else
		title = mw.ustring.gsub(title , "^تصنيف:", "")
		text = mw.ustring.gsub(text , "^تصنيف:", "")
		link = '[[' .. title .. "|" .. text .. "]]" .. suffix
	end
	if sitelinks_count == 0 then link = text .. suffix end
	return link
end

function sitelink( id , site )
	local site = site or 'arwiki'
	local link = mw.wikibase.sitelink( id , site ) or ""
	--mw.log("Module:Ill-WD2: mw.wikibase.sitelink : " .. link)
	return link
end

function p.link(frame)
	Frame = frame;
	local target_label;
	local ar_link;
	local en_label = ""
	local pframe = frame:getParent()
    Frame = pframe
	local fromlua = pframe.args["fromlua"] or ""
	local id = pframe.args["id"] or pframe.args[2]
	if not id or id == "" then return "No ID" end
	local lab_1 = pframe.args[1] or pframe.args["label"]
	local target_SiteLink = ""
	local target = pframe.args["target"] or pframe.args["لغ"] or ""
	if pframe.args["en"] and pframe.args["en"] ~= "" then
		 target = "en" 
		 --mw.log("Module:Ill-WD2: target = en" )
	elseif target == "en" then
		 en_label = labelIn("en",id)
		end
	if target ~= "" then target_SiteLink = sitelink( id , target .. "wiki" ) end
	local SiteLink =  mw.wikibase.sitelink( id )
	local sitelinks_count =  wd2.countSiteLinks( id )
	if SiteLink 
		then 
			Link = '[[' .. SiteLink .. "|" .. maketext(SiteLink) .. "]]"
			mw.log("Module:Ill-WD2: remove: " .. id )
			return Link .. makeCategory("remove")
	end
	local ar_label = labelIn("ar",id)
	local suffix = make_suffix(id , target , target_SiteLink , sitelinks_count, fromlua )
	if lab_1 and lab_1 ~= "" 
		then ar_link = lab_1 
	elseif ar_label ~= ""
		then ar_link = ar_label
	end
	if ar_link and ar_link ~= "" then
		--mw.log("Module:Ill-WD2: ar_link : " .. ar_link)
		return make_ar_link(ar_link , suffix , id , sitelinks_count,fromlua )
	end
	if en_label ~= ""  then
		--mw.log("Module:Ill-WD2: en_label " .. en_label)
		return maketext(en_label) ..  make_suffix(id , "" , "" , sitelinks_count , fromlua )
	end
	if target ~= "" and target_SiteLink ~= "" then
		--mw.log("Module:Ill-WD2: target " .. target .. ": " .. target_SiteLink)
		return maketext(target_SiteLink) .. suffix
	end
	--mw.log("Module:Ill-WD2: nothing en_label: " .. en_label  )
	return ""
end

return p