[pmwiki-users] Is 'Page Creator' worth to discuss?

Patrick R. Michaud pmichaud at pobox.com
Fri Feb 22 18:28:28 CST 2008


On Fri, Feb 22, 2008 at 05:36:34PM +0000, imoc wrote:
> In wiki logic, I do understand what Marc concerned. But the 'page creator' 
> is not just for pure wiki collaborating environment. It was asked for a 
> website engine which can be used to build wiki as well as blog and forum. 
> And the logic on authorship in those kinds of website are not that same. 
> 
> To add a attribute to a page is not that difficult as all of you have 
> said. And the admin can decide whether he will use it or not. 'Cauthor' 
> is just the same logic as 'ctime'. So I can't understand why it is so 
> 'dirty' to add into core. 

Sorry to be absent from this discussion.  The topic of providing
a "cauthor" attribute to the core has come up before, and historically
I've decided not to add cauthor to the core for a variety of
reasons.  I'm not permanently against the idea of having 'cauthor'
in the core (I don't see it as 'dirty'), but to my mind thus far the 
costs outweigh the benefits.

First, 'cauthor' is not always exactly the same logic as 'ctime'.  While
we always have a time available when a page is created that we can use
to set 'ctime', we don't always have an author name to set 'cauthor'.  
Suppose someone creates a page without supplying an author name -- 
should the cauthor field be permanently empty?  Or should the first 
person to edit the page that provides an author name be labeled the 
page's creator?

Second, introducing a cauthor attribute really implies that we need to
have some way for an administrator (or someone else) to be able to
change it if it gets set improperly, for however the admin defines
"improperly".  If Alice creates an empty stub page that is later
filled in by Bob, should Alice still be listed as the creator?
Or, what if Alice creates a page, but then Carol totally rewrites the
content and improves it to be something else?  Should Alice still
be the creator?

The ability to change the cauthor attribute could be done through
?action=attr, but thus far I've been a little reluctant to have
non-password attributes in the ?action=attr form by default.  The 
core code can already handle non-password fields, but historically 
PmWiki hasn't used ?action=attr for anything but passwords and
I'm not sure that cauthor is the place where we want to start.

(Part of me also feels that ?action=attr should perhaps be generated
by a wikipage (e.g., Site.AttrForm) instead of using PHP code,
but thus far I haven't liked the results of my attempts to 
implement this.  So I've held off for that reason as well.)

I'm also a little concerned that adding 'cauthor' may then start
a slippery-slope sort of demand for the ability to control page
access and authorization based on page creator, which would
complicate the security model a fair bit.  Not that it can't
be done, but it's something to consider when implementing this.

Next, there's a part of me that feels that page text variables may 
be superior to page attributes for keeping track of this sort of 
information.  For example, if pages contain page text directives like

  (:Creator: Patrick Michaud:)

then one can use {$:Creator} to get at a page's creator.  We might
want to add code that automatically adds the (:Creator:...:)
markup to a page that doesn't already have it, but this could
be easily done.  Furthermore, any changes in the creator designation 
becomes part of the page's history, which can be useful.  I've already 
decided that I'd like to migrate to using page text variables for 
page titles instead of the special-purpose (:title ...:) directive, 
and I'm wondering if page text variables may make more sense for 
other "attributes" (such as page creator) as well.

This approach also preserves the potential for indicating multiple
creators of a page, as in

  (:Creators: Patrick Michaud, Hagan Fox, and John Rankin:)

Ultimately, for this issue I tend to fall back on PmWikiPhilosophy #3 
("avoid gratuitous features") when it comes to automatically
setting a "creation author" attribute for a page.  Since the simple 
approach will arguably do the "wrong thing" for many environments, 
I've preferred to leave it out the core entirely until I'm more
certain of how we may want to manage the longer-term impacts.
This is especially true since the simple approach can be easily
done with a recipe, and the recipe can also address any other issues
that may arise (such as how to allow people to change the attribute 
once it is set).

As I said above, I'm not permanently against the idea of having
a 'cauthor' field in the core, but the above gives a more
complete idea of technical/software design reasons as to why
it's not there yet.

Lastly:  As someone who uses PmWiki in a number of collaborative 
contexts, I have found that in most environments there's a _huge_ 
psychological barrier to the notion of "shared content" that has 
to be overcome.  If the software itself contains features to 
manage and display things like "page creator" or "page owner",
then that really tends to undermine the efforts to get people
to collaborate, and this goes against PmWikiPhilosophy #4.
Although this last point also argues against adding 'cauthor'
to the core, it's really the technical and software design
issues I mentioned above that are the controlling factors for
me at this point.

Hope this helps,

Pm



More information about the pmwiki-users mailing list