[pmwiki-users] relative position style

Peter Bowers pbowers at pobox.com
Wed May 8 09:47:32 CDT 2013


On Wed, May 8, 2013 at 4:23 PM, Mark Lee <mark.lee.phd at gmail.com> wrote:

> The X and Y position of the plant on the map is contained on the page.
> Lets say a tree is located at map coordinates <100,250>. I was thinking to
> use the markup (:xposition 100:) (:yposition 250). I could then use this
> information in what ever way is supported by pmwiki markup via
> {$:xposition} and {$:yposition}.
> 5. In html, I am able to place a marker using styles. For example, if I
> want a marker "1" at position <132,165> I use <plant
> style="position:relative; left:132px; top:165px">2</plant></p>. Is this
> possible in pmwiki?
>

Just set up your (:plant ...:) custom markup so that it produces this
HTML...

Something like this:

(:plant 2 x=100 y=250:)

See http://www.pmwiki.org/wiki/PmWiki/CustomMarkup or
http://www.pmwiki.org/wiki/PmWiki/CustomMarkupAlt to see how to create your
own markup.  You will also want to take a look at
http://www.pmwiki.org/wiki/Cookbook/ParseArgs to handle the arguments
nicely.

To get a quick idea of what it'll look like, here's a very slightly tested
chunk of code that may be somewhat close to what you want:

===(snip)===
Markup('plant', 'directives',
  '/\\(:plant\\s*(.*?):\\)/e',
  'Plant($pagename, "$1")');

function Plant($pagename, $args)
{

   $opts = ParseArgs($args);
   echo "opts=".print_r($opts,true)."<br />\n";

   $x = (@$opts['x'] ? $opts['x'] : 0);
   $y = (@$opts['y'] ? $opts['y'] : 0);
   $num = (@$opts['num'] ? $opts['num'] : 'Unnumbered');

   $out = "<plant style=\"position: relative; left: ${x}px; top:
${y}px\">$num</plant>";

   return Keep($out);
}
===(snip)===

That should get the basic idea -- you can get more elegant using positional
parameters with ParseArgs or something, but this should be a good start.

-Peter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.pmichaud.com/pipermail/pmwiki-users/attachments/20130508/c70c9636/attachment-0001.html>


More information about the pmwiki-users mailing list