[pmwiki-users] 2.0beta6
Martin Fick
mogulguy at yahoo.com
Sat Sep 23 23:11:38 CDT 2006
On Saturday 23 September 2006 08:47, you wrote:
> if you like to take a look at the code of AddDeleteLine2... I have no
> uploaded a new version in which I renamed some of the variables to make
> more sense and added a few comments.
I have looked at it and I have some suggestions to fix some things that I
think are actually broken. I will send you an updated version (2.0beta6M1)
so that you can update it if you feel that they are good fixes; I have
tested them. Mainly the fixes have to do with the way that you encode/decode
some things.
To start with, form data does not need to be urlencoded, that is only required
for URLs, in fact it messes things up. This is true even if the form uses
the GET method, the browser will take care of encoding the URL on submission.
This also means that there is no need to urldecode PHP POST or GET variables,
it will already be done for you by PHP.
What you probably want to use instead for forms is htmlentities() so that no
one can insert html and subvert your form (probably what you were trying to
prevent). This means that you should then use html_entity_decode() to decode
things later on. We do actually want to be able to insert < and > and other
html entities into the wiki text, it will get converted on rendering (it is
safe to insert any text into the wikitext, afterall, any editor can just as
easily insert anything they want anyway.)
> Maybe there is a way of making the code more modular, so that it is
> easier to write extensions. For example a variable function call to a
> function that fills in the values of the $_POST[]-Array or something
> like that.
I will suggest anything that I think makes sense, but so far it is fairly
simple. The only thing that might make sense is to maybe split out the
entire section where you do template replacements (in AdlHandleAddLine) into
its own function (basically, the first 5 lines that begin with $addstring= ).
I will also send you a working addition of multi values which needs (and
includes) the above mentioned fixes to work (2.0beta6M2). Multi line entry
form elements must be named with [] at the end, ie. (:input checkbox
name="Page[]":). They then can be inserted in the template like
this: "{Page[]}". This will loop over each entry and repeat the template
for it. \n must be in the template if each entry needs to be on a separate
line. This looping only occurs for a single (the first) multi entry found.
Any subsequent entries will be ignored. If anyone can suggest a way to use
mutli-multi entries feel free to suggest it, but I can't think of any.
Now with this I can create wiki trails with a form and the following simple
pagelist template:
[[#checkboxes]]
(:input checkbox Page[] {=$FullName}:) {=$FullName}\\
[[#checkboxesend]]
I love it! :) Thanks for your recipe, more to follow I hope,
-Martin
More information about the pmwiki-users
mailing list