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

Une page de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
{{urlencode:}} trimme les paramètres, et je ne vois pas de cas de figure où on souhaiterait préserver les leading/trailing spaces ; donc trimmons ici aussi, pour harmonisation et moindre surprise
correction de bug (sournois) dans le cas où serait utilisé un paramètre "2" contenant des espaces, et uniquement des espaces
Ligne 4 : Ligne 4 :
local args = frame.args
local args = frame.args
local ret = mw.text.trim( args[ 1 ] )
local ret = mw.text.trim( args[ 1 ] )
local enctype = args[ 2 ] and mw.text.trim( args[ 2 ] )


if args[ 2 ] and args[ 2 ] ~= '' then
if enctype and enctype ~= '' then
local enctype = mw.text.trim( args[ 2 ] ):upper()
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( ret, enctype )
ret = mw.uri.decode( ret, enctype )

Version du 10 décembre 2023 à 04:00

 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 ret = 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
			ret = mw.uri.decode( ret, enctype )
		else
			error( "paramètre de type d'encodage invalide" )
		end
	else
		ret = mw.uri.decode( ret )
	end

	ret = ret:gsub( "{", "{" )
	ret = ret:gsub( "}", "}" )

	return ret
end

return p