Several of the content management systems (CMS) use a structure of a few layers, in which the data are taken from the database and as they are retrieved are displayed on the screen, often including a predefined style. On more robust systems, this has been eliminated, but the code or visual representation now becomes the challenge, which in some cases makes the changes and special modifications result in an investment of time and additional effort.
The objective of the system is to be organized in a modular way, where each layer is totally identifiable in terms of location, function and requirements, which must deliver complete and reliable information to the higher modules, so that they can be transformed for these without having to cross-validate.
This type of structure allows to exchange elements without requiring to change the whole system. Thus, if you want to use a database other than
MySql to MariaDB
simply replace the database modules (obj_db) with the corresponding one; If instead of using
jQuery with another framework as
GWT o MooTools
just modify it in the configuration (admin panel > config).
In the case of responsive design something similar happens, maybe you do not feel comfortable with the current system that I realized because you have a greater experience in others, you can change the configuration (admin panel > config) and change the CSS loading with Bootstrap, Foundation or some other; The same thing happens with the scripts, you can replace the current files made in Perl with Ruby, Java or Phyton.
To these modular features is added that the system was also thought from its beginnings to support Unicode at the same time to be concerned (because worry is useless) in design elements to make it equally pleasing in appearance resulting from what the user sees, as well as what happens behind the code.