Dokumentation für das Modul LinkSkype[Ansicht] [Bearbeiten] [Versionsgeschichte] [Aktualisieren]

Anwendung

Das Modul stellt Funktionen zur Verlinkung von Skype-Adressen bereit.

Versionsbezeichnung auf Wikidata: 2023-12-08 Ok!

Kommentare müssen hinter der Emailadresse in Klammern angefügt werden. Als Trenner für mehrere Skype-Namen kann das Komma nicht eingesetzt werden, da es Bestandteil des Skype-Namens sein könnte. Vielmehr muss das Semikolon als Trenner benutzt werden.

Benötigte weitere Module

Dieses Modul benötigt folgende weitere Module: Link utilities • Link utilities/i18n

Verwendung in anderen Modulen

Dieses Modul ist notwendig für die Ausführung folgender Module. Bei Anpassungen sollte die Funktionstüchtigkeit der folgenden Module geprüft werden. Benutze dazu auch diese Tracking-Kategorie um Fehler zu finden, die sich dann auf Artikel auswirken:

Regeln für einen Skype-Nutzernamen

  • 6 bis 32 Zeichen,
  • nur ASCII-Kleinbuchstaben, Ziffern, Punkt (.), Komma (,), Bindestrich (-) und Unterstrich (_),
  • erstes Zeichen muss ein Kleinbuchstabe sein.

Wartungskategorie

Beispiele

Text Code Ergebnis
nutzer.name {{#invoke:LinkSkype|linkSkype|nutzer.name}} nutzer.name
nutzer1.name; nutzer2.name {{#invoke:LinkSkype|linkSkype|nutzer1.name; nutzer2.name}} nutzer1.name, nutzer2.name
nutzer1.name, nutzer2.name {{#invoke:LinkSkype|linkSkype|nutzer1.name, nutzer2.name}} nutzer1.name, nutzer2.name Category:Kontakt: Ungültiger Skype-Nutzername Ungültiger Skype-Nutzername
info.name (Information); reserv.name?chat (Reservierung) {{#invoke:LinkSkype|linkSkype|info.name (Information); reserv.name?chat (Reservierung)}} info.name (Information), reserv.name?chat (Reservierung)
info.name (Information); reserv.name?chat (Reservierung); Anderer.Name {{#invoke:LinkSkype|linkSkype|info.name (Information); reserv.name?chat (Reservierung); Anderer.Name}} info.name (Information), reserv.name?chat (Reservierung), Anderer.Name Category:Kontakt: Ungültiger Skype-Nutzername Ungültiger Skype-Nutzername

Fehlersuche

Im Fehlerfall wird neben der Fehlerkategorie auch ein Fehlertext hinter der Email-Adresse ausgegeben.

Beschreibung der Funktionen

function ls.isSkypeName( s ) 
s: string;

Die Funktion prüft, ob der Skype-Name s gültig ist.

function ls.SkypeLink( m, args ) 
m: string;
args: arguments array;

Die Funktion prüft und bereitet die Verlinkung des Skype-Namens m vor. Die eigentliche Verlinkung wird mit dem JavaScript MediaWiki:Gadget-MarkerUtilities.js‎‎ durchgeführt.

function ls.linkSkypeSet( args ) 
args: arguments array;

Die Funktion spaltet eine Liste von Skype-Namen auf und übergibt jeden einzelnen Namen an ls.SkypeLink.

function ls.linkSkype( frame ) 
frame: frame object;

Die Funktion stellt die Schnittstelle für einen {{#invoke: ...}}-Aufruf zur Verfügung.

function ls.linkSkypeTemplate( frame ) 
frame: frame object;

Die Funktion stellt die Schnittstelle für einen Vorlagen-Aufruf zur Verfügung.

Bedeutung der Variablen

  • ls.categories – Array mit gleichnamigen Fehlerausschriften und Kategoriennamen.
  • ls.delimiters – Array mit Mustern für Trenner unterschiedlicher Telefonnummern. Das Komma muss nicht in dieses Array eingetragen werden.
  • ls.addNum – Anzahl der sichtbaren, nicht ausgeblendeten Skype-Links. Die überzähligen Links sind aber im HTML-Quelltext enthalten und lassen mit einer Stilvorlage einblenden.
  • ls.params – Array mit einer Liste der erlaubten Parameter in einem Skype-Link.

Klassenbezeichner

Im HTML-Quelltext werden folgende Klassenbezeichner eingesetzt:

  • error – Klasse der Fehlerausschrift.
  • listing-skype-link – Kennzeichnung des Skype-Links ohne Kommentar.
  • listing-add-contact – Klassenbezeichner ausgeblendeter Skype-Links. Wenn mehr als zwei Skype-Namen vorhanden sind, so werden die überzähligen Namen ausgeblendet, sind aber im HTML-Quelltext vorhanden.
Hinweise
-- module variable and administration local ls = { 	moduleInterface = { 		suite  = 'LinkSkype', 		serial = '2023-12-08', 		item   = 65157314 	} }  -- module import -- require( 'strict' ) local li = require( 'Module:Link utilities/i18n' ) local lu = require( 'Module:Link utilities' )  -- check single skype name function ls.isSkypeName( s ) 	if not s or type( s ) ~= 'string' then 		return 0 	end  	local user = s 	local param 	local q = s:find( '?', 1, true ) 	if q then 		user = s:sub( 1, q - 1 ) 		param = s:sub( q + 1, #s ) 		if not li.params[ param ] then 			return 0 		end 	end 	if #user > 32 or #user < 6 then 		return 0 	end 	if not user:match( "^%l[%l%d%.,_%-]+$" ) then 		return 0 	end 	return 1 end  function ls.SkypeLink( m, isDemo ) 	m = mw.text.trim( m ) 	if m == '' then -- empty string 		return '' 	end 	local catPrefix = '[[Category:' 	if isDemo then 		catPrefix = ' [[:Category:' 	end  	local comment = '' 	local t 	m, comment = lu.extractComment( m )  	m = m:gsub( 'skype:', '' ) 	if ls.isSkypeName( m ) > 0 then 		t = '<span class="listing-skype-link">' .. m ..'</span>' 		-- skype: link is performed by a JavaSript: MediaWiki:VCard.js 	else 		t = m .. catPrefix .. li.categories.invalidSkype 	end 	if comment ~= '' then 		t = t .. ' ' .. comment 	end 	return t end  function ls.linkSkypeSet( args ) 	args.skype   = args.skype or args[ 1 ] or '' 	if args.skype == '' then 		return '' 	end  	local ns     = mw.title.getCurrentTitle().namespace 	local isDemo = ns == 10 or ns == 828  	-- split separate Skype names 	local items = lu.splitItems( args.skype, li.delimiters, ';' )  	-- analyse Skype names 	local i = 0 	local s 	local result = ''  	for j = 1, #items, 1 do 		s = ls.SkypeLink( items[ j ], isDemo ) 		if s ~= '' then 			if result == '' then 				result = s 			else 				if i == li.addSkype then 					result = result .. '<span class="listing-add-contact">' 				end 				result = result .. li.texts.comma .. s 			end 			i = i + 1 		end 	end 	if i > li.addSkype then 		result = result .. '</span>' 	end 	return result end  -- #invoke call function ls.linkSkype( frame ) 	return ls.linkSkypeSet( frame.args ) end  -- template call function ls.linkSkypeTemplate( frame ) 	return ls.linkSkypeSet( frame:getParent().args ) end  return ls