Edit:27 mars 2005, Cre:21 juil. 2024

CNC Loisirs Architecture

Description of the architecture of the CNCLoisirs site.

This site (in french) can be found at :


First, this site is a knowledge base, and the foreseen page number is between 200–500 (not taking into account pmwiki pages). Its subject is hobby CNC (computer commanded machines).

It is a new site, and its organisation have not been validated by usage.

It is constituted as follows :

Content groups

  • CNCGroup : Only content main page, main menu, and a page about news on CNC (the news about the site go in the Operation group).
  • Construction : Pages about machines construction
  • Utilisation : What kind of machining exists
  • Practical : Practical use of machines
  • Technics : Technical details
  • Domains : In what domains we may use a CNC machine
  • Machines : Examples of machines
  • Realisations : Machined parts examples
  • Ressources : Ressources on CNC subject (links, drawings, etc.)
  • Misc. : Everything which does not go in other groups.

Groups about site operation

  • Operation : Operation of this particular site, for authors
  • PmWikiAuth : Documentation of the wiki, needed by authors.
  • PmWikiAdmin : Documentation of the wiki, needed by administrators.
  • AdminCNC : Administration details of this particular site
    This is the only group password-protected.

Each group does have its own Menu (SideBar), set as ThisGroup.Menu.
The menu of main group CNCGroup send to main pages of each group. First option of each Menu of the content groups open a submenu to access others groups (works only on Mozilla). Others options goes to the pages of the current group.

All these groups are set to be a unique NameSpace, this means that one link to a page shall be searched among all groups. This is defined in the variable $PagePathFmt. It is always possible to create two pages with identical names in two different groups, because pages are searched first in the current group.
By example : Construction.Steppers and Technics.Steppers. Though, in order to ease ‘intergroup’ or ‘transversal’ linking, unique names will be preferred. So practically, the page Technics.Steppers have been named Technics.SteppersTechnics, for an easy discrimination without the needs for group characterization.
So the call can be direct with StepperTechnics, without giving group name. The implementation is described in PmWiki:Cookbook.PagePaths.

PmWiki having yet no possibilities to have subgroups, a second hierarchical level was done, when needed, with PmWiki/WikiTrails, which does allow to make a path of type : «previous page, pages directory, next page». The directory is simply done with a standard bullet list in an ordinary page.

Directive (:toc table title:) allows to build automatically a content table, which is automatically built from headers !1rst level header, !!2nd level header, !!!3rd level header. Beware, (:toc:) directive can only handle two headers levels. See PmWiki:Cookbook.PageTableOfContents.

Sometimes, directories are created with anchors, defined with syntax [[#Anchor]], and called by [[#Anchor |text]]

Technical details and restrictions

  • Home page page of each group have the same name as the group
  • Maximum size of uploaded files is 120000 bytes (this is defined in config.php with the variable $UploadMaxSize)
  • Search tool and index don’t search in the following groups:
    PmWikiAdmin and AdminCNC.
    Exclusion of elements is descibed in PmWiki:Cookbook.SearchResults

What is particular to this Wiki ?

Two things are not ‘in line’ with the present design of PmWiki:

  • The unique Namespace. The intent of the PmWiki groups design was to have separated namespace for each group. I use group to make an access hierarchy, but i want to ease intergroup linking, so the choice of an unique Namespace. We’ll see…
  • Documentation separated in two groups, one for administrator, and the other for authors. I don’t think this is a break in the PmWiki philosophy, but this was not done like that in the original documentation.

Customization :

   if (@$_POST['preview']) 
     $HTMLStylesFmt[] = ' body { background-color:#ffeeee; } ';

PRZ December 29, 2004

Le contenu de ce site est soumis à une License Creative Commons   (détails). Creative Commons License
Privacy - Vie privée - Imprimable - Rechercher
Page mise à jour le 27/03/2005 23:15