From: Neil B. <ne...@cs...> - 2000-10-12 00:32:39
|
On Wednesday October 11, aho...@in... wrote: > > > or maybe even > > wiki:diff=SomePage > > which can apply more generally than just diff. > > I like this last one the most. > > This looks like a clean solution. Your patch has some subtle bugs though. > > > --- /home/src/phpwiki/lib/stdlib.php Mon Oct 9 04:33:26 2000 > > +++ lib/stdlib.php Wed Oct 11 09:35:43 2000 > > - $diffurl = "$ScriptUrl?diff=" . rawurlencode($pagename); > > + $diffurl = "wiki:diff=" . rawurlencode($pagename); > > $newpage[$k++] = "\t* [$pagename] ([diff|$diffurl]) ..... > > The pagename must not be rawurlencoded now. We want the real(tm) pagename > within the wikipage. Encoding should be done when creating the link. > Otherwise people would have to rawurlencode by hand if they would like to add > such a link to a wikipage. My reasoning went that other URLs must already be urlencoded, so this one should too. However I acknowledge that there is a small awkwardness in people needing to hand-urlencode wikinames. I'm probably happy to not urlencode here. > > About names for the link-type: you name both 'meta-wiki' which is not > consistent with the naming scheme. I suggest: 'wiki-meta' and > 'wiki-meta-named'. There is a consistent naming scheme ;-? I couldn't pick it, though I didn't try very hard. After poking around in the code a bit more, I am quite happy with wiki-meta and wiki-meta-named. > > Also, doing > > + if (preg_match("#wiki:(.*)#", $URL, $umatch)) { > > + $link['type'] = 'meta-wiki'; > > + $link['link'] = "<a > > href=\"$ScriptUrl?".$umatch[1]."\">$linkname</a>"; + } elseif > > seems too simplistic. Assuming that the link has to be encoded here, you must > ensure that there's always a sub-type (diff=, edit=, search=) so that > encoding works. This means that another type has to be introduced: 'page=' > Those types should be checked for. Everything following the subtype can then > be safely urlencoded. Yes.. If we don't urlencode above we do need to do more work here. If we are checking the prefx, would it be sensible to include that into the 'protocol'. e.g. wikidiff: wikiedit: wikisearch: wikifile: etc. Which doesn't seem very elegant to me. On the whole, I think I would go back to wiki:diff=url-encoded-wikiname and people who choose wierd wikinames live with the consequenses. Anyone else have an opinion? NeilBrown |