[Pmwiki-users] Re: calculating directives ?

J. Meijer commentgg
Fri Jun 18 19:20:38 CDT 2004


Knut, I did not adapt the syntax. My code does this markup:

  ?formula?           prints result of formula (and stores it in ?$?)
  ?formula=$var?  prints the *formula* and stores result in $var
  ?$var?              prints $var

It allows you to do something like:

  Contributions total (?11.10 * 10=$?) = M$?$?
  Contributions total M$?11.10 * 10?

and have it printed as:

  Contributions total (11.10 * 10) = M$111.00
  Contributions total M$111.00

Most math functions are supported, including the very useful round(). Any
other function is easily added.

However it does not do this, I didn't get to this:

  You know ?1=$a?+?1=$b? is ?$a+$b?
to print as
  You know 1+1 is 2

Which is obviously the kind of app you want.
Goodluck,

-jm



# inline calculations with var storage:
#   ?formula? ?formula=$var? and ?$var?
$evalfulist='a?sinh?|a?cosh?|a?tanh?|deg2rad|rad2deg|'+
  'sqrt|pi|log|log10|exp|pow|hexdec|dechex|round|rand|';
$evalfulist="((?:".str_replace('|','\\(|',$evalfulist).
  '&|>|<|[0-9.eE+-\\/*%|~\\(\\) ])+?)';
$DoubleBrackets['/?'.$evalfulist.'(=\\$([a-z]*))??/e']=
    "eval('\$gfr$3='.html_entity_decode('$1').
       ';return (\'$2\')?\'$1\':\$gfr;')";
$DoubleBrackets['/?\\$([a-z]*)?/e']= '$gfr$1';




---- Original Message ----

> Knut, I published some formula-evaluation code before using a
> ((..)) syntax. I made a revision since then to use variables, I'll
> adapt it to your syntax and pass it tomorrow.
> Probably.
>
> -jm
>
>
> [[calc $var=expression]] to set a variable without displaying the
> result [[show $var=expression]] to set the variable and displaying
> the result in the wikitext
> [[show expression]] incl [[show $var]] to show the result in the
> wiki-text
>
> I thought of evaluating php-functions for the expressions and
> assignments maybe added by some user-written php-functions






More information about the pmwiki-users mailing list