[pmwiki-users] Re-inventing the Wheel?

Russ pmwiki at russhosting.com
Mon Aug 28 15:59:38 CDT 2006

Hi Steve,

I like PmWiki for the very reason that most of the sites I build with it
look like anything BUT wikis.

To accomplish this:

* I use a skin where the actions are contained in a wiki page instead of
coded into the template file ... the Flexi skin is a good starting point.

* I use a conditional :if: statement to hide everything other than a
log-in link if the user doesn't have edit privileges.  I use a small
"Site Admin" link or icon (which is optional if you want NO edit-related
links ... the admin can still login by appending ?action=edit or
?action=login to any page) ... the more subtle, the better, and I add a
more user-friendly message to the Site.AuthForm for those that might
click the link out of curiosity (I'm not sure if modifying this page is
recommended, but it works).  Once logged in, the :if: statement displays
links for history, upload, backlinks, editing the sidebar, etc.  to the
authorized user... the conditional markup is incredibly handy for making
the wiki look not like a wiki to visitors.

* I set the group attributes for the PmWiki group to require edit
privileges to read, and exclude PmWiki and Site from search results in
my config.php file and when using pagelists.  I use Site.AuthUser to
manage passwords and assign users to authorization groups ... much more
flexible than setting a global password in the config.php file, and it
allows you to assign an individual edit privileges to specific
group(s).  This way, I can exclude most of what I don't want casual
visitors to access even if they type in the complete URL ... I do wish
that I could do that to the Site group, but it seems to interfere with
functionality of the wiki (though I also just started to move the
default search page to another group on my latest project, so no visitor
can stumble across the Site group simply by following any links).

* I set all actions other than print and browse (using $HandleAuth) to
"Edit"; therefore, only those logged in with an edit or admin password
can use ?action=diff, =source, etc.

* Using CleanURL's and index.php instead of pmwiki.php (well documented
at pmwiki.org), I get fairly clean URL's unless an action is requested,
and that is likely only by an editor logged in.  Anyone trying to append
an action to the URL will be met with the login page (since any other
action requires an edit password).  I will usually rename the default
group from Main to Home, and the default page to Index since most
visitors are familiar with that terminology (again, this is done in the
config.php file).

I'm not sure why you would require two URL's to accomplish what you're
looking to do.  You could make the default group the one that you
converted your UseMod pages from, and use conditional :if: statements
and HandleAuth to restrict (and hide) everything except browse and print
... you don't even need a login link, simply append ?action=login to a
page and save it in your bookmarks for when you want to access the
"full" wiki.  If you use CleanURL's and create index.php to call
pmwiki.php, then anyone visiting your site at http://www.example.com
would see
http://www.example.com/index.php/ImportedUseModGroup/DefaultPage ... no
admin links, no wiki-ness, just your converted content.

If you'd like, I can send you some examples off-list of a couple of
sites built using this technique, and you can test them to see if they
meet your criteria.

Russ Jackman

Internet Advisor
"We Build Websites that Build Profits"

Latest Virus Alerts: http://www.InternetAdvisor.ca/virus.html

Steve Glover wrote:
> Hi,
> I'm currently converting a UseMod wiki over to PmWiki (chosen because 
> it's the most skinnable of the wikis that UseMod can be converted into).
> One of the requirements I've been given is that the site should no 
> longer "look like a wiki" at least partially to stop people trying to 
> mess around with it.
> I've managed to partially do this by using mod_rewrite to change the 
> URL, but that doesn't seem to work for the second part of what I wanted 
> to do - prevent users from appending action=edit or action=diff onto 
> URLs (we don't mind them printing, or looking at histories) and from 
> seeing the PmWiki.*, Main.* and Site.* parts of the wiki sections.
> At the same time, I don't want to delete those parts completely because 
> whoever gets to maintain the wiki will need access to an editing screen 
> at the very least (and would probably find the documentation useful).
> So, what I've done, and what I fear has been reinventing the wheel with 
> added corners, is to break one of the cardinal rules and modify 
> pmwiki.php and the config.php files so that I have two different skins 
> available - one with a "wiki style" side bar with links for various 
> actions, and another for "mere users" - with a whole pile of stuff in 
> httpd.conf to try and stop them accessing bits we don't want them to.
> This is so obviously wrong, that I'm guessing that someone has done this 
> properly....
> What I'd like to do is to have two URLs - one for the "public" wiki with 
> available actions cut right back and no access to anything but the 
> section I've imported from UseMod, and another password-protected 
> section that can see and do everything as it were.
> I'd be grateful for any clues, advice or help that anyone can offer.
> Many thanks
> Steve

More information about the pmwiki-users mailing list