[opencms-dev] Writing a simple MasterModule

Stephan Hartmann beffe at beffe.de
Sat Jan 24 23:28:01 CET 2004


HI Alex,

i cherish the wish to have a realy more flexible content definition
(although the master module gives you a lot of storage space for a content
definition it is still limited to its borders).
It should be possible to define them just like a message in soap, i.e. it
can contain all the primitives like int, double, string, date and so on but
also other content definitions, structures and dynamic arrays which can
contain all primitives, content definitions and each other.
The definition should happen at runtime, not compile time and there should
also be a backoffice point where you can define these content definitions
just like for channels.
An example is the old news module. There was one field for a link. What if i
need more? I would just like to say my news content definition contains an
array of strings which can hold these links. The newsentry-creation mask
would then let me add more links by clicking a button.
Even better, i would define the array to hold structs which in turn consist
of two strings, one for the name and one for the url.
Even more better, i would define the struct as a new content definition for
a link.
That's in short what i desire of a good MasterModule.
And if you believe i have been thinking about that for a long time, you're
absolutely right ;-)

Bye,
Stephan


----- Original Message -----
From: "Alexander Kandzior" <alex at opencms.org>
To: <opencms-dev at opencms.org>
Sent: Saturday, January 24, 2004 10:37 PM
Subject: RE: [opencms-dev] Writing a simple MasterModule


> Hi,
>
> I think it might be valuable if I add my 2 cent to this discussion.
>
> The "MasterModule" in fact was developed as an alternative concept to
> "normal" ContentDefinitions. The basic idea was to provide a simple and
> intuitive API that actually does not require the creation of new database
> tables, and automatically adds all "OpenCms" features like locking /
> unlocking, online / offline / backup versions, publishing, sharing content
> in different "channels" and full OpenCms  backoffice integration with
> context menues.
>
> This is what today exists in the master module. I know this must sound
> great. But beware, there are many hidden issues.
>
> In the current implementation of this "MasterModule" standard there are
> serious shortcomings. The perhaps greatest mistake made is that almost all
> of the above mentioned functionality has been implemented a secound time.
> Take e.g. the lock/unlock functionality. We already had this in the
> CmsObject for CmsResources etc. However, instead of extending from this
like
> you would think good OO-programming style should be, it is actually just
> implemented a secound time, but with a completly different logic. This
makes
> the core code very hard to maintain and extend. Moreover, the design of
this
> current "MasterModule" is completly different from the other CmsObject
based
> design. The code is mixed with XmlTemplate code (no separation from
> presentation, logic and database layer). Also, the API is unfortunatly
very
> far from being "simple and intuitive". And because of some serious
> impementation mistakes (e.g. using reflection far too much) the generated
> modules are also slow in performance for the end user.
>
> All of the above has led to my decision to start a project with the goal
to
> re-implement a new and improved default module mechanism. This is a
project
> that will start soon and should be finished somewhere in the secound half
of
> 2004.
>
> Because of that, I do not want to encourage the use of the existing
> "MasterModule" mechanism. The new mechanism will be much different from
the
> existing one, and very much better. This is also the reason why so little
> documentation is currently available for the "MasterModule" mechanism. I
> find it amazing how far module development for OpenCms has already come in
> the almost complete absence of any documentation for that topic. I fear if
I
> publish documentation for the current mechanism now, it will be cemented
as
> a de-facto standard. A standard nobody will really like because it is very
> clumsy to use, and one that will drive away many users just evaluating
> OpenCms. I rather want to create a new standard that is really attrative
to
> developers (from the API side) and end - users (from the GUI side).
>
> Well so much for my thoughts. Any feedback is welcome. And of course, if
> someone wants to volunteer for that new project, this is even more
welcome.
>
> Best Regards,
> Alex.
>
> Alexander Kandzior
> Alkacon Software - The OpenCms Experts
> http://www.alkacon.com
>
>
>
> > -----Original Message-----
> > From: opencms-dev-admin at opencms.org
> > [mailto:opencms-dev-admin at opencms.org] On Behalf Of tol
> > Sent: Saturday, January 24, 2004 5:19 PM
> > To: opencms-dev at opencms.org
> > Subject: Re: AW: [opencms-dev] Writing a simple MasterModule
> >
> >
> > Hi!
> >
> > > Have a look at http://opencms.al-arenal.de/.
> > > Under Tutorials there is a link called vtab.zip and dbtab.zip.
> > > This is a howto for creating a backoffice module!
> > > Perhaps it helps a little bit.
> > >
> > > manuel
> >
> > It's great for understanding the backoffice and "normal"
> > ContentDefinition conecepts step by step! :)
> >
> > But ... if I understand it right, the MasterModule is newer, an
> > alternativ concept to "normal" ContentDefinition and Backoffice.
> >
> > So this tutorials help me for understanding some generals and
> > for future
> > questions, but not for solving my current problems.
> >
> > Nervertheless: many, many thanks!! :))
> >
> > Best wishes
> > Tol
> > --
> > independent internet radio berlin
> > http://www.recordcaster.de
> >
> >
> > _______________________________________________
> > This mail is send to you from the opencms-dev mailing list
> > To change your list options, or to unsubscribe from the list,
> > please visit http://mail.opencms.org/mailman/listinfo/opencms-dev
> >
> >
>
> _______________________________________________
> This mail is send to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> http://mail.opencms.org/mailman/listinfo/opencms-dev
>




More information about the opencms-dev mailing list