Kullanıcı:By erdo can/deneme/Modül:kategori ağacı

Merhaba, buraya Kullanıcı:By erdo can/deneme/Modül:kategori ağacı kelimesinin anlamını aramaya geldiniz. DICTIOUS'da Kullanıcı:By erdo can/deneme/Modül:kategori ağacı kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve Kullanıcı:By erdo can/deneme/Modül:kategori ağacı kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. Kullanıcı:By erdo can/deneme/Modül:kategori ağacı kelimesi hakkında bilmeniz gereken her şey burada. Kullanıcı:By erdo can/deneme/Modül:kategori ağacı kelimesinin tanımı, konuşurken veya metinlerinizi yazarken daha kesin ve doğru olmanıza yardımcı olacaktır. XXX'in ve diğer kelimelerin tanımını bilmek, kelime dağarcığınızı zenginleştirir ve size daha fazla ve daha iyi dilsel kaynaklar sağlar.
local export = {}
local m_languages = require('Module:diller')
local m_utilities = require('Module:araçlar')

-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
	if mw.title.getCurrentTitle().nsText == "Şablon" then
		return "(Bu şablon, Kategori: ad alanlarındaki sayfalarda kullanılmalıdır.)"
	elseif mw.title.getCurrentTitle().nsText ~= "Kategori" then
		error("Bu şablon/modül yalnızca Kategori: ad alanlarındaki sayfalarda kullanılabilir.")
	end
	
	local template = frame.args
	
	if not template or template == "" then
		error("\"şablon\" parametresi belirtilmedi.")
	end
	
	local submodule = require("Module:kategori ağacı/" .. şablon) -- template
	
	-- Tüm parametreleri ve etiket verilerini alın
	local current
	
	if submodule.new_main then
		current = submodule.new_main(frame)
	else
		local info = {}
		
		for key, val in pairs(frame.args) do
			info = val; if info == "" then info = nil end
		end
	
		info.template = nil
		current = submodule.new(info, true)
	end

	local boxes = {}
	local display = {}
	local categories = {}
	
	-- Kategorinin boş olup olmadığını kontrol etme
	local isEmpty = mw.site.stats.pagesInCategory(mw.title.getCurrentTitle().text, "all") == 0
	
	-- Parametreler geçerli mi?
	if not current then
		table.insert(categories, "]")
		table.insert(categories, isEmpty and "]" or nil)
		table.insert(display, show_error(
			"Etiketine verilen etiket " ..
			mw.getCurrentFrame():expandTemplate{title = "temp", args = {template}} ..
			" Şablon geçerli değil. Onu yanlış yazmış olabilirsiniz veya henüz oluşturulmamıştır. " ..
			"Yeni bir etiket eklemek için lütfen şablonun belgelerine bakın."))
		
		-- Buradan çıkın, buradaki tüm kodlar, mevcut olmamasına dayanıyor
		return table.concat(categories, "") .. table.concat(display, "\n\n")
	end
	
	-- Kategorinin adı doğru mu?
	if mw.title.getCurrentTitle().text ~= current:getCategoryName() then
		table.insert(categories, "]")
		table.insert(display, show_error(
			"Verilen parametrelere dayanarak " ..
			mw.getCurrentFrame():expandTemplate{title = "temp", args = {template}} ..
			" Şablon, bu kategori ile adlandırılmalıdır''']'''."))
	end
	
	-- Boş kategoriler için temizleme kategorisi ekle
	if isEmpty and not current:canBeEmpty() then
		table.insert(categories, "]")
	end
	
	if current:isHidden() then
		table.insert(categories, "__HIDDENCAT__")
	end
	
	table.insert(boxes, show_catfix(current))
	table.insert(boxes, show_editlink(current))
	table.insert(boxes, show_pagelist(current))
	
	-- Görüntülenen bilgileri oluştur
	table.insert(display, show_breadcrumbs(current))
	table.insert(display, show_description(current))
	table.insert(display, show_appendix(current))
	table.insert(display, show_children(current))
	table.insert(display, show_TOC(current))
	
	show_categories(current, categories)
	
	return table.concat(categories, "") .. table.concat(boxes, "\n") .. "\n" .. table.concat(display, "\n\n")
