Add a new option option similar to 'record in database'
The 'Record in Database' option really means 'this Form and its List do not interact whatsoever with the database'. For example, if you have typical List and Form that interact with a database table and you turn off Record in Database, you can no longer pull up records from the table in the Details View for the form. This is unintuitive, if you read 'Record' as being a verb, meaning the option doesn't affect reading from the database but just controls whether the form can do insert/update operations on the database. I'm guessing the meaning of the option name is closer to 'this form has no record(s) in the database', which makes sense too, of course.
I think it would be useful to have an option that just prevents Fabrik from performing insert and update queries, but otherwise doesn't affect the behavior of the form and related list. So the concept is that with this option you could have the full functionality of Fabrik, minus insert and update queries, which would need to be handled in form php plugins. I think this would be a useful feature, since there are many situations where insert/update operations need to be done in particular ways because of relational constraints, or the queries need to make use of stored procedures/functions, or a series of updates must be performed upon the submission of a form and need to be done within a transaction, and so on.
Nathan Cook commented
Not exactly...unless I'm missing something, when I set the acl so editing/adding isn't allowed, it doesn't let me get to the form view, which I still want. Basically, for the Fabrik List/Form I'm thinking of, I want to be able to show the form view and have it behave the same as if the form was configured to insert/update the database table on form submission. It should show cleared/default element values when view=form&rowid=0, and pull data from the database into the form view when view=form&rowid=123
The only difference with a typically created/configured fabrik form is that when the form's 'Save' button is clicked, $listModel->storeRow(...) never gets called. But, the rest of what goes on in the form model's processToDB method still happens. Basically, I'd like an option that just does that, with everything else remaining the same - data is posted to the server, validations are run, form plugins are run, etc In other words, any inserts or updates to the database table would need to happen in form php plugins. Obviously a large amount of Fabrik's functionality depends on Fabrik doing insert and update queries in the processToDB function (setting foreign key values correctly, for example). But having that stuff not work is OK...this option idea is really when you want to handle ALL of that stuff yourself and are ready to deal with the consequences of not letting Fabrik do anything but SELECT queries on the database table.
Adminrobclayburn (Admin, fabrik) commented
hi - currently you could do that with the list acl ?So set it so that users cant edit/add but can view records