Tema de Usuari Discussió:Vriullop/Fitxer de Discussions Estructurades 1

Variables de sortida d'una plantilla

6
Resum per Amadalvarez

Només hi ha un resultat per a una funció.

Amadalvarez (discussiócontribucions)

Hola Vicenç. Hi ha forma que una plantilla deixi el resultat en un dels paràmetres que se li han passat com si es tractés d'una variable ?. Ex.: si la criden amb els paràmetres: A, B i C, que tornés en C el resultat d'un càlcul entre A i B. Tens un exemple (que no funciona, clar) a Usuari:Amadalvarez/proves plantilla1

merci,

Vriullop (discussiócontribucions)

No entenc el problema a resoldre. Sempre pots fer c = {{#expr: {{{a}}} * {{{b}}} }}.

Amadalvarez (discussiócontribucions)

El problema a resoldre és "escriure" sobre un paràmetre que t'han passat.

En la fórmula que m'has donat, la "C =" és simplement un text que surt escrit amb el resultat de l'expressió. Jo vull que el resultat de l'expressió retorni a qui ha invocat la plantilla dins el paràmetre C.

La raó és que necessitaria fer una operació d'anàlisi de text molt llarga i voldria trossejar-la i anar deixant resultats entremitjos, però que jo sàpiga no es poden crear variables en plantilles.

Vriullop (discussiócontribucions)

Amb les plantilles no existeixen variables, per això caldria anar a Lua. El que existeixen són subplantilles que poden fer part de la feina simulant una variable, però que cal cridar cada vegada que la necessites. De totes formes si no em poses un problema concret a resoldre només puc filosofar.

Amadalvarez (discussiócontribucions)

Un exemple: voldria mirar d'obtenir els valors de les coordenades (per a fer-les servir en un location map) a partir del text que genera la plantilla coord. Ja sé que em diràs que "per què obtenir el valor de lat i long a partir d'un text, si ja ho teníem com a paràmetre abans de començar". Cert, però hi ha milers d'articles, i és hàbit general, fer servir la plantilla coord en l'article, enlloc de tenir els paràmetres separats en origen. Ex.: Torre de l'Alcúdia o qualsevol plantilla amb el paràmetre coordenades.

Un altre exemple seria el paràmetre "localització" que algunes plantilles tenen com a únic paràmetre on escriure els nivells geogràfics on està (comarca, municipi, indret). Ex.:articles amb plantilla: edifici o Pavelló o Estadi o Infotaula gratacel. En aquest, sovint, tenen també les coordenades afegides.

Aquest segon cas podríem mirar de tractar els articles amb un bot abans de reconvertir la seva plantilla en infotaula edifici, que és la que estic construint com a base per a tota aquesta colla i que té paràmetres separats per cada nivell.

Pot ser coneixes algun altre camí més fàcil i curt.

merci

Vriullop (discussiócontribucions)

Com a principi general, una plantilla, més una infotaula, no hauria d'usar plantilles dins dels paràmetres. L'ús | coordenades = {{coord|38... és una mala pràctica, tot i que sigui molt estesa. Una infotaula ha de tractar les dades directament, en aquest cas amb paràmetres lat_g, lat_m, lat_s o lat_dec. La solució és la transformació amb bot, tot i que em diguis que se t'escapa i que depèn de tercers. Es podrien trobar solucions via Mòdul:string fent cerques en el text amb la funció match, però sempre serà un pegat provisional que pot deixar de funcionar. En alguns casos senzills pot ser útil, per exemple: https://ca.wikipedia.org/w/index.php?title=Especial:Expansi%C3%B3_de_plantilles&wpInput=comarca%20=%20{{%23invoke:string%20|%20match%20|%20s%20=%20La%20Garriga%20%28Vall%C3%A8s%20Oriental%29%20|%20pattern%20=%20%b%28%29%20}}. Però sempre serà millor deixar-ho arreglat amb bot.