end

function show_error(text)
	return  mw.getCurrentFrame():expandTemplate{title = "maintenance box", args = {
		"red",
		image = "]",
		title = "Bu kategorinin otomatik olarak oluşturulan içeriğinde hata var.",
		text = text,
		}}
end

-- Geçerli sayfanın adını kontrol edin ve doğru değilse bir hata gönderin.
function check_name(current, template, info)
	local errortext = nil
	local category = nil
	
	if not current then
		errortext =
			"Etiket \"" .. (info.label or "") .. "\" verilen " .. mw.getCurrentFrame():expandTemplate{title = "temp", args = {template}} .. " şablon geçerli değil" ..
			"Onu yanlış yazmış olabilirsiniz veya henüz oluşturulmamıştır. Yeni bir etiket eklemek için lütfen şablonun belgelerine bakın."
		category = "]"
	else
		
	end
	
	if errortext then
		return (category or "") .. show_error(errortext)
	else
		return nil
	end
end

function show_catfix(current)
	if not current._lang or current._lang:getCode() == "he" or current._lang:getCode() == "ar" then
		return nil
	end
	
	return m_utilities.catfix(current._lang, (sc and require("Module:scripts").getByCode(info.sc) or nil))
end

-- Geçerli kategorinin yerleştirileceği ana kategorileri gösterin.
function show_categories(current, categories)
	local parents = current:getParents()
	
	if not parents then
		return
	end
	
	for _, parent in ipairs(parents) do
		if type(parent.name) == "string" then
			if not (current._lang and current:getCategoryName() == mw.getContentLanguage():ucfirst(current._lang:getCategoryName())) and not (current._sc and current:getCategoryName():find(mw.getContentLanguage():ucfirst(current._sc:getCategoryName()), nil, true)) and current:getInfo().code then
				require("Module:debug").track("category tree/string")
			end
			
			table.insert(categories, "]")
		else
			table.insert(categories, "]")
		end
	end
	
	-- Also put the category in its corresponding "umbrella" or "by language" category.
	local umbrella = current:getUmbrella()
	
	if umbrella then
		if type(umbrella) == "string" then
			table.insert(categories, "]")
		else
			table.insert(categories, "]")
		end
	end
end

function show_editlink(current)
	return
		"<div class=\"noprint plainlinks\" style=\"float: right; clear: both; margin: 0 0 .5em 1em; background: #f9f9f9; border: 1px #aaaaaa solid; padding: 5px; font-weight: bold;\">[" ..
		mw.getCurrentFrame():callParserFunction{name = "fullurl", args = {current:getDataModule(), action = "edit"}} ..
		" Kategori verilerini düzenle]</div>"
end

function show_pagelist(current)
	local namespace = ""
	local info = current:getInfo()
	
	if info.label == "citations" or info.label == "Tanımsız terimlerin kaynakları" then
		namespace = "Citations"
	elseif info.code then
		local lang = require("Modül:diller").getByCode(info.code)
		
		if lang then
			if lang:getType() == "reconstructed" then
				namespace = "Reconstruction"
			elseif lang:getType() == "appendix-constructed" then
				namespace = "Appendix"
			end
		end
	end
	
	local recent = mw.getCurrentFrame():callParserFunction{
		name = "#tag",
		args = {
			"DynamicPageList",
			"category=" .. mw.title.getCurrentTitle().text .. "\n" ..
			"namespace=" .. namespace .. "\n" ..
			"count=10\n" ..
			"mode=ordered\n" ..
			"ordermethod=categoryadd\n" ..
			"order=descending"
		}
	}
	
	local oldest = mw.getCurrentFrame():callParserFunction{
		name = "#tag",
		args = {
			"DynamicPageList",
			"category=" .. mw.title.getCurrentTitle().text .. "\n" ..
			"namespace=" .. namespace .. "\n" ..
			"count=10\n" ..
			"mode=ordered\n" ..
			"ordermethod=lastedit\n" ..
			"order=ascending"
		}
	}
	
	return [=[
{| class="wikitable" style="float: right; clear: both; margin: 0 0 .5em 1em;"
! Kategoriye yeni eklemeler
|-
| style="font-size:0.9em;" | ]=] .. recent .. [=[

|-
! Son düzenleme ile sıralanmış en eski sayfalar
|-
| style="font-size:0.9em;" | ]=] .. oldest .. [=[

|}]=]
end

