Proposal for content modules
Minor optimization - disable the module in the constructor if the conditions are not met. This prevents execute() being called at all.
Reverse previous change
Introduce template page modules - if a page module exists for a template block (sharing the same name), automatically load the page module before calling the template block modules.
test modules
add getBlocks() to checkout success page
rename modules
Don't integrate content modules into the template (cfgm_content->template_integration) so content modules are only loaded on demand. Add content functions to the template class to separate the content (on demand) from blocks (global).
modularize login page
Introduce Log In with PayPal
Move content modules to own group subdirectories
Replace standard module configuration page with a dedicated content module page
rename content modules
rename content module language files
update renamed module class names and constants
automatically set module code to class name
change format of MODULE_CONTENT_INSTALLED from class_filename.php;.. to group/code;..
load content modules on the frontend in sort order
abstract and move login processing logic into login content module to allow different or multiple authentication login content modules authenticate the user
Remove login routine and return $login_customer_id to login.php to perform the core login.
Move ext/modules/payment/paypal/login.php redirect code to main module (preLogin() and postLogin() module methods).
* Label module with "sandbox" if sandbox testing server is used (admin and frontend)
* Add gateway connection test dialog
* Show a warning in the admin if the module is enabled and the client id and secret fields are still empty
* Only load the module on the frontend if the client id and secret fields have been configured
* Add button theme configuration parameter
* Add locale defined in the module language file
Allow scopes to be configurable