وحدة:حزب سياسي
صُنّفت هذه الوحدة على أنها في المرحلة النهائية. في هذه المرحلة تكون الوحدة وصلت لنقطة يمكن أن تستخدم في أي صفحة أو أي نطاق. كما أنها تؤدي الهدف الذي بنيت من أجله ولا توجد أي أخطاء بها. يمكن أن يشار إلى هذه الوحدة في صفحات المساعدة أو أي صفحات إرشادية على ويكيبيديا، كما يمكن أن توضع كأمثلة للجدد ليتعلموا منها. |
هذه الوحدة مستخدمة في عدد كبير من الصفحات . لتفادي خلق بلبلة على نطاق واسع من الصفحات وزيادة الأعباء على الخوادم، يجب تجربة أي تعديل في هذه الصفحات الفرعية /ملعب أو /تجربة أو في ملعبك. بعدها يمكنك اضافة التعديلات دفعة واحدة، ورجاءً، لا تنسَ مناقشة أمر التعديلات أوّلًا قبل القيام بها. |
هذه الوحدة تعتمد على الوحدات الأخرى التالية: |
الاستخدام
[عدل]{{#استدعاء:حزب سياسي|fetch}}
الوسائط
[عدل]المعيار | الوصف |
---|---|
1 | اسم الحزب السياسي. إذا لم يُعثر على الحزب ضع طلبًا في صفحة النقاش. |
2 | القيمة المطلوبة. القيم المدعومة حاليًا هي الاسم المختصر واللون والاسم القصير .
|
خطأ | اختياري، سيُرجع هذا المعيار القيمة المقدمة |خطأ= إذا كانت الوحدة لا تحتوي على الحزب أو اللون المطلوب.
|
تحديث الوحدة
[عدل]تُقسَّم الأحزاب السياسية الواردة في هذه الوحدة إلى قوائم مرتبة أبجديًا بناءً على الحرف الأول من الاسم (على سبيل المثال، سيكون "حزب العمال (المملكة المتحدة)" {Labour Party (UK)} في /L). الصفحة الفرعية /1 مخصصة لأي حزب لا يبدأ بالأحرف الغربية A-Z (بما في ذلك الأرقام والأحرف المعلمة)
يوجد داخل كل وحدة بيانات فرعية مجموعتان محليتان: local alternate
و local full
. المجموعة البديلة هي لأسماء بديلة للحزب. فيما يلي مثال على الأسماء البديلة لحزب العمال (المملكة المتحدة) {Labour Party (UK)}:
local alternate = {
....
["Labour and Co-operative"] = "Labour Party (UK)",
["Labour Co-operative"] = "Labour Party (UK)",
...
}
الإدخال الأول بين قوسين مربعين هو الاسم البديل، والإدخال الثاني فقط بين علامتي الاقتباس هو الاسم الموجود في المجموعة الكاملة full
، كما هو موضح أدناه. لاحظ أنه يجب تخزين الاسم البديل للحزب في الصفحة الفرعية المقابلة التي تعتمد على الحروف؛ أُدرج "حزب ألاباما الديمقراطي" {Alabama Democratic Party} في /A على الرغم من أنه اسم بديل لـ "الحزب الديمقراطي (الولايات المتحدة)" {Democratic Party (US)} (المخزن في /D).
local full = {
....
["Labour Party (UK)"] = {abbrev = "Lab", color = "#E4003B", shortname = "Labour",},
...
}
قيم الجدول
[عدل]هناك ثلاث قيم مخزنة لكل حزب:
- الاختصار (
abbrev
). - لون الحزب (
color
)، والذي يمكن أن يكون إما هيكس ثلاثي أو اسم لون أساسي. - اسم أقصر للحزب (
shortname
).
إذا لم يتم تخزين قيمة اسم لحزب ما، ستحاول الوحدة إرجاع متغير الاسم "القصير" الآخر قبل إعادة الإدخال. وبالتالي إذا تم تخزين الاختصار (abbrev
) ولكن لم يتم تخزين الاسم القصير (shortname
) فبغض النظر عن القيمة المطلوبة فإنه سيعيد قيمة الاختصار (abbrev
).
طلب إضافة أو تغيير
[عدل]Requests should be made at the talk page in a new section. Copy the following line and fill in only the fields relevant to the party. A party name is required as is at least one other piece of information. See above for information regarding each value.
["party"] = {abbrev = "", color = "", shortname = "",},
رسائل الخطأ
[عدل]+ رسائل الخطأ والحلول | الرسالة | الحل |
---|---|---|
Lua error: bad argument #1 to 'sub' (string expected, got table). | An entry intended for the "local full" section has been placed into the "local alternate" section. Move it to the "local full" section | |
Lua error in package.lua at line 80: module 'Module:Political party/' not found. | Party added to alternate list with empty value. | |
Value not in template. Please request that it be added. (article search) | The party in question has an entry with no color in the "local full" section. (This can be caused by duplicate entries in "local full" that, if present, should be merged.) | |
(no error message, but party color is white/blank) | Add a color for the party to its entry in the "local full" section in the relevant Module:Political party/ lettered data page (see links below). | |
parameter 1 should be a party name (article search) | A template is trying to feed a missing parameter to the module. Work around this by testing for the parameter in the template. | |
parameter 2 should be the output type (article search) |
صفحات البيانات
[عدل]- حزب سياسي/1
- حزب سياسي/A
- حزب سياسي/B
- حزب سياسي/C
- حزب سياسي/D
- حزب سياسي/E
- حزب سياسي/F
- حزب سياسي/G
- حزب سياسي/H
- حزب سياسي/I
- حزب سياسي/J
- حزب سياسي/K
- حزب سياسي/L
- حزب سياسي/M
- حزب سياسي/N
- حزب سياسي/O
- حزب سياسي/P
- حزب سياسي/Q
- حزب سياسي/R
- حزب سياسي/S
- حزب سياسي/T
- حزب سياسي/U
- حزب سياسي/V
- حزب سياسي/W
- حزب سياسي/X
- حزب سياسي/Y
- حزب سياسي/Z
القيم العربية
[عدل]تستخدم وحدة:حزب سياسي/getalternate لمعرفة الأحزاب التي لا توجد في وحدة:حزب سياسي/1 والتي تحتاج لإضافة اسمها العربي في هذه الصفحة نقاش الوحدة:حزب سياسي/getalternate/مختبر.
local p = {}
local default_color = '#F8F9FA'
local categories = {
party_not_in_list = '[[تصنيف:صفحات تستخدم وحدة:حزب سياسي بحزب غير معروف]]',
shortname_not_in_list = '[[تصنيف:صفحات تستخدم وحدة:حزب سياسي باسم مختصر مفقود]]',
color_not_in_list = '[[تصنيف:صفحات تستخدم وحدة:حزب سياسي بلون مفقود]]',
}
local function create_error(error_message)
return string.format('<strong class="error">%s</strong>', error_message)
end
local function getFirstLetter(party)
local index = mw.ustring.sub(party, 1, 1)
-- Set index for non-A-Z starts
if string.match(index, '%A') then
return '1'
end
return string.upper(index)
end
local function stripToNil(text)
-- If text is a string, return its trimmed content, or nil if empty.
-- Otherwise return text (which may, for example, be nil).
if type(text) == 'string' then
text = text:match('(%S.-)%s*$')
local delink = require('وحدة:Delink')._delink
text = delink({text, wikilinks = "target"})
end
return text
end
-- Example of having all the data - color and names - in one table. Requires one page to be edited instead of two when adding a new party.
function p._fetch(args)
if not args[1] then
return create_error("الوسيط 1 يجب أن يكون اسم الحزب.")
end
if not args[2] then
return create_error("الوسيط 2 يجب أن يكون نوع المخرج.")
end
local party = stripToNil(args[1])
local out_type = stripToNil(args[2])
if out_type == 'colour' then
out_type = 'color'
end
local index = getFirstLetter(party)
-- Load data from submodule
local data = mw.loadData('وحدة:حزب سياسي/' .. index)
local data_all = data.full
local party_alt = data.alternate[party]
local party_info
if party_alt then
if data_all[party_alt] then
party_info = data_all[party_alt]
else
index = getFirstLetter(party_alt)
data = mw.loadData('وحدة:حزب سياسي/' .. index)
party_info = data.full[party_alt]
end
else
party_info = data_all[party]
end
-- Check if database value exists
-- * Not even in database - return given error or input
-- * No color - return error
-- * No shortname/abbrev - return first non-blank of abbrev->shortname->input
if not party_info then
if out_type == 'color' then
return args.error or default_color
else
return args.error or party
end
end
local return_value = party_info[out_type]
if return_value == "" then
if out_type == 'color' then
return args.error or create_error("القيمة ليست في القالب. فضلًا اطلب إضافتها.")
elseif out_type == 'abbrev' then
if party_info.shortname ~= "" then
return party_info.shortname
else
return party
end
elseif out_type == 'shortname' then
if party_info.abbrev ~= "" then
return party_info.abbrev
else
return party
end
else
return party
end
end
if out_type == 'color' and string.find(return_value, '#') then
return_value = string.gsub(return_value, '#', '#')
end
return return_value
end
function p.fetch(frame)
-- Initialise and populate variables
local getArgs = require("وحدة:Arguments").getArgs
local args = getArgs(frame)
return p._fetch(args)
end
return p