Mason-CM Info   User: guest | Date: 1/22/2018 
Mason Content Management Developer Manual
MCM isn't yet a full flexed library for web content management, and 
when, it uses only Mason <%METHODS <%DEF>. In futur some core 
functionality will go into object oriented Perl modules.  

Stil, problay you like Mason and you need to add features to fit
your business requirements. We invite you to do so, but please 
keep the devel team informed about what you are doing. Or even join
us to build the features together. 

Join us:

MCM uses some special file endings. 

  *.page	Is a page visible form outside only using *. These
		are invoked allways via a dhandler. So "/" 
		is in the url "/index?query". Prints to STDOUT and 
		perhaps also computing values.
  *.skin	Representig a wrapper of pagelets. Prints to STDOUT 
		and perhaps also a little computing values
  *.snip	Prints to STDOUT and perhaps also computing values.
  *.comp	A component which only computes values
  *.conf	A component returning a static hash reference

These are the beloved data sub containers to be accessed from 
components while processing the request. The most of the values
are static, but like $req->{error} or $req->{page} you can change
the output of the request. See initiate*.comp

  $ses		For session related information
  $mcm		Mainly fed by mcmRuntime.conf
  $prj		Mainly fed by mcmProject.*.conf
  $req		All informations around the request and its target

They are built by the "initiate*.comp"'s in the MCM root. 

The most used query values while interacting POST/GET with MCM.

  &path		MCM navigation is built arround an actual "path" 
  &branch	in a "branch". So these two values allways have 
		to be part of any query sent to MCM.
  &batch	Optional, declaring that this request has to be buffered
		and only flushed at the end of the request. 
  &function	Does the same like &batch but also initiates that the 
  		nearest "function.comp" is executed. 

MCM uses "branch/path", the so called "mcmpath" to point to files
in locking tables "data/mcmCheckout.dbm" or ACL table "conf/mcmACL.conf". 

All components residing in "shared/" do NOT really read from $req. Some
exeptions may write to $req. They allways expect to recieve target 
information via arguments. Use these components for all MCM releated 
actions like copying, moving, saving, spelling, versioning, locking
and so on. Automatically, these components do the right thing within
the MCM functionalities. 

Be free to invent new components, or to enhance them. 

There is a quite primitive error stack handling over $req->{error}.
The error manipulation offers two methods. An error is told to the 
stack but not shown to the user unless it had been built. The error 
is showed to the user in the top *skin file using a javascript layer. 
For special situations an error can be untold, if you know, that this 
error is ok for a special situation.  

You can use another way to authenticate. At least the Apache::Request object
$r->conection->user has to be fed. In that case the user management utility 
won't work or you have to change 'shared/manipUser.comp'. If you want to attach
a session to your authentication you can enhance "initiateSession.comp" which 
reads today only the username and a static language set by "mcmRuntime.conf"
default language. 

See the "file/serve/dhandler" as an example how to load the MCM 
environement into any Mason component outside the core MCM 
wrapping chain.  

03.07.2003 16:59, Christian Hauser,


© 2007 Mason-CM V 1.3, Content Management built on Mason - Headquarter, CPAN