Module Builder is available in the Developer context and requires some knowledge of database table design, column types and form layout. It is intended to create some skeleton code for you that you can then continue working with. It cannot modify existing files and will overwrite files if you try.
The builder generates the code for a module based on the inputs to a few form fields and can build a DB based module or a module without DB access. The builder can create a DB table for you or you can use an existing db table to create the module.
To create a new module which does not require DB access requires you to fill out one form field (the module name field) and pressing the "Build" button.
This will generate a module in the application/modules folder with config, controllers, language, migrations (for permissions) and view files. Amazing for one form field and a button click.
Of course that's just the basic module. To get more you have to give more!
If you want to use a DB table then you need to fill out more fields. You can choose to build a new DB table or choose an existing table.
You must choose the number of fields you would like in the table, excluding the primary key field which is automatically included.
Then for every field you fill in the form Label, table field name, form input element, table field type, table field length and the form validation settings you would like.
The primary key is assumed to be "id" but this is editable before (and of course after) the form is submitted.
Once the field details have been entered then just click the "Build" button.
Hey presto! Now you have a brand new shiny module with all files mentioned above as well as a new model file and a migration file to create the table in the database. The migration file is even run automatically so you can use the module straight away.
You must choose the name of the table which you would like to use to build your module.
The table name must include the prefix used for your Bonfire site which is "bf_" by default. If your table does not have this prefix then please rename it to include the prefix. Now click on the "Build" button.
This reads the structure of the database table and picks out the field characteristics including the primary field.
The page returned includes settings for each of the fields and sets up the field label for you.
For every field you can change this data but it is advisable to only change the Label and Validation settings as anything else may cause errors.
When you are finished editing the fields just click the "Build" button again.
Now you have a new module based on your previous database table with all files mentioned above as well as a new model file. The migration file is not created in this case as the table already exists but there is a migration file for the permission settings which is processed automatically so you can use the module straight away.
There are lots of options which you can use when building your module. These options are hidden by default but to see them you just click on the "Toggle Advanced Options" links.
Clicking on the link will display the options below the link. Then for every field you fill in the form Label, table field name, form input element, table field type, table field length and the form validation settings you would like.
There are two sets of options, Module Options and Table Options which we will describe below.
The Module Options allow you to customize the module functionality. The options are:
The Table Options are related to the DB table if you chose to build the module with DB access. The options are:
The Module Builder is a great way to get started but there are a couple of issues which you should be aware of:
1 ms | Loading Time: Base Classes |
7 ms | Controller Execution Time ( Docs / Index ) |
10 ms | Total Execution Time |
0.0002 | SELECT GET_LOCK('8584c83b924c7c3b41a1164e14794a1c', 300) AS ci_session_lockSpeed: 0.0002 - Possible keys: - Key Used: - Type: - Rows: - Extra: No tables used |
0.0003 | SELECT `data` FROM `bf_ci_sessions` WHERE `id` = '51is5i99qndhl9fl1q8ub1c672r44883' and `ip_address` = '18.118.33.239'Speed: 0.0003 - Possible keys: - Key Used: - Type: - Rows: - Extra: Impossible WHERE noticed after reading const tables |
0.0003 | SHOW TABLES FROM `bonfire` |
0.0003 | SELECT * FROM `bf_settings`Speed: 0.0003 - Possible keys: - Key Used: - Type: ALL - Rows: 42 - Extra: |
0.0010 | Total Query Execution Time |
__ci_last_regenerate | 1734910863 |
requested_page | https://kampensonline.com/docs/developer/builder |
previous_page | https://kampensonline.com/docs/developer/builder |
No GET data exists |
No POST data exists |
docs/developer/builder |
docs/index |
HTTP_ACCEPT | */* |
HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
HTTP_CONNECTION | |
SERVER_PORT | 443 |
SERVER_NAME | kampensonline.com |
REMOTE_ADDR | 18.118.33.239 |
SERVER_SOFTWARE | Apache/2.4.62 (Ubuntu) |
HTTP_ACCEPT_LANGUAGE | |
SCRIPT_NAME | /index.php |
REQUEST_METHOD | GET |
HTTP_HOST | |
REMOTE_HOST | |
CONTENT_TYPE | |
SERVER_PROTOCOL | HTTP/1.1 |
QUERY_STRING | |
HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate |
HTTP_X_FORWARDED_FOR |
domain | kampensonline.com |
base_url | https://kampensonline.com |
index_page | |
uri_protocol | AUTO |
url_suffix | |
language | english |
charset | UTF-8 |
enable_hooks | true |
subclass_prefix | MY_ |
composer_autoload | false |
permitted_uri_chars | a-z 0-9~%.:_- |
allow_get_array | true |
enable_query_strings | false |
controller_trigger | c |
function_trigger | m |
directory_trigger | d |
log_threshold | 4 |
log_path | /var/www/htdocs/bonfire/application/logs/ |
log_file_extension | |
log_file_permissions | 436 |
log_date_format | Y-m-d H:i:s |
error_views_path | |
cache_path | /var/www/htdocs/bonfire/application/cache/ |
cache_query_string | false |
encryption_key | 92b35b02920621aedbed3b8b9a68c0f1 |
sess_cookie_name | bf_session |
sess_expiration | 7200 |
sess_time_to_update | 300 |
sess_match_ip | true |
sess_driver | database |
sess_regenerate_destroy | false |
sess_save_path | ci_sessions |
cookie_prefix | |
cookie_domain | kampensonline.com |
cookie_path | / |
cookie_secure | false |
cookie_httponly | true |
cookie_samesite | Strict |
standardize_newlines | false |
csrf_protection | true |
csrf_token_name | ci_csrf_token |
csrf_cookie_name | ci_csrf_token |
csrf_expire | 7200 |
csrf_regenerate | true |
csrf_exclude_uris | Array ( ) |
compress_output | false |
time_reference | local |
rewrite_short_tags | false |
proxy_ips | |
bonfire.installed | 1 |
site.default_user_timezone | UP12 |
modules_locations | Array ( [/var/www/htdocs/bonfire/application/modules/] => ../../application/modules/ [/var/www/htdocs/bonfire/bonfire/modules/] => ../../bonfire/modules/ ) |
site.backup_folder | archives/ |
contexts | Array ( [0] => content [1] => reports [2] => settings [3] => developer ) |
enable_activity_logging | true |
sparks_path | ../sparks/ |
template.site_path | /var/www/htdocs/bonfire/public/ |
template.theme_paths | Array ( [0] => themes ) |
template.default_layout | index |
template.ajax_layout | ajax |
template.use_mobile_themes | false |
template.default_theme | default/ |
template.admin_theme | admin |
template.message_template | <div class="alert alert-{type} alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> <div>{message}</div> </div> |
template.breadcrumb_symbol | : |
template.parse_views | false |
assets.directories | Array ( [base] => assets [cache] => cache [css] => css [image] => images [js] => js [module] => module ) |
assets.js_opener | $(document).ready(function() { |
assets.js_closer | }); |
assets.css_combine | false |
assets.js_combine | false |
assets.css_minify | true |
assets.js_minify | true |
assets.encrypt_name | false |
assets.encode | false |
assets.base_folder | assets |
assets.asset_folders | Array ( [css] => css [js] => js [image] => images ) |
ui.current_shortcuts | Array ( [form_save] => Array ( [description] => Save any form in the admin area. [action] => $("input[name=save]").click();return false; ) [create_new] => Array ( [description] => Create a new record in the module. [action] => window.location.href=$("a#create_new").attr("href"); ) [select_all] => Array ( [description] => Select all records in an index page. [action] => $("table input[type=checkbox]").click();return false; ) [delete] => Array ( [description] => Delete the record(s). [action] => $("#delete-me.btn-danger").click(); ) [module_index] => Array ( [description] => Return to the index of the current module. [action] => window.location.href=$("a#list").attr("href"); ) [goto_content] => Array ( [description] => Jump to the Content context. [action] => window.location.href=$("#tb_content").attr("href") ) [goto_reports] => Array ( [description] => Jump to the Reports context. [action] => window.location.href=$("#tb_reports").attr("href") ) [goto_settings] => Array ( [description] => Jump to the Settings context. [action] => window.location.href=$("#tb_settings").attr("href") ) [goto_developer] => Array ( [description] => Jump to the Developer context. [action] => window.location.href=$("#tb_developer").attr("href") ) ) |
emailer.write_to_file | false |
migrate.auto_core | false |
migrate.auto_app | false |
commonmark.valid_drivers | Array ( [0] => Parsedown [1] => Markdown [2] => MarkdownExtra [3] => LeagueCommonMark ) |
commonmark.driver | MarkdownExtended |
docs.theme | docs |
docs.default_group | developer |
docs.show_dev_docs | true |
docs.show_app_docs | true |
docs.toc_file | _toc.ini |
docs.permitted_environments | Array ( [0] => development [1] => testing [2] => production ) |
application.php /var/www/htdocs/bonfire/application/config/application.php |
autoload.php /var/www/htdocs/bonfire/application/config/autoload.php |
config.php /var/www/htdocs/bonfire/application/config/config.php |
constants.php /var/www/htdocs/bonfire/application/config/constants.php |
database.php /var/www/htdocs/bonfire/application/config/database.php |
events.php /var/www/htdocs/bonfire/application/config/events.php |
hooks.php /var/www/htdocs/bonfire/application/config/hooks.php |
mimes.php /var/www/htdocs/bonfire/application/config/mimes.php |
profiler.php /var/www/htdocs/bonfire/application/config/profiler.php |
routes.php /var/www/htdocs/bonfire/application/config/routes.php |
Base_Controller.php /var/www/htdocs/bonfire/application/core/Base_Controller.php |
MY_Model.php /var/www/htdocs/bonfire/application/core/MY_Model.php |
App_hooks.php /var/www/htdocs/bonfire/application/hooks/App_hooks.php |
application_lang.php /var/www/htdocs/bonfire/application/language/english/application_lang.php |
Profiler.php /var/www/htdocs/bonfire/application/libraries/Profiler.php |
Base.php /var/www/htdocs/bonfire/application/third_party/MX/Base.php |
Config.php /var/www/htdocs/bonfire/application/third_party/MX/Config.php |
Controller.php /var/www/htdocs/bonfire/application/third_party/MX/Controller.php |
Lang.php /var/www/htdocs/bonfire/application/third_party/MX/Lang.php |
Loader.php /var/www/htdocs/bonfire/application/third_party/MX/Loader.php |
Benchmark.php /var/www/htdocs/bonfire/bonfire/ci3/core/Benchmark.php |
CodeIgniter.php /var/www/htdocs/bonfire/bonfire/ci3/core/CodeIgniter.php |
Common.php /var/www/htdocs/bonfire/bonfire/ci3/core/Common.php |
Config.php /var/www/htdocs/bonfire/bonfire/ci3/core/Config.php |
Controller.php /var/www/htdocs/bonfire/bonfire/ci3/core/Controller.php |
Hooks.php /var/www/htdocs/bonfire/bonfire/ci3/core/Hooks.php |
Input.php /var/www/htdocs/bonfire/bonfire/ci3/core/Input.php |
Lang.php /var/www/htdocs/bonfire/bonfire/ci3/core/Lang.php |
Loader.php /var/www/htdocs/bonfire/bonfire/ci3/core/Loader.php |
Log.php /var/www/htdocs/bonfire/bonfire/ci3/core/Log.php |
Model.php /var/www/htdocs/bonfire/bonfire/ci3/core/Model.php |
Output.php /var/www/htdocs/bonfire/bonfire/ci3/core/Output.php |
Router.php /var/www/htdocs/bonfire/bonfire/ci3/core/Router.php |
Security.php /var/www/htdocs/bonfire/bonfire/ci3/core/Security.php |
URI.php /var/www/htdocs/bonfire/bonfire/ci3/core/URI.php |
Utf8.php /var/www/htdocs/bonfire/bonfire/ci3/core/Utf8.php |
hash.php /var/www/htdocs/bonfire/bonfire/ci3/core/compat/hash.php |
mbstring.php /var/www/htdocs/bonfire/bonfire/ci3/core/compat/mbstring.php |
password.php /var/www/htdocs/bonfire/bonfire/ci3/core/compat/password.php |
standard.php /var/www/htdocs/bonfire/bonfire/ci3/core/compat/standard.php |
DB.php /var/www/htdocs/bonfire/bonfire/ci3/database/DB.php |
DB_driver.php /var/www/htdocs/bonfire/bonfire/ci3/database/DB_driver.php |
DB_query_builder.php /var/www/htdocs/bonfire/bonfire/ci3/database/DB_query_builder.php |
DB_result.php /var/www/htdocs/bonfire/bonfire/ci3/database/DB_result.php |
mysqli_driver.php /var/www/htdocs/bonfire/bonfire/ci3/database/drivers/mysqli/mysqli_driver.php |
mysqli_result.php /var/www/htdocs/bonfire/bonfire/ci3/database/drivers/mysqli/mysqli_result.php |
directory_helper.php /var/www/htdocs/bonfire/bonfire/ci3/helpers/directory_helper.php |
form_helper.php /var/www/htdocs/bonfire/bonfire/ci3/helpers/form_helper.php |
language_helper.php /var/www/htdocs/bonfire/bonfire/ci3/helpers/language_helper.php |
url_helper.php /var/www/htdocs/bonfire/bonfire/ci3/helpers/url_helper.php |
profiler_lang.php /var/www/htdocs/bonfire/bonfire/ci3/language/english/profiler_lang.php |
Cache.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Cache/Cache.php |
Cache_dummy.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Cache/drivers/Cache_dummy.php |
Driver.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Driver.php |
CI_Session_driver_interface.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Session/CI_Session_driver_interface.php |
PHP8SessionWrapper.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Session/PHP8SessionWrapper.php |
Session.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Session/Session.php |
Session_driver.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Session/Session_driver.php |
Session_database_driver.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Session/drivers/Session_database_driver.php |
BF_Loader.php /var/www/htdocs/bonfire/bonfire/core/BF_Loader.php |
BF_Router.php /var/www/htdocs/bonfire/bonfire/core/BF_Router.php |
BF_directory_helper.php /var/www/htdocs/bonfire/bonfire/helpers/BF_directory_helper.php |
BF_form_helper.php /var/www/htdocs/bonfire/bonfire/helpers/BF_form_helper.php |
application_helper.php /var/www/htdocs/bonfire/bonfire/helpers/application_helper.php |
config_file_helper.php /var/www/htdocs/bonfire/bonfire/helpers/config_file_helper.php |
markdown_extended_helper.php /var/www/htdocs/bonfire/bonfire/helpers/markdown_extended_helper.php |
markdown_helper.php /var/www/htdocs/bonfire/bonfire/helpers/markdown_helper.php |
Assets.php /var/www/htdocs/bonfire/bonfire/libraries/Assets.php |
BF_Model.php /var/www/htdocs/bonfire/bonfire/libraries/BF_Model.php |
CommonMark.php /var/www/htdocs/bonfire/bonfire/libraries/CommonMark.php |
CommonMarkDriver.php /var/www/htdocs/bonfire/bonfire/libraries/CommonMark/CommonMarkDriver.php |
CommonMark_MarkdownExtended.php /var/www/htdocs/bonfire/bonfire/libraries/CommonMark/drivers/CommonMark_MarkdownExtended.php |
Console.php /var/www/htdocs/bonfire/bonfire/libraries/Console.php |
Events.php /var/www/htdocs/bonfire/bonfire/libraries/Events.php |
Modules.php /var/www/htdocs/bonfire/bonfire/libraries/Modules.php |
Route.php /var/www/htdocs/bonfire/bonfire/libraries/Route.php |
Template.php /var/www/htdocs/bonfire/bonfire/libraries/Template.php |
docs.php /var/www/htdocs/bonfire/bonfire/modules/docs/config/docs.php |
routes.php /var/www/htdocs/bonfire/bonfire/modules/docs/config/routes.php |
Docs.php /var/www/htdocs/bonfire/bonfire/modules/docs/controllers/Docs.php |
docs_lang.php /var/www/htdocs/bonfire/bonfire/modules/docs/language/english/docs_lang.php |
_sidebar.php /var/www/htdocs/bonfire/bonfire/modules/docs/views/_sidebar.php |
index.php /var/www/htdocs/bonfire/bonfire/modules/docs/views/index.php |
Settings_lib.php /var/www/htdocs/bonfire/bonfire/modules/settings/libraries/Settings_lib.php |
Settings_model.php /var/www/htdocs/bonfire/bonfire/modules/settings/models/Settings_model.php |
index.php index.php |
index.php themes/docs/index.php |