Aller au contenu

Module:Categoreyes

Èn årtike di Wiccionaire.
Notule d' esplikêyes

Ci module ci est eployî pa d' ôtes modules po radjouter pus åjheymint des categoreyes dins l' wikicôde k' est prodût.

Tcherdjaedje

Po poleur eployî ci module ci dins èn ôte, i l' fåt tcherdjî :

cat = require("Module:Categoreyes")

Fonccions po les modules

p.store(title, follow_redirect, ns)

Radjoute ene categoreye dins l' memwere do programe, k' ene seule feye.
  • tite c' est l' tite del categoreye (sins l' betchete « Categoreye: ») Asteme : li tite est sinsibe ås grandes et pititès letes : « mots » n' est nén l' minme ki « Mots »
  • follow_redirect avou true u bén false (prémetowe valixhance) po shuve (u nén) li rdjiblaedje
  • ns c' est l' limero d' l' espåce di lomaedje po n' radjouter li categoreye ki dins çti-la
cat.store("Mots ki sont dins E1") -- mete li categoreye « Mots ki sont dins E1 » el memwere
cat.store("Mots ki sont dins E1", true) -- mete li categoreye « Mots ki sont dins l' motî Haust » el memwere, paski c' est on redjiblaedje
cat.store("Mots ki sont dins E1", true, 0) -- mete li categoreye « Mots ki sont dins l' motî Haust » el memwere si c' est dispoy li mwaisse espåce k' on fwait l' dimande

p.clear()

Disface totes les categoreyes del memwere do programe.

p.get_all()

Dene totes les categoreyes del memwere do programe sicrîtes e wikicôde, pus vude el memwere. Asteme : a-z eployî cwand gn a pus d' categoreye a radjouter.

p.is_stored(title)

Dene true si l' categoreye est ddja dins l' memwere u bén false dins l' cas contråve. Asteme : si follow_redirect est true c' est li rdjiblaedje k' est dins l' memwere.
cat.store("Mots ki sont dins E1", true)
p.is_stored("Mots ki sont dins E1") -- false
p.is_stored("Mots ki sont dins l' motî Haust") -- true

Egzimpe

Côde k' on metreut dins Module:Egzimpe

local p = {}
local cat = require("Module:Categoreyes")

function p.foo()
    cat.store("C")
    cat.store("B") -- categoreye ddja dins l' memwere, nén radjouteye
    return "Hello world!"
end

function p.main()
    cat.store("A")
    cat.store("B")
    local wikitext = p.foo() .. cat.get_all()
    cat.store("D") -- categoreye metowe dins l' memwere mins nén radjouteye dins l' wikicôde paski cat.get_all() a ddja stî houkî
    return wikitext
end

return p

Çou ki dinreut avou {{#invoke:Egzimpe|main}}

Hello world![[Categoreye:A]][[Categoreye:B]][[Categoreye:C]]

-- This module helps to manipulate categories 
 
local p = {}
local NS = mw.site.namespaces.Category.name
local categories = {}

function p.store(title, follow_redirect, ns, if_exists) 
	-- only for specified NS (number)
	if  ns ~= nil 
	and ns ~= mw.title.getCurrentTitle().namespace then
	   	return
	end
	
	title = mw.title.makeTitle(NS, title)
	
	-- only if category exists
	if not title.exists and if_exists then
	   	return
	end
	
	-- follow A redirect
	if follow_redirect and title.isRedirect then
		title = title.redirectTarget.text
	else
		title = title.text
	end
	
	if not p.is_stored(title) then
		table.insert(categories, title)
	end
	
end

function p.clear() 
	categories = {}
end

function p.get_all() 
	local cats = ""
	for k, v in ipairs(categories) do
		cats = cats .. "[["..NS..":"..v.."]]"
	end
	
	-- do not add the same categories several times
	-- for multiple calling of get_all
	p.clear() 
	
	return cats
end

function p.is_stored(title) 
	for k, v in ipairs(categories) do
		if v == title then
			return true
		end
	end
	return false
end

return p