Μετάβαση στο περιεχόμενο

Module:LinkPhone

Από Βικιταξίδια

Documentation for this module may be created at Module:LinkPhone/τεκμηρίωση

local i = {}
 
function i.LinkOnePhone(txt, demo)
    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, "(.*)( %([^0-9]*%))$", "%2") ~= txt then
        othertxt = mw.ustring.gsub(txt, "(.*)( %([^0-9]*%))$", "%2");
        txt = mw.ustring.gsub(txt, "(.*)( %([^0-9]*%))$", "%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) ~= '+' then
    	catMissingCountryCode = '[[' .. catprefix .. 'Category:Listing with phone missing country code]]<span class="phoneinfo" style="display:none;">NOCC</span>';
    end
    if mw.ustring.match(link,"^%+[%d-() ]+$") ~= nil then
        output = '<span class="plainlinks nourlexpansion">[tel:' .. link .. ' ' .. txt .. ']</span>' .. othertxt;
    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">[tel:' .. link .. ' ' .. txt .. ' (' .. extra .. ')' ..']</span>' .. othertxt;
    else
        output = txt .. othertxt;
        if mw.ustring.match('+' .. link,"^%+[%d-() ]+$") == nil then
            catFormatIssue = '[[' .. catprefix .. 'Category:Listing with phone format issue]]<span class="phoneinfo" style="display:none;">FORMAT</span>';
        end
    end
    if mw.ustring.match(link,"%(0%)") ~= nil then
        catFormatIssue = '[[' .. catprefix .. 'Category:Listing with phone format issue]]<span class="phoneinfo" style="display:none;">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 txtall = frame.args[1] 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)
    end
    result = mw.ustring.sub(result, 3, mw.ustring.len(result) );
    return result;
end 
return i;
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy