xoops forums


Posted on: 2009/10/14 8:16
Mamba (Show more)
Posts: 10308
Since: 2004/4/23

XMF (XOOPS Modules Framework)

Scott Lai is working on XAM Framework (read his interview here).

There is also the wonderful TDMCreate module generator developed by kraven_30.

BitC3R0 did also develop several awesome modules based on his EXM fork.

And last but not least, Trabis created also several very innovative modules, and we talked on several occasions about a new XOOPS Module Framework (XMF)

So there is a lot of interesting and very creative developments in the XOOPS world, and I hope, XOOPS module developers could discuss in this thread what should be included in such a Module Framework, how can we make Module development easier.

One of the things that we should consider are several of the D3 requirements defined by GIJoe:

* Requirements
(1) X2 compatible
(2) dirname can be /^[0-9a-zA-Z_-]+$/
(3) Almost all module logic placed inside XOOPS_TRUST_PATH
(4) can be duplicated just by copying into ROOT/modules/. (No rewriting the source code)
(5) No logic in XOOPS_TRUST_PATH is duplicated.

* Recommendation
- Place ROOT/modules/(dirname)/mytrustdirname.php
- All tables are created as (prefix)_(dirname)_(table)
- All templates are created as (dirname)_(tplfile) into DB
- All Blocks are rendered by 'module' templates not by 'block' templates
- Almost all blocks can be cloned (just set 'can_clone')
- can use D3Language Manager
- can use D3Comment Integration

Personally, I like the option to duplicate a module just by copying it and renaming in the /modules directory.

We also should have a library of standard re-usable components, e.g. for creating PDF, multi-file upload, etc. Basically all elements that are repeated in many of our modules.

Also, built-in "pre-load" functionality that was included by Trabis in 2.4.0.

And last, but not least, "auto-update" of modules, i.e. ability to check if there are new modules, and being able to update them with a click of a mouse. Alfred (dhsoft) developed it in Simple-XOOPS.

So what else should be included?