Ir al contenido

Diferencia entre revisiones de «Módulo:EnlazarTeléfono»

De Wikiviajes, la guía libre de viajes
Contenido eliminado Contenido añadido
ZrbtWm (discusión | contribs.)
m Zerabat trasladó la página Módulo:LinkPhone a Módulo:EnlazarTeléfono sin dejar una redirección: en español
ZrbtWm (discusión | contribs.)
Correcciones según solicitud en Plantilla discusión:Listado
 
Línea 26: Línea 26:
end
end
if mw.ustring.sub(link, 1, 1) ~= '+' and mw.ustring.len(link) > 4 then
if mw.ustring.sub(link, 1, 1) ~= '+' and mw.ustring.len(link) > 4 then
catMissingCountryCode = '[[' .. catprefix .. 'Category:Listing with phone missing country code]]<span class="phoneinfo" style="display:none;" title="Phone number does not have country code">NOCC</span>';
catMissingCountryCode = '[[' .. catprefix .. 'Categoría:Wikiviajes:Listados con números de teléfono sin código de país]]<span class="phoneinfo" style="display:none;" title="El número de teléfono le falta el código de país">NOCC</span>';
if tollfree == 'yes' and mw.ustring.sub(link, 1, 3) == '800' then
if tollfree == 'yes' and mw.ustring.sub(link, 1, 3) == '800' then
catMissingCountryCode = '';
catMissingCountryCode = '';
Línea 95: Línea 95:
output = txt .. othertxt;
output = txt .. othertxt;
if mw.ustring.match('+' .. link,"^%+[%d-() ]+$") == nil then
if mw.ustring.match('+' .. link,"^%+[%d-() ]+$") == nil then
catFormatIssue = '[[' .. catprefix .. 'Category:Listing with phone format issue]]<span class="phoneinfo" style="display:none;" title="Phone number has formatting issue">FORMAT</span>';
catFormatIssue = '[[' .. catprefix .. 'Categoría:Listados con números de teléfono con formato incorrecto]]<span class="phoneinfo" style="display:none;" title="El número de teléfono tiene un formato incorrecto">FORMAT</span>';
end
end
end
end
if mw.ustring.match(link,"%(0%)") ~= nil then
if mw.ustring.match(link,"%(0%)") ~= nil then
catFormatIssue = '[[' .. catprefix .. 'Category:Listing with phone format issue]]<span class="phoneinfo" style="display:none;" title="Phone number has formatting issue">FORMAT</span>';
catFormatIssue = '[[' .. catprefix .. 'Categoría:Listados con números de teléfono con formato incorrecto]]<span class="phoneinfo" style="display:none;" title="El número de teléfono tiene un formato incorrecto">FORMAT</span>';
end
end
if mw.title.getCurrentTitle().namespace == 0 or demo == 'true' then
if mw.title.getCurrentTitle().namespace == 0 or demo == 'true' then

Revisión actual - 22:21 6 ene 2018

La documentación para este módulo puede ser creada en Módulo:EnlazarTeléfono/doc

local i = {}
 
