[pmwiki-users] thoughts on PTVs, (:include:) and editing forms

Patrick R. Michaud pmichaud at pobox.com
Tue Nov 13 09:18:45 CST 2007

On Tue, Nov 13, 2007 at 02:56:36PM +0000, Hans wrote:
> Tuesday, November 13, 2007, 2:39:38 PM, Patrick R. Michaud wrote:
> > Actually, (:input textarea:) *can* handle multiline input, at
> > least from page text variables.
> > 
> > For example, to load the contents of $:XYZ from a page into a
> > textarea, one can use:
> > 
> >     (:input defaults source=Group.Page:)
> >     (:input textarea name=$:XYZ :)
> > 
> > The (:input defaults source=...:) line grabs all of the PTVs
> > from Group.Page and uses them as the default values for any
> > input controls of the same name.  
> I tried it before and failed, but i will again. Maybe I fell foul by
> giving it  a curly bracket. Or the trick with name=$:XYZ
> But it seems a bit strange to give the control a different name each
> for each different PTV loading. 

The idea is that there could be multiple textarea (or other)
controls in a single form that are automatically mapped to their
corresponding page text variables in a data page.

> > It sounds like it might work... but I'll have to think about it 
> > a bit to see what we might be overlooking.  It could have some
> > negative impacts on the backend, where we wouldn't have any clear
> > indication that $:anchor was intended to be delimited with [[#anchor]]
> > and not (:anchor: ... :).
> if you provide me with  a pattern for the ptv, I will test it.
> [...]
> either have  [[#sectionend]] stipulated, or just use the next [[#..
> anchor as ending.

I think we might want to require an explicit [[#sectionend]] here,
at least to begin with.  Otherwise every anchor will automatically 
generate a corresponding PTV (and if a page contains a single anchor 
near the top of the page, then the PTV would hold the remainder of 
the contents of the page.

> This approach means we are not using the nice TextSection function.

I don't think we need it here ... the main purpose of TextSection 
is to be able to grab a section with arbitrary start/end anchors
from one of a set of pages.  In the case of using a section as  PTV,
we already know exactly which page we are loading and what anchor(s)
we're looking for.

Here's a pattern to try (requiring the explicit 'end' anchor):

  $PageTextVarPatterns['[[#anchor]]'] =
    "/(\\[\\[#(\\w[-\\w]*)\\]\\](?: *\n)?)(.*?)(?:\\[\\[#\\2end\\]\\])/s";

> TextSection() is really good in helping to get a template section.
> PageTextVariable() is not nice if the PTV does not exist, or th epath
> is incorrect.

How do you mean "PageTextVariable() is not nice..." in this
last part.  What are you wanting it to do instead?


More information about the pmwiki-users mailing list