[pmwiki-users] Sidebar as a Pagetree ?

Kathryn Andersen kat_lists at katspace.homelinux.org
Sat Mar 24 16:59:37 CDT 2007


On Sat, Mar 24, 2007 at 06:02:34PM +0100, St?phane Heckel wrote:
> Just going one step further with my migration idea, ...
> Let's have a look on this sidebar (pagetree menu) :
> http://jamanga.free.fr/confluence/Pagetree.PNG
> 
> Idea would be to have a way to define a hierarchy when you add a page.
> By default, a new page is a parent page (ie : Sales page level 0) and the 
> name of the page becomes the name of the menu.
> 
> If I want to create a new page that would be displayed as a submenu (ie : 
> Process page level 1) linked to a parent page (ie : Sales level 0), I should 
> have a way
> to define the name of the parent page when you edit the child page.

PmWiki only has a two-level hierarchy.  This is a design decision, not
an oversight.
 
> So my questions :
> - Do we have a way today to define a sidebar like that ? with a third party 
> tool maybe ?
> - If not, any chance to implement a recipe with pmwiki ?

A few recipes have been written to create pseudo-hierarchies in a number
of ways.
http://www.pmwiki.org/wiki/Cookbook/HierarchicalGroups

I maintain Cluster
http://www.pmwiki.org/wiki/Cookbook/Cluster

which "clusters" PmWiki groups together.
There are no such things as "parent pages", only "parent groups", so you
have to decide beforehand if you think something will need to have
sub-pages, but that's a reasonable discipline, IMHO.

But you would have groups like:
Sales
Sales-Process
Sales-Programs

And pages such as
Sales-Process.EvaluationSoftware

Here's an example pagelist template which could give you something
similar to what you want.

---------------------------------------------------------------
!!!fmt=#hgtitle2

Two-level list of groups (showing title), giving nested hierarchical
groups of top two levels only; assumes that list=group
Cookbook:HierarchicalGroups

[@
[[#hgtitle2]]
(:template defaults order=group list=group:)
(:template first {=$g1}:)
(:if equal "{=$g0}" "1" ):)
*[[{=$Group}.|{=$GroupTitle}]]
(:ifend:)
(:template first {=$g2}:)
(:if ( equal "{=$g1}" "{*$g1}" and equal "{=$g0}" "2" ) :)
**[[{=$Group}.|{=$GroupTitle}]]
(:ifend:)
[[#hgtitle2end]]
@]

------------------------------------------------------------------

A similar pagelist template is being used at
http://www.katspace.org/Fiction-Stories/

You would have to use CSS to transform the list into something looking
more like the image you gave, but I leave that as an exersize to the
reader 8-) -- http://www.alistapart.com/stories/taminglists/ is a good
reference for this.

I suggest you don't download cluster quite yet, I'm going to be putting
up a new version today.

A recipe which is very similar to Cluster (because of code-borrowing
back and forth) is Hg, which has more features, but I deliberately limit
the features of Cluster to make it easier to maintain and thus reduce
potential bugginess.

Kathryn Andersen
-- 
 _--_|\     | Kathryn Andersen	<http://www.katspace.com>
/      \    | 
\_.--.*/    | GenFicCrit mailing list <http://www.katspace.com/gen_fic_crit/>
      v     | 
------------| Melbourne -> Victoria -> Australia -> Southern Hemisphere
Maranatha!  |	-> Earth -> Sol -> Milky Way Galaxy -> Universe



More information about the pmwiki-users mailing list