function i.LinkOnePhone(txt, demo, fax, tollfree)
    local link = txt;
    local othertxt = "";
    local catprefix = '';
    local catMissingCountryCode = '';
    local catFormatIssue = '';
    local output;
    if demo == 'true' then
    	catprefix = ':';
    end
    -- any other text in brackets at the end is stored separately and ignored for the dialing number
    if mw.ustring.gsub(txt, "(.*)( %(.*%))$", "%2") ~= txt then
        othertxt = mw.ustring.gsub(txt, "(.*)( %(.*%))$", "%2");
        txt = mw.ustring.gsub(txt, "(.*)( %(.*%))$", "%1");
    end
    -- Don't include "ext NNNN" in the link
    link = mw.ustring.gsub(txt, " +[Ee][Xx][Tt] +%d+$", "");
    -- Don't include " xNNNN" in the link
    link = mw.ustring.gsub(link, " +x%d+$", "");
    link = mw.ustring.gsub(link, " ", "");
    link = mw.ustring.gsub(link, "'", "");
    if link == "" then
        return "";
    end
    if mw.ustring.sub(link, 1, 1) ~= '+' and mw.ustring.len(link) > 4 then
    	catMissingCountryCode = '[[' .. catprefix .. 'Categoría:Wikiviajes:Listados con números de teléfono sin código de país]]<span class="phoneinfo" style="display:none;" title="El número de teléfono le falta el código de país">NOCC</span>';
        if tollfree == 'yes' and mw.ustring.sub(link, 1, 3) == '800' then
           catMissingCountryCode = '';
        end
        if tollfree == 'yes' and mw.ustring.sub(link, 1, 4) == '0508' then
           catMissingCountryCode = '';
        end
        if tollfree == 'yes' and mw.ustring.sub(link, 1, 4) == '0800' then
           catMissingCountryCode = '';
        end
        if tollfree == 'yes' and mw.ustring.sub(link, 1, 4) == '1300' then
           catMissingCountryCode = '';
        end
        if tollfree == 'yes' and mw.ustring.sub(link, 1, 4) == '1800' then
           catMissingCountryCode = '';
        end
        if tollfree == 'yes' and mw.ustring.sub(link, 1, 5) == '01800' then
           catMissingCountryCode = '';
        end
        if mw.ustring.match(mw.ustring.lower(othertxt),"high cost") ~= nil then
           catMissingCountryCode = '';
        end
        if mw.ustring.match(mw.ustring.lower(othertxt),"extra charge") ~= nil then
           catMissingCountryCode = '';
        end
        if mw.ustring.match(mw.ustring.lower(othertxt),"premium") ~= nil then
           catMissingCountryCode = '';
        end
        if mw.ustring.match(mw.ustring.lower(othertxt),"local rate") ~= nil then
           catMissingCountryCode = '';
        end
        if mw.ustring.match(mw.ustring.lower(othertxt),"non%-geographic number") ~= nil then
           catMissingCountryCode = '';
        end
    end
    if mw.ustring.match(link,"^%+[%d-() ]+$") ~= nil then
		output = '<span class="plainlinks nourlexpansion">';
		if fax == 'true' then
			output = output .. txt .. '</span>' .. othertxt;
		else
			output = output .. '[tel:' .. link .. ' ' .. txt .. ']</span>' .. othertxt;
		end
    elseif mw.ustring.match(link,"^%+[%d%u- ]+$") ~= nil then
        local extra = mw.ustring.match(link, "%u[%d%u- ]+")
        link = mw.ustring.gsub(link, "[A-C]", "2");
        link = mw.ustring.gsub(link, "[D-F]", "3");
        link = mw.ustring.gsub(link, "[G-I]", "4");
        link = mw.ustring.gsub(link, "[J-L]", "5");
        link = mw.ustring.gsub(link, "[M-O]", "6");
        link = mw.ustring.gsub(link, "[P-S]", "7");
        link = mw.ustring.gsub(link, "[T-V]", "8");
        link = mw.ustring.gsub(link, "[W-Z]", "9");
        extra = mw.ustring.gsub(extra, "[A-C]", "2");
        extra = mw.ustring.gsub(extra, "[D-F]", "3");
        extra = mw.ustring.gsub(extra, "[G-I]", "4");
        extra = mw.ustring.gsub(extra, "[J-L]", "5");
        extra = mw.ustring.gsub(extra, "[M-O]", "6");
        extra = mw.ustring.gsub(extra, "[P-S]", "7");
        extra = mw.ustring.gsub(extra, "[T-V]", "8");
        extra = mw.ustring.gsub(extra, "[W-Z]", "9");
		output = '<span class="plainlinks nourlexpansion">';
		if fax == 'true' then
			output = output .. txt .. ' (' .. extra .. ')' .. '</span>' .. othertxt;
		else
			output = output .. '[tel:' .. link .. ' ' .. txt .. ' (' .. extra .. ')' .. ']</span>' .. othertxt;
		end
    else
        output = txt .. othertxt;
        if mw.ustring.match('+' .. link,"^%+[%d-() ]+$") == nil then
            catFormatIssue = '[[' .. catprefix .. 'Categoría:Listados con números de teléfono con formato incorrecto]]<span class="phoneinfo" style="display:none;" title="El número de teléfono tiene un formato incorrecto">FORMAT</span>';
        end
    end
    if mw.ustring.match(link,"%(0%)") ~= nil then
        catFormatIssue = '[[' .. catprefix .. 'Categoría:Listados con números de teléfono con formato incorrecto]]<span class="phoneinfo" style="display:none;" title="El número de teléfono tiene un formato incorrecto">FORMAT</span>';
    end
    if mw.title.getCurrentTitle().namespace == 0 or demo == 'true' then
        output = output .. catFormatIssue .. catMissingCountryCode;
    end
    return output;
end

function i.LinkPhone(frame)
    local demo = frame.args["demo"] or '';
	local fax = frame.args["fax"] or '';
    local txtall = frame.args[1] or '' .. ',';
    local tollfree = frame.args["tollfree"] or '';
    local txt = "";
    local result = "";
    local catprefix = '';
    -- replace or / and with comma
    txtall = mw.ustring.gsub(txtall, " or %+", ", +");
    txtall = mw.ustring.gsub(txtall, " and %+", ", +");
    for txt in mw.ustring.gmatch(txtall, "([^,]+)") do
        result = result .. ", " .. i.LinkOnePhone(txt, demo, fax, tollfree)
    end
    result = mw.ustring.sub(result, 3, mw.ustring.len(result) );
    return result;
end 
return i;