Managing Polymod modules

What's a polymorphic module ?

The module generator called "Polymod" (for Polymorphic module) is an Automne module whose strength is to be highly configurable and evolutive.
It was created with the goal of responding to the most widespread needs in terms of structured data management without having to specifically use PHP code.

Context

Considering the following statement :

  • The applications for managing data on the web respond to identical criteria in most cases.  Developing each dynamic content management application independently amounts to taking a part of what exists and making some modifications to meet new demands.
  • Considering the evolution of Automne, developing modules that take into account of all the features of the the core began to take longer and longer.  At the same time, the possibility of unforeseen problems was becoming equally as great.
  • The development of specific modules does not necessarily follow the developments of Automne's core features.

Here is the solution we found :

Aware of these inherent problems in the development model and guided by years of experience, we were able to define a configurable module model where the configuration capacity could respond to the greatest number of needs identified in terms of application management for dynamic data.

One module to rule them all

Applications such as:

  • News and blog posts,
  • Documents management (library),
  • Photos management (gallery),
  • Links management (blogroll),
  • Directory,
  • Schedule,
  • etc.

have as their goal the management of data, essentially text, associated with files or images.  This data can have a number of attributes:  language, category, author, etc.

We can thus define a number of basic elements (imagine Lego bricks) that we can assemble in order to create a product responding to any given need.

This building blocks are as follows (non-exhaustive list):

  • Short text field
  • Long text field (formatted or not)
  • Integer field
  • Image field
  • File field
  • Category field
  • Link field
  • Date field
  • Language field
  • User field

Each of these fields, depending on the type, can then have several parameters (for example, for the date field one might need an hour as well as a date, or the date alone may be sufficient).In addition, the amount of all these elements will bluid an element which can itself become part of element of the largest scale.

Example

To simplify the understanding of these concepts, let us take an example:  we want to model a library.

We can divide a library into aisles to classify books by certain criteria:  cover, chapters, authors, subject, theme, etc.

The book is an element which also has distinct elements:  cover, chapters, authors, subject, theme, etc.

We can next subdivide the chapters by elements:  title and pages.  Each page has a collection of paragraphs as well as a number.

The authors can also de described in a detailed fashion:  first name, last name, nationality, biography, birthdate, address, etc.

In short, each element of our library can thus be subdivided until we arrive at the elementary level of information, and it is there that we find the building blocks of our content.  These bricks are then put together to define more important structures, themselves assembled to define yet even more complex structures.

What is possible:

As we have just seen, the possibilities offered by such a system are quite vast, but for all of this, it is not possible to do everything.  The module generator (Polymod) is capable of assembling elementary bricks of content into compex content structures but at this time, this is its "only" capability.
It is thus not currently possible to perform actions from these assemblages.  We can take for example a newsletter.  It is made up of a collection of content (which can be managed by Polymod) and this content is next sent by email to a group of recipients.  This send action is not yet within reach of the system.

More precisely, it is possible to:

Administration side of Automne:

  • Create and manage the content structures of each module.
  • Insert content into these different structures.
  • Search for this different content.
  • Manage the access rights for modifying this content.

Public side of Automne (on websites managed by Automne):

  • Create and manage a collection of rows to search for and display content.
  • Create an RSS feed for different content.
  • Manage the access rights for reading content.
  • Create a plug-in for the visual editor (WYSIWYG) to use this content in the rows of different types of text pages.

To know more:

Tutorial :

 



Bookmark and Share

Top