Modül:kategori ağacı: Revizyonlar arasındaki fark
Görünüm
İçerik silindi İçerik eklendi
HastaLaVi2 (Mesaj | katkılar) Güncelleme |
Superyetkin (Mesaj | katkılar) for döngüsü eklendi |
||
45. satır: | 45. satır: | ||
if dil == "" then |
if dil == "" then |
||
table.insert(tumKat, "[[Kategori:Konu listeleri]]") |
table.insert(tumKat, "[[Kategori:Konu listeleri]]") |
||
⚫ | |||
⚫ | |||
for i = 1, 4, 1 do |
|||
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[1]) .. "]]") |
|||
⚫ | |||
⚫ | |||
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[i]) .. "]]") |
|||
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[2]) .. "]]") |
|||
⚫ | |||
if konuAlt[konu].ebeveynler[3] then |
|||
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[3]) .. "]]") |
|||
end |
|||
if konuAlt[konu].ebeveynler[4] then |
|||
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[4]) .. "]]") |
|||
end |
end |
||
⚫ | |||
else |
else |
||
if dil == "Dillerarası" then |
if dil == "Dillerarası" then |
16.54, 13 Eylül 2017 tarihindeki hâli
Bu belgeleme Modül:kategori ağacı/belge (düzenle | geçmiş) sayfasından yansıtılmaktadır. Arayüz düzenleyicilerinin deney yapabilmeleri için ayrıca Modül:kategori ağacı/deneme tahtası sayfası kullanılabilir.
Bu modül şu şablonlarda kullanılmaktadır:
{{kategori dillerine göre}}
{{kategori tema}}
{{kategori köken}}
{{kategori dil}}
{{kategori aile}}
{{kategori alfabe}}
{{kategori karakter}}
Şablona girilmiş olan yanlış parametreleri takip etmeye yarayan kategoriler:
- Kategori:Dil adı yanlış kategori şablonu kullanan kategoriler
- Kategori:Kategori konu ve kategori grup hataları
Modülün alt sayfaları:
local p = {}
-- Şablon:kategori konu isimli şablonda kullanılan fonksiyonu oluştur.
function p.konuKat(frame)
-- Girilen "dil" parametresini modülde erişilebilir hale getir.
local dil = frame.args['dil']
-- Girilen dil parametresinin son kelimesi "dili" ile bitiyorsa onu belirt, çünkü dilden sonra gelecek ek buna göre ayarlanacaktır.
local sonHece1 = mw.ustring.sub( dil, -4 )
-- Girilen dil parametresinin son iki hecesini ayırt et, çünkü dilden sonra gelecek ek buna göre ayarlanacaktır.
local sonHece2 = mw.ustring.sub( dil, -2 )
-- Tüm konuların listesini ayırt et.
local konu = frame.args['konu']
-- Daha önceden son heceleri/kelimesi ayırt edilen dil adlarının sonrasına "de", "da", "nde", "nda" eklerini ekle.
local ekliDil = ""
-- Son iki harfi "si" ile biten (Örneğin: İskoç İngilizcesi) veya son kelimesi "dili" olan (Örneğin: İdo dili) dil adlarından sonra "nde" ekini ekle.
if frame.args['dil'] and sonHece1 == "dili" or sonHece2 == "si" then
ekliDil = ekliDil .. frame.args['dil'] .. "nde"
-- Son iki harfi "sı" ile (Örneğin: İsviçre Almancası) dil adlarından sonra "nda" ekini ekle.
elseif frame.args['dil'] and sonHece2 == "sı" then
ekliDil = ekliDil .. frame.args['dil'] .. "nda"
-- Son iki harfi "ce" ile (Örneğin: İngilizce) veya "çe" ile biten (Örneğin: Türkçe) dil adlarından sonra "de" ekini ekle.
elseif frame.args['dil'] and sonHece2 == "ce" or sonHece2 == "çe" then
ekliDil = ekliDil .. frame.args['dil'] .. "de"
-- Son iki harfi "ca" ile (Örneğin: Almanca) veya "ça" ile biten (Örneğin: Başkça) dil adlarından sonra "da" ekini ekle.
elseif frame.args['dil'] and sonHece2 == "ca" or sonHece2 == "ça" then
ekliDil = ekliDil .. frame.args['dil'] .. "da"
end
-- Yukarıda belirtilen bütün durumlara göre kategori eklemelerini yap. Bu eklemeler konuların listesinin bulunduğu dizine göre eklenmektedir.
-- Mesela listede "kriptografi" konusu için {"formal bilimler", "matematik", "bilgisayar bilimi"} tablosu oluşturulmuştur. Burada bulunan 3 girdi şunları ifade etmektedir:
-- #1 ("formal bilimler") -> eklenmesi gereken kategori türünden birincisi.
-- #2 ("matematik") -> eklenmesi gereken kategori türünden ikincisi.
-- #3 ("bilgisayar bilimi") -> eklenmesi gereken kategori türünden üçüncüsü.
local veri = require("Modül:kategori ağacı/liste")
local konuAlt = veri.konuAlt
local tumKat = {}
if dil == "" then
table.insert(tumKat, "[[Kategori:Konu listeleri]]")
for i = 1, 4, 1 do
if konuAlt[konu].ebeveynler[i] then
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[i]) .. "]]")
end
end
else
if dil == "Dillerarası" then
table.insert(tumKat, "[[Kategori:Dillerine göre " .. konu .. "| ]]")
else
table.insert(tumKat, "[[Kategori:Dillerine göre " .. konu .. "]]")
end
table.insert(tumKat, "[[Kategori:" .. ekliDil .. " konu listeleri|".. konu .. "]]")
if konuAlt[konu].ebeveynler[1] then
table.insert(tumKat, "[[Kategori:" .. ekliDil .. " " .. konuAlt[konu].ebeveynler[1] .. "|".. konu .. "]]")
end
if konuAlt[konu].ebeveynler[2] then
table.insert(tumKat, "[[Kategori:" .. ekliDil .. " " .. konuAlt[konu].ebeveynler[2] .. "|".. konu .. "]]")
end
if konuAlt[konu].ebeveynler[3] then
table.insert(tumKat, "[[Kategori:" .. ekliDil .. " " .. konuAlt[konu].ebeveynler[3] .. "|".. konu .. "]]")
end
if konuAlt[konu].ebeveynler[4] then
table.insert(tumKat, "[[Kategori:" .. ekliDil .. " " .. konuAlt[konu].ebeveynler[4] .. "|".. konu .. "]]")
end
end
if tumKat[6] then
return tumKat[1] .. tumKat[2] .. tumKat[3] .. tumKat[4] .. tumKat[5] .. tumKat[6]
elseif tumKat[5] then
return tumKat[1] .. tumKat[2] .. tumKat[3] .. tumKat[4] .. tumKat[5]
elseif tumKat[4] then
return tumKat[1] .. tumKat[2] .. tumKat[3] .. tumKat[4]
elseif tumKat[3] then
return tumKat[1] .. tumKat[2] .. tumKat[3]
elseif tumKat[2] then
return tumKat[1] .. tumKat[2]
elseif tumKat[1] then
return tumKat[1]
end
end
return p