Modulo:mtmplloaddata

El Vikivortaro
Salti al navigilo Salti al serĉilo
Padlock.svg Ĉi tiu modulo estas multfoje bindita kaj protektitaVi povas inspekti la protokolon pri protektoj.
Se vi konas la eblajn sekvojn kaj havas sufiĉajn rajtojn, tiam vi povas zorgeme ekredakti.
Se vi ne kuraĝas aŭ ne rajtas redakti tiam vi povas proponi la deziratan ŝanĝon en la diskutejo.
Memtesto ne disponeblas. Jen la dokumentaĵa subpaĝo

--[===[

MODULE "MTMPLLOADDATA" (template to load data)

"eo.wiktionary.org/wiki/Modulo:mtmplloaddata" <!--2019-Apr-21-->
"id.wiktionary.org/wiki/Modul:mtmplloaddata"

Purpose: translate (the transcludable part of) wikitext of a template
         (namely "tblbahasa") to a LUA string that can be used
         repeatedly via the infamous "mw.loadData" command

Utilo: traduki na (la transkluzivigebla parto de) vikiteksto de sxablono
       (nome "tbllingvoj") al LUA signocxeno kiu povas esti uzata
       ripete per la famacxa ordono "mw.loadData"

Manfaat: menerjemahkan (bagian yang bisa mentransklusikan) wikiteks templat
         (yaitu "tblbahasa") menjadi string LUA yang bisa digunakan
         beberapa kali melalui perintah "mw.loadData" yang terkenal buruk

Syfte: oeversaetta (den transkluderingsbara delen av) wikitext fraan en mall
       (naermare bestaemt "tbllingvoj") till en LUA-straeng som kan anvaendas
       upprepande gaanger medelst det oekaenda kommandot "mw.loadData"

Incoming: - nothing (imported via "mw.loadData", no ordinary caller)

Returned: - LUA table enclosing a large and complicated string with the
            complete source table, or "=" on error (template does not exist)

Note that this module is NOT generic and CANNOT be made generic due to the
principle that data received by "mw.loadData" must be static and it is not
possible to submit parameters (namely name of the template to be seized)
to this module.

Note that the used "#ifexist:" function expects a wikilink, not an URL. This
means among others that percent-encoding CANNOT be used, UTF8 is required.

]===]

---- CONSTANTS ----

  -- constant strings EO vs ID

  local construstm = string.char(0xC5) .. string.char(0x9C) .. "ablono:tbllingvoj"  -- EO -- "SXablono"
  -- local construstm = "Templat:tblbahasa"                                            -- ID

  ---- VARIABLES ----

  -- general table --

  local tmplloaddata = {}

  -- general unknown type

  local vartmp = 0         -- variable without type multipurpose

  -- general type "frame"

  local mwframent = 0

  -- general string

  local strret = ""        -- output string
  local strttmp = ""       -- temp

  ---- SEIZE THE INFAMOUS "FRAME" OBJECT (THERE IS NO ORDINARY CALLER) ----

  mwframent = mw.getCurrentFrame () -- use this if no main function exists

  ---- CHECK WHETHER THE POINTED TEMPLATE EXISTS AT ALL AND EXPAND IT ----

  strttmp = mwframent:callParserFunction ('#ifexist:'..construstm,'1','0')
  if (strttmp=='1') then
    vartmp = mwframent:expandTemplate { title = construstm }
    if ((type(vartmp))=='string') then
      strret = vartmp -- may be empty
    end--if
  end--if
  if (string.len(strret)<4) then
    strret = '=' -- empty result NOT appreciated !!!
  end--if

  ---- RETURN THE JUNK ----

  tmplloaddata[1] = strret -- only allowed type is table, raw string not work

  return tmplloaddata