Modül:Siyasi parti
Bu modül şu Lua modüllerini kullanıyor: |
Bu modül genel kullanıma yöneliktir. Tam sürüme ulaştığı, hatasız olarak ilgili maddelerde kullanıma hazır olduğu düşünülmektedir. Modül üzerinde yapılacak deneme-yanılma değişiklikleri için sunucu yükünü azaltmak ve değişiklik süresince hatalı görünümlerden kaçınmak adına deneme tahtası kullanılması önerilir. |
Bu Lua modülü çok sayıda sayfada kullanılmaktadır. Bundan dolayı üzerinde yapılan değişiklikler hemen fark edilecektir. Lütfen yapacağınız değişiklikleri öncelikle şablonun deneme tahtası ile test senaryosu alt sayfalarında ya da kendi kullanıcı sayfanızda test ediniz. Eğer yapmayı planladığınız değişiklikler ile istediğiniz sonucu elde edemiyorsanız tartışma sayfasında görüş alışverişinde bulununuz. |
Kullanım
[kaynağı değiştir]{{#invoke:Siyasi parti|fetch|<parti>|<değer>}}
Parametreler
[kaynağı değiştir]Modüle veri eklenmesi
[kaynağı değiştir]Modülde bulunan siyasi partiler, baş harflerine göre modüle eklenir. Örneğin "Cumhuriyet Halk Partisi", Modül:Siyasi parti/C alt sayfasında bulunur. Adı İngiliz alfabesinde bulunan 26 harf dışındaki harfler, sayılar ve diğer sembollerle başlayan partiler, Modül:Siyasi parti/1 alt sayfasına eklenmelidir.
Veriler iki gruba ayrılır: local alternate
ve local full
.
Alternatif parti adları
[kaynağı değiştir]Siyasi partilerin alternatif adlarını belirlemek için kullanılır. Bu veri, partinin kısaltması değildir.
local alternate = {
....
["Parti adı"] = "Partinin alternatif adı",
...
}
Tablo verileri
[kaynağı değiştir]local full = {
....
["Adalet ve Kalkınma Partisi"] = {kisaltma = ", renk = "#ff8700", kisaad= "AK Parti",},
...
}
Her parti için üç değer vardır:
- Partinin kısaltması (
kisaltma
) - Partinin rengi. Renkler hex üçlüsü ya da basit renk adları olarak yazılmalıdır. (
renk
) - Partinin kısa adı (
kisaad
)
Bu parametrelere eklenen değerlerin, bir tarafın birincil adından farklı olarak, bu modüldeki diğer taraflardan farklı olması gerekmez.
Bir taraf için bir ad değeri eklenmemişse modül girdiyi çevirmeden önce diğer "kısa"ad varyantını çevirmeye çalışacaktır. Bu nedenle, kisaltma
varsa ancak kisaad
yoksa hangi değer sorulursa sorulsun kisaltma
değerini çevirecektir.
Ekleme veya değişiklik talebi
[kaynağı değiştir]İstekler tartışma sayfasında yeni bir bölümde yapılmalıdır. Aşağıdaki satırı kopyalayın ve yalnızca tarafla ilgili alanları doldurun. En az bir başka bilgi gibi bir parti adı da gereklidir. Her bir değerle ilgili bilgi için yukarıya bakın.
["parti"] = {kisaltma = "", renk = "", kisaad = "",},
Veri tablosu
[kaynağı değiştir]- Siyasi parti/1
- Siyasi parti/A
- Siyasi parti/B
- Siyasi parti/C
- Siyasi parti/D
- Siyasi parti/E
- Siyasi parti/F
- Siyasi parti/G
- Siyasi parti/H
- Siyasi parti/J
- Siyasi parti/K
- Siyasi parti/L
- Siyasi parti/M
- Siyasi parti|N
- Siyasi parti/O
- Siyasi parti/P
- Siyasi parti/Q
- Siyasi parti/R
- Siyasi parti/S
- Siyasi parti/T
- Siyasi parti/U
- Siyasi parti/V
- Siyasi parti/W
- Siyasi parti/X
- Siyasi parti/Y
- Siyasi parti/Z
local p = {}
local default_color = '#F8F9FA'
local categories = {
party_not_in_list = '[[Kategori:Bilinmeyen siyasi parti adı kullanan sayfalar]]',
shortname_not_in_list = '[[Kategori:Siyasi parti kısaltması eksik olan sayfalar]]',
color_not_in_list = '[[Kategori:Siyasi parti rengi eksik olan sayfalar]]',
}
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('Modül:Bağlantıyı kes')._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. parametre parti adı olmalıdır.")
end
if not args[2] then
return create_error("2. parametre bir çıktı tipi olmalıdır.")
end
local party = stripToNil(args[1])
local out_type = stripToNil(args[2])
if out_type == 'renk' then
out_type = 'renk'
end
local index = getFirstLetter(party)
-- Load data from submodule
local data = mw.loadData('Modül:Siyasi parti/' .. 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('Modül:Siyasi parti/' .. 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 == 'renk' 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 == 'renk' then
return args.error or create_error("Değer şablonda bulunmmaktadır. Kendiniz ekleyebilirsiniz ya da başka bir kullanıcıdan eklemesini isteyebilirsiniz.")
elseif out_type == 'kisaltma' then
if party_info.kisaad ~= "" then
return party_info.kisaad
else
return party
end
elseif out_type == 'kisaad' then
if party_info.kisaltma ~= "" then
return party_info.kisaltma
else
return party
end
else
return party
end
end
if out_type == 'renk' 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("Modül:Bağımsız değişkenler").getArgs
local args = getArgs(frame)
return p._fetch(args)
end
return p