On a recent project I developed two module builder dynamic modules. I was rushed and pushed them to completion without much thought as I entered the names of fields, selected data types and required field validation or some simple regular expression validation rules. I hit save and started to enter some test data. Everything looked great and I was done with creating administration in minutes.
A month later we loaded data in the module and we were getting close to production deployment. I found a bug in testing my modules’ presentation in the front-end user interface. I found a missing data item—a reference to an image library was crashing my page. I had omitted making a required field on the missing image.
When I went back to edit my module I found only the delete button as an option on existing data fields. I could drop and recreate the item, but I was concerned that I might lose the connection to hundreds of existing data items.
Instead, I opened the database and scanned for the table sf_mb_dynamic_module_field. Opening this table for editing allowed me to make changes to fields in my custom modules. The column names were intuitive and allowed me to identify my needed is_required bit column and set it for the images. While I was there, I updated some missing Title fields and generally familiarized myself with what was in front of me.
What followed was an exploration in modifications and additions to my custom modules without using Sitefinity’s missing edit properties for the dynamic module fields.
The last step was to go back to Administration and to the module builder for my module. The module needed to have the “Update module widgets and finish” button clicked to make the changes final and available in administration forms and front-end widgets.
I thought there might be other developers finding they need to change or add properties to their custom modules. This is it, and it’s not as bad working with it as going without it in the interface. Here’s hoping that edit custom module fields is coming soon from Sitefinity.