CHeMS-0x04
Release 0x04 of CHeMS. This is a minor release which includes lots of fix and improvements, among the others, the following:

Core
  • Removed the order field ($id) from the modload() routine. The problem with that field is that its value only influence the previously loaded modules making impossible to set an absolute id for a module placed randomly into the modload() calls list. A new order mechanism may appear in further releases of CHeMS.
  • The following options has been renamed:
            [old name ]		[new name]	[ description ]
            ------------------------------------------------------------
            FIELDS_SEPARATOR	FSL		field separator list
            DEF_MODNAME		BASEMOD		base module
            *_POSTS_*		*_POSTSMGR_*	posts_mgr module
            *_PAGES_*		*_PAGESMGR_*	pages_mgr module
            *_COMM_*		*_COMMENTS_*	comments module
  • Fixed an high priority bug about USE_UTF8 which, if disabled, didn't show nothing at all (modules, pages, posts, ...).
  • Allowed to load modules which only have pages (_page routine) without a menu block (_main) by setting the $side and/or the $mods variable of modload() to none.
  • New option TAG_BODY_CODE which allow to append text inside the <body> tag declaration. This may result useful, for example, with the option CHEMS_SECTION_HEAD which includes some Javascript code, then the onLoad() routine may be used inside the TAG_BODY_CODE option in order to run Javascript script on page load.
  • Toggle the menu bars when no menu modules are loaded.
  • Fixed few problems about loading multiple instances of modules.
  • Fixed null modules (which returns NULL or empty strings) which are now fully ignored from CHeMS.

Modules
  • Added two options: MOD_COMMENTS_PREFORM and MOD_COMMENTS_POSTFORM which allow to place HTML code before/after the comments module form.
  • Integrated categories support based on the categories module into the posts_mgr module in order to allow per-post categories in posts list. A new option MOD_POSTSMGR_SHOWCATS has been provided.
  • New options MOD_COMMENTS_MSG_SUBMIT and MOD_COMMENTS_MSG_RESET for the comments module form buttons submit and reset.
  • New option MOD_POSTSMGR_LIST_SORT. Need testing.
  • Removed the &$var arguments from the xtrset() call into the modules categories and navbar. The xtrset() definition is unaltered since it already had set the relative arguments to be passed by reference. A new optional argument allow to choose the sorting type (asc, desc).
  • Fixed INC files about key values for the insert() routine (id, body, etc.) which was variables, not strings.
  • Fixed and cleanups modules with E_ALL PHP messages enabled. All the modules are involved.
  • Fixed mkfeed.php which now fetch the feed in reverse order. This is not strictly a fix, rather it's an improvement (more correct behaviour).
  • Removed the %[posts_total] format operator from the navbar module. It isn't needed at all since it's show only into the single-post view (where posts_totals and pages_totals coincide).
  • New module contacts which allow users to send mails to the listed member (names, not email addresses). This remove the need to public emails into the web application preventing the spam phenomen. NOTE: this module doesn't have any block menu implementation so it need to be linked somewhere with the ?modname=contacts URI string. The contacts module is disabled by default.
  • Implemented full instances support for all modules. For curious, the following regexp (in Vim) helped a lot:
    	%s/\.\(MOD_.*[A-Z]\)/.@constant("\1$instpfx")/g
    The following modules couldn't be changed: pages_mgr, posts_mgr and navbar.
  • Fixed MOD_POSTSMGR_POSTSPERPAGE and MOD_POSTSMGR_MAXLEN which had problems with negative values.
  • Removed the %[modname] format operator since $_GET['modname'] produces the same result.
  • New module chtheme (change theme) which allow to switch between themes on the fly.
  • Fixed HTML modules divs IDs and classes

Documentation
  • Fixed a bit of documentation (lots need to be check!) and FAQs.
  • Added few FAQs.
  • New chapter Internals into the guide.
  • News section about the _CEXEC constant into the guide.

Misc
  • The guide has been updated to reflect the upcoming changes.
  • Introduced the core meta-theme.
  • Theme informations interface has changed. Look a .theme file to learn about the new way to store theme informations.
  • Added globals format operators in main.php. Actually only the theme informations has been provided.
  • Defined the _CEXEC costant in index.php. This allow to check if a file has been called from the CHeMS core or directly by the user. In the latter case an error message (Restricted access!) is print and none of the code is run.
  • New logo. THX to Roberto Cascio to made this nice new image.
  • New header, feed RSS and some meta images. THX to Azzurra Di Girolamo to made this great work.
  • Lots of fixes and code cleanups.
The download page for this release is available here.