Modul:Prevnext: Unterschied zwischen den Versionen

Aus Ardapedia
Alboin (Diskussion | Beiträge)
Alboin änderte das Inhaltsmodell der Seite Modul:Prevnext von „Wikitext“ nach „CSS“
Alboin (Diskussion | Beiträge)
K Löschen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
require( 'strict' )
{{Löschen|Unnütze Seite.|[[Benutzer:Alboin|Alboin]] 21:33, 23. Nov. 2025 (CET)}}
 
local Prevnext = {}
 
local metatable = {}
local methodtable = {}
 
 
metatable.__index = methodtable
 
 
--- Returns true if a page exists
--- @param page string
--- @return boolean
local function pageExists( page )
local title = mw.title.new( page )
return title and title.exists
end
 
 
--- Creates the prev/next header
---
--- @return string
function methodtable.make( self )
local function makeLink( dir )
if not self.frameArgs[ dir ] then
return
end
 
local arrow = 'ArrowPrevious'
if dir == 'next' then arrow = 'ArrowNext' end
 
local inner = mw.html.create( 'div' )
inner:addClass( 'template-prevnext__' .. dir )
:addClass( 'template-prevnext__link' )
 
if not pageExists( self.frameArgs[ dir ] ) then
inner:addClass( 'template-prevnext__link--new' )
end
 
local icon = mw.html.create( 'div' )
 
icon:addClass( 'template-prevnext__icon' )
:wikitext( string.format( '[[File:WikimediaUI-%s-ltr.svg|14px|link=]]', arrow ) )
:done()
 
if dir == 'prev' then
inner:node( icon )
end
 
local content = inner:tag( 'div' )
:addClass( 'template-prevnext__content' )
:tag( 'div' )
:addClass( 'template-prevnext__title' )
:wikitext( self.frameArgs[ dir .. 'Title' ] or self.frameArgs[ dir ] )
:done()
 
if self.frameArgs[ dir .. 'Desc' ] then
content:tag( 'div' )
:addClass( 'template-prevnext__desc' )
:wikitext( self.frameArgs[ dir .. 'Desc' ] )
:done()
end
 
if dir == 'next' then
inner:node( icon )
end
 
inner:tag( 'div' )
:addClass( 'template-prevnext__linkoverlay' )
:wikitext( string.format( '[[%s]]', self.frameArgs[ dir ] ) )
:allDone()
 
return inner
end
 
local div = mw.html.create( 'div' )
div:addClass( 'template-prevnext' )
 
local current = mw.html.create( 'div' )
current:addClass( 'template-prevnext__current' )
 
local content = current:tag( 'div' )
:addClass( 'template-prevnext__content' )
:tag( 'div' )
:addClass( 'template-prevnext__title' )
:wikitext( self.frameArgs[ 'title' ] or mw.title.getCurrentTitle().subpageText )
:done()
 
if self.frameArgs[ 'desc' ] then
content:tag( 'div' )
:addClass( 'template-prevnext__desc' )
:wikitext( self.frameArgs[ 'desc' ] )
end
 
current:allDone()
 
div:node( makeLink( 'prev' ) ):node( current ):node( makeLink( 'next' ) )
 
return mw.getCurrentFrame():extensionTag {
name = 'templatestyles', args = { src = 'Module:Prevnext/styles.css' }
} .. tostring( div:allDone() )
end
 
--- Set the frame and load args
--- @param frame table
function methodtable.setFrame( self, frame )
self.currentFrame = frame
self.frameArgs = require( 'Module:Arguments' ).getArgs( frame )
end
 
--- New Instance
function Prevnext.new( self, args )
local instance = {
frameArgs = args
}
 
setmetatable( instance, metatable )
 
return instance
end
 
--- Template entry
function Prevnext.main( frame )
local instance = Prevnext:new()
instance:setFrame( frame )
 
return instance:make()
end
 
return Prevnext

Aktuelle Version vom 23. November 2025, 21:33 Uhr

Diese Seite wurde nach den Regeln der Schnelllöschung zum sofortigen Löschen vorgeschlagen.

Einsprüche bitte auf diese Seite schreiben.

Begründung: Unnütze Seite. --Alboin 21:33, 23. Nov. 2025 (CET)