-- Sayfanın üst kısmında gezinme "kırıntıları" göster.
function show_breadcrumbs(current)
	local steps = {}
	
	-- Mevcut etikette başlayın ve ilerleyemeyene kadar çocuktan ebeveyne "zincir"de yukarı doğru ilerleyin.
	while current do
		local category = nil
		local display_name = nil
		
		if type(current) == "string" then
			category = current
			display_name = current:gsub("^Kategori:", "")
		else
			category = "Kategori:" .. current:getCategoryName()
			display_name = current:getBreadcrumbName()
		end
		
		display_name = mw.getContentLanguage():ucfirst(display_name)
		table.insert(steps, 1, "» ]")
		
		-- "Zinciri" bir adım yukarı kaldırın.
		if type(current) == "string" then
			current = nil
		else
			current = current:getParents()
			
			if current then
				current = current.name
			end
		end
	end
	
	return "<small>" .. table.concat(steps, " ") .. "</small>"
end

-- Kategori için kısa bir açıklama metni gösterin.
function show_description(current)
	return (current:getDescription() or "")
end

function show_appendix(current)
	local appendix
	
	if current.getAppendix then
		appendix = current:getAppendix()
	end
	
	if appendix then
		return "Daha fazla bilgi için, ] sayfasına bak."
	else
		return nil
	end
end

-- Çocuk kategorilerinin listesini gösterin.
function show_children(current)
	local children = current:getChildren()
	
	if not children then
		return nil
	end
	
	table.sort(children, function(first, second) return first.sort < second.sort end)
	
	local children_list = {}
	
	for _, child in ipairs(children) do
		local child_basic = child.name:getCategoryName()
		local child_page = mw.title.new("Kategori:" .. child_basic)
		
		if child_page.exists then
			local child_description = child.name:getDescription()
			table.insert(children_list, "* ]: " .. child_description)
		end
	end
	
	return table.concat(children_list, "\n")
end

-- Dil komutundaki her harfe bağlantı içeren bir içindekiler tablosu gösterin.
function show_TOC(current)
	local code = current:getInfo().code
	
	if not code or not require("Modül:diller").getByCode(code) then
		return nil
	end
	
	-- Kategori boş olursa, yalnızca alt kategoriler bulunur.
	local hasPages = not current:canBeEmpty()
	
	local titleText = mw.title.getCurrentTitle().text
	
	local inCategory

	if hasPages then
		inCategory = mw.site.stats.pagesInCategory(titleText, "pages")
	else
		inCategory = mw.site.stats.pagesInCategory(titleText, "subcats")
	end
	
	-- No need for a TOC if all pages or subcategories can fit on one page.
	if inCategory > 200 then
		-- This category is very large, see if there is an "extended" version of the TOC.
		if inCategory > 2500 then
			local TOC_template_extended = mw.title.new("Şablon:" .. code .. "-categoryTOC/full")
			
			if TOC_template_extended.exists then
				return mw.getCurrentFrame():expandTemplate{title = TOC_template_extended.text, args = {}}
			end
		end
		
		local TOC_template = mw.title.new("Şablon:" .. code .. "-categoryTOC")
		
		if TOC_template.exists then
			return mw.getCurrentFrame():expandTemplate{title = TOC_template.text, args = {}}
		end
	end
	
	return nil
end

return export