« Module:Urldecode » : différence entre les versions

Une page de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
corrige erreur Lua plus bas "paramètre nil dans string.gsub(), expected string", si un paramètre optionnel "2" avec une valeur incorrecte a été fourni au module, et donc que "ret" était restée à nil ; maintenant dans ce cas, le module retourne le paramètre "1" inchangé ; peut-être qu'on pourrait plutôt afficher une erreur ; noter que mw.uri.decode() produit une erreur s'il reçoit un paramètre "2" incorrect
m A protégé « Module:Urldecode » : très utilisé (sur 985 636 pages, lol) ; dans le top 100 des pages les plus incluses ([Modifier = Autoriser uniquement les utilisateurs autopatrolled] (infini) [Renommer = Autoriser uniquement les utilisateurs autopatrolled] (infini))
 
(11 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :


function p.urlDecode( frame )
function p.urlDecode( frame )
local enctype = frame.args[2]
local args = frame.args
local ret = frame.args[1]
local chaine = mw.text.trim( args[ 1 ] )
if frame.args[2] ~= nil and frame.args[2] ~= '' then
local enctype = args[ 2 ] and mw.text.trim( args[ 2 ] )

enctype = string.upper(enctype)
if enctype and enctype ~= '' then
enctype = enctype:upper()
if enctype == "QUERY" or enctype == "PATH" or enctype == "WIKI" then
if enctype == "QUERY" or enctype == "PATH" or enctype == "WIKI" then
ret = mw.uri.decode(frame.args[1], enctype)
return mw.uri.decode( chaine, enctype )
else
error( "paramètre de type d'encodage invalide" )
end
end
else
else
ret = mw.uri.decode(frame.args[1])
return mw.uri.decode( chaine )
end
end
ret = string.gsub(ret, "{", "{")
ret = string.gsub(ret, "}", "}")

return ret
end
end



Dernière version du 29 décembre 2023 à 03:13

 Documentation[voir] [modifier] [historique] [purger]

Utilisation

La fonction urlDecode inverse la transformation par le mot magique {{urlencode:}}.

Exemples

  • {{#invoke:Urldecode|urlDecode|C%C3%B4te+d%27Ivoire}} donne : Côte d'Ivoire
  • {{#invoke:Urldecode|urlDecode|2+2|PATH}} donne : 2+2

Voir aussi

local p = {}

function p.urlDecode( frame )
	local args = frame.args
	local chaine = mw.text.trim( args[ 1 ] )
	local enctype = args[ 2 ] and mw.text.trim( args[ 2 ] )

	if enctype and enctype ~= '' then
		enctype = enctype:upper()
		if enctype == "QUERY" or enctype == "PATH" or enctype == "WIKI" then
			return mw.uri.decode( chaine, enctype )
		else
			error( "paramètre de type d'encodage invalide" )
		end
	else
		return mw.uri.decode( chaine )
	end
end

return p