I have this template within my Chembox
{{Molar mass calculator|
|Ag     ={{{Ag|}}}
|As     ={{{As|}}}
|Au     ={{{Au|}}}
|B    ={{{B|}}}
|Ba     ={{{Ba|}}}
|Bi     ={{{Bi|}}}
|Br     ={{{Br|}}}
|C    ={{{C|}}}
|Ca     ={{{Ca|}}}
|Cl     ={{{Cl|}}}
|Co     ={{{Co|}}}
|Cu     ={{{Cu|}}}
|F    ={{{F|}}}
|Fe     ={{{Fe|}}}
|H    ={{{H|}}}
|I    ={{{I|}}}
|K    ={{{K|}}}
|Li     ={{{Li|}}}
|N    ={{{N|}}}
|Na     ={{{Na|}}}
|Ni     ={{{Ni|}}}
|O    ={{{O|}}}
|P    ={{{P|}}}
|Pt     ={{{Pt|}}}
|S    ={{{S|}}}
|Se     ={{{Se|}}}
|Sr     ={{{Sr|}}}
|Zn     ={{{Zn|}}}
}}
as each of these element parameters are optional they can be null and even when some parameters are provided I get the script error:

Lua error in Module:Molar_mass_calculator at line 8: attempt to perform arithmetic on a nil value.

Backtrace:

1. *(tail call)*: ?
2. *Module:Molar_mass_calculator:8
   
<http://localhost/mediawiki/index.php?title=Module:Molar_mass_calculator&action=edit#mw-ce-l8>*:
   in function "chunk"
3. *mw.lua:497*: ?
4. *(tail call)*: ?
5. *[C]*: in function "xpcall"
6. *MWServer.lua:87*: in function "handleCall"
7. *MWServer.lua:301*: in function "dispatch"
8. *MWServer.lua:58*: ?
9. *(tail call)*: ?
10. *mw.lua:141*: ?
11. *Module:Infobox:320
   
<http://localhost/mediawiki/index.php?title=Module:Infobox&action=edit#mw-ce-l320>*:
   in function "preprocessArgs"
12. *Module:Infobox:373
   
<http://localhost/mediawiki/index.php?title=Module:Infobox&action=edit#mw-ce-l373>*:
   in function "chunk"
13. *mw.lua:497*: ?
14. *(tail call)*: ?
15. *[C]*: in function "xpcall"
16. *MWServer.lua:87*: in function "handleCall"
17. *MWServer.lua:301*: in function "dispatch"
18. *MWServer.lua:40*: in function "execute"
19. *mw_main.lua:7*: in main chunk
20. *[C]*: ?

any ideas of how to overcome this error?

On 1/04/2015 7:28 PM, Ricordisamoa wrote:
To get parameters passed to the template, just call :getParent() in the module: example <https://test2.wikipedia.org/wiki/Special:Diff/155912>

Il 01/04/2015 11:13, Brenton Horne ha scritto:
Thanks for this. What should /Template:Molar mass calculator/ look like? Currently I have:

{{#invoke:Molar mass calculator|calc}}

but this returns a null value when variables are provided.

On 1/04/2015 12:44 PM, Ori Livneh wrote:
On Tue, Mar 31, 2015 at 3:25 PM, Brenton Horne <[email protected]>
wrote:

Thanks, I have also posted this question on Stackoverflow (
http://stackoverflow.com/questions/29377097/lua-module-
for-calculating-the-molar-mass-of-chemical-compounds) someone with Lua
skills but not so much with MediaWiki Lua templating and they gave this
code:

|local  AtomicWeightLookup=  {
  C=  12.01,
  H=  1.001,
  O=  16
}

local  function  Calculate(Input)
  -- Input Example: {C = 2, H = 6, O = 1}
  local  Result=  0
  -- Iterate through Input table
  for  Element,Quantityin  next,Inputdo
   -- If element is not found in table, assume 0 weight.
   local  AtomicWeight=  AtomicWeightLookup[Element]  or  0
   -- Multiply
   Result=  Result+  Quantity*  AtomicWeight
  end
  return  Result
end

-- EXAMPLE
print(Calculate({C=  2,  H=  6,  O=  1}))|

but as you can see there's no variables in here that are set by MediaWiki
templates, but it seems like a decent starting place.

Here you go:
https://test2.wikipedia.org/wiki/Module:Standard_atomic_weight
https://test2.wikipedia.org/wiki/Module:Molar_mass_calculator
demo: https://test2.wikipedia.org/wiki/Module_talk:Molar_mass_calculator

Note that your table had an error -- the atomic weight of Fluorine is
assigned to symbol 'C' rather than 'F'.
_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to