[pmwiki-users] Page file formats

The Editor editor at fast.st
Thu Aug 24 13:20:38 CDT 2006

Thanks for the info Patrick!  A few additional questions though...

On 8/24/06, Patrick R. Michaud <pmichaud at pobox.com> wrote:
> > 1)  How does one use page variables in recipes.  For example I'm wanting to set
> >
> >       version={$version} ordered=1 urlencoded=1
> Use the FmtPageName() function, or the PageVar() function.

Sorry to be dense but after several tries could not figure out how to
extract the version # so I could set it via my recipe. After looking
at the docs, my best try was:

        $myversion = PageVar($datapage, $version, $myversion = ' ');

But it doesn't seem to work.

> > 2)  Can you manually set the title right in the page headers without
> > having to use a title directive

Thanks!  Got this working.

> > 3)  Is there anyway to override PmWiki's rewriting of the author
> > header whenever a page is  edited by an entry in a group config file.
> As part of my blogging/comment recipes, I'm working on a way to
> update pages without completely rewriting all of the automatic
> attributes, yes.

OK!  I have a functional workaround, until then.  Nothing critical.

> > 4) In setting the ctime and time lines...
> See the bottom of http://www.pmwiki.org/wiki/PmWiki/PageVariables
> for an example (in fact, the example uses ctime).

I'm sorry.  I missed that.

> > 5) How do you retrieve the page creator's "host" ip address in a
> > recipe function?
> The page variable {$LastModifiedHost} returns the ip address.
> Or, use the 'host' page attribute for a page.

Actually, I'm wanting to put the ip address into a new page that is
being constructed.  I need something like

       $MyIP = $GET[ip address];

> > 6) There does not seem to be any indication of the order of parameters
> > in the Pmwiki/PageFileFormat documentation.

Guess that explains what ordered means!  :)  Of course I noted even
with ordered=1 the title tag seems to work out of order.

> > 7) The docs say that in the text string, newlines must be converted to
> > %0a and %'s to %25.  Is there a pmwiki function that automatically
> > does that?
> I simply use . . .

Great, that should solve some data entry problems.  I know line breaks
break the recipe.  Haven't noticed problems with %'s or <'s.  Will
test some more just to see.

> > I've noticed a couple other things don't work right.  For example a ' is returned as
> > \'
> It's probably the /e modifier in preg_replace that is converting
> ' into \'.  Or, PHP will automatically convert quotes in forms to have
> a backslash in front of them if the PHP configuration variable
> "get_magic_quotes_gpc" is set.  PmWiki offers the stripslashes()
> function to remove any backslashes added by PHP's magic quotes,
> and the PSS() function to remove any backslashes added by the /e
> option to preg_replace.  PmWiki itself never adds backslashes
> on its own.

OK, great.  I'll tinker with both of those and see if I can't get them
to work for me.

> BTW, FWIW, I highly recommend re-using PmWiki's existing WritePage()
> function as opposed to creating a separate, duplicate version.
> If there are minor changes that you need to have added, we can see
> about doing this.

My hesitation to switching over to WritePage() is mostly having to
change everything when it is all working so well...  But on a
practical note--one feature I wanted was to be able to have users
write data to a wiki page they could not edit or read.  (I used wiki
pages so admin's could edit--but users shouldn't mess with them). I
suspect WritePage() requires authorization to work.  Is there a way
around that?

Assuming there was a way to do it, and assuming I had the text value
of the page prepared as string $data, would the format be as simple

         WritePage($datapage, $data);

This would automatically clearstatcache, do the pageindexing, set the
title, and pull in all required page formatting values?  Wow... why
didn't I try that first!

To read the current contents of the page, I presume I could use

         $data = ReadPage($datapage);

Anyway, thanks again for all the help...


More information about the pmwiki-users mailing list