Модуль:SM
Материал из Справочника наблюдателя
Описание модуля[]
Этот модуль предназначен для реализации функций шаблона {{SM}} и вызывается исключительно из указанного шаблона.
Вышеприведенная документация хранится отдельно ( править | история | скрыть ).
Задавайте категории на странице документации, а не здесь! Показать подстраницы
Задавайте категории на странице документации, а не здесь! Показать подстраницы
local p = {}
local smTab = {
facebook = { link = 'https://www.facebook.com/%1',
dig = 'https://www.facebook.com/profile.php?id=%1',
logo = 'Facebook.svg',
name = 'на Facebook',
},
twitter = { link = 'https://twitter.com/%1',
logo = 'Twitter.svg',
name = 'в Твиттере',
text = '<tt><span style="font-size:135%; font-weight:bold">@%1 </span></tt>',
show = false,
},
email = { link = 'mailto:%1',
logo = 'Aiga mail.svg',
name = '— написать письмо',
text = "'' %1 ''",
show = true,
},
vk = { link = 'https://vk.com/%1',
logo = 'VK.svg',
name = 'вКонтакте',
},
okdirect= { link = 'https://ok.ru/%1',
dig = 'https:/ok/profile/%1',
logo = 'Ok.svg',
name = 'в Одноклассниках',
},
ok = { link = 'http://www.nablawiki.ru/index.php/Набла:Переход_на_одноклассники?id=%1',
dig = 'http://www.nablawiki.ru/index.php/Набла:Переход_на_одноклассники?id=profile/%1',
logo = 'Ok.svg',
name = 'в Одноклассниках',
},
livejournal={ link = 'http://%1.livejournal.com',
logo = 'Livejournal 64.png',
name = 'в Живом Журнале',
},
googleplus= { link = 'https://plus.google.com/%1',
logo = 'Google plus.svg',
name = 'в Google+',
},
mailru = { link = 'http://my.mail.ru/%1',
logo = 'Mailru.png',
name = 'на mail.ru',
},
krug = { link = 'http://%1.moikrug.ru',
logo = 'Moi-krug.png',
name = 'в Моем круге',
},
fb = 'facebook',
['фб'] = 'facebook',
['жж'] = 'livejournal',
lj = 'livejournal',
t = 'twitter',
['g+'] = 'googleplus',
['вк'] = 'vk',
}
function p.Link (frame)
local args = frame:getParent().args
local smtype = args[1]
if not smtype then
return ('Нет аргумента')
end
smtype = mw.ustring.lower (smtype)
local smt = smTab [smtype]
if not smt then
return ('Неизвестный тип SM')
end
if type (smt) == 'string' then
smt = smTab [smt]
end
local alpha = args.alpha
if not alpha then
alpha = '|x16px|text-bottom'
end
local link
if smt.dig and tonumber (args [2]) then
link = smt.dig
else
link = smt.link
end
link = mw.ustring.gsub (link, '%%1', args [2])
res = '[[Файл:' .. smt.logo .. alpha .. '|link=' .. link .. '|'
-- if (args [3] or args.text) then
res = res .. (args [3] or args.text or args [2])
-- else
-- res = res .. args [2]
-- end
res = res .. ' ' .. smt.name .. ']]'
local show = args ['text'] or ''
if show =='0' then
show = false
elseif show == '' then
show = smt.show
elseif show == '1' then
show = true
end
if show == true then
if smt.text then
show = smt.text
else
show = '%1'
end
end
if show then
show = '<span class="plainlinks">[' .. link .. ' ' .. mw.ustring.gsub (show, '%%1', args [2]) .. ']</span>'
end
return res .. (show or '')
end
return p